![]() |
發(fā)布時間: 2019-5-2 21:50
正文摘要:#include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char sbit wea=P2^2; sbit web=P2^3; sbit wec=P2^4; uchar i; uchar code duanma[]={0x3f,0x06,0x5b,0x4f, ... |
你這樣P0完全不能讀到i的值 |
因為你的循環(huán)里面沒有寫延時呀,你直接跳過去了括號里面應該定義 |
#include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char sbit wea=P2^2; sbit web=P2^3; sbit wec=P2^4; uchar i; uchar code duanma[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delay(uint z); void delay(uint z) { while(z--); } void main() { while(1) { P0=0xff; wea=0; web=0; wec=0; for(i=0;i<=15;i++) { P0=duanma[i]; delay(40000); } } } 這是我修正過的,現(xiàn)在可以正常一位數(shù)碼管,0~F循環(huán)顯示,時間delay,里面的可以寫數(shù)值,謝謝大家指點! |
hantu 發(fā)表于 2019-5-3 18:08 是普中的,普中的視頻我看不懂,因為我學歷不高,以前學習又不太好,他們講的我看不懂!我在網(wǎng)上看的電路都是不一樣的! |
謝謝個各位老師,我找到問題了,第一個是你們說的FOR循環(huán)有問題,第二個是delay,這個寫錯了,才報錯,等會晚一點把我寫的,再發(fā)出來看看, |
for循環(huán)那里有問題,思路是對的 |
51go 發(fā)表于 2019-5-3 13:50 測試了一下,還是delay(50000)這個時長比較合適 |
LE應該為高電平 |
看看人家正確的案例吧! |
樓主這個應該是普中的單片機吧 |
江西奉新 發(fā)表于 2019-5-3 13:07 按你的意思這樣寫就可以了,但必須把跳線帽J21插在LE與VCC上,如果插在P10與LE上就可能須加一句P10=1;
|
延時不是空,明明定義delay(int Z),調(diào)用的時候你直接delay(); |
低電平還是高電平? |
還有你主循環(huán)根本就沒用到延時,delay括號里面是空的,就算在顯示也看不出來啊, |
P0=duanma[i];這一段代碼寫在for語句里試試 |
while(1)后面改為for(i=0;i<=15;i++) { P0=duanma[i]; delay(1000); } |
P0=duanma[i]應該放在for(i=0;i<15;i++)循環(huán)語句里面,另外要保持足夠長的延時 |
靜態(tài)顯示.C(114): warning C206: 'delay': missing function-prototype 靜態(tài)顯示.C(114): error C267: 'delay': requires ANSI-style prototype Target not created 提示這個錯誤, |
堂堂 發(fā)表于 2019-5-3 12:44 在delay里加數(shù)會報錯,這也是問題之一 |
ping264888 發(fā)表于 2019-5-3 08:33 我在while里面的delay括號中加數(shù)值會報錯。 |
for循環(huán)有毛病 for(i=o;i<=15;i++); 每次執(zhí)行后i的值不會變。 應該把P0=duanma[i];delay(); 放在for循環(huán)里面 并且添加合適的延時時間。 |
wulin 發(fā)表于 2019-5-3 08:31 老師,我的意思是讓一位數(shù)碼管顯示0~F,但是我寫的,就是顯示0運行不了,我不知道錯在哪,剛學。 |
我也覺得delay太少了,改為50000比較合適,for循環(huán)也有毛病 主循環(huán)可改為 for(i=o;i<=15;i++) { P0=duanma[i]; delay(50000); } |
1) 把對應的電路圖也貼上來方便吧友幫你分析. 2) 我覺得可能你的Delay時間太少了. |
本帖最后由 wulin 于 2019-5-3 10:54 編輯 樓主的本意是想寫3位數(shù)碼管動態(tài)顯示0~F,實際沒有動起來。要想動起來位碼需要隨時間變化,顯示的數(shù)字也要隨時間變化。給你改成了不同數(shù)字的動態(tài)顯示,你試試。
|
Powered by 單片機教程網(wǎng)