四川工程职业技术学院 单片机应用技术课程电子教案 第10讲 汇编语言程序设计案例1—动态显示 Copyright Http:llmcu. scetc. net
四川工程职业技术学院 单片机应用技术课程电子教案 Copyright © Http://mcu.scetc.net 第 10 讲 汇编语言程序设计案例1—动态显示
本讲主要内容: 10-1.LED数码管显示原理 10-2.案例分析1(2位学号显示 10-3.案例分析2(简易按键抢答 10-4.CJNE、JC、JNC的应用 10-5.课后思考和实验准备 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 2 Copyright © Http:// mcu.scetc.net 本讲主要内容: 10-1. LED数码管显示原理 10-2. 案例分析1(2位学号显示) 10-3. 案例分析2(简易按键抢答) 10-4. CJNE、JC、JNC的应用 10-5. 课后思考和实验准备
10-1.LED数码管显示原理 ◇LED数码管动态显示硬件结构 P1.6 P1.5 +5V P1.4 P1.3 P1.2 P1.0 7407×2 dpl glflel d c b 1009×8 8051 属圖區區區 共阴极 ED 7406 P3.0 1#231 3.2 P3.3 P3.4 P3.5 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 3 Copyright © Http:// mcu.scetc.net 10-1. LED数码管显示原理 LED数码管动态显示硬件结构 8155 PB7 共阴极 LED dp g f e d c b a +5V 7407×2 100Ω×8 7406 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PA5 PA4 PA3 PA2 PA1 PA0 去80C51 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 8051 1# 2# 3# 4# 5# 6#
10-1.LED数码管显示原理 ◇LED数码管动态显示硬件结构电路原理分析 ◇单片机1个并口P1口作为6个数码管公共的段码输入端; ◇单片机的P30~P3.5作为数码管的6个位选信号控制端; ◇7407和7406分别作为段码和位选的驱动信号; ◇LED数码动态扫描原理 ◇首先点亮LED1,其于5个LED熄灭保持3mS左右,消隐; ◇其次点亮LED2,其于5个LED熄灭保持3mS左右消隐 ◇最后点亮LED6,其于5个LED熄灭保持3mS左右消隐; ◇扫描完1次大约需要24mS(每一次消隐1mS)扫描周期为50H左右; 又由于人眼的“视觉暂留”现象则认为所有的数码管是恒定点亮的。 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 4 Copyright © Http:// mcu.scetc.net 10-1. LED数码管显示原理 LED数码管动态显示硬件结构电路原理分析 单片机1个并口P1口作为6个数码管公共的段码输入端; 单片机的P3.0~P3.5作为数码管的6个位选信号控制端; 7407和7406分别作为段码和位选的驱动信号; LED数码动态扫描原理 首先点亮LED1,其于5个LED熄灭,保持3mS左右,消隐; 其次点亮LED2,其于5个LED熄灭,保持3mS左右,消隐; …… 最后点亮LED6,其于5个LED熄灭,保持3mS左右,消隐; 扫描完1次大约需要24mS(每一次消隐1mS),扫描周期为50HZ左右; 又由于人眼的“视觉暂留”现象,则认为所有的数码管是恒定点亮的
10-1.LED数码管显示原理 流程图:从P1口送出1#段码P30-1、其它输出0 延时3ms(1#显示) 从P1口送出00H 延时1ms消隐 从P1口送出6#段码;P35←1、其它输出0 延时3ms(6胡显示) 从P1口送出00H 延时1ms消隐 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 5 Copyright © Http:// mcu.scetc.net 10-1. LED数码管显示原理 从P1口送出1#段码;P3.0←1、其它输出0 延时3ms(1#)显示) 从P1口送出00H 延时1ms消隐 从P1口送出6#段码;P3.5←1、其它输出0 延时3ms(6#)显示) 从P1口送出00H 延时1ms消隐 流程图:
10-2案例分析1(2位学号显示) ◇硬件电路原理图 P32P33P34 P1.3 P12P1.1 P1.0 P3.5 C1 10 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 6 Copyright © Http:// mcu.scetc.net 10-2.案例分析1(2位学号显示) 硬件电路原理图 P3.2 P3.3 P3.4 P3.5 P1.3 P1.2 P1.1 P1.0
10-2案例分析1(2位学号显示) 开始 流程图: 30H←#39H,A←30H 取出(ACc)低4位,查出8段码,送P0口,P3.41,P35←0 延时3ms(LED1显示) 从P0口送出0FFH 延时1ms(消隐) 取出(AcC)高4位,查出8段码,送P0口,P34←0,P35←1 延时3ms(LED2显示) 从P0口送出0FFH 延时1ms(消隐) SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 7 Copyright © Http:// mcu.scetc.net 10-2.案例分析1(2位学号显示) 取出(ACC)低4位,查出8段码,送P0口,P3.4←1 ,P3.5←0 延时3ms(LED1显示) 从P0口送出0FFH 延时1ms(消隐) 取出(ACC)高4位,查出8段码,送P0口,P3.4←0 ,P3.5←1 延时3ms(LED2显示) 从P0口送出0FFH 延时1ms(消隐) 开 始 30H ←#39H,A ←30H 流程图:
10-2案例分析1(2位学号显示) ◇程序清单 ORG 0000H MOV PO, #OFFH ;段码清零 MOV 30H, #39H ;写入需要显示的数据“39” MOV DPTR, #TAB 共阳极数码管的段码表 LOOP: CLR P3. 4 选中LED1 SETB P3.5 …………vivA.30H 取出低位 ANL A#OFH 高4位清0,保留低4位 的段码, MOVC.A+DPTR:查表取出低4位的段码 送LED1 MOV PO.A ;段码关P0口 LCALL DELAY3ms 延时 MOV PO#OFFH LCALL DELAYIms 消隐1 LR P3.5 选中 两者区别 …SEIB..P3A………";取显示数据 MOV A30H 取出高位 ANL A, #OFOH 低4位清0,保留高4位 的段码, ……;.加器高低4位交换 SWAP A 送LED2 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 8 Copyright © Http:// mcu.scetc.net 10-2.案例分析1(2位学号显示) 程序清单 ORG 0000H MOV P0,#0FFH ;段码清零 MOV 30H,#39H ;写入需要显示的数据“39” MOV DPTR,#TAB ;共阳极数码管的段码表 LOOP: CLR P3.4 ;选中LED1 SETB P3.5 MOV A, 30H ANL A,#0FH ;高4位清0,保留低4位 MOVC A,@A+DPTR ;查表取出低4位的段码 MOV P0,A ;段码送P0口 LCALL DELAY3ms ;延时3ms MOV P0,#0FFH LCALL DELAY1ms ;消隐1ms CLR P3.5 ;选中LED2 SETB P3.4 MOV A,30H ;取显示数据 ANL A,#0F0H ;低4位清0,保留高4位 SWAP A ;累加器高低4位交换 取出低位 的段码, 送LED1 取出高位 的段码, 送LED2 两 者 区 别
10-2案例分析1(2位学号显示) ◇程序清单(续) MOVC A, A+DPTR ;查表取出段码 MOV PO.A 段码送P0口 LCALL DELAY3ms ;延时3ms MOV PO #OFFH LCALL DELAYIms ;消隐1ms 思考:如果是共阴数 JMP LOOP 码管呢? TAB DB0C0H,0F9H,0A4H,0B0H,99H,92H282H DB OF8H, 80H, 90H, 88H, 83H,OC6HOAIH DB 86H8EH 40F的共阳极段码表 END SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 9 Copyright © Http:// mcu.scetc.net 10-2.案例分析1(2位学号显示) 程序清单(续) MOVC A,@A+DPTR ;查表取出段码 MOV P0,A ;段码送P0口 LCALL DELAY3ms ;延时3ms MOV P0,#0FFH LCALL DELAY1ms ;消隐1ms LJMP LOOP TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H DB 0F8H,80H,90H,88H,83H,0C6H,0A1H DB 86H,8EH ;“0—F”的共阳极段码表 END 思考:如果是共阴数 码管呢?
10-3.案例分析2(简易按键抢答) ◇题目要求:使用案例1中的硬件电路实现以下功能。 ◇实现4路信号的输入 ◇利用数码管显示按键状态 ◇当K1按下时,数码管的最低位(P35)显示“1”; ◇当K2按下时,数码管的最低位显示“2” ◇当K3按下时,数码管的最低位显示“3”; ◇当K4按下时,数码管的最低位显示 ◇每次限时30S SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 10 Copyright © Http:// mcu.scetc.net 10-3. 案例分析2(简易按键抢答) 题目要求:使用案例1中的硬件电路实现以下功能。 实现4路信号的输入 利用数码管显示按键状态 当K1按下时,数码管的最低位(P3.5)显示“1”; 当K2按下时,数码管的最低位显示“2”; 当K3按下时,数码管的最低位显示“3”; 当K4按下时,数码管的最低位显示“4”。 每次限时30S