完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#define uchar unsigned char #define uint unsigned int uchar code tab[]={0xc0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0Xbf,0XFF};//ROM uchar yi,er,san,si,wu,liu,qi,ba; bit S7=0,S6=0;S5=0;S4=0; uchar num=0; void delayms(int ms); void display1(uchar yi,uchar er); void display2(uchar san,uchar si); void display3(uchar wu,uchar liu); void display4(uchar qi,uchar ba); void allinit(void); void keyscan(); //void keyscan16(); void main() { allinit(); //yi=0;er=8;san=10;si=5;wu=0;liu=10;qi=5;ba=5; while(1) { keyscan(); //keyscan16(); display1(yi,er); display2(san,si); display3(wu,liu); display4(qi,ba); } } void keyscan() { if(P30= =0) { delayms(5); if(P30= =0) { S7=1; } while(!P30); } else if(P31= =0) { delayms(5); if(P31= =0) { S6=1; } while(!P31); } else if(P32= =0) { delayms(5); if(P32= =0) { S5=1; } while(!P32); } else if(P33= =0) { delayms(5); if(P33= =0) { S4=1; } while(!P33); } } /* void keyscan16() { uchar temp; P44=0;P42=1;P3=0X7F; temp=P3; temp=temp&0X0F;//1111 1101 & 0000 1111 = 0000 1101 if(temp!=0x0f) { delayms(5); temp=P3; temp=temp&0X0F; if(temp!=0x0f) { temp=P3; switch(temp) { case 0x7e: num=0;break;//1111 1110 P37----p30 case 0x7d: num=1;break;//1111 1101 case 0x7b: num=2;break; case 0x77: num=3;break; } while(temp!=0x0f) { temp=P3; temp=temp&0X0F; } } } P44=1;P42=0;P3=0XBF;//1011 111 temp=P3; temp=temp&0X0F;//1111 1101 & 0000 1111 = 0000 1101 if(temp!=0x0f) { delayms(5); temp=P3; temp=temp&0X0F; if(temp!=0x0f) { temp=P3; switch(temp) { case 0xBe: num=4;break;//1111 1110 P37----p30 case 0xBd: num=5;break;//1111 1101 case 0xBb: num=6;break; case 0xB7: num=7;break; } while(temp!=0x0f) { temp=P3; temp=temp&0X0F; } } } P3=0XDF;P44=1;P42=1;//1101 1111 temp=P3; temp=temp&0X0F;//1111 1101 & 0000 1111 = 0000 1101 if(temp!=0x0f) { delayms(5); temp=P3; temp=temp&0X0F; if(temp!=0x0f) { temp=P3; switch(temp) { case 0xDe: num=8;break;//1111 1110 P37----p30 case 0xDd: num=8;break;//1111 1101 case 0xDb: num=10;break; case 0xD7: num=11;break; } while(temp!=0x0f) { temp=P3; temp=temp&0X0F; } } } P3=0XEF;P44=1;P42=1;//1101 1111 temp=P3; temp=temp&0X0F;//1111 1101 & 0000 1111 = 0000 1101 if(temp!=0x0f) { delayms(5); temp=P3; temp=temp&0X0F; if(temp!=0x0f) { temp=P3; switch(temp) { case 0xEe: num=12;break;//1111 1110 P37----p30 case 0xEd: num=13;break;//1111 1101 case 0xEb: num=14;break; case 0xE7: num=15;break; } while(temp!=0x0f) { temp=P3; temp=temp&0X0F; } } } } */ void allinit(void) { P2=0XA0;//打开控制蜂鸣器继电器573 P0=0X00;//关闭蜂鸣器继电器 P2=0XC0;//打开数码管位选 P0=0XFF;//选择所有数码管 P2=0XFF;//打开数码管段选 P0=0XFF;//关闭所有数码管 P2=0X80;//打开控制LED573 P0=0XFF;//关闭所有LED灯 } void display1(uchar yi,uchar er) {undefined P2=0XC0;//打开数码管位选573 U8 P0=0X01;//选择第一个数码管 P2=0XFF;//打开数码管段选573 U7 P0=tab[yi];//数码管显示码值 delayms(1); P2=0XC0;//打开数码管位选573 U8 P0=0X02;//选择第二个数码管 P2=0XFF;//打开数码管段选573 U7 P0=tab[er];//数码管显示码值 delayms(1); } void display2(uchar san,uchar si) {undefined P2=0XC0;//打开数码管位选573 U8 P0=0X04;//选择第三个数码管 //0000 0100 P2=0XFF;//打开数码管段选573 U7 P0=tab[san];//数码管显示码值 delayms(1); P2=0XC0;//打开数码管位选573 U8 P0=0X08;//选择第四个数码管 P2=0XFF;//打开数码管段选573 U7 P0=tab[si];//数码管显示码值 delayms(1); } void display3(uchar wu,uchar liu) {undefined P2=0XC0;//打开数码管位选573 U8 P0=0X10;//选择第五个数码管0001 000 P2=0XFF;//打开数码管段选573 U7 P0=tab[wu];//数码管显示码值 delayms(1); P2=0XC0;//打开数码管位选573 U8 P0=0X20;//选择第六个数码管 P2=0XFF;//打开数码管段选573 U7 P0=tab[liu];//数码管显示码值 delayms(1); } void display4(uchar qi,uchar ba) {undefined P2=0XC0;//打开数码管位选573 U8 P0=0X40;//选择第七个数码管 P2=0XFF;//打开数码管段选573 U7 P0=tab[qi];//数码管显示码值 delayms(1); P2=0XC0;//打开数码管位选573 U8 P0=0X80;//选择第八个数码管 P2=0XFF;//打开数码管段选573 U7 P0=tab[ba];//数码管显示码值 delayms(1); } void delayms(int ms) {undefined int i,j; for(i=ms;i>0;i–) for(j=845;j>0;j–); } |
|
|
|
只有小组成员才能发言,加入小组>>
3294 浏览 9 评论
2970 浏览 16 评论
3473 浏览 1 评论
9023 浏览 16 评论
4061 浏览 18 评论
1140浏览 3评论
589浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
579浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2313浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1876浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 02:16 , Processed in 1.264805 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号