- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
9倒计时提醒器的设计
1 引言
1.1 设计意义?
? 通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。
近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。现在,在许多领域中,定时器得到了广泛的应用,比如在体育比赛中的计时器;安全措施中的定时报警器;游戏中的倒计时;维持秩序的交通信号灯;红路灯,交通控制器,闹钟等等。可见倒计时器在社会中的重要性。
1.2 本人所做的工作
首先,阅读分析任务书了解所需要的各项功能。根据各项功能作出相应的设计,通过查阅资料验证每个方案的可行性。从中选取性能最优操作最方便的。设计硬件原理图,进行硬件的参数计算。然后,设计软件流程图,编写软件,检验软件正确性。在硬件与软件设计完成之后,使用仿真软件进行仿真实验。记录仿真实验结果,如结果与要求有误差则进行修改,直至符合要求。记录仿真结果,编写课程设计书。
1.3 系统的主要功能
开机时,显示00,等待输入计时时间,由键盘输入计时分钟数,按确认键后,计时提醒器开始工作,计时完成后,蜂鸣器发出嘀嘀的提示音。在计时过程中如果按下键盘取消键则取消计时,系统回到开机时的状态。
2 硬件电路设计
2.1 总体框图
LED数码管倒计时器以AT89C51单片机为核心,起着控制作用。系统包括九位数码管显示电路,按键电路,复位电路,时钟电路以及蜂鸣器电路。倒计时的总体框图如下图2.1所示:
图2.1 倒计时的总体框图
2.2 硬件电路设计及描述
图2.2 硬件电路图
如图2.2所示,该系统采用89C51单片机作为中央控制器,使用驱动芯片的射极连接到数码管段选端和位选端。将P0连接到驱动芯片上控制片选与位选端。使用P3作为键盘输入端以及相应的管脚添加复位晶振蜂鸣器电路。通过按键输入要计数的分钟数,通过确认键开始,数码管动态扫描剩余分钟数。晶振电路提供机器周期。复位键作为取消键使用。相应的值如图所示。
3 软件设计流程及描述
3.1 主程序流程图
主程序流程图如图3.1所示。
图3.1 流程图
3.2 倒计时器设计流程图
倒计时器设计流程图如图所示。
图3.2 倒计时器设计流程图
3.3 按键消抖框图
图3.3 按键消抖框图
4 源程序代码
4.1 程序
#includereg51.h
sbit feng=P2^3; ;定义蜂鸣器端口
sbit dula=P2^6; ;定义段选端
sbit wela=P2^7; ;定义位选端
sbit s1=P3^4; ;定义按键
sbit s2=P3^5;
sbit s3=P3^6;
unsigned int table[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int j,k,n,num,num1,a,c;
void delay(unsigned int i) ;延时子程序
{
for(j=i;j0;j--)
for(k=125;k0;k--);}
Void xiang()
{
for(n=20;n0;n--)
{feng=0;delay(100);feng=1;delay(100);};蜂鸣器子程序
}
Void display(unsigned char num,am) ;扫描数码管子程序
{ dula=1;
P0=table[num];
dula=0;
wela=1;
P0=am;
wela=0;
}
void main() ;主程序
{while(1)
{ num=num1=0;
while(s3)
{display(num,2);
delay(10);
display(num1,1);
delay(10);
if(s1==0)
{
delay(20);
if(s1==0)
{
while(!s1); ;记录十位数
num++;
if(num==10)num=0;
}
}
display(num,2);
delay(10);
display(num1,
您可能关注的文档
- 5.1WOW几种职业输出手法与天赋.doc
- 5.2.1陈情表的学案.doc
- 5.中古封建社会.doc
- 5.离离原上草 教学的设计.doc
- 5.孔乙己的导的学案.doc
- 5.静电场习题的的答案.doc
- 502389证治心传.doc
- 50只涉矿概念股的资料一览.doc
- 50首适合一个人静静听歌.doc
- 512国际护士节文艺演出串词1-.doc
- 一城一云服务城市高质量发展白皮书(2023).pdf
- 中国连锁餐饮企业资本之路系列报告(2023)-历尽千帆,厚积薄发.pdf
- 有色金属行业专题研究:未来焦点,钒液流电池储能风潮兴涌.pdf
- 中国 “一带一路”实践与观察报告.pdf
- 医药生物-消费器械行业2023年中报总结:积极拥抱高璧垒高成长(202309).pdf
- DB50T 699-2016 简易升降机检验规则.pdf
- DB50T 746-2016 水库大坝安全监测资料整编分析规程 .pdf
- 看DAO2025-未尽研究报告(2024).pdf
- 市场洞察力报告-数据安全检查工具箱(2024).pdf
- 2024年预见未来:中国元医院建设发展调研报告.pdf
文档评论(0)