![]() |
用我的數(shù)碼管驅(qū)動(dòng)絕對不會(huì)有任何問題存在,唯有段值陰陽區(qū)別,取反即可,看我帖子。 |
shenqiwei 發(fā)表于 2022-8-31 00:15 樓主抄書的,消隱代碼錯(cuò)誤,按圖例改碼。 ![]() |
走單步,自己一步步的調(diào)試,看看問題出在哪了,要學(xué)會(huì)自己調(diào)試程序。 |
本帖最后由 名字不是重點(diǎn) 于 2022-8-31 06:45 編輯 上一貼已說過了: 573的OE被接地了,沒有消隱,沒有消隱,沒有消隱。! 咋就不聽不做呢??? 我?guī)湍阏{(diào)試好了,你可以直接用。 ![]() ////打字太辛苦,畫圖更難受 #include <reg51.h> #include <stdio.h> #include <intrins.h> sbit d1=P2^0; //鎖存段碼 sbit d2=P2^1; // 鎖存位選 unsigned char dis_buf[8]; //顯示緩存 unsigned char dig; //位選 unsigned code segout[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0--9共陽段碼表 void disp_8_num(void); //顯示函數(shù) void main(void) //主程序 { unsigned char i; while (1) //主循環(huán) { for(i=0;i<8;i++) dis_buf=i; //緩存刷新:01234567 disp_8_num(); //顯示一幀 } } void disp_8_num() //顯示函數(shù),顯示8個(gè)數(shù)字 { unsigned char i,j; dig=0xfe; //從第一位開始掃顯 for (i=0;i<8;i++) //共8個(gè)位的數(shù)碼管 { P0=segout[dis_buf]; //送段碼 d1=1; d1=0; P0=dig; //送位碼 d2=1; d2=0; j=60; //簡單延時(shí),以穩(wěn)定顯示 while(j--); P0=0xff; //消隱位碼,段碼和位碼2選1或全選都可以 d2=1; d2=0; P0=0x00; //消隱段碼 d1=1; d1=0; dig= _crol_(dig,1); //準(zhǔn)備下一位的位碼 } } |
不知道什么問題,查不出來 |
Powered by 單片機(jī)教程網(wǎng)