我们要实现的功能是什么呢?
从 第一个数码管扫描 1 到第二个数码管 2 ,第三个数码管 3,。。。。。。。一直到 第8个数码管 显示8
1 /*--------------www.szjcdz.cn-------------------- 2 名称:数码管动态扫描 3 编写:shenhui 4 日期:2015.10.28 5 内容:数码管动态扫描 6 ------------------------------------------------*/ 7 #include<reg52.h> 8 #define uchar8 unsigned char 9 #define uint16 unsigned int 10 sbit LATCH1=P2^6; 11 sbit LATCH2=P2^7; 12 void display( ); 13 14 uchar8 code DuanMa[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};// 显示段码值0~F 15 uchar8 code WeiMa[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};//分别对应相应的数码管点亮,即位码 16 17 uchar8 Template; // 存储显示值的全局变量 18 19 // 延时函数 20 void DelayMS(uint16 val) 21 { 22 uint16 i,j; 23 for(i=0;i<val;i++) 24 for(j=0;j<113;j++); 25 26 } 27 28 29 //*******************************主函数*******************************// 30 void main(void) 31 { 32 37 38 39 display( ); 40 41 42 43 44 } 45 46 47 48 void display( void ) 49 { 50 uint16 i; 51 while(1) 52 { 53 54 for(i=0;i<8;i++) 55 { 56 P0=0; 57 LATCH1=1; 58 LATCH1=0; 59 60 61 P0=WeiMa[7-i]; 62 LATCH2=1; 63 LATCH2=0; 64 65 66 P0=DuanMa[i]; 67 LATCH1=1; 68 LATCH1=0; 69 70 DelayMS(200); 71 72 } 73 74 } 75 76 77 }
时间: 2024-12-22 12:07:35