本人新手,自學51單片機驅動8*8LED點陣屏,遇難題如下:
仿真圖如下:
請問為什么LED點陣屏左上角第一個點不亮,而且斜線錯位,最右下角的點也不亮?
修改數組元素順序為:
unsigned char code led0[]={0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x01};
再仿真OK!如下圖所示:
51hei圖片20200309141359.jpg (382.52 KB, 下載次數: 37)
下載附件
2020-3-9 14:29 上傳
按8*8LED點陣屏顯示原理,不用修改數組元素順序,就能顯示上圖所示“\”圖案,但實際仿真,顯示的是第一幅圖片所示的圖案,請高手賜教為什么?謝謝!
- #include<reg51.h>//單片機頭文件
- void delay1ms(unsigned int ms);//延時ms函數聲明
- unsigned char code led0[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//字碼表(LED屏顯對角斜線“\”)
- void main()//主函數
- {
- unsigned char H,i; //定義變量
- while(1)
- {
- H=0x01; //行變量賦初值
- for(i=0;i<8;i++)//行掃描
- {
- P1=H; //行數據送P1口
- P0=led0[i];//列數據送P0口
- delay1ms(1);//延時1毫秒
- H<<=1; //向下移動一行
- }
- }
- }
- void delay1ms(unsigned int ms)//延時函數
- {
- unsigned int i,j;//定義變量
- for(i=0;i<ms;i++)
- for(j=0;j<110;j++);
- }
復制代碼
|