网站大量收购独家精品文档,联系QQ:2885784924

单片机按键按下的先后顺序判断.doc

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

单片机按键按下的先后顺序判断 2010-06-25 23:49 K4、K3:“进出”模拟检测键。 每先按K3、再按K4,即代表“进”一人次; 每先按K4、再按K3,则代表“出”一人次。 每“进”一人次,就在原“进”显示基础上加1(“进”显示初始状态为“b000”); 每“出”一人次,就在原“出”显示基础上加1(“出”显示初始状态为“C000”)。 悬赏分:100 - 解决时间:2010-6-25 19:14 最好把C语言程序给出来~ 按照题目,编写了程序。用 PROTEUS 软件仿真截图如下。 插图链接: HYPERLINK /%D7%F6%B6%F8%C2%DB%B5%C0/album/item/597e3e10c0c70f2eb8127b08.html /%D7%F6%B6%F8%C2%DB%B5%C0/album/item/597e3e10c0c70f2eb8127b08.html 呵呵,原来编写的程序,是使用汇编语言,现按照要求改成了C语言。 //================================================================ #includereg52.h #define uint unsigned int #define uchar unsigned char sbit K3 = P3^2; sbit K4 = P3^3; uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, //????????????????????? 0??? 1??? 2??? 3??? 4??? 5??? 6??? 7??? 8??? 9 ????????????????????? 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xc2,0x89,0xff}; //????????????????????? A??? b??? C??? d??? E??? F??? G??? H?? [ ] uchar DispD[] = {0,0,0,11,0,0,0,12}; uchar DispW[] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; //------------------------------------ void delay(uint z) { ??? uint x, y; ??? for(x = z; x 0; x--) for(y = 110; y 0; y--); } //------------------------------------ void display(void) { ??? uint i; ??? for (i = 0; i 8; i++) { ????? P2 = 0; ????? P0 = table[DispD[i]]; ????? P2 = DispW[i]; ????? delay(3); ??? } } //------------------------------------ void main() { ??? uint in_num = 0, outnum = 0; ??? while(1) { ????? display(); //-------------------------- ????? if (K3 == 0) { ??????? display(); ??????? if (K3 == 0) { ????????? while(K3 == 0) display(); ????????? while(K4 == 1) display(); ????????? in_num++; ????????? DispD[0] = in_num % 10; ????????? DispD[1] = in_num / 10 % 10; ????????? DispD[2] = in_num / 100; ????????? while(K4 == 0) display(); ??????? } ????? } //-------------------------- ????? if (K4 == 0) { ??????? display(); ??????? if (K4 == 0) { ????????? while(K4 == 0) display(); ????????? while(K3 == 1) display(); ????????? outnum++; ????????? DispD[4] = outnum % 10; ????????? DispD[

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档