【精品】6程序分析

【精品】6程序分析

ID:44588429

大小:103.55 KB

页数:8页

时间:2019-10-23

【精品】6程序分析_第1页
【精品】6程序分析_第2页
【精品】6程序分析_第3页
【精品】6程序分析_第4页
【精品】6程序分析_第5页
资源描述:

《【精品】6程序分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《单片机原理及应用》题库六(程序分析)程序1流水灯程序#includevoiddclaym(unsigncdintt)〃包含8952单片机头文件//延时子程序,入口参数ms,延迟时间=t*lms,t取值范围0-65535tunsignedcharj;//j取值范闌0〜255while(t-)for(j=0;jv250;j++);〃j进行的内部循环,1次延迟8usvoidmain(){unsignedinti;while(l){unsignedchara=0xfe;for(i=0;i<&i++){P0=a;delaym(2(X));

2、a«=1;}〃循环左移1位程序2电子秒表工作程序voidmain()TMOD=0x01;TH0=0xD&TL0=0xfX);EA=1;ET0=l;〃定时器TO工作在方式1//TO装入时间常数〃允许中断〃允许定时器T0中断TRO=1;〃启动定吋器TOwhile(l)〃无条件循环for(k=0;k<3;k++)PO=b出;〃送出数码管段码P2=k;〃送出数码管位选码delaym(3);//调用延时函数timeO_int(void)intenupt1//TO中断服务程序{TH0=0xD&TLO=OxFO;i++;if(i==l(X))〃到1秒{i=O;s

3、econd1++;}if(secondI==10)//到10秒{second2++;second1=0;}if(second2==10)〃到100秒{second3++;second2=0;second1=0;1b[21=a[second3];〃转换为段码显示b[l]=a[second2];b[0]=a[secondl];程序3电子时钟程序voidmain()TMOD=0x01;TH0=0xD&TL0=0xfX);EA=1;ET0=l;TR0=1;〃定时器TO工作在方式1//TO延时长度延时10mS〃允许中断〃允许定时器T0小断while(l){f

4、or(k=0;k<5;k卄)〃显示时钟的分秒PO=b[kJ;P2=k;delaym(3);timeO_int(void)intenupt1//TO中断服务程序{THO=OxD&TLO=OxFO;i卄;if(i==100)〃到1秒{i=O;second++;}if(second==60)〃到1分钟{second=0;fcn++;}w=fen/10;x=fen%10;y=second/iO;z=second%10;b[4]=a[w];〃显示分十位段码b[3]=a[x];〃显示分个位段码M2]=Oxbf;〃数码管显示“■”b[l]=a[y];〃显示秒「位

5、段码b[O]=a[z];〃显示秒个位段码程序4矩阵式按键扫描,读取按键的行列编码。unsignedcharKeycan(void){unsignedcharrcode,ccode;Pl=0xF0;//Pl口对键盘输出键盘扫描信号if((PI&0xF0)!=OxFO){delay(l);//调用岩石函数函数实现软件去抖动if((Pl&0xF0)!=OxFO)〃如果不相等说明有键按下{rcode=OxFE;//逐行扫描初值while((rcode&0xl0)!=0){Pl=rcode;//输出行扫描码if((Pl&0xF0)!=OxFO)//{ccod

6、e=(Pl&0xF0)l0x0F;〃取入列代码〃do{;}while((Pl&OxFO)!=OxFO);//等待键释放return((〜rcode)+(~ccode));〃返冋}elsercode=(rcode«l)10x01;〃行输出代码移1位}return0;//无键按下,返回程序5按键取值计算程序voidKeyDeal(unsignedcharKey){if(Key!=0)〃再次判断是否有按键按F{switch(Key)〃对按键的行列码译码成0~15{case0x11:K=0;break;case0x21:K=l;break;case0x41

7、:K=2;break;case0x81:K=3;break;case0x12:K=4;break;case0x22:K=5;break;case0x42:K=6;break;case0x82:K=7;break;case0x14:K=8;break;case0x24:K=9;break;case0x44:K=10;break;case0x84:K=ll;break;case0xl&K=12;break;case0x28:K=13;break;case0x48:K=14;break;case0x88:K=15;break;default:break;

8、if(K<17){cL7]=cl6J;〃改变噩示位置,显示代码顺序前移c[6]=c[5];c[5]=c[4];c[4]=c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。