#include "reg52.h" #include<intrins.h> void delay(int i) { while(i--); } void main() { char i; led=0xfe; delay(50000); while(1) { for(i=0;i<7;i++) { P2=_crol_(P2,1); delay(50000); } for(i=0;i<7;i++) { P2=_crled_(P2,1); delay(50000); } } }
1 #include "reg52.h" 2 sbit LSA=P2^2; 3 sbit LSB=P2^3; 4 sbit LSC=P2^4; 5 u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 6 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值 7 void delay(int i) 8 { 9 while(i--); 10 } 11 void DigDisplay() 12 { 13 char i; 14 for(i=0;i<8;i++) 15 { 16 switch(i) //位选,选择点亮的数码管, 17 { 18 case(0): 19 LSA=0;LSB=0;LSC=0; break;//显示第0位 20 case(1): 21 LSA=1;LSB=0;LSC=0; break;//显示第1位 22 case(2): 23 LSA=0;LSB=1;LSC=0; break;//显示第2位 24 case(3): 25 LSA=1;LSB=1;LSC=0; break;//显示第3位 26 case(4): 27 LSA=0;LSB=0;LSC=1; break;//显示第4位 28 case(5): 29 LSA=1;LSB=0;LSC=1; break;//显示第5位 30 case(6): 31 LSA=0;LSB=1;LSC=1; break;//显示第6位 32 case(7): 33 LSA=1;LSB=1;LSC=1; break;//显示第7位 34 } 35 P0=smgduan[i];//发送段码 36 delay(100); //间隔一段时间扫描 37 P0=0x00;//消隐 38 } 39 } 40 41 void main() 42 { 43 while(1) 44 { 45 DigDisplay(); //数码管显示函数 46 } 47 }
原文地址:https://www.cnblogs.com/mawenqi-barry/p/9789088.html
时间: 2024-11-08 23:55:17