ImageVerifierCode 换一换
格式:DOC , 页数:24 ,大小:417.54KB ,
资源ID:4519467      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4519467.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(基于C单片机的数字时钟专业课程设计.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于C单片机的数字时钟专业课程设计.doc

1、单片机技术课程设计数字电子钟学院: 班级: 姓名: 学号: 老师: 摘 要电子钟在生活中应用很广泛,而一个简单方便数字电子钟则更能受到大家欢迎。所以设计一个简易数字电子钟很有必需。本电子钟采取AT89C52单片机为关键,使用12MHz 晶振和单片机AT89C52 相连接,经过软件编程方法实现以二十四小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒要求,并在计时过程中含有定时功效,当初间抵达提前定好时间进行蜂鸣报时。该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行对应操作就可实现校时、定时、复位功效。含有时间显示、整点报时、校正等功效。

2、走时正确、显示直观、运行稳定等优点。含有极高推广应用价值。关键词:电子钟 AT89C52 硬件设计 软件设计目 录一、数字电子钟设计任务、功效要求说明及方案介绍41.1 设计课题设计任务41.2 设计课题功效要求说明41.3 设计课设计总体方案介绍及工作原理说明4二、设计课题硬件系统设计52.1硬件系统各模块功效简明介绍52.1.1 AT89C52介绍52.1.2 按键电路6三、设计课题软件系统设计63.1 使用单片机资源情况63.2 软件系统个模块功效简明介绍73.3 软件系统程序步骤框图73.4 软件系统程序清单7四、设计课题设计结论、仿真结果、误差分析94.1 设计结论及使用说明94.2

3、 仿真结果10结 束 语12参考文件12附 录13附录A:程序清单13一、数字电子钟设计任务、功效要求说明及方案介绍1.1 设计课题设计任务设计一个含有特定功效电子钟。含有时间显示,并有时间设定,时间调整 功效。 1.2 设计课题功效要求说明设计一个含有特定功效电子钟。该电子钟上电或按键复位后能自动显示系统提醒符“d.1004-22”, 进入时钟准备状态;第一次按电子钟开启/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。 1.3 设计课设计总体方案介绍及工作原理说明本电

4、子钟关键由单片机、键盘、显示接口电路和复位电路组成,设计课题总体方案图1所表示: 图1-1总体设计方案图本电子钟全部软件、参数均存放在AT89C52Flash ROM和内部RAM中,降低了芯片使用数量简化了整体电路也降低了整机工作电流。键盘采取动态扫描方法。利用单片机定时器及计数器产生定时效果经过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理数据,同时经过端口读入目前外部控制状态来改变程序不一样状态,实现不一样功效。二、设计课题硬件系统设计2.1硬件系统各模块功效简明介绍 2.1.1 AT89C52介绍 (1) 兼容MCS51指令系统;(2)8kB可反复擦写(大于1000次)Fla

5、sh ROM;(3)32个双向I/O口;(4)256x8bit内部RAM;(5)3个16位可编程定时/计数器中止;(6)时钟频率0-24MHz;(7)2个串行中止,可编程UART串行通道;(8)2个外部中止源,共8个中止源;(9)2个读写中止口线,3级加密位;(10)低功耗空闲和掉电模式,软件设置睡眠和唤醒功效;(11)有PDIP、PQFP、TQFP及PLCC等多个封装形式,以适应不一样产品需求。它价格廉价,功效强大,能耗低。很大程度上降低总电路复杂性,提升了所设计系统稳定性。其芯片引脚图图2-1所表示。图2-1 单片机AT89S52引脚图2.1.2 按键电路 图22 按键图三、设计课题软件系

6、统设计3.1 使用单片机资源情况设计课题使用单片机资源情况以下:P0口输出数码管段选信号,P2口输出数码管位选信号;晶振12MHz;调整选择键KEY1:P1.0;经过选择键选择调整位,选中位闪烁;增加键KEY2:P1.1;按一次使选中位加1;降低键KEY3:P1.2;按一次使选中位减1;此数字钟可实现基础走时和显示时间时、分、秒;时间调整;闹钟设定和调整;闹钟开启和关闭功效,具体以下:(1)实现基础走时和显示时间时、分、秒,上电自动显示初始时间12-59-00,且控制闹钟状态红色led灯为亮状态;(2)当第一次按下第一个弹性按键时进入时间调整状态,此时实现对显示时间小时调整,按下第二个按键时实

7、现小时加一调整,按下第三个按键时实现小时减一调整;(3)当第二次按下第一个弹性按键时进入显示时间分钟调整状态,按下第二个按键时实现分钟加一调整,按下第三个按键时实现分钟减一调整;(4)当第三次按下第一个弹性按键时进入闹钟小时调整状态,按下第二个按键时实现闹钟小时加一调整,按下第三个按键时实现闹钟小时减一调整;(5)当第四次按下第一个弹性按键时进入闹钟分钟调整状态,按下第二个按键时实现闹钟分钟加一调整,按下第三个按键时实现闹钟分钟减一调整;(6)当第五次按下第一个弹性按键时返回正常显示时间走时状态;(7)当同时按下第二和第三个弹性按键时,关闭闹钟,且此时蓝色led灯为灭,及定时时间到蜂鸣器并不响

8、,若再次同时按下第二和第三个弹性按键,则开启闹钟,且此时红色led灯为亮,定时时间到蜂鸣器发出滴滴闹铃声,同时按下第二和第三个弹性按键即可关闭闹铃。闹铃状态默认为开启。 3.2 软件系统个模块功效简明介绍 本设计软件系统关键采取以下基础模块来实现,主程序、中止服务程序、键盘输入程序模块、数码管及其驱动模块和延时模块。主程序:关键是用于对输入信号处理、输出信号控制和对各个功效程序模块利用及其控制。中止服务程序:关键是用于电子钟正确运行、数据输入过程中闪烁。键盘输入程序模块:关键是用于确定按键并得到特定键码值。数码管及其驱动模块:关键是用于驱动数码管及利用数码管显示时间。延时模块:程序中有两种延时

9、子程序,一个是短延时用于判键按下等,一个是长延时。3.3 软件系统程序步骤框图系统软件采取汇编语言按模块化方法进行设计,然后经过Keil软件开发平台将程序转变成十六进制程序语言,接着使用Proteous 进行仿真,读出显示数据。3.4 软件系统程序清单本电子钟实现二十四小时制,8位数码管显示时分秒,显示式:12-59-00。经过4只按键来调整时间:KEY1(P1.0):调整选择键,选中位闪烁;KEY2(P1.1):增加键,按一次使选中位加1;KEY3(P1.2):降低键,按一次使选中位减1;Bear(P3.1):到了整点和闹钟就会响;Led (P1.2):闪烁;P0口输出数码管段选信号,P2口

10、输出数码管位选信号;晶振12MHz。图3-1主程序步骤框图图3-2显示时钟数组子程序 图3-3中止服务程序程序四、设计课题设计结论、仿真结果、误差分析4.1 设计结论及使用说明本设计为基于单片机电子钟设计。刚开始,我们很多地方理不清头绪,无从下手,但经过认真研究设计课题,找书上网查资料,确定基础设计方案,对所用芯片功效进行查找、调试,然后画电路图等,积累了很多宝贵经验。本设计用2个四位一体共阳数码管做为显示器,它显示时间值;设计中有三个按键,其中KEY1为开启键,KEY2为加控制键 KEY3为减控制键 。图41 结果图4.2 仿真结果 在Proteus ISISDebug菜单中选择Execut

11、e,运行程序,系统仿真结果图所表示。 实现功效: 可调整运行电子钟含有三种工作状态:“d.1004-22”状态、运行状态、调整状态。 图4-2“d.1004-22”上电初始化运行状态仿真结果 图4-3时钟正常运行状态仿真结果 图4-4闹钟定时调整状态仿真结果图4-5小时调整状态仿真结果图4-6分钟调整状态仿真结果结 束 语 单片机课程设计是一门很实用,很复杂设计。这个设计用到了单片机,电路等方面知识,经过这次课程设计,使我对单片机及其隶属电路有了一定了解,对书本上知识有了近一步掌握,也深刻明白了自己不足。完成此次课程设计过程,是一个从无到有过程,经历了兴奋、所悟、完成多个过程。刚做做课程设计时

12、,仔细阅读设计题目和要求,认为没什么困难,所用知识书上全部有。可是当我动手开始做时候,才发觉其中算法,设计是那么繁琐。经过一天努力,再到图书馆和网上查找资料,在经过借鉴很多类似资料,文件后,总算是有点眉目了。埋头苦干过程是痛苦,在思索算法和程序框架时,迷茫,烦躁,也参考她人思绪,不停循环中,最终最终完善了程序。其中煎熬是很痛苦,深刻明白攻克自己“未知领域”困难。但当课程设计完成时,那感觉是甜蜜,没有耕耘,哪来得收获喜悦,就在这么痛和愉快交换中,我学到了知识。经过这短短一周实践,我感觉到自己从书本上学到理论知识和实践仍有很大差距。知道了很多元器件有什么功效,在仿真仪器中是什么代码。有知识,自己感

13、觉已经掌握得差不多了,不过实际操作起来就有问题出现了。我碰到了不少问题,花费了很多时间。这让我重新反思我们学习,深刻领悟到我们这个专业动手,实践关键性。理论不经过实践考验,是没法实施,就像我们编程序,很多方面考虑全部不够,几乎没有包含到实际应用时防范方法方法。这次课程设计,让我学到了很多书本上学不到东西,学到了实际应用时。最大收获是:对键盘,显示器,C51语言应用有了深刻了解。参考文件1 baidu文库,基于C51单片机程序设计.2 baidu百科,AT89C52介绍附录附录A程序清单#include #include #include #define uint unsigned int#de

14、fine uchar unsigned charsbit KEY1=P11; /切换键sbit KEY2=P12; /minute ,hour调整加1定义sbit KEY3=P17; /minute ,hour调整减1定义sbit bear=P31; /闹铃sbit led=P12; /闹钟,整时灯闪烁code unsigned char tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xc8,0x8e,0xff,0x21; /段码控制char code weikong_code=0xfe,0xfd,0xfb,0xf7,0

15、xef,0xdf,0xbf,0x7f;uchar ms8=2,2,10,4,0,0,1,14;uchar StrTab8;uchar minute=59,hour=12,second=0; /正常时钟 秒,分,时 定义uchar minute1=00,hour1=00; second1=00;/闹钟时钟 秒,分,时 定义uchar flag=0, flag1=0; /切换标志 uchar num=0;uint count=0; /定时器计数,定时50ms,count满20,秒加1/*子函数申明*/void xianshishuzu(); /显示数组子程序void alarm(); /闹钟子程序

16、/* 延时子程序*/ void delay(uint z) uint x,y;for(x=0;xz;x+)for(y=0;y110;y+);/*显示时钟子函数*/ void dispaly(uchar w8) unsigned int i,j,aa; aa=0xfe; /位选初值1111 1110for(i=0;i8;i+) /依次将数组w中八个数取出,并显示 P2=aa; /位选j=wi; /取出要显示数码P0=tabj; /取出段选编码aa=_crol_(aa,1); /位选信号循环右移delay(1); /显示延时P0=0xff; /消影 /*显示时钟数组子程序*/void xiansh

17、ishuzu() StrTab1=second/10; /秒个位 StrTab0=second%10; /秒十位 StrTab2=10; /间隔符 - StrTab4=minute/10; /分个位 StrTab3=minute%10; /分十位 StrTab5=10; /间隔符 - StrTab7=hour/10; /时个位 StrTab6=hour%10; /时十位 /*键盘扫描子程序*/ void keycan() if(KEY1=0) /按一次,正常显示,按第二次,时调整,按第三次,分调这整, delay(10); /按键1去抖和动作 if(KEY1=0) /确定按键是否按下 flag

18、+; /切换标志 while(!KEY1); /释放按键 if(flag=1)if(KEY2=0) delay(10); if(KEY2=0) hour+; /正常时间 小时 加1if(hour=24)hour=0; while(!KEY2) /释放按键 dispaly(StrTab); if(KEY3=0) delay(10); if(KEY3=0) hour-; /正常时间小时 减1if(hour=0)hour=23; dispaly(StrTab); while(!KEY3) dispaly(StrTab); if(flag=2)if(KEY2=0) /按键去抖和动作 delay(10)

19、; if(KEY2=0) minute+; /分加1if(minute=60)minute=0; while(!KEY2) dispaly(StrTab); if(flag=3) /秒表加1 if(KEY3=0) delay(10); if(KEY3=0) second+; /秒加1if(second=0)second=59; while(!KEY3)dispaly(StrTab); if(flag=3) /闹钟对时 if(KEY2=0) delay(10); if(KEY2=0) hour1+;if(hour1=24)hour1=0; /闹钟时间 小时 加1 while(!KEY2) ala

20、rm(); if(KEY3=0) delay(10); if(KEY3=0) hour1-; if(hour1=0)hour1=23; /闹钟时间 小时 减 while(!KEY3) alarm(); if(flag=4) if(KEY2=0) /按键去抖和动作 delay(10); if(KEY2=0) minute1+;if(minute1=60)minute1=0; /闹钟分加1 while(!KEY2)alarm(); if(KEY3=0) /按键去抖和动作 delay(10); if(KEY3=0) minute1-;if(minute1=0)minute1=59; /闹钟分减1 w

21、hile(!KEY3) alarm();/*蜂鸣器子程序*/void beng() bear=1;P3=0xfd;delay(100);bear=0;P3=0XFf;delay(100);/*整点报警子程序*/void zhengdian (void)uchar i=0;if(second=0)&(minute=0) /整点报时 for(i=0;i=second1&secondsecond1+5)|(minute=0&second1) for(i=0;i0) if(flag=1|flag=2) TR0=1; dispaly(StrTab); zhengdian ();/KEY1按第二次或第二次定时器开始,电子钟和整点报时正常显示if(flag=3|flag=4) TR0=0;alarm(); /按KEY1第三或第四次闹钟开始显示,分时调整if(flag=5) dispaly(StrTab); /按KEY1第五次返回电子钟正常显示if(flag=6) TR0=0; flag=0; dispaly(ms); /按KEY1第六次定时器关闭,切换标志请零,显示d.1004-22

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服