
你的标号有问题!!!
你上面是:LJMP INT_0
你下面是:INT0_
这时汇编器会略过上面的INT_0的标记,所在提示警句,但是实际使用时是不会进入中断的因为你下面的标记与上面的不一样
你还需要细心点,不过一般这种情况你慢慢会习惯,因为标记错了一般都是警句,而语法错了都是错误
交通路口红绿灯自动控制器电路图 如图所示为交通路口红绿灯自动控制电路。该控制器主要由四块555(IC2~IC5)和一些阻容元件组成的四级单稳态延时电路首尾相连而成。输入的8V电压经78M05稳压后为555提供VDD=+5V的电源电压。 当刚接通电源时,触发脉冲经IC1(CD4011)门电路和R1、C1延时,再经C2、R22微分后加到IC2②脚,触发IC2输出高电平,进入暂稳态,其暂稳态定时时间长短取决于K1的位置,延时td=11RC6,设定时间分别为60秒、45秒、30秒。暂稳态结束时,IC2③脚为低电平,其经C3、R23微分后,下降沿又触发IC3,形成第二级单稳态延时。如此依次触发定时,完成绿色灯亮-**灯亮(8秒、10秒、12秒)-红色灯亮(60秒、45秒、30秒)的循环周期。 本控制器通过四级电路首尾相接,依次延时触发,使交通灯依次出现绿-黄-红(色)信号,指挥行人和车辆在十字路I=1有秩序地通行(绿)-提醒注意(黄)-禁止通行(红)。 看看这个有用吗?
试试看:
//定时器控制//
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
if(aa == 10) { //如果到了05s
aa = 0;
num--;
if(num <= 6) D1 = ~D1; //黄灯闪烁
else if(num == 0) {
D1 = 1; //关闭黄灯
D2 = 0; //打开红灯
D3 = 1; //关闭绿灯
num = 80; //开始40s倒计时
}
else if(num <= 40) { //到了20s
D1 = 1; //关闭黄灯
D2 = 1; //关闭红灯
D3 = 0; //打开绿灯
}
}
}
这个实现起来应该不难。我就写一下while大循环里面的函数吧
r1=1;y1=0;b1=0;
r2=1;y2=0;b2=0;
delay(1);
r1=0;y1=0;b1=1;
r2=1;y2=0;b2=0;
delay(45);
r1=0;y1=1;b1=0;
r2=1;y2=0;b2=0;
delay(3);
关于r1……b2的位定义我就不多说了,具体要看你的设计图,delay延迟函数自己写吧,主要是这个思想。
以上就是关于单片机51交通灯程序,运行第五行 LJMP INT_0 外部中断.asm(5): error A45: UNDEFINED SYMBOL (PASS-2)全部的内容,包括:单片机51交通灯程序,运行第五行 LJMP INT_0 外部中断.asm(5): error A45: UNDEFINED SYMBOL (PASS-2)、用51单片机制作红绿灯,要求按键能控制整个电路的启动和停止,用汇编语言怎么编写程序、51单片机交通灯电路程序遇到问题,麻烦高手解答!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)