16x161.docx
- 文档编号:23912512
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:14
- 大小:314.55KB
16x161.docx
《16x161.docx》由会员分享,可在线阅读,更多相关《16x161.docx(14页珍藏版)》请在冰豆网上搜索。
16x161
南京工程学院
课程设计任务书
课程名称:
单片机原理及应用A
院(系、部、中心):
自动化学院
专业:
自动化(数控技术应用)
班级:
数控061
姓名:
丁嘉
起止日期:
2008.12.17~2008.12.21
指导教师:
孙来业
目录
一、设计任务(要求)
二、总体方案
三、原理框图
四、系统模块详细设计与调试
五、设计总结
六、参考文献
七、附件材料
一、设计任务
运用<<单片机原理及应用A>>课程等知识,根据题目要求进行软硬件系统的设计和调试,从而加深对本课程知识点的理解,使学生综合应用知识能力、设计能力、调试能力及报告撰写能力等显著提高。
了解16x16点阵电路的原理、掌握点阵显示器的控制方法。
利用实验仪上的16x16LED点阵显示器,编写显示英文、汉字字符程序。
例如:
显示英文“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,090H,026H
090H,024H,000H,024H,0FFH,027H,000H,000H
在实验时可以使用查表的方法来显示汉字。
设片选信号16*16CS占用0B000H地址开始的地址段,则低行低八位地址RLCK=0B002H,行高八位地址RHCK=0B003H,列低八位地址CLCK=0B00H,列高八位地址CHCK=0B001H,在显示汉字的时候是逐行(列)进行循环扫描的,因此为了使汉字实现移动,在每次循环扫描时扫描到的代码进行增加,这样就可以实现汉字移动。
三、原理框图
四、系统模块详细设计与调试
程序主要分为几个部分分别是清屏段,然后显示段,最后实现汉字移动段以及用汉字代码做的表格。
其中重点设计的是显示段的程序,采用的方法是用列先扫描,然后行扫描来确定哪列的哪些点点亮。
而且列扫描也分为低八位和高八位两段。
根据设计的流程图和总体的设计方案,对于每段程序进行详细的设计。
清屏也可以看作是对于点阵内所有点进行初始化,防止出现乱码的现象。
主要依靠的程序有
MOVDPTR,#LIE1
MOVX@DPTR,A
MOVDPTR,#LIE2
MOVX@DPTR,A
MOVDPTR,#HANG1
MOVXDPTR,A
MOVDPTR,#HANG2
MOVX@DPTR,A
有了初始化程序以后就要设计重点的部分,也就是显示部分。
对此首先尝试了如何使一个点亮起来,由于16*16点阵是需要16个行驱动和16个列驱动,因此只有在行和列都有信号使点亮点才可以亮。
有了这一步后实现显示整个汉字的思路变可如下,首先可以给某一列附个值来确定开启哪一行,然后再确定这一行中开启哪几个点。
比如说要显示上面“南”字的最下面一行中的2点,可以用以下方法实现,首先给LCQ0一个值为0FEH,这样就开启了LRQ0这一行,然后再再这行中想办法让这一行中的那两个点亮就可以了。
当然在确定是哪列驱动的时候哈分列低八位和列高八位。
这样扫描完成之后便可以显示一个汉字了。
如果要显示几个汉字的话,只要将他们的代码都放在最后,然后逐个利用上面的方法扫描。
接下来要使汉字移动起来,使用的思路是在查表取代码的时候每次加2,这样可以得到也就是每次向右移动了一列,加如适当的延时就可以了,而且在6个汉字全部移动显示完之后可以循环显示。
最后这些思路都有了之后要画表格把6个汉字的代码写出来。
初步的把程序写出来之后要进行调试工作,这部分内容也是实验最关键的部分。
调试过程也分好几个部分。
首先根据设计好的程序,把程序输入到电脑中,保存好之后进行编译,根据提示的信息改正编译发生的错误,然后是硬件上的调试,接好线后全速执行,看能否得到最终的结果,若不能得到则要检查程序,可以利用单步执行,或者设置段点的方法一步步调试程序,得到最终结果。
以下是我在实验过程中调试程序的主要过程。
首先我选择了显示一个汉字的一段程序,因为这段程序对了实验就完成了一半,而且只用这段程序的话相对比较简单容易发现问题。
在编译的时候没发现什么大的问题,但是执行之后效果不行,虽然能大致分辨出什么字,但有些点不该亮的亮了,该亮的没亮。
首先想到的是代码写错了,经过检查确认代码没有错误。
然后想到了程序前面的清屏部分,但是经过思考这部分也是没问题,把问题锁定在显示这部分有问题,然后利用单部执行。
发现了错误的原因是由于在每列执行完之后,在进行下列的扫描时没清屏。
添加了一段清屏的内容之后单个字可以显示出来。
然后要显示多个字,首先想到的方法是把几段单个字的程序连起来,中间加入延时来实现,可是这样的话即使可行程序也会太长了,因此用了其他的方法。
就是执行完一个字的代码之后让执行下个字的代码。
这就是完整的程序了,把这些程序输入到电脑中,进行调试。
K1:
MOVDPTR,#LIE2
MOVA,R1
MOVX@DPTR,A
RLA
MOVR1,A
MOVDPTR,#LIE1
MOVA,#0FFH
MOVX@DPTR,A
MOVA,R0
MOVDPTR,#TAB
MOVCA,@A+DPTR
INCR0
MOVDPTR,#HANG2
MOVX@DPTR,A
CALLDELAY
MOVA,R0
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVDPTR,#HANG1
MOVX@DPTR,A
CALLDELAY
MOVDPTR,#HANG1
MOVA,#00H
MOVX@DPTR,A
MOVDPTR,#HANG2
MOVX@DPTR,A
INCR0
CJNER1,#0FEH,K1
MOVR1,#0FEH
以上程序是显示列低八位的程序。
CJNER1,#0FEH,K2
INCR4
CJNER4,#05H,K0
DECR4
INCR5
INCR5
CJNER5,#192,ZZ
SJMPNEXT
ZZ:
LJMPK
NEXT:
LJMPSTART
以上部分是实现汉字移动的部分
在调试中出现问题是在最后一个汉字显示完之后会有乱码,然后在到第一个汉字,根据分析产生的原因是在执行到最后一个汉字高八位的时候后面没有代码了。
解决的方法是多加一个第一个汉字的代码。
五、设计总结
课程设计是对于一门课程综合知识的运用过程,并且可以是理论联系实际,解决一些实际的问题。
在本课程的课程设计过程中,我获得了很多新的知识,并且对于许多知道的知识用来解决实际问题的能力也得到了提升。
了解最多的是关于16*16点阵电路的原理,并且知道了怎么来控制点阵显示器。
在实验过程中要学会请教别人,自己不懂或者是在某段程序上不如别人完美的地方要仔细研究。
每个人的思路都是不同的,各自有不同的优缺点,大家共同讨论才能共同进步。
当然许多问题自己能解决应当自己解决,课程设计过程中会遇到很多问题,解决这些问题同样是很大的收获。
自己解决问题也是一种能力的体现,学会自己查找资料,虽然可能比直接问其他同学要更多的时间,但是也会收获到更多的知识。
六、参考文献
《单片机原理及应用实验指导书》,屈波等编,2008年
《单片机原理及应用》,赵德安等编,机械工业出版社,2004
《单片机原理及应用》,雷晓平等编著,机械工业出版社,2007
七、附件材料
1程序硬件图
见下页
连线
连接孔1
连接孔2
1
16*16--CS
CS3
2实验设备
LAB6000微控制器实验系统
PC机一台
实验导线
3实物图片见下页
4程序清单
LIE1EQU0B001H
LIE2EQU0B000H
HANG1EQU0B003H
HANG2EQU0B002H
ORG0000H
AJMPSTART
DELAY:
MOVR7,#0
DELAY1:
DJNZR7,DELAY1
RET
START:
MOVR5,#00H
K:
MOVR6,#00H
MOVR4,#00H
MOVR3,#00H
MOVDPTR,#LIE1
MOVX@DPTR,A
MOVDPTR,#LIE2
MOVX@DPTR,A
MOVDPTR,#HANG1
MOVX@DPTR,A
MOVDPTR,#HANG2
MOVX@DPTR,A
K0:
MOVA,R5
MOVR0,A
MOVR1,#0FEH
K1:
MOVDPTR,#LIE2
MOVA,R1
MOVX@DPTR,A
RLA
MOVR1,A
MOVDPTR,#LIE1
MOVA,#0FFH
MOVX@DPTR,A
MOVA,R0
MOVDPTR,#TAB
MOVCA,@A+DPTR
INCR0
MOVDPTR,#HANG2
MOVX@DPTR,A
CALLDELAY
MOVA,R0
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVDPTR,#HANG1
MOVX@DPTR,A
CALLDELAY
MOVDPTR,#HANG1
MOVA,#00H
MOVX@DPTR,A
MOVDPTR,#HANG2
MOVX@DPTR,A
INCR0
CJNER1,#0FEH,K1
MOVR1,#0FEH
K2:
MOVDPTR,#LIE1
MOVA,R1
MOVX@DPTR,A
RLA
MOVR1,A
MOVDPTR,#LIE2
MOVA,#0FFH
MOVX@DPTR,A
MOVA,R0
MOVDPTR,#TAB
MOVCA,@A+DPTR
INCR0
MOVDPTR,#HANG2
MOVX@DPTR,A
CALLDELAY
MOVDPTR,#TAB
MOVA,R0
MOVCA,@A+DPTR
MOVDPTR,#HANG1
MOVX@DPTR,A
CALLDELAY
MOVDPTR,#HANG1
MOVA,#00H
MOVX@DPTR,A
MOVDPTR,#HANG2
MOVX@DPTR,A
INCR0
CJNER1,#0FEH,K2
INCR4
CJNER4,#05H,K0
DECR4
INCR5
INCR5
CJNER5,#192,ZZ
SJMPNEXT
ZZ:
LJMPK
NEXT:
LJMPSTART
TAB:
DB000H,000H,000H,024H,0FEH,02FH,001H,024H
DB092H,024H,090H,026H,090H,025H,090H,024H
DB0FEH,0FCH,090H,024H,090H,025H,090H,026H
DB090H,024H,000H,024H,0FFH,027H,000H,000H;南
DB000H,000H,008H,020H,010H,020H,020H,020H
DB060H02FH,000H,029H,000H,029H,0FEH,069H
DB001H,029H,002H,029H,000H,02FH,040H,020H
DB020H,020H,010H,020H,008H,020H,000H,000H;京
DB004H,000H,004H,000H,004H,010H,004H,010H
DB004H,010H,004H,010H,004H,010H,004H,010H
DB0FCH,01FH,004H,010H,004H,010H,004H,010H
DB004H,010H,004H,010H,004H,000H,004H,000H;工
DB000H,000H,002H,000H,022H,07DH,022H,045H
DB022H,045H,0FEH,045H,022H,045H,022H,045H
DB022H,07DH,002H,000H,080H,002H,000H,043H
DB0FEH,03FH,000H,013H,080H,00AH,000H,000H;程
DB000H,000H,000H,000H,040H,010H,040H,018H
DB040H,050H,040H,034H,040H,016H,040H,015H
DB0FEH,034H,041H,054H,042H,014H,040H,034H
DB040H,054H,040H,010H,040H,008H,000H,000H;学
DB006H,020H,002H,030H,002H,022H,006H,02AH
DB0f8H,02AH,000H,06BH,0F8H,02BH,006H,02AH
DB002H,02AH,002H,012H,006H,020H,000H,054H
DB000H,04BH,000H,041H,0FEH,07FH,000H,000H;院
DB000H,000H,000H,024H,0FEH,02FH,001H,024H
DB092H,024H,090H,026H,090H,025H,090H,024H
DB0FEH,0FCH,090H,024H,090H,025H,090H,026H
DB090H,024H,000H,024H,0FFH,027H,000H,000H;南
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 16x16 16 x16
![提示](https://static.bdocx.com/images/bang_tan.gif)