|
藍(lán)橋杯按鍵數(shù)碼管程序
單片機(jī)源程序如下:
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar table_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- uchar table_we[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80} ;
- uchar shi,ge;
- uchar temp;
- void delayms(uint z)
- {
- uint i,j;
- for(i=0;i<z;i++)
- for(j=0;j<110;j++);
- }
- void display()
- {
- P2=0x00;
- P0=0xff;
- if(shi!=0)
- {
- P0=table_du[shi];
- P2 |= 0xe0;
- P2 &= 0x1f;
- P0=table_we[6];
- P2 |= 0xc0;
- P2 &= 0x3f;
- delayms(1);
- }
- P0=table_du[ge];
- P2 |= 0xe0;
- P2 &= 0x1f;
- P0=table_we[7];
- P2 |= 0xc0;
- P2 &= 0x3f;
- delayms(1);
- }
- uchar matrix() //m為局部變量,但值有延續(xù)性
- {
- uchar m;
- P3=0xfe;
- switch(P3)
- {
- case 0x7e : m=0;break;
- case 0xbe : m=1;break;
- case 0xde : m=2;break;
- case 0xee : m=3;break;
- default :break;
- }
- P3=0xfd;
- switch(P3)
- {
- case 0x7d : m=4;break;
- case 0xbd : m=5;break;
- case 0xdd : m=6;break;
- case 0xed : m=7;break;
- default :break;
- }
- P3=0xfb;
- switch(P3)
- {
- case 0x7b : m=8;break;
- case 0xbb : m=9;break;
- case 0xdb : m=10;break;
- case 0xeb : m=11;break;
- default :break;
- }
- P3=0xf7;
- switch(P3)
- {
- case 0x77 : m=12;break;
- case 0xb7 : m=13;break;
- case 0xd7 : m=14;break;
- case 0xe7 : m=15;break;
- default :break;
- }
- return m;
- }
- void main()
- {
- while(1)
- {
- temp=matrix();
- shi=temp%100/10;
- ge =temp%10;
- display();
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
國信長天杯電子設(shè)計專業(yè)人才大賽_程序、矩陣鍵盤.doc
(28.5 KB, 下載次數(shù): 7)
2018-3-22 20:46 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|