实验三 七段数码显示器

1.实验内容

使用MCS-51汇编语言编写程序,完成以下功能:

1. 使用三个数码管显示十进制数值

2. 每隔0.1秒,该数值自动增一,到999后归零继续

3. 当开关S1按下时,暂停计数;S1松开时,恢复计数

2.显示

本开发平台有3个数码管,使用串行方式连接在一起,具体电路参见实验原理。要想输出一个字形码,就需要从高位到低位依次向移位寄存器输出8个比特。移位寄存器的数据线和时钟线分别接到单片机的P4.5和P4.4管脚,可以使用MCS-51里面的位操作指令进行输出。连续输出3个字形,24个bit之后,欲显示的字形将稳定地显示在数码管上,程序可以转而执行其他工作。 七段字形的编码方式需要通过实验获得。这些编码作为程序中的常数,使用DB命令存放。在程序中,需要将数值转换为相应的字形编码,可以使用MOVC指令来完成。

3.时间

本实验要求的按时间显示数值,直接通过软件延时来实现,也就是若干次空循环来完成,不需要使用单片机内部的定时器等硬件资源。由于在后面的实验中也要使用软件的延时子程序,因此这里预先做准备。 本单片机使用12MHz主频的晶振,结合MCS51的体系结构和指令时序,可以计算每条指令的运行时间,也可以通过Keil环境的调试功能来检查程序片段的执行时间。当然,最后可以通过程序执行的总体运行结果来调整时间。希望同学能够通过这个过程,得出一段能够精确到1ms的子程序,重复调用100次,从而达到定时0.1s的效果。从而完成实验要求2。

4.开关

在本实验板上设置了两个开关S1和S2,

1.实验内容 使用MCS-51汇编语言编写程序,完成以下功能: 1. 使用三个数码管显示十进制数值 2. 每隔0.1秒,该数值自动增一,到999后归零继续 3. 当开关S1按下时,暂停计数;S1松开时,恢复计数 2.显示 本开发平台有3个数码管,使用串行方式连接在一起,具体电路参见实验原理。要想输出一个字形码,就需要从高位到低位依次向移位寄存器输出8个比特。移位寄存器的数据线和时钟线分别接到单片机的P4.5和P4.4管脚,可以使用MCS-51里面的位操作指令进行输出。连续输出3个字形,24个bit之后,欲显示的字形将稳定地显示在数码管上,程序可以转而执行其他工作。 七段字形的编码方式需要通过实验获得。这些编码作为程序中的常数,使用DB命令存放。在程序中,需要将数值转换为相应的字形编码,可以使用MOVC指令来完成。 3.时间 本实验要求的按时间显示数值,直接通过软件延时来实现,也就是若干次空循环来完成,不需要使用单片机内部的定时器等硬件资源。由于在后面的实验中也要使用软件的延时子程序,因此这里预先做准备。 本单片机使用12MHz主频的晶振,结合MCS51的体系结构和指令时序,可以计算每条指令的运行时间,也可以通过Keil环境的调试功能来检查程序片段的执行时间。当然,最后可以通过程序执行的总体运行结果来调整时间。希望同学能够通过这个过程,得出一段能够精确到1ms的子程序,重复调用100次,从而达到定时0.1s的效果。从而完成实验要求2。 4.开关 在本实验板上设置了两个开关S1和S2,
经验分享 程序员 微信小程序 职场和发展