|
另附pcb与原理图
没有找出原因来,程序写进去数码管cdg这几段不亮。
然后发送段码是P1口的0到5还剩2个口是P42和P43。
程序
- #define MAIN_Fosc 11059200L //定义主时钟
- #include "15W4KxxS4.H"
- #define u8 unsigned char
- #define u16 unsigned int
- sbit A=P2^5;
- sbit S=P2^6;
- sbit C=P2^7;
- u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
- void delay(u16 i)
- {
- while(i--);
- }
- void DigDisplay()
- {
- u8 i;
- for(i=0;i<8;i++)
- {
- switch(i) //位选,选择点亮的数码管,
- {
- case(0):
- A=1;S=1;C=1; break;//显示第0位
- case(1):
- A=0;S=1;C=1; break;//显示第1位
- case(2):
- A=1;S=0;C=1; break;//显示第2位
- case(3):
- A=0;S=0;C=1; break;//显示第3位
- case(4):
- A=1;S=1;C=0; break;//显示第4位
- case(5):
- A=0;S=1;C=0; break;//显示第5位
- case(6):
- A=1;S=0;C=0; break;//显示第6位
- case(7):
- A=0;S=0;C=0; break;//显示第7位
- }
- P1=smgduan[ i];//发送段码
- delay(100); //间隔一段时间扫描
- P1=0x00;//消隐
- }
- }
- mian()
- {
- P2M1=0X1F; P2M0=0X1F;
- while(1)
- {
- DigDisplay(); //数码管显示函数
- }
- }
复制代码
数码管0到7
- #define MAIN_Fosc 11059200L //定义主时钟
- #include "15W4KxxS4.H"
- #define u8 unsigned char
- #define u16 unsigned int
- //#define P4 0X0C
- sbit A=P2^5;
- sbit S=P2^6;
- sbit C=P2^7;
- //#define P42 P16
- //#define P43 P17
- sbit H=P4^2;
- sbit D=P4^3; //点
- // 4 5 6 7 0 1 2 3
- u8 code smgduan[8]={0x66,0x6d,0x7d,0x07,0x3f,0x06,0x5b,0x4f};
-
- u16 code smgd[8]={0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01};
- void delay(u16 i)
- {
- while(i--);
- }
- void DigDisplay()
- {
- u8 i;
- for(i=0;i<8;i++)
- {
- switch(i) //位选,选择点亮的数码管,
- {
- case(0):
- A=1;S=1;C=1; break;//显示第0位 从左往右进制计算7
- case(1):
- A=0;S=1;C=1; break;//显示第1位 6
- case(2):
- A=1;S=0;C=1; break;//显示第2位 5
- case(3):
- A=0;S=0;C=1; break;//显示第3位 4
- case(4):
- A=1;S=1;C=0; break;//显示第4位 3
- case(5):
- A=0;S=1;C=0; break;//显示第5位 2
- case(6):
- A=1;S=0;C=0; break;//显示第6位 1
- case(7):
- A=0;S=0;C=0; break;//显示第7位 0
- }
-
- P1=smgduan[i];//发送段码
- H=smgd[i];
- delay(100); //间隔一段时间扫描
- P1=0x00;//消隐、
- H=0X00;
- }
- }
- main()
- {
- P2M1=0X1F; P2M0=0X1F;
- P1M1=0X00; P1M0=0X00;
- P4M1=0X00; P4M0=0X00;
-
- while(1)
- {
- D=0;
-
- //delay(100);
- DigDisplay();
- }
- }
复制代码
|
|