180 likes | 299 Views
学习情境 1.5. 点阵显示电子广告牌. 单色条屏. 双色室内屏. 全彩室外屏. 做什么?. 基本任务:利用单片机制作一个 8×8 点阵的电子广告牌,显示出字符 “ 大 ” 。. 跟我做 1- ------ 认识 8×8 点阵屏的原理. 低电平 0. 高电平 1. P0.0. P0.7. X0. X7. P1.0. Y0. P1.7. Y7. 跟我做 2- ------ 连接单片机和点阵屏. 用 P0 口控制点阵的列. 用 P1 口控制点阵的行. 点阵接口电路. 晶振电路. 复位电路. 跟我做 3- ------ 准备器件、焊板.
E N D
学习情境1.5 点阵显示电子广告牌
单色条屏 双色室内屏 全彩室外屏
做什么? 基本任务:利用单片机制作一个8×8点阵的电子广告牌,显示出字符“大”。
低电平0 高电平1
P0.0 P0.7 X0 X7 P1.0 Y0 P1.7 Y7 跟我做2-------连接单片机和点阵屏 用P0口控制点阵的列 用P1口控制点阵的行
点阵接口电路 晶振电路 复位电路
L1: 反相器 L1 在实验板中,为了方便我们在P0口加入了反相器,你能说出现在行和列分别是什么电平点亮吗? 跟我做5-------编写控制程序 P0口 MOV P1,#00000001B MOV P0,#00011000B ACALL DELAY_1ms MOV P1,#00000010B MOV P0,#00111100B P1口 ACALL DELAY_1ms SJMP $
ROW EQU 30H DOT EQU 31H Y MAIN 设置初始值 MOV DPTR,#TAB MOV R7,#08H MOV ROW,#01H MOV DOT,#00H 选中LED的一行 (ROW) 主程序流程图 MOV A,ROW MOV P1,A “大”字的字型码是多少呢? 送该行的字型码(DOT) MOV A,DOT MOVC A,@A+DPTR MOV P0,A 延时 LCALL DELAY_1ms ROW左移 指向下一行 MOV A,ROW RL A MOV ROW,A DOT加1 指向下一行的字型码 INC DOT 8行显示完? DJNZ R7,NEXT_COL LJMP MAIN
00001000B,即08H 00001000B,即08H 01111111B,即7FH 00001000B,即08H 00010100B,即14H 00100010B,即22H 01000001B,即41H 00000000B,即00H 每一行的数据都没有规律,需要采用查表程序。
ROW EQU 30H DOT EQU 31H ORG 0000H AJMP ONE_DISP ORG 0030H ONE_DISP: MOV DPTR,#TAB ;定义字型码表首地址 START: MOV ROW,#01H ;送显示行初值 MOV DOT,#00H ;送查表地址修正初值 MOV R7,#08H ;设置扫描显示行数 NEXT_COL: MOV A,ROW ;显示行选择值送A MOV P1, A ;选中某一显示行 RL A ;修改显示行选择值 MOV ROW,A ;更新行选单元内容,为选下一行作准备 MOV A,DOT ;查表地址修正值送A MOVC A,@A+DPTR ;查表得行显示字型码 MOV P0,A ;显示字型码送P0口 LCALL DELAY_1ms INC DOT ;查表地址修正值加1,为取下一个字型码作准备 DJNZ R7, NEXT_COL ;判断8行显示是否全部结束 SJMP START ;重复显示过程 TAB: DB 08H,08H,7FH,08H,14H,22H,41H,00H ;“大”字字型码表 DELAY_1ms:…… RET END
进阶任务1: 多字符轮流显示:0,1,2,3……
MAIN 设置显示字符个数 设表格首地址 设置初始值 ONE-CHAR 选中LED的一行 (ROW) 送该行点阵码(DOT) 延时 ROW左移 指向下一行 DOT加1 指向下一行的点阵码 8行显示完? Y 延时(长) 指向下一个字符 的表格首地址 N 所有字符显示完? N Y 显示多个字符的流程图 MOV DPTR,#TAB 为什么? MOV A,DPL ADD A,#8 MOV DPL,A MOV A,DPH ADDC A,#0 MOV DPH,A
进阶任务2: 将字符“大”从右往左滚动显示。