完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
void Inittimer0(void); unsigned int code LedChar[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e }; void main() { unsigned int sec = 0; while(1) { if(sec<=16) { P0=LedChar[sec]; InitTimer0(); sec++; } else { sec=0; } } } void InitTimer0(void) { TMOD = 0x01; TH0 = 0x0FC; TL0 = 0x18; TR0 = 1; } 为什么我的数码管一直都是停在8这个数字上没有变动? |
|
相关推荐
12个回答
|
|
延时有问题,把void InitTimer0(void)改成:
void delay(uint16 x) { uint16 i,j; for(i = x; i > 0; i --) for(j = 114; j > 0; j --); } 调用这个延时就可以啦。 |
|
|
|
程序逻辑不对
|
|
|
|
|
|
|
|
你确定时间在走?多长时间走一次嫩
|
|
|
|
没有开定时器中断和总中断
|
|
|
|
|
|
|
|
如果您是问SEC在哪加一的话,SEC不是已经在一开始就初始化为0了吗,那肯定是从0开始加1
unsigned int sec = 0 如果您是问TH0在哪加一的话,TH0在0X0FC加一 TH0 = 0x0FC; TL0 = 0x18; 这样子有什么问题吗?至于为什么没有中断那是因为我还没学到中断,现在只学到如何使用定时器而已;另外你说的"初始化函数不用调用多次",我不是很懂,能说具体的吗?拜托了! 注:我这个是单个数码管静态显示,要求使用定时器每个数延时一秒显示。 |
|
|
|
主程序改一下
void main() { unsigned int sec = 0; InitTimer0(); while(1) { if(sec<=16) { P0=LedChar[sec]; sec++; } else { sec=0; } } } |
|
|
|
我不是很懂为什么 InitTimer0();放在unsigned int sec = 0;下面,按道理来讲函数不应该是执行到哪一步了,需要在那一步使用的时候才进行调用的吗?
|
|
|
|
问题有多处。其一,LedChar[sec],当sec为16时超界了,会得到意想不到的结果;其二,没有定时中断函数,而且TMOD=0x01时,是用的16位计数,这种模式需要在中断函数中重新设置载入值的,不然会从0开始计时;其三,允许中断的EA=1,ET0=1要打开。其四,你的这个值应该是1ms计数一次。
|
|
|
|
本帖最后由 fair2017 于 2019-1-18 19:04 编辑
#include void InitTimer0(void); unsigned int code LedChar[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e }; unsigned int sec = 0; unsigned int count_num=0; void main() { InitTimer0(); while(1); } void InitTimer0(void) { TMOD = 0x01; TH0 = 0x0FC; TL0 = 0x18; ET0=1; EA=1; TR0 = 1; } void fun_int(void) interrupt 1 { TH0 = 0x0FC; TL0 = 0x18; count_num++; if(count_num==1000) //1s一次 { count_num=0; P0=LedChar[sec]; sec++; if(sec>15) sec=0; } } 试试这个 |
|
|
|
这程序写的,再学一下定时器怎么用的。楼上程序可以。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
308 浏览 0 评论
431 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第三十四章 image图像滤波实验
372 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】简介、环境搭建、工程测试
395 浏览 0 评论
730 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11624 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-7 05:30 , Processed in 0.827830 second(s), Total 63, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号