1、16x16 1南京工程学院 课程设计任务书 课 程 名 称: 单片机原理及应用A 院(系、部、中心): 自动化学院 专 业: 自动化(数控技术应用) 班 级: 数控061 姓 名: 丁嘉 起 止 日 期: 2008.12.172008.12.21 指 导 教 师: 孙来业 目 录 一、设计任务(要求)二、总体方案 三、原理框图四、系统模块详细设计与调试五、设计总结六、参考文献七、附件材料一、 设计任务运用课程等知识,根据题目要求进行软硬件系统的设计和调试,从而加深对本课程知识点的理解,使学生综合应用知识能力、设计能力、调试能力及报告撰写能力等显著提高。了解16x16点阵电路的原理、掌握点阵显示
2、器的控制方法。利用实验仪上的16x16 LED点阵显示器,编写显示英文、汉字字符程序。例如:显示英文“NJIT”和中文“南京工程学院”。最好能移动显示。二、 总体方案16x16点阵需要32个驱动,分别为16个列驱动及16个行驱动。每个行与每个列可以选中一个发光管,共有256个发光管,采用动态驱动方式。每次显示一行,10ms后再显示下一行。点阵图案按如下格式排列:对应的点阵表:000H,000H,000H,024H,0FEH,02FH,001H,024H 092H,024H,090H,026H,090H,025H,090H,024H 0FEH,0FCH,090H,024H,090H,025H,0
3、90H,026H 090H,024H,000H,024H,0FFH,027H,000H,000H 在实验时可以使用查表的方法来显示汉字。设片选信号16*16CS占用0B000H地址开始的地址段,则低行低八位地址RLCK=0B002H,行高八位地址RHCK=0B003H,列低八位地址CLCK=0B00H,列高八位地址CHCK=0B001H,在显示汉字的时候是逐行(列)进行循环扫描的,因此为了使汉字实现移动,在每次循环扫描时扫描到的代码进行增加,这样就可以实现汉字移动。三、原理框图四、系统模块详细设计与调试程序主要分为几个部分分别是清屏段,然后显示段,最后实现汉字移动段以及用汉字代码做的表格。其中
4、重点设计的是显示段的程序,采用的方法是用列先扫描,然后行扫描来确定哪列的哪些点点亮。而且列扫描也分为低八位和高八位两段。根据设计的流程图和总体的设计方案,对于每段程序进行详细的设计。清屏也可以看作是对于点阵内所有点进行初始化,防止出现乱码的现象。主要依靠的程序有MOV DPTR, #LIE1 MOVX DPTR, A MOV DPTR, #LIE2 MOVX DPTR, A MOV DPTR , #HANG1 MOVX DPTR,A MOV DPTR,#HANG2 MOVX DPTR,A有了初始化程序以后就要设计重点的部分,也就是显示部分。对此首先尝试了如何使一个点亮起来,由于16*16点阵是
5、需要16个行驱动和16个列驱动,因此只有在行和列都有信号使点亮点才可以亮。有了这一步后实现显示整个汉字的思路变可如下,首先可以给某一列附个值来确定开启哪一行,然后再确定这一行中开启哪几个点。比如说要显示上面“南”字的最下面一行中的2点,可以用以下方法实现,首先给LCQ0一个值为0FEH,这样就开启了LRQ0这一行,然后再再这行中想办法让这一行中的那两个点亮就可以了。当然在确定是哪列驱动的时候哈分列低八位和列高八位。这样扫描完成之后便可以显示一个汉字了。如果要显示几个汉字的话,只要将他们的代码都放在最后,然后逐个利用上面的方法扫描。接下来要使汉字移动起来,使用的思路是在查表取代码的时候每次加2,
6、这样可以得到也就是每次向右移动了一列,加如适当的延时就可以了,而且在6个汉字全部移动显示完之后可以循环显示。最后这些思路都有了之后要画表格把6个汉字的代码写出来。初步的把程序写出来之后要进行调试工作,这部分内容也是实验最关键的部分。调试过程也分好几个部分。首先根据设计好的程序,把程序输入到电脑中,保存好之后进行编译,根据提示的信息改正编译发生的错误,然后是硬件上的调试,接好线后全速执行,看能否得到最终的结果,若不能得到则要检查程序,可以利用单步执行,或者设置段点的方法一步步调试程序,得到最终结果。以下是我在实验过程中调试程序的主要过程。首先我选择了显示一个汉字的一段程序,因为这段程序对了实验就
7、完成了一半,而且只用这段程序的话相对比较简单容易发现问题。在编译的时候没发现什么大的问题,但是执行之后效果不行,虽然能大致分辨出什么字,但有些点不该亮的亮了,该亮的没亮。首先想到的是代码写错了,经过检查确认代码没有错误。然后想到了程序前面的清屏部分,但是经过思考这部分也是没问题,把问题锁定在显示这部分有问题,然后利用单部执行。发现了错误的原因是由于在每列执行完之后,在进行下列的扫描时没清屏。添加了一段清屏的内容之后单个字可以显示出来。然后要显示多个字,首先想到的方法是把几段单个字的程序连起来,中间加入延时来实现,可是这样的话即使可行程序也会太长了,因此用了其他的方法。就是执行完一个字的代码之后
8、让执行下个字的代码。这就是完整的程序了,把这些程序输入到电脑中,进行调试。K1: MOV DPTR,#LIE2 MOV A,R1 MOVX DPTR,A RL A MOV R1,A MOV DPTR,#LIE1 MOV A,#0FFH MOVX DPTR,A MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR INC R0 MOV DPTR,#HANG2 MOVX DPTR,A CALL DELAY MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#HANG1 MOVX DPTR,A CALL DELAY MOV DPTR,#H
9、ANG1 MOV A,#00H MOVX DPTR,A MOV DPTR,#HANG2 MOVX DPTR,A INC R0 CJNE R1,#0FEH,K1 MOV R1,#0FEH以上程序是显示列低八位的程序。 CJNE R1,#0FEH,K2 INC R4 CJNE R4,#05H,K0 DEC R4 INC R5 INC R5 CJNE R5,#192,ZZ SJMP NEXT ZZ: LJMP KNEXT: LJMP START以上部分是实现汉字移动的部分在调试中出现问题是在最后一个汉字显示完之后会有乱码,然后在到第一个汉字,根据分析产生的原因是在执行到最后一个汉字高八位的时候后面没
10、有代码了。解决的方法是多加一个第一个汉字的代码。五、设计总结课程设计是对于一门课程综合知识的运用过程,并且可以是理论联系实际,解决一些实际的问题。在本课程的课程设计过程中,我获得了很多新的知识,并且对于许多知道的知识用来解决实际问题的能力也得到了提升。了解最多的是关于16*16点阵电路的原理,并且知道了怎么来控制点阵显示器。在实验过程中要学会请教别人,自己不懂或者是在某段程序上不如别人完美的地方要仔细研究。每个人的思路都是不同的,各自有不同的优缺点,大家共同讨论才能共同进步。当然许多问题自己能解决应当自己解决,课程设计过程中会遇到很多问题,解决这些问题同样是很大的收获。自己解决问题也是一种能力
11、的体现,学会自己查找资料,虽然可能比直接问其他同学要更多的时间,但是也会收获到更多的知识。六、参考文献单片机原理及应用实验指导书,屈波等编,2008年单片机原理及应用,赵德安等编,机械工业出版社,2004单片机原理及应用,雷晓平等编著,机械工业出版社,2007七、附件材料1 程序硬件图见下页连线连接孔1连接孔2116*16-CSCS32实验设备LAB6000微控制器实验系统 PC机一台实验导线3实物图片见下页4程序清单 LIE1 EQU 0B001H LIE2 EQU 0B000H HANG1 EQU 0B003H HANG2 EQU 0B002H ORG 0000H AJMP STARTDE
12、LAY: MOV R7,#0DELAY1:DJNZ R7,DELAY1 RETSTART: MOV R5,#00H K: MOV R6,#00H MOV R4,#00H MOV R3,#00H MOV DPTR,#LIE1 MOVX DPTR,A MOV DPTR,#LIE2 MOVX DPTR,A MOV DPTR,#HANG1 MOVX DPTR,A MOV DPTR,#HANG2 MOVX DPTR,A K0: MOV A,R5 MOV R0,A MOV R1,#0FEH K1: MOV DPTR,#LIE2 MOV A,R1 MOVX DPTR,A RL A MOV R1,A MOV
13、DPTR,#LIE1 MOV A,#0FFH MOVX DPTR,A MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR INC R0 MOV DPTR,#HANG2 MOVX DPTR,A CALL DELAY MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#HANG1 MOVX DPTR,A CALL DELAY MOV DPTR,#HANG1 MOV A,#00H MOVX DPTR,A MOV DPTR,#HANG2 MOVX DPTR,A INC R0 CJNE R1,#0FEH,K1 MOV R1,#0FEH K2
14、: MOV DPTR,#LIE1 MOV A,R1 MOVX DPTR,A RL A MOV R1,A MOV DPTR,#LIE2 MOV A,#0FFH MOVX DPTR,A MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR INC R0 MOV DPTR,#HANG2 MOVX DPTR,A CALL DELAY MOV DPTR,#TAB MOV A,R0 MOVC A,A+DPTR MOV DPTR,#HANG1 MOVX DPTR,A CALL DELAY MOV DPTR,#HANG1 MOV A,#00H MOVX DPTR,A MOV DPTR,#H
15、ANG2 MOVX DPTR,A INC R0 CJNE R1,#0FEH,K2 INC R4 CJNE R4,#05H,K0 DEC R4 INC R5 INC R5 CJNE R5,#192,ZZ SJMP NEXT ZZ: LJMP KNEXT: LJMP STARTTAB: DB 000H,000H,000H,024H,0FEH,02FH,001H,024H DB 092H,024H,090H,026H,090H,025H,090H,024H DB 0FEH,0FCH,090H,024H,090H,025H,090H,026H DB 090H,024H,000H,024H,0FFH,0
16、27H,000H,000H ;南 DB 000H,000H,008H,020H,010H,020H,020H,020H DB 060H 02FH,000H,029H,000H,029H,0FEH,069H DB 001H,029H,002H,029H,000H,02FH,040H,020H DB 020H,020H,010H,020H,008H,020H,000H,000H ;京 DB 004H,000H,004H,000H,004H,010H,004H,010H DB 004H,010H,004H,010H,004H,010H,004H,010H DB 0FCH,01FH,004H,010H
17、,004H,010H,004H,010H DB 004H,010H,004H,010H,004H,000H,004H,000H ;工 DB 000H,000H,002H,000H,022H,07DH,022H,045H DB 022H,045H,0FEH,045H,022H,045H,022H,045H DB 022H,07DH,002H,000H,080H,002H,000H,043H DB 0FEH,03FH,000H,013H,080H,00AH,000H,000H ;程 DB 000H,000H,000H,000H,040H,010H,040H,018H DB 040H,050H,04
18、0H,034H,040H,016H,040H,015H DB 0FEH,034H,041H,054H,042H,014H,040H,034H DB 040H,054H,040H,010H,040H,008H,000H,000H ;学 DB 006H,020H,002H,030H,002H,022H,006H,02AH DB 0f8H,02AH,000H,06BH,0F8H,02BH,006H,02AH DB 002H,02AH,002H,012H,006H,020H,000H,054H DB 000H,04BH,000H,041H,0FEH,07FH,000H,000H ;院DB 000H,000H,000H,024H,0FEH,02FH,001H,024H DB 092H,024H,090H,026H,090H,025H,090H,024H DB 0FEH,0FCH,090H,024H,090H,025H,090H,026H DB 090H,024H,000H,024H,0FFH,027H,000H,000H ;南
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1