硬件综合课程设计(holtek单片机秒表).docxVIP

硬件综合课程设计(holtek单片机秒表).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
硬件综合课程设计(holtek单片机秒表)

单片机原理及应用课程设计题目:简易秒表班级:0410901组员:许睿(2009211589)吕巧(2009211574)蒲文岸(2009211575)指导老师:祝家钰题目及设计要求设计题目:秒表要求功能:(1)计时开始、停止设置。(2)计时初值0设置。(3)计时状态显示。设计思路及电路设计图设计思路:通过计数,来反映时间的流逝。计数变量代表的是以最小单位表示的总数。通过计算,将每一位提取出来保存在变量里,然后显示在数码管上。不断循环,显示时间。每次循环前检查是否有按键输入。如果有,根据按键判断操作内容。电路设计图:数码管位选:const unsigned char wei[4]={0xfe,0xfd,0xfb,0xf7}数码管段选:const unsigned char number[10]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84}; //数码管显示0-9;端口说明:PB0~PB7 键盘选择 PC0~PC3 数码管位选 PA0~PA7 数码管段选程序流程图源代码及注释#include HT48F50E.Hconst unsigned char number[10]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84}; //数码管显示0-9unsigned int key_code;void scan_keypressed(){unsigned int i,scan_code;scan_code=0xef;for(i=0;i4;i++){_pb=scan_code;if(_pb0==0)key_code=i*4+1;if(_pb1==0)key_code=i*4+2;if(_pb2==0)key_code=i*4+3;if(_pb3==0)key_code=i*4+4;_rl(scan_code);}}void delayms(unsigned int dly){unsigned int i; for(i=0;idly;i++) { _delay(984); } } //延时函数1MSvoid main(){ unsigned int sec_h=0;unsigned int sec_l=0;unsigned int msec_h=0;unsigned int msec_l=0;//定义变量保存时间各位long int n=0;//n用来计数unsigned int key_old;int i=0;key_code=0;//数码管显示初始化_pac=0x00;_pcc=0x00;_pc=0x00;_pbc=0x0f; _pc=0xfe; //选通第一位数码管1110_pa=number[0]; delayms(5); //延时5MS(下同) _pc=0xfd; //1101_pa=number[0]; delayms(5); _pc=0xfb; //1011_pa=number[0]; delayms(5); _pc=0xf7; //0111 _pa=number[0]; delayms(5); while(1)//进入主循环 {/*检测按键* */scan_keypressed();if(key_code==2)//开始键{key_old=key_code;_delay(20000);while(n3600){scan_keypressed();if(key_old!=key_code) break;//防止抖动// n++;sec_h=(n/60)/10;sec_l=(n/60)%10;msec_h=(n%60)/10;msec_l=(n%60)%10;//求时间各位_pc=0xfe; //选通第一位数码管1110_pa=number[sec_h]; //显示时间 delayms(5); _pc=0xfd; _pa=number[sec_l]; delayms(5);_pc=0xfb; _pa=number[msec_h

文档评论(0)

asd522513656 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档