完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 cxa281 于 2013-4-22 18:25 编辑
#include #define uchar unsigned char #define uint unsigned int ***it dula=P2^6; ***it d1=P1^0; ***it wela=P2^7; uchar num,tt; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x77, 0x7c,0x39,0x5e,0x79,0x71}; //void delay(uint ); void main() { tt=0; TMOD=0X01; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1;// 开总中断 ET1=1;//开中断定时器1中断 TR1=1;//启动零定时器1 wela=1; P0=0xfe;//第一个数码管亮 wela=0; while(1) { if(tt==20) {tt=0; num++; dula=1; d1=~d1; if(num>15) num=0; P0=table[num]; dula=0; } } } void T1_time() interrupt 3 { TH1=(65536-50000)/256; TL1=(65536-50000)%256; tt++; } 大家帮忙看一下,那里错了,中断时间不对啊。我定时1s,可是实际效果很快,0.几秒。如果TMOD=0X01;改为TMOD=0X11;时间时间变得正常。不能理解为什么这么改,,我用的是tx—c的板。高手望指教 |
|
相关推荐
14个回答
|
|
你用的是什么晶振,确实是12m?
|
|
|
|
兄弟,你自己算的时候是整数吗?肯定会有误差的啊,要不然还有时钟芯片出现?
|
|
|
|
|
|
|
|
但是误差很大,感觉是一秒与0.1秒的时间差别, |
|
|
|
唉,冲你的头像回复你,你的问题
1,TMOD这个寄存器是什么?你没搞懂 2,你自己说说你用的定时器1还是定时器0? 3,有个问题你考虑没有,数码管动态显示时间在你定时的1S内吗? |
|
|
|
|
|
|
|
定时器没有搞懂!有问题,好好看看
|
|
|
|
{:1:}
|
|
|
|
大哥,TMOD=0x01是工作方式为定时器0的方式1啊,你装初值怎么会在TH1和TL1呢,所以你开0x11会变正常,因为0x11是让定时器1和定时器0都工作在方式1了
|
|
|
|
还有,你这么编数码管可能有问题
|
|
|
|
|
|
|
|
感谢啊,你是科密?那个时间是大概一秒,是定时器tmod这里除了问题,改为,tmod=0x10;就行了 |
|
|
|
第三个问题还是不懂,求指出 |
|
|
|
数码管动态显示的时间间隔要小,否则会闪烁
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
238 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
629 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
552 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
552 浏览 0 评论
1074 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11764 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 01:55 , Processed in 0.765464 second(s), Total 66, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号