![江西理工大学计算机基础课件第6章点阵显示屏的课件_第1页](http://file4.renrendoc.com/view/5000bef6fe7dc118a137c3559d146074/5000bef6fe7dc118a137c3559d1460741.gif)
![江西理工大学计算机基础课件第6章点阵显示屏的课件_第2页](http://file4.renrendoc.com/view/5000bef6fe7dc118a137c3559d146074/5000bef6fe7dc118a137c3559d1460742.gif)
![江西理工大学计算机基础课件第6章点阵显示屏的课件_第3页](http://file4.renrendoc.com/view/5000bef6fe7dc118a137c3559d146074/5000bef6fe7dc118a137c3559d1460743.gif)
![江西理工大学计算机基础课件第6章点阵显示屏的课件_第4页](http://file4.renrendoc.com/view/5000bef6fe7dc118a137c3559d146074/5000bef6fe7dc118a137c3559d1460744.gif)
![江西理工大学计算机基础课件第6章点阵显示屏的课件_第5页](http://file4.renrendoc.com/view/5000bef6fe7dc118a137c3559d146074/5000bef6fe7dc118a137c3559d1460745.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、6.1 单片机的串行扩展技术计算机基础第6章 点阵显示屏本章导读此前,虽然大家动手制作了几个硬件电路板,并且对程序设计方法也有了粗浅的了解,但这些制作都缺乏系统性,因此很有必要将前面所学的内容融合起来成为一个系统。尽管大一学生所学的知识还有限,但在老师的指导下,由学生完成一个小系统的设计还是可行的。无论做任何事情,要想达到熟能生巧的程度,其唯一的途径就是重复、重复、再重复,实践、实践、再实践,任何一个成功者都是从艰苦的实践中过来的。各位同学,如果你真的渴 望成功,同样也不能例外。因此,本章的内容 以学生制作的调试程序为主,教师讲解为辅。单片机的串行扩展技术 系统要求:在单片机最小系统的基础上,
2、使用串行移位寄存器驱动8个LED数码管与8个按键设计和制作 一个简易的人机界面,并编写相应的软件。按键系统单片机最小系统LED数码管显示简易系统框图 下面将以74HC164和74HC595作为单片机的扩展接口,从最简单的软硬件制作开始,采取Step-to-Step的方式,带领大家由浅入深,全面展现一个系统如何从构思到实现的原始设计过程。目 录 接口电路设计与测试 TinyHMI人机界面 改进的可能性 74HC164的驱动能力 任何一种器件的驱动能力,通过相应的数据手册都可以查到。因此,设计之前一定要认真阅读器件的数据手册。NXP半导体公司的74HC164的相关参数:由此可见,74HC164具有
3、极强的负载驱动能力。注意:IIK/IOK不是门电路输出实际的输入输出电流值,而是拉电流或灌电流的最大允许值。IIK=20mA(输入电流)IOK=20mA(输出电流)ICC=50mA(VCC电流)IGND=50mA(VGND电流)74HC164串入并出LED驱动电路图 A/B:数据串行输入端Q7:0 :数据并行输出端CP:时钟脉冲信号MR:复位清0端与单片机I/O口P1.0、P1.1连接MR与Vcc相连,即MR=1,寄存器正常工作74HC164串入并出LED驱动电路PCB图 成品图 为了提高器件的利用率,一定要使用IC插座,不要将74HC164直接焊接在PCB板上。74HC164知识点回顾 74
4、HC164:8位串入并出移位寄存器,在CP的上升沿进行移位。CPMRDQ0Q1Q2Q3Q4Q5Q6Q7CP输入脉冲数01234567810000000将1个二进制数(1000 0000)B串行传送到74HC164的并行输出端Q7 Q0,其数据格式 D7D6D5D4D3D2D1D0 = 1000 0000。此数据在时钟脉冲的作用下,从D7到D0逐位送到串行输入端AB。待8个时钟脉冲过后,二进制数(10000000)B在Q7Q0并行输出。软件实现8位串入并出送数子程序框架 实现功能:将8位数据D7D0逐位传送到输入端AB,经过8次移位后,在Q7Q0并行输出。上述功能可分为三部分来实现: 逐位传送:
5、每次传送一位数据到输入端AB; 8位数据:将的动作重复8次; 移位:每进行一次的动作,给CP端一个时钟脉冲上升沿实现移位。HC164_Serial_Change_Parallel:; 8位串入并出送数子程序MOVR6, #0 x08; 设循环计数器R6为8Send_1_bit_Data:DJNZR6, Send_1_bit_Data; R6-10转Send_1_bit_Data,否则结束RET8位串入并出送数子程序框架:传送一位数据到输入端AB(Rn-1)=0?给Rn赋初值8YNCP简易流程图: 1232子程序入口标号子程序返回指令软件实现8位串入并出送数子程序 实现功能:将8位数据D7D0逐
6、位传送到输入端AB,经过8次移位后,在Q7Q0并行输出。PIN_DATA = P1.0; 移位寄存器数据输入端PIN_CP = P1.1; 移位寄存器时钟信号输入端HC164_Serial_Change_Parallel:; 8位串入并出送数子程序MOVR6, #0 x08; 设循环计数器R6为8Send_1_bit_Data:; 传送1位数据RLCA; 将A中的最高位左移到进位位C MOVPIN_DATA, C; 将进位位C的内容送到P1.0口AB端CP_Rising_Pulse_Effective:; 产生CP上升沿SETBPIN_CP; CP端置1产生一个上升沿脉冲跳变信号NOP; 执行
7、空操作延时指令CLRPIN_CP; 将CP端清0DJNZR6, Send_1_bit_Data; R6-10转Send_1_bit_Data,否则结束RET传送1位数据产生CP上升沿A中存储8位数据D7D0 带进位左移,依次将D7D0中的数据移入进位C子 程 序: HC164_Serial_Change_Parallel实现功能:8位数据串入并出入口参数:A(存储8位数据D7D0)使用I/O口:PIN_DATA(P1.0)、PIN_CP(P1.1)出口参数:无测试程序1查看发光二极管 的状态作用:验证子程序HC164_Serial_Change_Paralle方法:假设待传送的数据为(1000
8、 0000)B则会发现LED发光二极管D7点亮,其余 的7个LED熄灭。.AREAHOME(ABS, CODE).ORG0 x0000PIN_DATA = P1.0; 移位寄存器数据输入端PIN_CP = P1.1; 移位寄存器时钟信号输入端Start:CLRPIN_CP; CP端上升沿有效,初始化CP为低电平Loop:MOVA, #0 x80; 待传送的数据(1000 0000)BACALLHC164_Serial_Change_Parallel; 8位串入并出送数子程序AJMPLoop子程序调用实验现象:测试程序2LED流水灯方法:用查表法编写一个LED流水灯程序作为测试用例,并由此得出段
9、码表。Start:CLRPIN_CP; CP端上升沿有效,初始化CP为低电平MOVDPTR, #Table; 将Table表的地址存入数据指针Loop:CLRA; 清0累加器AMOVCA, A+DPTR; 查表,取待传送的数据CJNEA, #0 x55, Loop1; 是否“结束码”?否,则跳转到Loop1AJMPStartLoop1:ACALLHC164_Serial_Change_Parallel ; 调用8位串入并出送数子程序ACALLDelayINCDPTR; 数据指针加1,取下一个码 AJMPLoopTable:.DB 0 x01, 0 x02, 0 x04, 0 x08, 0 x1
10、0, 0 x20, 0 x40, 0 x80.DB 0 x55; 显示数据区结束特征码列表输入参数 程序流程图 YN初始化查表,取数据到A执行8位串入并出子程序A=0 x55?跳转执行延时子程序数据指针加1跳转测试程序2LED流水灯理想实现现象方法:用查表法编写一个LED流水灯程序作为测试用例,并由此得出段码表。理想的实验现象:abcdefgha b c d e f g h 共阴极LED数码管-笔段数值对应关系表笔段hgfedcba数值0 x800 x400 x200 x100 x080 x040 x020 x018个独立的LED发光二极管在结构上可以组成一个LED数码管。0 x010 x02
11、0 x040 x080 x100 x200 x400 x80七段共阴极数码管段码表 数字hgfedcba数值0001111110 x6F1000001100 x062010110110 x5B3010011110 x4F4011001100 x665011011010 x6D6011111010 x7D7000001110 x078011111110 x7F9011011110 x6F共阴极数码管:“1”:相应笔段发光;“0”:相应笔段熄灭。目 录 接口电路设计与测试 TinyHMI人机界面 改进的可能性 8个数码管显示器用2个共阴极或共阳极数码管并联成8个数码管作为显示器。以2个共阴极数码管
12、LN3461AS为例。8个段选端并联 8个位选端单独引出 至少需要16个I/O口才能实现对8个数码管的控制;8个I/O控制数码管的段选位,另8个I/O控制数码管的位选位。使用2个74HC164即可实现。2片74HC164级联电路图 Q7与第2个74HC164的串行数据输入端AB相连在CP脉冲上升沿,Q7中的数据将被传送到第2个74HC164的Q02片74HC164使用相同的数据传送方式,故CP端可以并联共用一个I/O口要将16个输出端全部操作一次,则需要16次数据传递操作。数据先传送到U1,后传送到U2,前8位数据控制U2的8个LED,后8位数据控制U1的8个LED。16个输出端与P1.0、P
13、1.1相连测试程序2片74HC164级联Start:CLRPIN_CP; CP端上升沿有效,初始化CP为低电平MOVDPTR, #Table; 将Table表的地址存入数据指针Loop:CLRA; 清0累加器AMOVCA, A+DPTR; 查表,取待传送的数据CJNEA, #0 x55, Loop1; 是否“结束码”?否,则跳转到Loop1AJMPStartLoop1:MOVR5, A; 保存待传送的数据ACALLHC164_Serial_Change_Parallel ; 调用8位串入并出送数子程序 MOVA, R5; 取待传送的数据ACALLHC164_Serial_Change_Para
14、llel ; 调用8位串入并出送数子程序ACALLDelayINCDPTR; 数据指针加1,取下一个码 AJMPLoop将A中的数据传送到U1将A中的数据传送到U1,U1中的数据传送到U2前后两次A中的数据相同,即U1与U2输出相同,LED显示效果一样参照LED流水灯测试程序,通过两次调用8位串入并出子程序实现“16个输出端全部操作一次”。8个共阴极LED数码管驱动电路2片74HC164的16个输出端分别与8个共阴极LED数码管的8个段选位和8个位选 位相连,即可构成数码管驱动电路。U1控制数码管的位选位U2控制数码管的段选位数据输入 脉冲输入 只要给数码管的位选位输送低电平,段选位输送高电平
15、,即可点亮相应的数码管。故,数据的传递顺序:先传送段选位、后送位选位,即前8位数据为段选位,后8位数据为位选位。TinyHMI测试用例Start:CLRPIN_CP; CP端上升沿有效,初始化CP为低电平MOVDPTR, #Table; 将Table表的地址存入数据指针Loop:CLRA; 清0累加器AMOVCA, A+DPTR; 查表,取待传送的数据CJNEA, #0 x55, Loop1; 是否“结束码”?否,则跳转到Loop1AJMPStartLoop1:ACALLHC164_Serial_Change_Parallel ; 先传数段选位 MOVA, #0 x00ACALLHC164_S
16、erial_Change_Parallel ; 后传送位选位,全部置“0”ACALLDelay; 增加延时时间,动态显示效果更明显ACALLDelayINCDPTR; 数据指针加1,取下一个码 AJMPLoop方法:通过查表先传送段选位,再将位选位全部置“0”选通所有数码管。Table:.DB 0 x6F, 0 x06, 0 x5B, 0 x4F, 0 x66, 0 x6D, 0 x7D, 0 x07, 0 x7F, 0 x6F ; 09字符表.DB 0 x55列表传送前8位数据,即段选位输入数据 输入数据为0位选位全部置“0” 将选通所有数码管理想的实验效果:改进8位串入并出传送子程序子 程
17、 序: HC164_Serial_Change_Parallel实现功能:8位数据串入并出入口参数:A(存储8位串入并出的数据)使用I/O口:PIN_DATA(P1.0)、PIN_CP(P1.1)改进:实现2个8位数据的串入并出HC164_Display_LED:ACALLHC164_Serial_Change_Parallel ; 预先将段码存放到A中,送出段码 MOVA, R5; 取位码到AACALLHC164_Serial_Change_Parallel ; 送出位码到PIN_DATARET子 程 序: HC164_Display_LED实现功能:2个8位数据的串入并出入口参数:A(存储
18、高8位数据)、R5(存储低8位数据)使用I/O口:PIN_DATA(P1.0)、PIN_CP(P1.1)数码管显示TinyHMI动态显示扫描子程序0 x78 0 x79 地址 数据 0 x7A 0 x7B 0 x7C 0 x7D 0 xXX 0 x7E 0 x7F 0 xXX 0 xXX 0 xXX 0 xXX 0 xXX 0 xXX 0 xXX R0存放第1位第8位数码管显示的字符数据显示缓冲区指针从第1位开始以轮流显示的方式实现数码管的动态扫描TinyHMI动态显示扫描子程序Buffer_First_Address= 0 x78; 定义显示缓冲区首地址HC164_Scan_Display_
19、Value:MOVR0, #Buffer_First_Address; 指针R0,取显示缓冲区首地址MOVR5, #0 x7F; 选通显示器第一位Scan_Loop:MOVA, R0; 取显示缓冲区内容(段码)到AACALLHC164_Display_LED; 调用显示子程序,点亮一位数码管MOVA, R5; 将位码暂存器中的位码送入ARRA; 循环右移一位MOVR5, AINCR0; 显示缓冲区指针+1MOVR7, #0 x00; 延时DINZR7, .CJNER0, #Buffer_First_Address+8, Scan_Loop; R0是否+1了8次?否,跳转RET 伪指令定义:改变
20、值0 x78,即可改变R0指针的指向,使用简单方便第1个数码管位选位为0,其它为1,即将选通第1个数码管传入段选和位选,点亮一位数码管右移选通位选位,为点亮下一个数码管做准备 R0有2种功能: 缓冲区指针:用于确定显示数据值; 计数器:“加1”8次后程序结束。R0中值与(0 x78+0 x08=)0 x80比较:两者相等,则已循环8次依次点亮了8个数码管,将继续执行下一条指令退出子程序;两者不相等,则跳转到Scan_Loop。子 程 序: HC164_Scan_Display_Value实现功能:8个数码管动态扫描显示入口参数:A(段码暂存)、R5(位码暂存)占用资源:Buffer_First
21、_Address Buffer_First_Address+8只要将待显示的数字送到显示缓冲区,然后通过R0间接寻址显示缓冲区,并用移位的方式处理位操作数据,即可实现数码管的动态循环扫描显示。调用显示子程序显示“12345678”Start:CLRPIN_CPMOVR0, #Buffer_First_Address; 指针R0,取显示缓冲区首地址 MOV Buffer_First_Address, #0 x06MOV Buffer_First_Address+1, #0 x5BMOV Buffer_First_Address+2, #0 x4FMOV Buffer_First_Address+
22、3, #0 x66MOV Buffer_First_Address+4, #0 x6DMOV Buffer_First_Address+5, #0 x7DMOV Buffer_First_Address+6, #0 x07MOV Buffer_First_Address+7, #0 x7FEND_DLoop:ACALLHC164_Scan_Display_ValueAJMPEND_DLoop在显示缓冲区存放“12345678”的段码值调用动态显示扫描子程序,在8个数码管分别显示“12345678”理想效果:实际效果:现象:本该熄灭的笔段也“点亮”了,与“发光” 的笔段相比,只是稍微“暗”一些。
23、原因:输出信号一直在动态变化 ,容易出现 闪烁 现象,需要进一步的改进。CPMRDQ0Q1Q2Q3Q4Q5Q6Q70110000174HC164驱动数码管动态变化过程描述 74HC164将D触发器直接输出,移位过程的中间结果直接作用在目标上,使本该熄灭的笔段也被“点亮”了,出现闪烁现象。目 录 接口电路设计与测试 TinyHMI人机界面 改进的可能性 STR 八D锁存器CPMRDQ0Q1Q2Q3Q4Q5Q6Q7 移位寄存器74HC595驱动数码管74HC595可以理解为“74HC164+74HC374”,相当于在74HC164的8个并行输出端增加了一个74HC374功能一样的触发锁存器。锁存器
24、的作用:屏蔽了并行输出在移位过程中的变换,让所有输出在STR上升沿锁存信号作用下统一翻转,确保数据在串入并出转换过程中稳定可靠。74HC595串入并出LED驱动电路图 使能控制端8个并行输出口5个输入控制口D:数据输入端,接单片机的P1.0CP:时钟信号端,接单片机的P1.1STR:锁存信号,接单片机的P1.2 MR直接接Vcc,保证74HC595处于永久选通状态; OE直接接地,保证锁存器中的值在Q0Q7引脚输出。由于其驱动电路与74HC164几乎差不多,因此无需制作PCB电路板,以节省资源。8位串入并出带锁存送数子程序 因此,只需在HC164_Serial_Change_Parallel的
25、子程序的基础上,增加产生“STR” 上升沿的代码即可。74HC595工作原理: 74HC595内置的移位寄存器与74HC164的工作原理完全一样,在CP上升沿的作用下,将D 端的二进制数据依次送入移位寄存器中。 数据移位完成后,在STR上升沿的作用下,将移位寄存器中的数据一次性地送入数据存储 锁存器输出,从而保证在移位的过程中,输出端的数据保持不变。HC595_Serial_Change_Parallel:ACALLHC164_Serial_Change_Parallel ; 调用8位串入并出送数子程序STR_Rising_Pulse_Effective:; 产生STR上升沿SETBPIN_S
26、TR; 将STR端置1,产生上升沿脉冲跳变信号NOP; 执行空操作延时指令CLRPIN_STR; 将STR端清0RET产生STR上升沿 子 程 序: HC595_Serial_Change_Parallel实现功能:8位串入并出带锁存送数子程序 入口参数:A(存储8位数据)使用I/O口:P1.0、P1.1、P1.2LED流水灯测试程序范例Start:MOVR7, #0 x08CLRPIN_CP; CP端上升沿有效,初始化CP为低电平CLRPIN_STR; STR上升沿有效,初始化为低电平MOVDPTR, #Table; 将Table表的地址存入数据指针Loop: CLRA; 累加器A清0MOV
27、CA, A+DPTR; 查表,取待传送的数据ACALLHC595_Serial_Change_Paralle ; 调用8位串入并出带锁存送数子程序ACALLDelay; 延时时间为143msINCDPTR; 数据指针加1,取下一个码DJNZR7, Loop; R7-1=0?否,则跳转到LoopAJMPStartTable:.DB 0 x01, 0 x02, 0 x04, 0 x08, 0 x10, 0 x20, 0 x40, 0 x80 R7:计数器,循环8次初始化 输入数据 传入数据,输出点亮LED 数据列表 查表,取数据 TinyHMI数码管与键盘驱动电路 TinyHMI数码管驱动电路:7
28、4HC595以“串转并”的方式扩展输出端口。2个74HC595级联U21控制8个数码管的段选位只要给数码管的位选位输送低电平,给数码管的段选位输送高电平,即可点亮数码管。U20控制8个数码管的位选位TinyHMI数码管与键盘驱动电路 TinyHMI键盘驱动电路:74HC595作为输入口使用。键盘电路: 由8个按键和8个二极管 构成; 统一连接到P1.3(KEY) 作为键盘扫描输入口。工作原理:(假设没有连接二极管) 当扫描到第n位数码管时,则U20对应的Qn输出为低电平,而其它Q端为高电平; 此时若按下KYn,则可从P1.3读到低电平,而其它Q端为高电平; 此时若按下其它任何一个KY或者不按下
29、任何KY,则读到的都是高电平; 若依次从左到右扫描,则可得到1个字节的完整键值编码。111101110011TinyHMI数码管与键盘驱动电路 TinyHMI键盘驱动电路:74HC595作为输入口使用。二极管:隔离保护的作用如果没有二极管 若2个或2个以上的KY键同时按下形成回路1111011101短路虽然74HC595的输出端为CMOS推挽结构,拥有较强的驱动能力,但是仍然存在一定的等效内阻。尽管短暂的短路现象一般并不会导致器件烧毁,但却会干扰数码管的正常显示。TinyHMI数码管与键盘驱动电路 TinyHMI键盘驱动电路:74HC595作为输入口使用。选择导通压降为0.20.4V的肖特基型
30、二极管 为什么选择导通压降为0.20.4V的肖特基二极管,不能选择导通压降 为0.60.8V的普通二极管? 为了防止在扫描期间读取键值时出现意外错误。VKEYVQVD分析: VKEY=VQ+VDVKEY :P1.3处的电压值VQ : 74HC595输出存在等效 内阻形成的压降,驱动电 流越大则VQ越大VD :二极管的正向导通压降 由于数码管扫描时的工作电流较大,因此VQ会从不带负载时的0V上升到0.51V; 若采用普通二极管,则从VKEY处得到的总电压有可能超过1.5V(I/O高电平门槛电压),本来应该是低电平,却读到高电平。0.51V0.60.8V1.11.8V1.5V( I/O高电平门槛电
31、压) 实际电路采用导通压降较低的肖特基二极管,且需适当限制74HC595的输出驱动电流(段码限流电阻不能过小),才能保证TinyHMI正常工作。程序实现单个数字字符获取子程序 Get_Segment_Code:MOVDPTR, #Table; DPTR取表格首地址MOVCA, A+DPTR; 查表取得字符真值RETTable: DB 0 x6F, 0 x06, 0 x5B, 0 x4F, 0 x66, 0 x6D, 0 x7D, 0 x07, 0 x7F, 0 x6F; 09字符表子 程 序: Get_Segment_Code实现功能:使用查表法获取单个数字字符入口参数:无出口参数:A(存储字
32、符表中获取的数值)使用查表法找到与数字字符对应的数码管段码值:程序实现8位串入并出送数子程序 HC595_Display_LED:ACALLHC164_Serial_Change_Parallel ; 送出段码到PIN_DATAMOVCA, R5 ; 取位码到AACALLHC164_Serial_Change_Parallel ; 送出位码到PIN_DATAACALLSTR_Rising_Pulse_Effective ; 在STR端产生一个上升沿锁存信号RET子 程 序: HC595_Display_LED实现功能:2个8位串入并出,STR上升沿送数子程序入口参数:A(暂存放段码)、R5(暂
33、存放位码)出口参数:无8位串入并出送数子程序: 将段码暂存放到A,并将位码暂存放到R5中; 分别将段码与位码这2个8位数据送入16串入并出并出驱动电路; 启动STR信号锁存输出数据。程序实现TinyHMI动态扫描显示子程序数码管显示0 x78 0 x79 地址 数据 0 x7A 0 x7B 0 x7C 0 x7D 0 xXX 0 x7E 0 x7F 0 xXX 0 xXX 0 xXX 0 xXX 0 xXX 0 xXX 0 xXX R0存放第1位第8位数码管“待显示的数字”显示缓冲区指针查表:找到“待显示数字”所对应的字符数值从第1位开始以轮流显示的方式实现数码管的动态扫描程序实现TinyHM
34、I动态扫描显示子程序Buffer_First_Address= 0 x78; 定义显示缓冲区首地址HC595_Scan_Display_Number:MOVR0, #Buffer_First_Address; 指针R0,取显示缓冲区首地址MOVR5, #0 x7F; 选通显示器第一位Scan_Loop:MOVA, R0; 取显示缓冲区内容(段码)到AACALLGet_Segment_Code; 查表获取数字字符所对应的数值(段码)ACALLHC595_Display_LED; 调用显示子程序,点亮一位数码管MOVA, R5; 将位码暂存器中的位码送入ARRA; 循环右移一位MOVR5, AIN
35、CR0; 显示缓冲区指针+1MOVR7, #0 x00; 延时DINZR7, .CJNER0, #Buffer_First_Address+8, Scan_Loop; R0是否+1了8次?否,跳转RET A中暂存从显示缓冲区取出的“待显示的数字”查表,将“待显示的数字”转换为对应的数码管显示的段码值子 程 序: HC595_Scan_Display_Number实现功能:8个数码管动态扫描显示入口参数:A(段码暂存)、R5(位码暂存)占用资源:Buffer_First_Address Buffer_First_Address+8、 P1.0、P1.1、P1.2将“待显示的数字”送到显示缓冲区,
36、接着通过查表子程序找到数字对应的字符数值,将待显示字符的数值送到相应的控制口。循环8次,依次点亮8个LED数码管调用显示子程序显示“12345678”Start:CLRPIN_CPMOVR0, #Buffer_First_Address; 指针R0,取显示缓冲区首地址 MOV Buffer_First_Address, #0 x01MOV Buffer_First_Address+1, #0 x02MOV Buffer_First_Address+2, #0 x03MOV Buffer_First_Address+3, #0 x04MOV Buffer_First_Address+4, #0
37、x05MOV Buffer_First_Address+5, #0 x06MOV Buffer_First_Address+6, #0 x07MOV Buffer_First_Address+7, #0 x08END_DLoop:ACALLHC595_Scan_Display_NumberAJMPEND_DLoop在显示缓冲区存放数字字符“12345678”调用动态显示扫描子程序,在8个数码管分别显示“12345678”数码管显示效果:键盘动态扫描子程序为了进一步提高学生的设计能力,有关键盘扫描子程序以及相应的测试程序,将留给读者独立完成,并撰写相应的开发文档。建议:教师可作为课程设计列入平时
38、成绩考核。新编电类专业计算机基础6.2 LED点阵显示屏应用生活中,LED点阵显示屏随处可见。 银行公交车户外广告牌目 录 1616 LED点阵显示屏 LED点阵显示屏原理 大型LED点阵显示屏 汉字点阵字模的提取 标准化接口 LED点阵显示屏结构88点阵实物图 1个发光二极管构成一个“点”,64个发光二极管构成“88点阵”,若每个发光二极管由一根数据线控制较浪费。 LED点阵显示屏结构 1个发光二极管构成一个“点”,64个发光二极管构成“88点阵”,若每个发光二极管由一根数据线控制较浪费。 44矩阵键盘 回忆学习按键时, IO口资源不够 将键盘替换成发 光二极管 44点阵 行列交叉处 row
39、1 = 0, column1 = 1, 发光二极管亮 01LED点阵显示屏结构88点阵实物图注: 不同型号点阵内部结构可能不同; 同一型号点阵在印制板上放置方向不同, 控制方法也不同。10 row = 1, column = 0, 发光二极管亮本书籍及配套的Altair-80C31 Small实验箱电路均采用前一结 构,即row = 0,coloumn =1,对应的“点”亮 电路设计 为节省IO口,选用串转并芯片74HC595作为“列”控制信号,74HC138作为“行”控制信号,88点阵驱动电路原理图如下图所示。 74HC59574HC138LNM-788BS输出8路互斥低有效信号,更好控制行
40、 电路制作 制作好的样品效果图如下图所示,基于该电路板编写驱动程序。 驱动软件显示第1行显示第2行显示第3行显示第4行显示第5行显示第6行显示第7行显示第8行例如显示“9”,显示过程如下图所示。 “行”信号的产生 前面的实验已详细介绍过74HC595,不再重复介绍其产生的“列”信号,现重点介绍由74HC138产生的“行”信号。 ABCY000001111真值表Y7YnY1Y0低有效 “行”信号P1.0P1.1P1.28051ABCVCCGNDVCCGNDDSTRCP57913681024“行”信号传送子程序 先将“行”信息存于R7,再用程序处理成“ABC”控制信号发送给74HC138,如R7
41、= 0000 0101(第5行),处理程序如下(其中HC138_A = P1.0,HC138_B = P1.1,HC138C = P1.2)。 HC138_Send_Address:MOVA,R7RRCAMOVHC138_A,CMOVHC138_B,CRRCARRCAMOVHC138_C,CRET; A = 0000 0101;C = 1,A = 0000 0010;P1.0 = 1,HC138_A = 1;C = 0,A = 0000 0001;P1.1 = 0,HC138_B = 0 ;C= 1,A = 0000 0000;P1.2 = 1,HC138_C = 1 先向74HC138发送完
42、“行”信息,再调用74HC595送数据(“列”信息)子程序,点阵屏即可按要求显示了。 延时程序 通常,显示器的刷新频率需要60Hz以上才不会出现闪屏现象,即1s至少需要整屏刷新60次。 对于88点阵,共8行,为达到60Hz的刷新频率,每秒钟至少需显示860 = 480行,则显示一行完需延时1 480 2.08ms,为了保证显示亮度与屏不出现抖动现象,显示完一行约延时0.5ms,延时函数如下。 延时程序MOVR6,#0 x03DJNZR5,.MOVR5,#0 x53DJNZR6,DelayDelay:延时时间:(R5 2 + 1 + 2 )R6 + 1) 1.085us = 0.55ms 88点
43、阵显示“9”测试用例.ORG0 x0000.AREAHOME(ABS,CODE)HC138_A = P1.0HC138_B = P1.1HC138_C = P1.2PIN_DATA = P1.3PIN_CP = P1.4PIN_STR = P1.5Start: CLRPIN_CP CLRPIN_STRREDISP: MOVR4,#0 x00 MOVDPTR,#TableLoop: CJNER4,#0 x08,Row_Scan AJMPREDISP定义单片机与88点阵的接口 ; R4保存“行”信息,从0行开始; DPTR保存“列”信息起始地址Table表存放“列”信息,即“9”的字模 ; 8行显
44、示是否结束? 88点阵显示“9”测试用例Row_Scan: MOV R7,#0 x00ACALLHC595_Serial_Change_ParallelMOVA,R4INCR4ACALLHC138_SendAddressCLRAMOVCA,A+DPTRINCDPTRMOVR7,AACALLHC595_Serial_Change_ParallelMOVR6,#0 x03Delay: MOV R5,#0 x53DJNZR5,.DJNZR6,DelayAJMPLoop发送空行 发送“行”信息 发送“列”信息 延时一段时间 Table:.DB 0 x00,0 x1C,0 x22,0 x22,0 x1E
45、,0 x02,0 x04,0 x38“9”的点阵数据MOV A,R788点阵显示“9”测试用例为什么两次调用“列”信息子程序 程序流程:初始化 8行显示完毕?发送列信息 发送行信息 NY已确定 “本行”,而上一行的“列”信息未更新,在确定 “本行”的“列”信息前会暂时显示“上行”数据,出现“拖影” 加入调用“列”信息子程序,发送空行,在确定“本行”前,清空“上行”数据 消除“拖影” 方案1,可行,但效率低 消除“拖影”方案2OE:Output EnableOE = 0,输出有效OE = 1,输出高阻态锁存器输出数据锁存器不输出数 据,点阵全部熄灭 通过IO口控制OE输出1来替换程序发送“空行”
46、 74HC59574HC138LNM-788BS改进后的电路: 目 录 1616 LED点阵显示屏LED点阵显示屏原理 大型LED点阵显示屏汉字点阵字模的提取 标准化接口 标准化接口RS232接口USB接口网络接口计算机常见接口ABCDG1G2LTBSCKGNDGNDGNDENR1R2GNDGND1357911131524681012141608接口 ABCSCKLTBRGGNDENGNDGNDGNDGNDGNDGNDGND1357911131524681012141612接口 GNDGNDGNDGNDGNDGNDGNDGNDLTBSCKRGENABGND1357911131524681012
47、141604接口 点阵屏常见接口 88点阵是构成户外大型LED屏的最小项,并且到目前为止,已经完全实现了标准化与产业化,像计算机一样,LED显示屏也定义了一系列标准化接口进行数据传输。 不同接口控制方法不同,LED屏显示效果不同,应用于不同场合 08接口ABCDG1G2LTBSCKGNDGNDGNDENR1R2GNDGND1357911131524681012141608接口引脚图引脚名称引脚功能引脚编号GND接地1、3、5、13、15A行选择信号2B行选择信号4C行选择信号6EN使能信号7D行选择信号8R1显示数据9G1显示数据10R2显示数据11G2显示数据12LTB锁存信号14SCK时钟
48、信号1608接口引脚功能定义 等同74HC595的“STR” 等同74HC595的“CP” 08接口引脚名称引脚功能引脚编号GND接地1、3、5、13、15A行选择信号2B行选择信号4C行选择信号6EN使能信号7D行选择信号8R1显示数据9G1显示数据10R2显示数据11G2显示数据12LTB锁存信号14SCK时钟信号1608接口引脚功能定义 EN控制点阵屏亮灭及亮度A、B、C、D行信号,可控制扫描16行,常用于1/16扫描R1、R2、G1、G2数据信号,08接口可控制双色屏,R = Red,G = Green,独立控制R、G,对应的点显示不同色SCK、LTB数据移位与锁存信号12接口引脚名称
49、引脚功能引脚编号EN使能信号1A行选择信号2GND接地3、5、7、9、11、13、15、16B行选择信号4C行选择信号6SCK时钟信号8LTB锁存信号10R显示数据12G显示数据1412接口引脚功能定义 EN控制点阵屏亮灭及亮度A、B、C行信号,可控制扫描8行,常用于1/4和1/8扫描R、G数据信号,08接口常控制双色屏,R = Red,G = Green,独立控制R、G,对应的点显示不同色SCK、LTB数据移位与锁存信号04接口引脚名称引脚功能引脚编号EN使能信号9A行选择信号11GND接地2、4、6、8、10、12、14、15、16B行选择信号4SCK时钟信号3LTB锁存信号1R显示数据5G显示数据704接口引脚功能定义 EN控制点阵屏亮灭及亮度A、B行信号,可控制扫描4行,常用于1/4扫描R、G数据信号,08接口常控制双色屏,R = Red,G = Green,独立控制R、G,对应的点显示不同色SCK、LTB数据移位与锁存信号标准化接口接口特点应用场合04接口常用于1/4扫描,扫描周期短,亮度高 室外08接口常用于1/16扫描,扫描周
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年超声多普勒胎儿监护仪合作协议书
- 周口市创新联合体组建协议
- 2025年便携温度校验仪合作协议书
- 八年级英语下册 Unit 7 单元综合测试卷(人教河南版 2025年春)
- 人教版 七年级英语下册 UNIT 3 单元综合测试卷(2025年春)
- 2025年二手车买卖服务合同(2篇)
- 2025年产品供货销售合同(2篇)
- 2025年企业产品区域代理销售合同(三篇)
- 2025年九年级物理教师教学工作总结模版(2篇)
- 山西省2024七年级道德与法治上册第三单元珍爱我们的生命第十课保持身心降情境基础小练新人教版
- 2024版《安全生产法》考试题库附答案(共130题)
- 节后复工安全教育培训内容【5篇】
- 寻梦缘古法驻颜培训课件
- 员工招聘与人才引进培训课件
- 装配式预制剪力墙外墙板制作教学课件:预制外墙板生产流程
- 英语旅游文本的句式特点及其翻译
- 咖啡种植园项目计划书
- 精装修室内施工组织部署
- GJB438C模板-软件开发计划(已按标准公文格式校准)
- 2023年政府采购评审专家考试真题及答案
- 云端数据加密与密钥管理解决方案
评论
0/150
提交评论