汇编一个简单的LED灯闪烁TIME延时问题
时间:10-02
整理:3721RD
点击:
烧录后,LED灯先是很快的闪了一会,然后按一定时间间隔不停闪下去,
我的问题是:
1. 一开始,为什么LED灯会很快的闪一会,然后慢下来,按间隔闪下去?
2. 这个间隔是我设置的60-70ms吗?
3. 我把两个TR0改成TR1,TF0改成TF1,就是改成TIMER1工作,模式还是1,为什么现象是很快的一直闪下去?
谢谢各位了!
呃…
中断不是这样用的吧。
你应该看看中断入口问题。
主函数一般会先转跳到30H以后,如果我没记错T0入口在0BH,T1在1BH。好久没用汇编写程序了记不清了。如果对程序延迟要求不高,还是用c方便。学汇编只是为了了解单片机的工作原理
虽然我不太清楚 至少书本上的确是这样说的 00 是复位入口 之后是预设的各种中断的入口 这段中断向量入口即便不用中断也不能随便占用 一般情况下 个个中断向量入口放的都是ljmp 之类的跳转程序 。
org0000h
ljmp 100h
org 中断入口
ljmp 。
首先程序的起始地址要改,查51的中断入口地址,或者直接把起始地址改为0100H。按你现在的程序的做法,找到定时器的中断入口地址,在那里加一个RETI。主程序应该是一个死循环,在这里应该是在SETB P2.0后加一个CALL TIME_DELAY和SJMP MAIN。在启动定时器之前就是SETB TR0之前要初始化TH0和TL0的值,可能还需要在CLR TR0后加CLR TF0