单片机 独立按键与流水灯 数码管
#include<reg52.h> #include<intrins.h> sbit we=P2^7; sbit du=P2^6; sbit key_s2=P3^0;//S2°´¼ü void delay(unsigned int x) { unsigned char i; while(x--) { for(i=0;i<120;i++); } } unsigned char leddata[]={ 0x3F, //"0" 0x06, //"1" 0x5B, //"2" 0x4F, //"3" 0x66, //"4" 0x6D, //"5" 0x7D, //"6" 0x07, //"7" 0x7F, //"8" 0x6F, //"9" 0x77, //"A" 0x7C, //"B" 0x39, //"C" 0x5E, //"D" 0x79, //"E" 0x71, //"F" 0x76, //"H" 0x38, //"L" 0x37, //"n" 0x3E, //"u" 0x73, //"P" 0x5C, //"o" 0x40, //"-" 0x00, //?? 0x00 //??? }; void main() { unsigned char num; we=1; P0=0xfe; we=0; while(1) { du=1; P0=leddata[num]; du=0; if(key_s2==0) //µ±°´ÏÂȥΪ0,·Å¿ªÎª1 { delay(10); if(key_s2==0) { num++; } while(!key_s2);//Èç¹û°´×¡¾ÍÒ»Ö±ÔÚÕâ } if(num==10) { num=0; } } }
===============================================独立按键控制流水灯和数码管
1 #include<reg52.h> 2 #include<intrins.h> 3 sbit du=P2^6;//定义段选 4 sbit we=P2^7;//定义位选 5 sbit key_s2=P3^0; //控制开启数码管 6 sbit key_s3=P3^1; //关闭数码管 7 sbit key_s4=P3^2; //led灯开启 8 sbit key_s5=P3^3; //led关闭 9 10 void delay(unsigned int x) 11 { 12 unsigned char i; 13 while(x--) 14 { 15 for(i=0;i<120;i++); 16 } 17 } 18 unsigned char leddata[]={ 19 20 0x3F, //"0" 21 0x06, //"1" 22 0x5B, //"2" 23 0x4F, //"3" 24 0x66, //"4" 25 0x6D, //"5" 26 0x7D, //"6" 27 0x07, //"7" 28 0x7F, //"8" 29 0x6F, //"9" 30 0x77, //"A" 31 0x7C, //"B" 32 0x39, //"C" 33 0x5E, //"D" 34 0x79, //"E" 35 0x71, //"F" 36 0x76, //"H" 37 0x38, //"L" 38 0x37, //"n" 39 0x3E, //"u" 40 0x73, //"P" 41 0x5C, //"o" 42 0x40, //"-" 43 0x00, //?? 44 0x00 //??? 45 46 }; 47 48 void main() 49 { 50 unsigned char i; 51 TMOD=0x01;//工作模式,定时器0,定时器 52 TH0=(0xffff-50000)/0xff; 53 TL0=(0xfffff-50000)%0xff; 54 55 we=1; 56 P0=0xfe; 57 we=0; 58 while(1) 59 { 60 unsigned char num; 61 if(TF0==1) 62 { 63 TH0=(0xffff-50000)/0xff; 64 TL0=(0xfffff-50000)%0xff; 65 TF0=0; 66 i++; 67 } 68 if(i==20) 69 { 70 i=0; 71 num++; 72 } 73 if(num==10) 74 { 75 num=0; 76 } 77 du=1; 78 P0=leddata[num]; 79 du=0; 80 if(key_s2==0) 81 { 82 delay(5); 83 if(key_s2==0) 84 { 85 TR0=1;//启动定时器 86 } 87 while(!key_s2); 88 } 89 if(key_s3==0) 90 { 91 delay(5); 92 if(key_s3==0) 93 { 94 TR0=0;//关闭定时器 95 } 96 while(!key_s3); 97 } 98 if(key_s4==0) 99 { 100 delay(5); 101 if(key_s4==0) 102 { 103 P1=0; 104 delay(5); 105 } 106 while(!key_s4); 107 } 108 if(key_s5==0) 109 { 110 delay(5); 111 if(key_s5==0) 112 { 113 P1=0xff; 114 } 115 while(!key_s5); 116 } 117 } 118 119 120 }
一个二次元的生物

浙公网安备 33010602011771号