《单片机课程设计8×16点阵汉字显示器.doc》由会员分享,可在线阅读,更多相关《单片机课程设计8×16点阵汉字显示器.doc(23页珍藏版)》请在三一办公上搜索。
1、 班级:电信3班姓名: 学号:一实验目的用TOP-23088DH-U 8x8LED点阵块设计制作一个816点阵汉字显示器,通过51单片机作为控制系统,由8255的A口为段数据口向两块点阵提供数据,B口提供扫描信息,通过74LS154译码后进行扫描。同时C口接3个开关,形成控制功能选择。二设计要求1、能显示168的汉字,显示“老师”,“大连”等。2、通过按键控制可以改变显示的汉字,图形和符号。3、通过按键控制可以实现汉字静态显示“老师”以及左移显示“大连”。4、可以实现简单的图形的从外向内周期显示以及从内向外周期显示。5、增加了驱动电路,提高了现实亮度。6、增加了现实图形:点阵从内向外周期显示后
2、又相反显示,显示正弦波形(左移),显示正弦波形(右移)。三实验元器件需要器件名称 数量 8051单片机(实验箱集成) 1 8255(实验箱集成) 1 TOP-23088DH-U 8x8LED 2 74LS154 1 74LS245 1面包板 3导线 若干开关(实验箱集成) 5四.原理分析(1)TOP-23088DH-U 8x8LED点阵电路原理图及其使用说明 有标记的一侧63121141524正面图,脚线分布 813115167109说明:TOP-23088DH-U 8x8LED点阵属于共阴极点阵其中 1至8控制行行为阳极低电平0有效9至16 控制列列为阴极高电平1有效要点亮某盏小灯时,应先把
3、小灯所位置的行置于低电平。然后控制列的高电平编程时按“高位往低位”的顺序编写代码如果,当你所选购的8x8LED点阵型号是别的型号,而你又没有得到相关电路图时,可以自己用数字万用表去检测。方法如下:1以有标记的那一端在上,建立坐标系。2将数字万用表调到测试二极管的那端,如后将红笔固定在某一引脚上,然后将黑笔分别与其他引脚相接。观察哪一行或者那一列的小灯是否被点亮,然后记下坐标。如果小灯没亮,则将黑笔与红笔换位,再重复测量。3然后重复上述步骤2。之后整理所得的数据,即可得到该8x8LED点阵的电路图了。点阵模块图如下: 如上图所示,本实验通过列扫描方式,扫描同时给行线送显示数据。当扫描到某列,则该
4、列选通,其他列截止,选通瞬间送显示数据,则所对应的二极管亮。显示的基本原理:点阵依靠循环点亮每一列(或行),快速循环形成一屏图像,而每一屏快速交替,可进一步形成动画的效果。 (2)同时,74LS245的管脚图如下图 (3) 74LS154管脚图如下图:五实验方案(1)方案论证控制模块整个系统由8051、74LS154,8255组成,其中,8051,8255,以及开关都集成在实验箱上。并且集成了时钟等必须器件。74LS154是4线转16线译码器,4线端接8255的PB.0-PB.3口接收列扫描信息,16线端低电平有效,控制点阵的16列74LS245是对列的驱动,8255的PA.0-PA.7用于将
5、行扫描数据进行高速串-并转换,实验箱内部便可提供较大电流总够控制点阵的8行,这样,点阵的128个点中被选通的就亮。显示模块由2块TOP-23088DH-U 8x8LED点阵组成(2) 流程图开始动态显示正弦波波形两点阵从内向外周期显示后又相反显示两点阵相反周期显示动态显示“大连”(左移)静态显示“老师”K5是否按下?K4是否按下?K3是否按下?K1是否按下?K2是否按下?不显示YNYNYNYNYN(3)硬件连接(4)软件部分编程思路为:先对相关变量进行初始化,循环扫描点亮16列LED,一帧图像扫描完毕后,列指针向右移动一位,再扫描下一帧图像。依此类推,列指针共向右移动16位,这样主观上就感觉向
6、左滚动,移动一个汉字(列指针右移16位)后,字指针指向下一个汉字,这样就能在显示屏上看到汉字滚动。(5)实验程序ORG 0000HLJMP STARTORG 3000HSTART: MOV DPTR,#8003H MOV A,#81H MOVX DPTR,A MOV R6,#2 MOV R7,#10H MOV DPTR,#8002H MOVX A,DPTR JNB ACC.0,L1 JNB ACC.1,L2 JNB ACC.2,L3 JNB ACC.3,L41 JNB ACC.4,L51L41: LJMP L4L51: LJMP L5 SJMP STARTL1: MOV R0,#00H MOV
7、 R1,#00HLOOP1: MOV A,R1 MOV DPTR,#8001H MOVX DPTR,A MOV DPTR,#TAB1 MOV A,R0 MOVC A,A+DPTR MOV DPTR,#8000H MOVX DPTR,A LCALL DELAY INC R0 INC R1 DJNZ R7,LOOP1 MOV R7,#10H LJMP STARTL2: MOV R4,#00H MOV A,R4 MOV R0,ALOOP2: MOV R1,#00HKK2: MOV A,R1 MOV DPTR,#8001H MOVX DPTR,A MOV DPTR,#TAB2 MOV A,R0 MOV
8、C A,A+DPTR MOV DPTR,#8000H MOVX DPTR,A INC R0 INC R1 LCALL DELAY LCALL DELAY DJNZ R7,KK2 MOV A,R4 MOV R0,A MOV R7,#10H DJNZ R6,LOOP2 LCALL DELAY LCALL DELAY INC R4 MOV A,R4 MOV R0,A ; MOV R7,#10H MOV R6,#02H CJNE R4, #16,LOOP2 LJMP STARTL3: MOV R4,#00H MOV R5,#08H MOV A,R4 MOV R0,A MOV R1,#00HLOOP3:
9、 MOV A,R1 MOV DPTR,#8001H MOVX DPTR,A MOV DPTR,#TAB3 MOV A,R0 MOVC A,A+DPTR MOV DPTR,#8000H MOVX DPTR,A LCALL DELAY LCALL DELAY INC R0 INC R1 DJNZ R7,LOOP3 MOV R7,#10H MOV A,R4 MOV R0,A DJNZ R6,LOOP3 MOV R6,#2 MOV A,#16 ADD A,R4 MOV R4,A MOV R0,A DJNZ R5,LOOP3 LJMP STARTL4: MOV R4,#00H MOV R5,#08H M
10、OV A,R4 MOV R0,A MOV R1,#00HLOOP4: MOV A,R1 MOV DPTR,#8001H MOVX DPTR,A MOV DPTR,#TAB4 MOV A,R0 MOVC A,A+DPTR MOV DPTR,#8000H MOVX DPTR,A LCALL DELAY LCALL DELAY INC R0 INC R1 DJNZ R7,LOOP4 MOV R7,#10H MOV A,R4 MOV R0,A DJNZ R6,LOOP4 MOV R6,#2 MOV A,#16 ADD A,R4 MOV R4,A MOV R0,A DJNZ R5,LOOP4L6: MO
11、V R4,#00H MOV R5,#08H MOV A,R4 MOV R0,A MOV R1,#00HLOOP6: MOV A,R1 MOV DPTR,#8001H MOVX DPTR,A MOV DPTR,#TAB6 MOV A,R0 MOVC A,A+DPTR MOV DPTR,#8000H MOVX DPTR,A LCALL DELAY LCALL DELAY INC R0 INC R1 DJNZ R7,LOOP6 MOV R7,#10H MOV A,R4 MOV R0,A DJNZ R6,LOOP6 MOV R6,#2 MOV A,#16 ADD A,R4 MOV R4,A MOV R
12、0,A DJNZ R5,LOOP6 LJMP STARTL5: MOV R4,#00H MOV A,R4 MOV R0,ALOOP5: MOV R1,#00HKK5: MOV A,R1 MOV DPTR,#8001H MOVX DPTR,A MOV DPTR,#TAB5 MOV A,R0 MOVC A,A+DPTR MOV DPTR,#8000H MOVX DPTR,A INC R0 INC R1 LCALL DELAY DJNZ R7,KK5 MOV A,R4 MOV R0,A MOV R7,#10H DJNZ R6,LOOP5 LCALL DELAY INC R4 MOV A,R4 MOV
13、 R0,A ; MOV R7,#10H MOV R6,#02H CJNE R4, #16,LOOP5 LJMP STARTDELAY: MOV R2,#0FHPP: MOV R3,#0FH DJNZ R3,$ DJNZ R2,PP RETTAB1:DB 88H,4AH,2AH,0FFH,0CAH,0AEH,88H,0C0H,18H,0FFH,00H,3CH,05H,0FFH,05H,3CHTAB2:DB 44H,24H,14H,0FH,14H,24H,44H,00H,8BH,0F6H,0AAH,0AEH,0ABH,0FEH,0AAH,0AAH DB 44H,24H,14H,0FH,14H,24
14、H,44H,00H,8BH,0F6H,0AAH,0AEH,0ABH,0FEH,0AAH,0AAHTAB3: DB 0FFH,81H,81H,81H,81H,81H,81H,0FFH,00H,00H,00H,00H,00H,00H,00H,00H DB 00H,7EH,42H,42H,42H,42H,7EH,00H, 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,3CH,24H,24H,3CH,00H,00H, 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,18H,18H,00H,00H,00H, 00H,0
15、0H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H, 00H,00H,00H,18H,18H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H, 00H,00H,3CH,24H,24H,3CH,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H, 00H,7EH,42H,42H,42H,42H,7EH,00H DB 00H,00H,00H,00H,00H,00H,00H,00H, 0FFH,81H,81H,81H,81H,81H,81H,0FFH
16、TAB4: DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H, 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H, 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H, 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,18H,18H,
17、00H,00H,00H, 00H,00H,00H,18H,18H,00H,00H,00H DB 00H,00H,3CH,24H,24H,3CH,00H,00H, 00H,00H,3CH,24H,24H,3CH,00H,00H DB 00H,7EH,42H,42H,42H,42H,7EH,00H, 00H,7EH,42H,42H,42H,42H,7EH,00H DB 0FFH,81H,81H,81H,81H,81H,81H,0FFH, 0FFH,81H,81H,81H,81H,81H,81H,0FFHTAB6: DB 0FFH,81H,81H,81H,81H,81H,81H,0FFH, 0FFH
18、,81H,81H,81H,81H,81H,81H,0FFH DB 00H,7EH,42H,42H,42H,42H,7EH,00H, 00H,7EH,42H,42H,42H,42H,7EH,00H DB 00H,00H,3CH,24H,24H,3CH,00H,00H, 00H,00H,3CH,24H,24H,3CH,00H,00H DB 00H,00H,00H,18H,18H,00H,00H,00H, 00H,00H,00H,18H,18H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H, 00H,00H,00H,00H,00H,00H,00H,00
19、H DB 00H,00H,00H,00H,00H,00H,00H,00H, 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H, 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H, 00H,00H,00H,00H,00H,00H,00H,00HTAB5: DB 01H,02H,04H,08H,10H,20H,40H,80H,80H,40H,20H,10H,08H,04H,02H,01H DB 01H,02H,04H,08H,10H
20、,20H,40H,80H,80H,40H,20H,10H,08H,04H,02H,01HEND六.实际制作与调试(1)实际制作使用keil先对软件程序进行编译测试并进行proteus仿真,调试成功后开始硬件部分。再编一段小程序用来测试硬件,发现LED有显示,即可向下进行,在这个环节上,所编程序应将字型表先全设为0FFH,因为只有让LED全点亮才能测试出所有线路,LED,8051和8255能否正常工作、点阵的极性及是否有坏点。在制作过程中,由于LED管脚并不是与每一行每一列一一对应的,所以上网站找到了关于该点阵的资料。之后在用仪器测试74LS154,74LS245是否正常,然后按照之前设计好的线
21、路连接硬件线路,电路连接需要仔细。(2)调试过程先通过韦弗的软件将程序下载到实验箱中,初始为黑屏,因为没有按键被按下。之后通过按键进行控制,看显示是否正确,若点阵全都不亮,则首先要仔细检查程序,很可能是程序出了问题,因为之前已经对硬件进行测试了,若确定程序没有问题,则很可能是连线出现了断线,或者是连线连错了,点阵实验的线较多,所以需要在实验之前对每根线路进行检测,检测的方法是使用万用表检测是否出现短路现象。由于线较多,所以很容易接连错了,也有可能是前面对LED的能否正常工作没有测试到位导致部分电路问题被遗漏。若测试时就只有几个点不亮,这时就能确定点阵极性及那些点是坏点。(3) 实物图七实验总结
22、 1.实验过程中的问题与分析:(1) 这次实验管教连线比较多,而且比较密集,一定要细心。(2)点阵的每个管脚行与列要先通过测试后才能确定,或者是在网上寻找资料确定管脚,由于管脚并不是按顺序的,所以不能随便连接(3)最好事先写一个测试程序,加一个延时判断一下。(4)程序关键之处在于串口发送列数据的延时控制,否则很难观测到扫描图像。同时,行数据的延时控制也很重要,这决定整个画面是否闪烁。(5)为了控制汉字滚动速度,有时需对一帧图像扫描数次后才将列指针移位。(6)为了是提高显示图形的亮度,加了一块74LS245芯片对行进行驱动。(7)连接好硬件后,通过对各元件的测试,加深了对实验原理以及各元件的工作
23、原理的理解。(8)通过对实验程序的修改增加显示图形的变化,进一步加深了对试验程序的理解。2实验心得:通过本次单片机课设,更加加深了对单片机硬件系统和8X8点阵、74LS245和74LS154等元件工作原理的理解;同时通过设计过程中的查询资料,初步掌握了keil uvision3和proteu以及8X8字模提取等软件的应用,进一步熟练掌握了伟福单片机仿真软件的应用;同时实际接触了各个功能芯片以及点阵实物,对各元器件有了比较形象的认识,了解了点阵的每个管脚的查询方法;同时学会了实现点阵静态显示、循环移动显示、周期显示以及各种变化图形的程序设计思路;此外,通过实验过程中出现的问题和解决问题的过程,提高了分析问题,了解问题本质,进而解决问题的能力。总而言之,通过本次单片机课设,收获很大。八 参考资料1陈堂敏.刘焕平主编.单片机原理与应用.北京:北京理工大学出版社,2007.2沈美明.温动蝉编著.IBM-PC汇编语言程序设计.北京:清华大学出版社,1994.3张仰森等编.微型计算机常用软硬件技术速查手册.北京:北京希望电脑公司,1994.4江修汗等编.计算机控制原理与应用.西安:西安电子科技大学出版社,1999.
链接地址:https://www.31ppt.com/p-2883299.html