![]() |
發(fā)布時間: 2019-11-25 12:32
正文摘要:我定時50MS,數(shù)碼管顯示+1. 但是仿真時,延遲函數(shù)卻沒有用上,這是怎么回事呢?#include <reg51.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int sbit WE=P2^0; sbit DU= ... |
發(fā)現(xiàn)問題了,display()沒有加變量 i,所以沒有效果。uchar i 也應(yīng)該改成 uint i。不然超過256就不加了 。。問題終結(jié)。謝謝各位大佬。 |
void timer0_init() interrupt 0 { TMOD=0x01; TL0=(65536-50000)%256; TH0=(65536-50000)/256; TR0=1; EA=1; ET0=1; } |
void timer0_init() { TMOD=0x01; TL0=(65536-50000)%256; TH0=(65536-50000)/256; TR0=1; EA=1; ET0=1; } |
luozhao 發(fā)表于 2019-11-25 15:20 我EA=1; 后面寫了,但是依然沒有用。 定時器不延遲,只有delay才有延遲效果。 |
void timer0_init() { TMOD=0x01; TL0=(65536-2000)%256; TH0=(65536-2000)/256; TF0=0; TR0=1; } 這段函數(shù)少了兩個,一個是函數(shù)名后面還要跟一個 interrupt 0 ,還有一個是函數(shù)體里沒有EA=1 打開總開 |
wulin 發(fā)表于 2019-11-25 15:36 我這么寫的原因是因為想要1個數(shù)碼管顯示個位,隨后顯示10位的時候才會打開第二個數(shù)碼管。直到千位的時候才會全部打開4個數(shù)碼管。 我也初學(xué)者,自己琢磨著搞 ![]() |
動態(tài)數(shù)碼管顯示不能像你這樣寫,定時時間太長了,會出錯。給你改了。
|
總中斷沒打開,初始化那里沒看到有 |
EA 沒打開吧! |
Powered by 單片機教程網(wǎng)