仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif (70.8 KB, 下載次數: 29)
下載附件
2023-11-4 01:05 上傳
單片機源程序如下:
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- sbit shi=P0^0;
- sbit ge=P0^1;
- sbit key0 = P1^5;
- sbit key1 = P1^6;
- sbit key2 = P1^7;
- uint num = 0;
- bit key0_enter=0;
- bit key1_enter=0;
- bit key2_enter=0;
- void init(void)
- {
- ge = 1;
- shi = 1;
- EA = 1;
- IT0 = 1;
- }
- void delay(uchar ms)
- {
- uchar i ,j;
- for (i=0;i<ms;i++)
- for(j=101;j>0;j--);
- }
- void key_loop()
- {
- if ((key0==0)&&(key0_enter==0))
- {
- key0_enter=1;
- EX0=1;
- }
- if(key0==1)
- {
- key0_enter=0;
- }
- if ((key1==0)&&(key1_enter==0))
- {
- key1_enter=1;
- EX0=0;
- }
- if(key1==1)
- {
- key1_enter=0;
- }
- if ((key2==0)&&(key2_enter==0))
- {
- key2_enter=1;
- num = 0;
- }
- if(key2==1)
- {
- key2_enter=0;
- }
- }
- void display()
- {
- static uchar nms=0;
- static bit wei=0;
- uchar ges=0;
- uchar shis=0;
- nms++;
- if(nms>5)
- {
- nms=0;
-
-
- if(wei)
- {
- shis=(num/10)%10;
- ge=0;
- shi=0;
- P2=table[shis];
- shi=1;
- wei=0;
- }
- else
- {
- ges=num%10;
- ge=0;
- shi=0;
- P2=table[ges];
- ge=1;
- wei=1;
- } }
- }
- void main()
- {
- init();
- for(;;)
- {
- key_loop();
- display();
- delay(1);
- }
- }
- void waibu() interrupt 0
- {
- num++;
- }
復制代碼
仿真程序51hei附件下載:
共陽極單片機.7z
(69.93 KB, 下載次數: 29)
2023-11-4 01:05 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|