实验4 指示灯、数码管的中断控制实验报告

时间:2024.4.27

洛阳理工学院实验报告


第二篇:实验四 数码管显示控制


实验四 数码管显示控制

一、实验目的

1、熟悉Keil uVision2软件的使用;

2、掌握LED数码管显示接口技术;

3、理解单片机定时器、中断技术。

二、实验设备及仪器

Keil μVision2软件;单片机开发板;PC机一台

三、实验原理及内容

1、开发板上使用的LED数码管是四位八段共阴数码管(将公共端COM接地GND),其内部结构原理图,如图4.1所示。

图4.1共阴四位八段LED数码管的原理图

图4.1表明共阴四位八段数码管的“位选端”低电平有效,“段选端”高电平有效,即当数码管的位为低电平,且数码管的段为高电平时,相应的段才会被点亮。

实验开发板中LED数码管模块的电路原理图,如图4.2所示。

图4.2 LED数码管模块电路原理图

图中,当P1.0“段控制”有效时,P0.0~P0.7分别对应到数码管的a~h段。当P1.1“位控制” 有效时,P0.0~P0.7分别对应到DIG1~DIG8。

训练内容一:轮流点亮数码管来检测数码管是否正常。参考程序:

ORG  00H

AJMP  MAIN

MAIN:

SETB  P1.2;LED流水灯模块锁存器的控制位   

MOV   P0,#0FFH;关闭LED灯

CLR   P1.2   

SETB  P1.3     ;点阵模块的行控制锁存器

MOV   P0,#0   ;关闭点阵行

CLR   P1.3     

MOV  A,#11111110B;数码管“位选信号”初值,低电平有效

LOOP:SETB P1.1;数码管位控制锁存器有效

MOV  P0,A

CLR  P1.1

RL  A      ;形成新的“位选信号”,为选择下一位数码管做准备

SETB P1.0;数码管段控制锁存器有效

MOV  P0,#0FFH  ;数码管的所有段点亮,显示“8”

CLR  P1.0

CALL  DELAY

SJMP  LOOP

DELAY:MOV  R5,#0;延时子程序

D1: MOV   R6,#0

D2:NOP

   DJNZ R6,D2

   DJNZ R5,D1

   RET

END

训练内容二:静态显示,0~9计数。参考程序:

    ORG  00H

    AJMP  MAIN

MAIN:SETB  P1.2   

     MOV   P0,#0FFH;关闭LED灯

     CLR   P1.2   

     SETB  P1.3   

     MOV   P0,#0   ;关闭点阵行

     CLR   P1.3    

     MOV  A,#11111110B

     SETB P1.1

     MOV  P0,A     ;数码管"位选"

     CLR  P1.1

    

     MOV  DPTR,#TABLE;初始化表首地址

LOOP:MOV  R0,#0;显示数字从0开始

     MOV  R1,#10;显示数字个数

NEXT:MOV  A,R0

     MOVC A,@A+DPTR;查表,获取显示字型码

     SETB P1.0;数码管段控制锁存器有效

     MOV  P0,A  ;显示

     CLR  P1.0

     INC  R0  ;下一个数字

     ACALL DELAY

     DJNZ R1,NEXT

     SJMP LOOP

DELAY:MOV  R5,#0

D1:   MOV  R6,#0

D2:   NOP

      NOP

      DJNZ R6,D2

      DJNZ R5,D1

      RET

  

TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共阴字码表0~9

END

训练内容三:动态显示,00~99计数。

动态显示:也称扫描显示,是一种按位轮流点亮各位数码管的显示方式,即在某个时刻,只让其中某一个数码管“位选端”有效,并送出相应的字型显示码,此时,其他的数码管因“位选端”无效而处于熄灭状态。下一时刻,按顺序选通另一个数码管,并送出相应的字型显示码,依此规律循环下去,即可使各位数码管分别间断地显示出相应的字符。由于人眼的“视觉驻留效应”,只要能保证每个数码管显示间断的时间间隔小于眼睛的驻留时间,就可以给人一种连续显示的视觉效果。

在显示位数较多时,动态显示方式可节省I/O接口资源,硬件电路与静态显示方式简单,但其显示亮度低于静态显示方式;由于CPU要不断地依次扫描显示程序,将占用CPU更多的时间,若显示位数较少,采用静态显示方式更加简便。

参考程序:

ORG  00H

AJMP  MAIN

MAIN:SETB  P1.2;LED流水灯模块锁存器的控制位   

     MOV   P0,#0FFH;关闭LED灯

     CLR   P1.2   

     SETB  P1.3     ;点阵模块的行控制锁存器

     MOV   P0,#0   ;关闭点阵行

     CLR   P1.3    

     MOV DPTR,#TABLE;初始化表首地址

START:MOV R0,#0    ;显示数据的初值,从数字0开始显示

NEXT:MOV A,R0

     MOV B,#10

     DIV AB   ;分解将要显示的数据,分为十位、个位

     MOV R2,A ;十位送R2

     MOV R3,B ;个位送R3

     MOV R1,#100   ;每个数字显示的次数,100次,即更长延时

LOOP_VIEW:MOV A,R2

          MOVC A,@A+DPTR;获取十位的显示码

          SETB P1.0

          MOV P0,A;显示十位

          CLR P1.0

          SETB P1.1

          MOV P0,#11111110B;位选,选中显示十位的数码管

          CLR P1.1

          ACALL DELAY

          MOV A,R3

          MOVC A,@A+DPTR;获取个位的显示码

          SETB P1.0

          MOV P0,A;显示个位

          CLR P1.0

          SETB P1.1

          MOV P0,#11111101B;位选,选中显示个位的数码管

          CLR P1.1

          ACALL DELAY

          DJNZ R1,LOOP_VIEW;每个数字循环显示R1次,即延时

              INC R0;下一个数字

          CJNE R0, #100, NEXT ;若小于100,继续计数和显示;若大于100,则从0开始重新计数

          SJMP START

  

DELAY:MOV  R6,#25;延时子程序1ms

D1: MOV   R7,#20

D2: DJNZ R7,D2

    DJNZ R6,D1

    RET

  

TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共阴字码表0~9

END

训练内容四:利用定时器中断实现60秒计时,具有启动按键和清0按键。

说明:利用定时器T0产生50ms的延时,即每50ms中断一次,计满20次(20×50ms=1s),秒计数单元加1。

4位独立按键电路原理图,如图4.3所示。4位独立按键使用了P2.4、P2.5、P2.6、P2.7四位I/O口,当键按下时,为低电平,因此,可以通过检测低电平来检测按键是否按下。本实验中,选用s6为启动按键,s11为暂停按键,A18为清0按键,采用查询法检测按键状态。在按下暂停按键或清0按键后,需重新按下启动按键,才能继续计时。

图4.3 四位独立按键

流程图如图4.4、4,5、4.6所示。

图4.4 主程序流程图

图4.5 数码管扫描显示程序

图4.6 T0中断服务子程序

参考程序:

      ORG 00H

     JMP MAIN

     ORG 0BH

     JMP TIM0

MAIN:SETB P1.2;LED流水灯模块锁存器的控制位   

     MOV  P0,#0FFH;关闭LED灯

     CLR  P1.2   

     SETB P1.3    ;点阵模块的行控制锁存器

     MOV  P0,#0   ;关闭点阵行

     CLR  P1.3    

     MOV TMOD,#01H  ;定时器T0工作在方式2

     MOV TH0,#HIGH(15536)

     MOV TL0,#LOW(15536)  ;初值50ms

     MOV IE,#82H  ;开中断

     MOV DPTR,#TABLE;表首地址

     MOV R0,#20    ;存放定时器中断的循环次数

     MOV R1,#0     ;显示初值,从0开始显示   

START:   JB  P2.4,IF_STOP   ;启动按键s6,启动定时器T0

         SETB TR0     ;启动定时器T0

IF_STOP: JB P2.5,IF_CLR;暂停按钮S11

         CLR TR0

IF_CLR:JB P2.6,LED_SCAN;清0按钮s18

       CLR TR0

       MOV R0,#20

       MOV R1,#0

LED_SCAN:ACALL SCAN    ;调用显示子程序

        SJMP START

SCAN:     ;;;扫描显示子程序

         CJNE R1,#60,LED_VIEW  ;到60则清零

         MOV  R1,#0

LED_VIEW:MOV A,R1   ;分解数字

         MOV B,#10

         DIV AB

         MOV 20H,B  ; 个位

         MOV 21H,A  ; 十位

           MOV R2,#11111110B;位选信号的初值

           MOV R3,#2        ;数码管显示2位数

         MOV A,21H ;个位,准备显示

DISP:    ;;;分别显示十位、个位

MOVC A,@A+DPTR

         SETB P1.0

   MOV P0,A   ;显示字型码

   CLR P1.0

     SETB P1.1

   MOV P0,R2 ;输出位选信号

     CLR P1.1

     MOV A,R2;形成下一个位选信号

     RL  A

     MOV R2,A

   CALL DELAY;扫描延时

   MOV A,20H;十位,准备显示

   DJNZ R3,DISP

   RET

TIM0:    ;;;定时器T0中断子程序

PUSH ACC  ;现场保护

     MOV TH0,#HIGH(15536);重新装载初值TH0、TL0

     MOV TL0,#LOW(15536)

     DJNZ R0,EXIT  ;判断是否到1S

     MOV R0,#20    ;若到1s,重置中断次数

     INC R1        ;秒单元加1

EXIT:POP ACC       ;恢复现场

     RETI

DELAY:MOV R6,#4    ;扫描延时2ms,太小会重影,太大会闪烁

D3:    MOV R7,#248

       DJNZ R7,$

       DJNZ R6,D3

       RET

TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;共阴字码表

END

更多相关推荐:
实验八 数码管LED实验报告

苏州大学实验报告院系年级专业姓名学号课程名称成绩指导教师同组实验者实验日期实验名称数码管LED实验一实验目的理解8段数码管的基本原理理解8段数码管的显示和编程方法理解4连排共阴极8段数码管LG5641AH与MC...

数码管动态显示实验报告

实验四数码管动态显示实验一一实验要求1在Proteus软件中画好51单片机最小核心电路包括复位电路和晶振电路2在电路中增加四个7段数码管共阳共阴自选将P1口作数据输出口与7段数码管数据引脚相连P20P23引脚输...

数码管实验报告

单片机实验报告一实验名称数码管动态扫描显示01234567实验五二实验目的1掌握数码管显示数字的原理2通过不同的编程实现灵活运用数码管三实验原理数码管由7个发光二极管组成8字形构成的加上小数点就是8个分别把它命...

数码管显示实验报告

HUNANUNIVERSITY课程实验报告实验名称学生姓名学生学号专业班级指导老师数码管显示实验20xx1217实验三数码管显示实验一实验目的1学习按键扫描的原理及电路接法2掌握利用8255完成按键扫描及显示二...

数码管实验报告

项目名称数码管实验报告姓名陈姣班级11电气2学号11731204指导老师赵海兰实验目的巩固Keil软件的使用方法学习端口输入输出的高级应用掌握7段数码管的连接方式和动态显示法掌握查表程序和延时等子程序的设计学习...

单片机c语言版数码管动态显示实验报告

数码管动态显示实验一实验要求1在Proteus软件中画好51单片机最小核心电路包括复位电路和晶振电路2在电路中增加四个7段数码管共阳共阴自选将P1口作数据输出口与7段数码管数据引脚相连P20P23引脚输出选控制...

数码管及按键实验报告模板(1)

数码管及流水灯实验报告成员:20##年11月一、实验要求:1.实验1:在开发板上调试利用按键控制数码管从1累加到F变化(S2加、S3减)(不同分组按键利用IO口不同);2.实验2:利用开发板进行秒表设计(显示分…

数码管扫描显示控制器设计与实现——北京邮电数字电路实验报告

北京邮电大学实验报告实验名称数码管扫描显示控制器设计与实现学院信息与通信工程学院班级姓名数字电路与逻辑设计实验报告学号日期索引一实验目的4二实验所用仪器及元器件4三实验任务要求4四实验设计思路及过程51实验原理...

按键控制数码管和流水灯设计报告实验报告

摘要单片机自20世纪70年代以来以其极高的性价比以及方便小巧受到人们极大的重视和关注本设计选用msp430f249芯片作为控制芯片来实现矩阵键盘对LED数码管显示的控制通过单片机的内部控制实现对硬件电路的设计从...

机器人控制-数码管动态显示-仿真实验报告

机器人控制课程总结报告机器人控制仿真实验二数码管动态显示姓名李铃年级20xx级系别信息工程学院计科师学号1111000048同组人姓名杨晨年级20xx级系别信息工程学院计科师同组人学号111100005420x...

数码管扫描显示控制器设计与实现——数字电路实验报告

北京邮电大学实验报告实验名称数码管扫描显示控制器设计与实现学院信息与通信工程学院班级姓名数字电路与逻辑设计实验报告学号日期索引一实验目的4二实验所用仪器及元器件4三实验任务要求4四实验设计思路及过程51实验原理...

实验报告 实验七 八段数码管显示实验

实验七八段数码管显示实验1实验目的1了解数码管动态显示的原理2了解用总线方式控制数码管显示2实验要求利用实验仪提供的显示电路动态显示一行数据提示把显示缓冲区例如可为60H65H作为缓冲区的内容显示出来当修改显示...

数码管实验报告(41篇)