完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#define uchar unsigned char #define uint unsigned int //引脚定义: /* ***it tube1 = P1^0; //(千位) ***it tube2 = P1^1; //(百位) ***it tube3 = P1^2; //(十位) ***it tube4 = P1^3; //(个位? */ /********把上面的引脚定义换成数组到时候直接通过P1=weima[]实现************/ uchar weima[]={0xf7,0xfb,0xfd,0xfe}; /************************在display会用到*******************/ ***it k1=P3^7; ***it k2=P3^6; ***it k3=P3^5; ***it k4=P3^4; ***it k5=P3^3; ***it k6=P3^2; uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //表:共阳数码管 0-9 uchar k; uint i; //函数声明: void display(uint num);//定义显示函数四位 void delay(uchar x); void delay0(); uchar key_scanf(); //void choose(); //主函数,C语言的入口函数: void main() { i=0; while(1) { display(i); if(P3!=0xff) { delay(15); if(P3!=0xff) { k=key_scanf(); switch(k) { case 1:i+=1;break; case 2:i+=2;break; case 3:i+=3;break; case 4:i+=4;break; case 5:i+=5;break; case 6:i+=6;break; } k=0; } } } } //显示函数,参数为显示内容,只显示4位数 void display(uint num) { uint a[4],n; // uint a,b,c,d; a[3]=num/1000; // a=num/1000; a[2]=num/100%10; // b=num/100%10; a[1]=num/10%10; // c=num/10%10; a[0]=num%10; // d=num%10; for(n=0;n<=3;n++) // tube1=0; { //P0=table[a]; P0=table[a[n]]; // delay(3); P1=weima[n]; // P0=0xff; delay(3); } // tube1=1; // tube2=0; /* P0=table[b]; delay(3); P0=0xff; tube2=1; tube3=0; P0=table[c]; delay(3); P0=0xff; tube3=1; tube4=0; P0=table[d]; delay(1); P0=0xff; tube4=1;*/ } //延时子函数,短暂延时 void delay0(){ uint i1=10; while(i1--); } void delay(uchar x)//延时函数1us { uchar y,z; for(z=x;z>0;z--) for(y=110;y>0;y--); } uchar key_scanf() { switch(P3) { case 0x7f: k=1; break; case 0xbf: k=2; break; case 0xdf: k=3; break; case 0xef: k=4; break; case 0xf7: k=5; break; case 0xfb: k=6; break; } while(!(k1&&k2&&k3&&k4&&k5&&k6));//判断按键是否放开 delay(15); while(!(k1&&k2&&k3&&k4&&k5&&k6)); return k; } 。。不知道为啥子这个程序烧出来 结果计时是可以的 但是数码管显示是按一下的时候后面三个数码管黑了就最前面一个数码管亮着0,松开后四个都亮还可以计时 |
|
相关推荐
6个回答
|
|
当按住按键的时候,程序一直在这个“while(!(k1&&k2&&k3&&k4&&k5&&k6));”循环里空转,直到松开按键后才跳出循环,去执行显示和计时
评分
|
||||
|
||||
![]() |
|
|
|
|
|
|
|
|
|
|
|
谁实话 真的看不懂
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
串口发送中断中对发送I/O口定义为GPIO输出,出现发送数据不完整,缺少2个字节,求解答
1168 浏览 3 评论
728 浏览 0 评论
【xG24 Matter开发套件试用体验】10-Bluetooth示例1
836 浏览 0 评论
919 浏览 0 评论
【xG24 Matter开发套件试用体验】power specification电源规格参数配置
747 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10859 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-26 01:20 , Processed in 0.674386 second(s), Total 92, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191