![]() |
發布時間: 2020-5-25 10:06
正文摘要:#include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int uchar hanzi[9][8]={ &nb ... |
xuyaqi 發表于 2020-5-25 11:31 #include<reg52.h> typedef unsigned char u8; typedef unsigned int u16; hanzi[]={0xC3,0xc3,0xc3,0xc3,0x42,0x42,0x24,0x24}; // lie[] ={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void main() { while(1) { u8 i; u16 j; for(i=0;i<8;i++) { /* for(j=0;j<500;j++)*/ P1=~lie[ i];//位選 P0=hanzi[ i];//段選 } } } 不行 用仿真直接全亮 我加個延遲循環 也是一閃一閃的 顯示內容也不對 仿真不行 |
wulin 發表于 2020-5-25 10:48 哦哦 我又對著書寫一遍一摸一樣的程序 還是有問題 就感覺很奇怪 現在知道了 多謝 |
用 P0 P1 口點亮 8x8 led點陣 /* 用 P0 P1 口點亮 8x8 led點陣 P1 位選 P0 段選 */ #include<reg52.h> typedef unsigned char u8; typedef unsigned int u16; hanzi[]={0xC3,0xc3,0xc3,0xc3,0x42,0x42,0x24,0x24}; // lie[] ={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void main() { while(1) { u8 i; for(i=0;i<8;i++) { P1=~lie[i];//位選 P0=hanzi[i];//段選 } } } |
這是仿真軟件的缺陷,不是程序問題,高速動態掃描無法得到預想效果。 |
74HC595是一個8位串行輸入、并行輸出的位移緩存器:并行輸出為三態輸出。在SCK 的上升沿,串行數據由SDL輸入到內部的8位位移緩存器,并由Q7'輸出,而并行輸出則是在LCK的上升沿將在8位位移緩存器的數據存入到8位并行輸出緩存器。當串行數據輸入端OE的控制信號為低使能時,并行輸出端的輸出值等于并行輸出緩存器所存儲的值。 所以595在沒有新的數據刷新時可以保持的 ![]() |