单片机应用技术课程设计—键控秒表课程设计..doc

单片机应用技术课程设计—键控秒表课程设计..doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机应用技术课程设计—键控秒表课程设计.

《单片机应用技术》 课程设计 题 目∶ 键控秒表 院 系∶ 机电工程系 专业班级∶ 电气 姓 名∶ 学 号∶ 指导教师∶ 2013年 10 月18 摘要 二十世纪跨越了三个“电”的时代,即电气时代,电子时代和现已进入的电脑时代。但是,实际工作中,并不是需要计算机的场合都需要计算机很高的性能。应用的关键是看能否够用,是否有很好的性能价格比。单片机又称单片微控制器,它不是完成某一个逻辑工程的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一个芯片就成了一台计算机。它的体积小、质量轻、价格便宜,为学习、应用和开发提供了便利条件。 自从1976年问世以来,单片机获得了巨大的发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上的各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,这些都离不开单片机。所以,学习单片机在我国是有着广泛前景的。 目录 摘要 1 一、课题研究目的 3 二、实验内容及要求 4 1、实验内容 4 2、实验要求 4 三、仿真原理图 5 四、系统程序 6 五、材料清单 9 六、键控秒表实物图 10 七、心得及体会 11 八、总结 12 九、参考文献 13 一、课题研究目的 1.通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。 2.掌握键控秒表系统的制作,进一步熟悉单片机计数器结构的工作方式,初始值设置和停止等基本应用方法,掌握C语言控制单片机的基本技能。 3.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 4.该实验通过单片机的键控原理,设计简单的系统,拥有正确的增一、减一、清零、自动加一功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义。 5.通过本次设计,提高自身电路设计能力,并锻炼团队合作精神。 二、实验内容及要求 1、实验内容 利用AT89C52设计一个2位LED数码管显示“秒表”,可显示时间为00~59秒。并设计一个“增一”按键,一个“减一”按键,一个“清零”按键,一个“自动增一”按键。 按键说明:按“增一”按键,系统加一计数,数码管显示数字加一; 按“减一”按键,系统减一计数,数码管显示数字减一; 按“清零”按键,系统清零,数码管显示“00”; 按一下“自动加一”按键,系统自动进行加一循环,并在数码管上显示,再按一下“自动加一”按键,系统会暂停自动加一循环,数码管显示的数字将停留在当前显示值上。 2、实验要求 了解AT89c52芯片的的工作原理和工作方式 ,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示数字,并能用按键实现秒表增一、减一、清零复位功能。 画出使用单片机控制LED数码管显示的电路图,并编程完成软件部分,最后调试秒表的增一、减一、清零、自动加一。 三、仿真原理图 四、系统程序 #include reg51.h #define uchar unsigned char #define uint unsigned int #define duan P0 sbit wei_1=P2^7; sbit wei_2=P2^6; sbit key1=P2^0; //加1 sbit key2=P2^1; //减1 sbit key3=P2^2; //清0 sbit key4=P2^3; //按下自动加1,再按停下不变 uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳 uchar n=0,num=0; void display(uchar num1); void delay(uint xms) { uint x,y; for(x=xms;x0;x--) for(y=110;y0;y--); } void keyscan() { if(key1==0) { delay(10); if(key1==0) { num++; if(num==60) num=0; while(!key1); } } if(key2==0) { delay(10); if(key2==0) { if(num==0) num=60; num--; while(!key2); } } if(key3==0) { delay(10); if(key3==0) { num=0; while(!key3); } } if(key4==0)

文档评论(0)

almm118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档