单片机C语言用定时器1工作方式1肿么写

已举报 回答
单片机C语言用定时器1工作方式1肿么写
问在线客服
扫码问在线客服
  • 回答数

    8

  • 浏览数

    3,115

8个回答 默认排序
  • 默认排序
  • 按时间排序

已采纳
#includereg52.h#define uint unsigned int#define uchar unsigned charuchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uint i,num;void main(){ i=0; num=0; TMOD=0x10;//设置定时器1为工作方式1 【查看TMOD每一位的含义,你就知道怎么设置了】 EA=1; //开总中断 ET1=1; //开定时器1中断 TR1=1; //启动定时器0 TH0=(65536-50000)/256; //定时器0计数初值 高位 TL0=(65536-50000)%256; //定时器0计数初值 低位 P2=0xFE; P0=0xc0; while(1) { if(i==10) { P2=0xff; } if(i==20) { i=0; P2=0xfe; num++; if(num==10) num=0; P0=table[num]; } }}void time() interrupt 1{ TH0=(65536-50000)/256; //计数初值重载 TL0=(65536-50000)%256; i++; }
取消 评论
看有没有设置中断ET1,有没有中断服务程序。
取消 评论
可能是你中断子程序有问题,代码空间存储重叠可能说是入口地址吧,你是用汇编写的程序吧,T0的起始地址是000BH,T1的起始地址是001BH,在起始地址处只能放一条LJMP指令。
取消 评论
查询的话程序中会一直检查标志位。中断的话会有中断服务程序,而且有中断的初始化,比如开总中断,定时器中断,和定时器初值的赋值等。查询和中断还是很好判断的,查询的话可以不写EA=1。
取消 评论
如果你的定时器中断有服务函数就要开启总中断。否则不能进入服务函数。你说的查询和中断应该是I/O口吧?要是有外部中断,也要把外部中断控制寄存器打开。
取消 评论
查你的说明书啊
取消 评论
记住不要动不动就跪求。。。。跪天跪地跪父母你还想跪谁?是吧
这个我可以帮你,加q吧1320249827记住写明来意
步行者===电子单片机团
取消 评论
你给的程序,就是方式1,不过用的是定时器0,用定时器1的话,把TH0,TL0改成TH1,TL1就可以了啊。
取消 评论
ZOL问答 > 单片机C语言用定时器1工作方式1肿么写

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?