两位数码管对直控按键计数.docVIP

  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文档。上传文档
查看更多
两位数码管对直控按键计数

? ************************************************************************** ? ? *?标题:?两位数码管对直控按键计数(C51) ? ? *?作者:?wentao????? ? ? ??????????????????? ? ? *?日期:?2007.3.2 ? ? *?软件:?Keil?C51?V8.02 ? ? *?芯片:?AT89X51 ? ? *?说明:?实验板实测通过,数码管为8位共阳 ? ? *?声明:?自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途!? ? ? **************************************************************************/?? ? ?? ? #include?reg51.h ?? ? #define?uchar?unsigned?char ?? ? ?? ? void?delay_ms(uchar?ms);??//?延时毫秒@12M,ms最大值255 ?? ? void?key_scan();??????????//?按键扫描 ?? ? void?key_to(uchar?key_v);?//?按键处理 ?? ? ?? ? uchar?code?dis_code[10]?=?{0xc0,0xf9,0xa4,0xb0,0x99,??//段码表 ?? ? ??????????????????????????//?0????1????2????3????4??????对应内容 ?? ? ???????????????????????????0x92,0x82,0xf8,0x80,0x90}; ?? ? ??????????????????????????//?5????6????7????8????9 ?? ? ?? ? uchar?data?dis[2];????????//?dis[0]为个位值,dis[1]为十位值 ?? ? uchar?data?dis_b;?????????//?选通数码管的位码 ?? ? uchar?data?dis_r;?????????//?个位十位段码切换的偏移量 ?? ? uchar?data?count;?????????//?计数器 ?? ? uchar?data?key_v;?????????//?存储键值 ?? ? uchar?data?key_t;?????????//?扫描按键时临时存储键值 ?? ? ?? ? void?main() ?? ? { ?? ? ????count?=?0;???????????//?计数器清零 ?? ? ????P2?=?0xff;???????????//?关所有数码管 ?? ? ????dis_b?=?0x7f;????????//?初始选通P2.7口数码管 ?? ? ????dis_r?=?0;???????????//?初始化偏移量为0 ?? ? ???? ?? ? ????TMOD?=?0x01;?????????//?定时/计数器0工作于方式1 ?? ? ????TH0?=?0xfc;??????????//?装载定时常数64536(fc18) ?? ? ????TL0?=?0x18; ?? ? ????EA?=?1;??????????????//?开总中断 ?? ? ????ET0?=?1;?????????????//?定时/计数器0允许中断 ?? ? ????TR0?=?1;?????????????//?启动定时/计数器0 ?? ? ????while(1)?????????????//?执行主程序,等待中断 ?? ? ????{ ?? ? ????????key_scan();?????//?扫描按键 ?? ? ????????key_to(key_v);??//?处理按键 ?? ? ????} ?? ? } ?? ? void?key_scan()????????????????//?按键扫描 ?? ? { ?? ? ????while(1) ?? ? ????{ ?? ? ????????key_t?=?P1;????????????//?读入键值 ?? ? ????????if(key_t?!=?key_v)?????//?若键值改变 ?? ? ????????{ ?? ? ????????????delay_

文档评论(0)

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

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

1亿VIP精品文档

相关文档