第 PAGE 3 页
单片机实训指导书
制作自动打铃器
实习目的
综合应用定时器、中断、数码显示等单片机知识。
掌握打铃器程序的设计和调试方法。
原理说明
线路如图1所示:
功能键?
功能键?
330*7 Ω
P1.0
P1.6
P2.0
P2.5
IC1
g f e d c b a
IC2
移位键
2003
2003
+5V
+5V
加1键
加1键
图1 原理图
图1 原理图
由图可知,IC3(单片机)的P2.0至P2.5口为扫描位(字位)输出口,对六位共阴极数码管进行位选;P1.0至P1.7口为段码(即字型码)输出口, 输出相应的段数据码;P3.2,P0.0,P0.1口为键盘输入口,接有三个按键,分别为功能键、加一键、移位键。
电子钟的设计思路是:利用定时器T1定时,每隔100ms产生一次中断,中断10次(1s)后秒单元加1;秒单元XX满60后向分单元进位,分单元YY加1;当分单元满60后时单元ZZ加1。
设六位LED显示器的显示缓冲区地址为II~NN六个连续的内部RAM单元,时间缓冲区为内部RAM中的XX(秒单元)、YY(分单元)、ZZ(时单元)。由于每个LED显示器只显示一位数字,所以为了实现时间得数码显示,必须调用拆字子程序将时间缓冲区的内容拆开(每个单元拆分为两段,每段的高4位均为0)。本实习中XX(秒单元)拆分为2个字节,分别存入显示缓冲单元II和JJ中;YY(分单元)拆分后存入KK、LL单元中;ZZ(时单元)拆分后存入MM、NN单元。然后调用显示子程序显示当前时间。
实习内容
利用单片机内部定时器,设计一个电子钟,在LED显示器上显示时、分、秒;并可通过键盘实现时间修改,同时修改位应闪烁。
实习设备
实验板1块
仿真器1台
实习步骤
熟悉图1工作原理。
输入并调试拆字子程序和数码显示子程序。
输入并调试键管理程序及功能程序和定时子程序。
图2
图2 主程序参考框图
调显示子程序
调键盘子程序
调打铃管理程序
各单元初始化
开始
设定时间定时器工作方式和时间常数,开中断
启动定时器
调拆字子程序
调闪烁子程序
运行主程序并用键盘进行时间修改。
预习要求
YN
Y
N
Y
Y
Y
N
N
N
N
N
Y
Y
Y
N
图3 键管理程序参考框图
修改标志位
01H=1?
P0.1=0?
修改加1键功能子程序
移位键功能子程序
P0.0=0?
返回
开始
置P3.P0口为输入口
P3.2=0?
调二次显示延时去抖
P3.2=0?
调显示子程序
P3.2=0?
修改键功能子程序
理解整个系统软、硬件的工作原理,并确定显示缓冲区的地址。
计算定时100ms的时间常数(设晶振为6MHZ,定时器工作于方式1)。
编写实习主程序和各子程序及中断服务程序。
实习程序参考框图
主程序参考框图,如图2所示:
各单元初始化主要包括:显示修改标志位(DSXGW位地址 01H)初始为0,闪烁标志位(SSBZW位地址02H)初始为0,修改转换单元(XGZHDY) 初始为01H,定时计数单元(DSJSDY) 初始为00H,闪烁计数单元初始为00H,秒单元(XX)初始为00H,分单元(YY)初始为00H,时单元(ZZ) 初始为12H。(打铃标志位03H)
键盘管理程序参考框图,如图3所示:
P3.2口为功能键
P0.1口为移位键
P0.0口为修改加1键
3、程序参考框图
功能键:通过该键使时钟分别进入定时和修改状态,按一次该键改变一种状态。设立标志位(DSXGW),该位为1表示为修改状态,该位为0表示为定时状态。
图4 修改键键功能程序参考框图修改转换单元送01H
图4 修改键键功能程序参考框图
修改转换单元送01H
设置状态标志位取反
返回到键管理程序
移位键:通过该键确定对时、分、秒单元的修改,按一次转换一个单元。通过修改转换单元(XGZHDY)的内容对应确定对那一单元修改,具体规定如下:(XGZHDY)=01H,表示对秒单元修改;(XGZHDY)=02H,表示对分单元修改;(XGZHDY)=03H,表示对时单元修改。该键只有在修改状态即DSXGW为1时,该键功能有效。
参考框图如下图5:
图5 移位键键功能程序参考框图
图5 移位键键功能程序参考框图
N
Y
修改转换单元(XGZHDY)+1→XGZHDY
(XGZ