c语言打铃器单片机程序,基于单片机的自动打铃器.doc

第 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值