1、项目四 点阵显示电路的制作,项目四 点阵显示电路的制作,项目四 点阵显示电路的制作,项目学习目标,任务一 认识点阵显示模块,任务要求,项目基本技能,用64个发光二极管在万能实验板上焊接一个88点阵,并引出8根列线和8根行线。,LED点阵显示模块是一种能显示图形、字符和汉字的显示器件一个LED点阵显示模块一般是由88个LED发光二极管组成的方阵,有的点阵中的每个发光二极管是由双色发光二极管组成的,即双色LED点阵模块,如图所示。由多个LED点阵显示模块可组成点阵数更高的点阵,如4个LED点阵显示模块可构成1616点阵。,88LED点阵显示模块,1硬件电路制作,(1)88点阵电路图,2LED点阵显
2、示模块的识别和检测,(1)欧姆表检测法 应将万用表转换到欧姆挡的10k挡,因为一般万用表欧姆挡的10k挡使用的是9V电池或者15V电池供电,大于发光二极管的导通电压,能够使发光二极管导通并发出微弱的光,而欧姆挡的其他挡使用的是1.5V电池供电,测量效果不明显。 随机地找两个引脚测试(其原理与测量二极管基本相同),看前面的LED有没有被点亮的,没有则换其他引脚再试,有则将引脚位置、点亮的LED的行、列位置和极性记录下来;如果全没有,则调换表笔,再测一遍。,(2)电路测量法 用该方法点亮的发光二极管的亮度高,且更加方便直观。一种88LED点阵模块的引脚图如图所示。,电路测量法,一种88LED点阵模
3、块的引脚图,任务二 点阵显示电路的制作,任务要求,项目基本技能,单片机I/O接一个88LED点阵显示模块,其中P0口接行线,P2口接列线,编程实现在88LED点阵上显示循环左、右移动的柱形、静止字符和滚动字符。,1硬件电路制作,(1)电路原理图,(2)制作要点及元器件清单,(3)电路的调试,通电之前先用万用表检查各种电源线与地线之间是否有短路现象。给硬件系统加电,不插入单片机,用一根导线,一端接地,另一端分别接触IC插座的3239脚,用另一根导线,一端接+5V,另一端分别接触IC插座的2128脚,观察点阵模块中每个二极管是否正常发光。,2程序编写,(1)循环移动的柱形,循环移动的柱形,参考程序
4、:START: NOPMOV R3,#2 ;设定循环次数 LOOP2: MOV R4,#8MOV R2,#0 ;查表指针初值 LOOP1: MOV P2,#0FFH ;将P2口全部送“1” MOV DPTR,#TAB ;指向表地址,MOV A,R2 MOVC A,A+DPTR ;查表MOV P0,A ;将查表的结果送入P0口INC R2 ;查表指针加1,准备查下一个数据LCALL DELAY ;调用延时程序,延时DJNZ R4,LOOP1 ;判断是否全保护显示完DJNZ R3,LOOP2 ;循环MOV R3,#2 LOOP4: MOV R4,#8MOV R2,#7 ;查表指针初值LOOP3:
5、MOV P2,#0FFH ;将P2口全部送“1”MOV DPTR,#TAB ;指向表地址MOV A,R2MOVC A,A+DPTR ;查表,MOV P0,A ;将查表的结果送入P0口DEC R2 ;查表指针减1,准备查下一个数据LCALL DELAY ;延时DJNZ R4,LOOP3DJNZ R3,LOOP4LJMP START DELAY: MOV R5,#10 ;延时程序 D2: MOV R6,#20 D1: MOV R7,#250DJNZ R7,$DJNZ R6,D1DJNZ R5,D2RET TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
6、END,(2)显示静止字符,编写一个显示静止字符“2”的程序。其效果如图所示。首先,我们可以先利用字模生成软件,生成字符“2”的行码表。这里通过循环移位指令和查行码表指令,使程序简短明了。,参考程序: START: MOV R2,#00H ;循环计数MOV R3,#01H ;00000001B用于循环左移扫描 XIAN: MOV A,R2 ;计数初值送给AMOV DPTR,#TAB ;指向表地址MOVC A,A+DPTR ;查表MOV P0,A ;送字,MOV A,R3MOV P2,A ;扫描列ACALL DELAY ;调用延时程序,延时RL A ;循环左移MOV R3,AINC R2CJNE
7、 R2,#08H,XIAN MOV R2,#00HAJMP START DELAY: MOV R7,#0FFH ;延时程序 LOOP: DJNZ R7,LOOPRET TAB: DB 0FFH,9CH,7AH,76H,6EH,6EH,9EH,0FFH ;字符“2”的行码表END,(3)显示滚动字符,编写一个向左滚动显示字符“23”的程序,其效果如图所示。,滚动的字符“23”,要使显示的内容滚动,我们可以使用一个变量,在查行码表时,不断改变每一列所对应的行码,产生滚动效果。比如,第一次显示时,第一列对应第一列的行码,第二次显示时,第一列对应第二列的行码。,参考程序:ORG 0000HLJMP S
8、TART START: MOV 30H,#00H ;初始时从表中第一个行码取起 MAIN: MOV R6,#7FH ;循环次数,决定滚动快慢 GOON: LCALL DISPDJNZ R6,GOONMOV A,30HINC A ;第一列对应的表中的行码数加1MOV 30H,ACJNE A,#08H,MAIN ;第二个字符没显示完,继续滚动MOV 30H,#00H ;重新从第一个字符开始LJMP MAIN,DISP: MOV R2,30H ;循环计数MOV R0,#08H ;每次取8个行码显示MOV R3,#01H ;00000001B用于循环左移扫描 XIAN: MOV A,R2 ;计数初值送
9、给A,MOV DPTR,#TAB ;指向表地址MOVC A,A+DPTR ;查表MOV P0,A ;送字MOV A,R3MOV P2,A ;扫描列ACALL DELAY ;调用延时程序,延时RL A ;循环左移MOV R3,AINC R2DJNZ R0,XIANMOV R0,#08HRET DELAY: MOV R7,#0FFH ;延时程序 LOOP: DJNZ R7,LOOPRET TAB: DB 0FFH,9CH,7AH,76H,6EH,6EH,9EH,0FFH ;字符“2“的行码表DB 0FFH,0BDH,7EH,6EH,6EH,56H,0B9H,0FFH ;字符“3“的行码表END,任
10、务三 程序调试与烧写,使用仿真器调试程序。程序调试完成后,使用编程器将编译的十六进制文件烧写入单片机,将单片机从编程器上取下,插入到电路板的IC插座上,给电路板接上5V电源,观察电路运行情况。,知识点一 点阵显示模块的结构及引脚,项目基本知识,点阵显示器的电路连接图有共阴极和共阳极两种。,共阴极88点阵内部结构图,共阳极88点阵内部结构图,知识点二 点阵显示电路的显示方式及编程,汉字符号的编码有如下方式。要想显示字符,我们首先需要确定所显示字符的行码,即对应某一列的8根行线的电平值。其确定方法如图4-15所示。比如,我们要显示字符“2”,步骤为:首先在纸上画出88共64个圆圈,然后将需要显示的
11、笔画处的圆圈涂黑,最后再逐列确定其所对应的十六进制数。比如,第二列的亮灭为(由高位到低位,低电平亮,高电平灭):灭亮亮灭灭灭亮亮,其对应的二进制为10011100B,对应的十六进制为9CH。,可以从网上下载一个字模生成软件,只要输入要显示的字符,点击“生成字模”就可以显示各行码并自动创建一个行码表。如图所示。,点阵的显示方式采用动态扫描的方式进行。点阵动态扫描显示流程参见课本,实现程序: MAIN: MOV P2,#80HMOV P0,#0FFHLCALL DELAYMOV P2,#40HMOV P0,#9CHLCALL DELAYMOV P2,#20HMOV P0,#7AHLCALL DEL
12、AYMOV P2,#10HMOV P0,#76HLCALL DELAY,MOV P2,#08HMOV P0,#6EHLCALL DELAYMOV P2,#04HMOV P0,#6EHLCALL DELAYMOV P2,#02HMOV P0,#9EHLCALL DELAYMOV P2,#01HMOV P0,#0FFHLCALL DELAYLJMP MAINEND,知识点三 相关指令,1DB 格式:标号: DB 字节数据表 用来定义字节数据伪指令,常用来定义数据表格。 如:CHAR:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;表示从标号CHAR
13、开始的地方将数据从左到右依次存放在指定的地址单元。,2MOVC A,A+DPTR 把“A+DPTR”所指外部程序存储单元的值送入A,常用于查找存放在程序存储器中的表格的数据。例如: DISP: MOV DPTR,#TAB ;将表的首地址送入DPTRMOV A,#00H ;A中的数为几表示指向表中第几个数据MOVC A,A+DPTR ;把表中的第一个数据0FFH送入AMOV P1,A ;送到P1口MOV A,#01H ;准备查表中的第二个数据MOVC A,A+DPTR ;把表中的第一个数据9CH送入AMOV P1,A ;送到P1口RET TAB: DB 0FFH,9CH,7AH,76H,6EH,6EH,9EH,0FFH ;字符“2“的行码表,