熱門(mén): 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2019-11-25 12:32
正文摘要:我定時(shí)50MS,數(shù)碼管顯示+1. 但是仿真時(shí),延遲函數(shù)卻沒(méi)有用上,這是怎么回事呢?#include <reg51.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int sbit WE=P2^0; sbit DU= ... |
發(fā)現(xiàn)問(wèn)題了,display()沒(méi)有加變量 i,所以沒(méi)有效果。uchar i 也應(yīng)該改成 uint i。不然超過(guò)256就不加了 。。問(wèn)題終結(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; 后面寫(xiě)了,但是依然沒(méi)有用。 定時(shí)器不延遲,只有delay才有延遲效果。 |
void timer0_init() { TMOD=0x01; TL0=(65536-2000)%256; TH0=(65536-2000)/256; TF0=0; TR0=1; } 這段函數(shù)少了兩個(gè),一個(gè)是函數(shù)名后面還要跟一個(gè) interrupt 0 ,還有一個(gè)是函數(shù)體里沒(méi)有EA=1 打開(kāi)總開(kāi) |
wulin 發(fā)表于 2019-11-25 15:36 我這么寫(xiě)的原因是因?yàn)橄胍?個(gè)數(shù)碼管顯示個(gè)位,隨后顯示10位的時(shí)候才會(huì)打開(kāi)第二個(gè)數(shù)碼管。直到千位的時(shí)候才會(huì)全部打開(kāi)4個(gè)數(shù)碼管。 我也初學(xué)者,自己琢磨著搞 ![]() |
動(dòng)態(tài)數(shù)碼管顯示不能像你這樣寫(xiě),定時(shí)時(shí)間太長(zhǎng)了,會(huì)出錯(cuò)。給你改了。
|
總中斷沒(méi)打開(kāi),初始化那里沒(méi)看到有 |
EA 沒(méi)打開(kāi)吧! |
Powered by 單片機(jī)教程網(wǎng)