H
C0
8
1
06H
F9
9
2
5BH
A4
A
3
4FH
B0
B
4
66H
99H
C
5
6DH
92H
D
6
7DH
82H
E
7
07H
F8
F
共阴极段码共阳极段码
7FH
80H
6FH
90H
77H
88H
7CH
83H
39H
C6
5EH
A1H
79H
86H
71H
8EH
动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段ah同名端连在一起,而每一个显示器的公共极COM是各自独立地受IO线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由IO控制的,所以我们就可以自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在本课题中采用P0口输出段码,P3口为位控制输出口。
7
f第3章软件设计
31系统流程图
开始初始化
表首址送DPTR,比分清零,加减分值为1
调用显示函数
判断哪键按下
N
NS2
S1
去抖动
去抖动甲加分
加减分键释放
S3去抖动乙加分键释放
键释放
S6S5
S4
去抖动乙减分
切换加减分值,相应LED灯亮
甲乙比分清零
键释放
8
f32显示子程序流程图将8位二进制比分转换为十进制数位选通取段码送段码调用延时程序关段码
图32显示子程序流程图
9
f33延时子程序
延时子程序就是通过执行一些没用但又占用时间的指令的集合。这个子程序可以用于很多延时的地方因为它延时的时间可以通过R7进行改变,所以通用性好,可以将几个延时子程序合为一个,只用在调用前给R7赋值,即可根据用户的需要延时,流程图见图44。
给R6放初值执行三条空指令
R61,判断R6是否为0
R71,判断R7是否为0
返回
图33延时子程序流程图
10
f第4章系统的安装调试说明
41软件调试
上电时对系统中进行检测是单片机程序中的一个良好设计。在硬件设计时也应该细细考虑将各个使用到的芯片、接口设计成容易使用软件进行测试的模式。
很多有经验的单片机设计者都会在系统上电时(特别是第一次上电时)进行全面的检测,或者更进一步,将系统的运行状态中分为测试模式和正常运行模式,通过加入测试模式对系统进行详细的检测,使得系统的批量检测更为方便容易。
另外要注意的是,一个简单明了的故障显示界面也是颇要费得心思的。比如:系统的外部RAM(数据存储器)是单片机系统中常用的器件。外部RAM如果存在问题,程序通常都会成为无法控制。
因此,程序在启动时(至少在第一次上电启动时)一定要对外部RAM进行检测。
另外,在仿真前要做好充分的准备。单片机硬件仿r