《长短按键基础问题》.doc

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

单片机的C语言编程-长短按键基础问题】 单片机, 编程, 百度知道, C语言, 流程图 大家好!由于我们老师基本不管我们(如果我们问老师问题,他就要我们把 需求分析、项目描述、程序流程图等写成一份报告他才和我们讲……大家想想,要是练习程序都这么搞,还有什么学习效率,比如你问老师为什么3*2=6,老师还要你写一份报告说明,还不如自学呢),所以这些内容我都是和同学讨论,求助网友,现在同学、网友、百度知道都解决不了问题,只好又求助于论坛的各位高手啦! 问题如下,鄙人写了一个 单片机 长短按键程序,但是写好编译有个警告,并且使用proteus仿真出现未知闪烁,各位高人帮我看看哈: 以下为我仿写的程序: #include<reg52.h> sbit DSC=P2^2; //段锁存 sbit WSC=P2^3; //位锁存 sbit BUTADD=P3^3; sbit BUTDEC=P3^4; void delayUs(unsigned char); //延时程序 void delayMs(unsigned char); void display(unsigned char,unsigned char); void init00(); void init0(); unsigned char code DuanM[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9 unsigned char code WeiM[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码 unsigned char TempD[8]; //存储显示值的全局变量 void main() { unsigned int num=0;unsigned char keyt=0; BUTADD=1; //加按键 BUTDEC=1; //减按键 init0();//必须在此处引用,否则会出现警告 while(1) { // if(!BUTADD) { delayMs(10); if(!BUTADD) { while(!BUTADD) { keyt++; delayMs(10); if(keyt==200) { keyt=0; while(!BUTADD) { if(num<99); num++; TempD[0]=DuanM[num/10]; TempD[1]=DuanM[num%10]; delayMs(50); } } // TempD[0]=WeiM(num); } keyt=0; if(num<99) num++; } } if(!BUTDEC) { delayMs(10); { if(!BUTDEC) { while(!BUTDEC) { keyt++; delayMs(10); if(keyt==200) { keyt=0; while(!BUTDEC) { if(num>0); num--; TempD[0]=DuanM[num/10]; TempD[1]=DuanM[num%10]; delayMs(50); } } } } keyt=0; if(num>0) num--; } } TempD[1]=DuanM[num%10]; TempD[0]=DuanM[num/10]; //display(0,8); // } } void delayUs(unsigned char t) { while(--t); } void delayMs(unsigned char t) { while(--t); { delayUs(245); delayUs(245); } } void display(unsigned char Wei,unsigned char Num) { static unsigned char i=0; // for(i=0;i<Num;i++) { P0=0; DSC=1; DSC=0; P0=WeiM[i+Wei]; WSC=1; WSC=0; P0=TempD[i]; DSC=1; DSC=0; delayMs(2); i++; if(i==Num) i=0; } } void init0() { TMOD|=0x01; EA=1; ET0=1; TR0=1; } void init00() int

文档评论(0)

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

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

1亿VIP精品文档

相关文档