![]() |
發布時間: 2021-12-5 17:00
正文摘要:在做動態數碼管顯示程序的時候,發現顯示的字符一直不對,開始測試P3的各個IO口,發現賦值P3=0xFF后,單獨測試各個IO口的電平(通過跳線一段連LED燈,另一端連P3的各個IO口),發現P3_5接 ... |
本帖最后由 188610329 于 2021-12-6 02:17 編輯 天賦異稟 發表于 2021-12-5 23:06 有可能是哪里碰線,導致被拉低,也有可能是鎖緊座接觸不良,你有什錦銼刀的話,取出芯片后,用什錦銼刀在夾P35引腳槽里打磨以下,再測試,如果好了,就一直01 01 01 01 01 了 |
我剛又用串口工具測試了一下,下面的程序當我給出P3_5=1,串口接收到的數據是01 01 01 00 00 00這樣一直循環,但如果是P3_0接口就沒有問題,這是硬件出問題了嗎?還是設置的問題? [code]#include <REGX52.H> void UartInit(void) //4800bps@12.000MHz { PCON |= 0x80; //使能波特率倍速位SMOD SCON = 0x50; //8位數據,可變波特率 0101 0000 TMOD &= 0x0F; //設置定時器模式 TMOD |= 0x20; //設置定時器模式 TL1 = 0xF3; //設置定時初始值 TH1 = 0xF3; //設置定時重載值 ET1 = 0; //禁止定時器%d中斷 TR1 = 1; //定時器1開始計時 EA = 1; //允許中斷 ES = 1; //允許串口中斷 } void Send_Byte(unsigned char Byte) { SBUF=Byte; while(TI==0); TI=0; } main() { UartInit(); while(1) { P3_5=1; Send_Byte(P3_5); } } |
188610329 發表于 2021-12-5 17:19 不是直接接的LED,是通過74HC573接的,其他IO口能正常輸出驅動LED燈的,就這個接口有問題。 |
單說你這句話:P3都拉高的前提下,還是有個口是低電平的話,那就是你硬件有問題了。剩下的話沒仔細看。 |
P3_5接口瓦特了![]() |
你要測P3輸出,就要 P3 = 0xff 之后 用萬用表電壓檔,黑表筆接GND 紅表筆測量 P3 每個IO的電壓, 單片機IO正常輸出只有幾十uA 你用LED測量能量出啥? |