实验目的: 用proteus 在8位数码管上显示 01234567 ,并闪烁。请确认程序哪里有错?
Proteus中,省略了 三极管。应该不影响实验效果。但是 一直显示乱码
- #include<reg52.h>
- #include<intrins.h>
- #define ucharunsigned char
- #define uintunsigned int
- uchar codeLED_DX[]=
- {
- 0xC0, //"0"
- 0xF9, //"1"
- 0xA4, //"2"
- 0xB0, //"3"
- 0x99, //"4"
- 0x92, //"5"
- 0x82, //"6"
- 0xF8, //"7"
- };
- uchar codeLED_WX[]=
- {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
- void DelayMs(uintx)
- {
- uchar i;
- while(x--)
- {
- for(i=120;i>0;i--);
- }
- }
- void main()
- {
-
- uchar m,k;
- P0 = 0xff;
- P2 = 0x00;
- while(1)
- {
- for(k=0;k<8;k++)
- {
- for(m=0;m<8;m++)
- {
- P2 =LED_WX[k];
- P0 =LED_DX[m];
- DelayMs(2);
-
- }
- }
- }
- }
复制代码
|