1 / 15

汇编语言程序设计案例 1— 动态显示

汇编语言程序设计案例 1— 动态显示. 本讲主要内容:. 10-1. LED 数码管显示原理 10-2. 案例分析 1 ( 2 位学号显示 ) 10-3. 案例分析 2( 简易按键抢答 ) 10-4. CJNE 、 JC 、 JNC 的应用 10-5. 课后思考和实验准备. 10-1. LED 数码管显示原理. LED 数码管动态显示硬件结构. P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0. 8051. 4#. 2#. 1#. 3#. 5#. 6#. P3.0 P3.1 P3.2

Download Presentation

汇编语言程序设计案例 1— 动态显示

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 汇编语言程序设计案例1—动态显示

  2. 本讲主要内容: 10-1. LED数码管显示原理 10-2. 案例分析1(2位学号显示) 10-3. 案例分析2(简易按键抢答) 10-4. CJNE、JC、JNC的应用 10-5. 课后思考和实验准备 Huaian College of information Technology

  3. 10-1. LED数码管显示原理 • LED数码管动态显示硬件结构 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 8051 4# 2# 1# 3# 5# 6# P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 Huaian College of information Technology

  4. 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左右;又由于人眼的“视觉暂留”现象,则认为所有的数码管是恒定点亮的。 Huaian College of information Technology

  5. 10-1. LED数码管显示原理 从P1口送出1#段码;P3.0←1、其它输出0 从P1口送出6#段码;P3.5←1、其它输出0 延时3ms(1#)显示) 延时3ms(6#)显示) 从P1口送出00H 从P1口送出00H 延时1ms消隐 延时1ms消隐 流程图: Huaian College of information Technology

  6. 10-2.案例分析1(2位学号显示) • 硬件电路原理图 P3.2 P3.3 P3.4 P1.3 P1.2 P1.1 P1.0 P3.5 Huaian College of information Technology

  7. 10-2.案例分析1(2位学号显示) 开 始 30H ←#39H,A ←30H 取出(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(消隐) 流程图: Huaian College of information Technology

  8. 10-2.案例分析1(2位学号显示) 取出低位的段码,送LED1 两者区别 取出高位的段码,送LED2 • 程序清单 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位交换 Huaian College of information Technology

  9. 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 Huaian College of information Technology

  10. 10-3. 案例分析2(简易按键抢答) • 题目要求:使用案例1中的硬件电路实现以下功能。 • 实现4路信号的输入 • 利用数码管显示按键状态 • 当K1按下时,数码管的最低位(P3.5)显示“1”; • 当K2按下时,数码管的最低位显示“2”; • 当K3按下时,数码管的最低位显示“3”; • 当K4按下时,数码管的最低位显示“4”。 • 每次限时30S Huaian College of information Technology

  11. 10-3.案例分析2(简易按键抢答) P1口读入数据 (A)=? =0EH =0DH =0BH =07H 其他 显示1 显示2 显示3 显示4 返回 判决分支 流程图: Huaian College of information Technology

  12. 10-3.案例分析2(简易按键抢答) CJNE(条件转移指令) 常用于多分支程序中 显示1 条件 显示2 0 N 1 N-1 …… 显示3 程序1 程序2 程序N-1 程序N 显示4 • 程序清单 ORG 0000H MAIN: MOV A, P1 ANL A, #0FH CJNE A, #0EH,LOOP0 MOV R1,#01H LCALL DISP LJMP MAIN LOOP0: CJNE A,#0DH,LOOP1 MOV R1,#02H LCALL DISP LJMP MAIN LOOP1: CJNE A,#0BH,LOOP2 MOV R1,#03H LCALL DISP LJMP MAIN LOOP2: CJNE A,#07H,LOOP3 MOV R1,# 04H LCALL DISP LOOP3: LJMP MAIN Huaian College of information Technology

  13. 10-3.案例分析2(简易按键抢答) • 程序清单(续) DISP: MOV DPTR,#TAB ;查表显示 MOV A,R1 MOVC A,@A+DPTR ANL P3,#0DFH ;选中P3.5对应的数码管 MOV P0,A ;送段码 DEL30S:MOV R2,#30 ;延时30S DELS: LCALL DEL1S DJNZ R2,DELS MOV P0,#0FFH ;清除显示 RET ;重新开始下一次抢答 DEL1S: …… ;延时1S子程序 RET TAB: …… END Huaian College of information Technology

  14. 10-4. CJNE、JC、JNC的应用 • CJNE、JC、JNC应用实例(判断数据的大小关系) 例:判断A的大小,当(A)>80H时,数码管显示“H”;当(A)=80H时,数码管显示“--”;当(A)<80H时,数码管显示“L”。 CJNE A,#80H,BUD ;如(A)≠80H,跳转到BUD CLR P3.5 ;显示“--” MOV P0,#0BFH SJMP $ BUD: JNC DAY ;如(A)>80H,跳转到DAY CLR P3.5 ; (A)<80H,显示“L” MOV P0,#0CEH SJMP $ DAY: CLR P3.5 ; (A)>80H,显示“H” MOV P0,#89H SJMP $ Huaian College of information Technology

  15. 10-5. 课后思考和实验准备 • 课后思考 • 数码管动态显示的基本思路 • 查表程序在数码管显示中的应用 • 多分支程序的编写方法 • 实验准备 • 利用实验的电路图,找出实验5中各个数码管位选信号和段码信号对应的单片机I/O口; • 完成实验指导书中实验5的各项预习任务。 Huaian College of information Technology

More Related