导航:首页 > 操作系统 > 单片机交通灯设计条件

单片机交通灯设计条件

发布时间:2022-11-13 21:13:25

单片机做交通灯

硬件电路:使用芯片:89C51、8255、74LS373。采用Protel电路设计软件绘制原理图。
1. 红、绿、黄四个方向共12盏灯,需要12条口线
取8255 PB口 0~3 PC口 0~7(与DVCC仿真机对应,便于调试)
2. 考虑其带负载能力,加总线驱动器74LS244,并加限流电阻,驱动LED。
3. 连接顺序:
①数据线 P0~P7 =D0~D7,
②PB0~PB3 PC0~PC7作为输出口,控制红绿灯,
③A0、A1 地址需要锁存,从74LS373引出,
④要有相应的读写信号,
⑤不考虑地址分配,片选信号直接接地,
⑥RESET脚与89C51同时复位,
程序编制:
1. 任务分析:交通灯每2(4)秒变化一次,基本状态如下表
序号 状态 PB PC
1 4 南北红 东西绿 1000 01100001
2
3 2 东西绿闪 0000 01000001
4 2 东西黄 0100 01010001
5 4 南北绿 东西红 0011 00001100
6
7 2 南北绿闪 0010 00001000
8 2 南北黄 0010 10001010
红绿黄灯对应表
PB3 PB2 PB1 PB0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0
东西绿1 东西黄1 东西红1 南北绿1 南北黄1 南北红1 东西绿2 东西黄2 东西红2 南北绿2 南北黄2 南北红2
2. 设计思路可以是:
a) 设计一个循环执行程序,6种状态顺序执行。
b) 列一个数据表,每变化2秒,顺序取数送出,8次一个循环。
c) 更新的思路。
3. 定时方式建议采用定时器中断,定时器查询,或软件延时。
4. 设计难点:绿灯闪烁处理。
5. 设计注意点:8255必须是送控制字后方可工作。8255口地址 FF28~FF2BH
PA口1000 PB口1001 PC口1010 控制字1011
FF28H FF29H FF2AH FF2BH

⑵ 单片机课程设计的要求 交通灯系统设计

:利用单片机的定时器功能,令十字路口的红绿灯交替点亮和熄灭(用实验箱上的8只发光二极管分成南北、东西两组各4只表示),并且用LED数码管显示时间(实验箱上的8只数码管中,用两端的各2只表示南北、东西两组的计时)
我可以帮你做,提供电路图和源程序

⑶ 利用8051单片机设计一个十字路口交通灯控制器

仿真实例,供参考

⑷ 单片机控制交通灯

ORG 0000H
STA: MOV P0,#11011011B ;干线亮绿灯,支线亮红灯
MOV P2,#0001000B ;选通LED

MOV P3,#11101111B ;K1列线置0
MOV R7,#3
STA1: JB P3.3,$ ;无按键等待
LCALL DELAY30MS ;去抖动
JB P3.3,STA1
JNB P3.3,$ ;等键释放
DJNZ R7,STA1
MOV R6,#200
STA2: LCALL DELAY30MS ;延时30MS
DJNZ R6,STA2 ;延时6秒
MOV P0,#10111011B ;干线亮黄灯,支线亮红灯
MoV R6,#100
STA3: LCALL DELAY30MS
DJNZ R6,STA3 ;延时3秒
MOV P0,#01111110B ;干线亮红灯,支线亮绿灯
MOV R5,#4
STA4: MOV R6,#200
STA5: LCALL DELAY30MS
DJNZ R6,STA5
DJNZ R5,STA4 ;延时24秒
MOV P0,#01111101B ;干线亮绿灯,支线亮黄灯
MOV R6,#100
STA6: LCALL DELAY30MS
DJNZ R6,STA6 ;延时3秒
LJMP STA
DELAY30MS:MOV R4,#55
DELAY:MOV R3,#250
DJNZ R3,$ ;1.085us(指令周期)*2*250+2=547.5us
DJNZ R4,DELAY

⑸ 单片机交通灯的设计

4.2.3 系统工作原理
(1)开关键盘输入交通灯初始时间,通过8051单片机P1输入到系统
(2) 由8051单片机的定时器每秒钟通过P0口向8255的数据口送信息,由8255的PA 口显示红、绿、黄灯的燃亮情况;由8255的PC口显示每个灯的燃亮时间。
(3)8051通过 设置 各个信号等的燃亮时间、通过8031设置,绿、红时间分别为60秒、80秒循环由8051的 P0口向8255的数据口输出。
(4) 通过8051单片机的P3.0位来控制系统是工作或设置初值,当.牌位0就对系统进行初始化,为1系统就开始工作。
(5)红灯倒计时时间,当有车辆闯红灯时,启动蜂鸣器进行报警,3S后然后恢复正常。
(6)增加每次绿灯时间车流量检测的功能,并且通过查询P2.0端口的电平是否为低,开关按下为低电平,双位数码管显示车流量,直到下一次绿灯时间重新记入。
(7)绿灯时间倒计时完毕,重新循环。

5.5.2 程序源代码

ORG 0000H ;主程序的入口地址
LJMP MAIN ;跳转到主程序的开始处
ORG 0003H ;外部中断0的中断程序入口地址
ORG 000BH ;定时器0的中断程序入口地址
LJMP T0_INT ;跳转到中断服务程序处
ORG 0013H ;外部中断1的中断程序入口地址
MAIN : MOV SP,#50H
MOV IE,#8EH ;CPU开中断,允许T0中断,T1中断和外部中断1中断
MOV TMOD,#51H ;设置T1为计数方式,T0为定时方式,且都工作于模式1
MOV TH1,#00H ;T1计数器清零
MOV TL1,#00H
SETB TR1 ;启动T1计时器
SETB EX1 ;允许INT1中断
SETB IT1 ;选择边沿触发方式
MOV DPTR ,#0003H
MOV A, #80H ;给8255赋初值,8255工作于方式0
MOVX @DPTR, A
AGAIN: JB P3.1,N0 ;判断是否要设定东西方向红绿灯时间的初值,若P3.1为1 则跳转
MOV A,P1
JB P1.7,RED ;判断P1.7是否为1,若为1则设定红灯时间,否则设定绿灯时间
MOV R0,#00H ;R0清零
MOV R0,A ;存入东西方向绿灯初始时间
MOV R3,A
LCALL DISP1
LCALL DELAY
AJMP AGAIN
RED: MOV A,P1
ANL A,#7FH ;P1.7置0
MOV R7,#00H ;R7清零
MOV R7,A ;存入东西方向红灯初始时间
MOV R3,A
LCALL DISP1
LCALL DELAY
AJMP AGAIN
;-------------------------------------------
N0: SETB TR0 ;启动T0计时器
MOV 76H,R7 ;红灯时间存入76H
N00: MOV A,76H ;东西方向禁止,南北方向通行
MOV R3,A
MOV DPTR,#0000H ;置8255A口,东西方向红灯亮,南北方向绿灯亮
MOV A,#0DDH
MOVX @DPTR, A
N01: JB P2.0,B0
N02: SETB P3.0
CJNE R3,#00H,N01 ;比较R3中的值是否为0,不为0转到当前指令处执行
;------黄灯闪烁5秒程序------
N1: SETB P3.0
MOV R3,#05H
MOV DPTR,#0000H ;置8255A口,东西,南北方向黄灯亮
MOV A,#0D4H
MOVX @DPTR,A
N11: MOV R4,#00H
N12: CJNE R4,#7DH,$ ;黄灯持续亮0.5秒
N13: MOV DPTR,#0000H ; 置8255A口,南北方向黄灯灭
MOV A,#0DDH
MOVX @DPTR,A
N14: MOV R4,#00H
CJNE R4,#7DH,$ ;黄灯持续灭0.5秒
CJNE R3,#00H,N1 ;闪烁时间达5秒则退出
;------------------------------------------------------------
N2: MOV R7,#00H
MOV A,R0 ;东西通行,南北禁止
MOV R3,A
MOV DPTR,#0000H ; 置8255A口,东西方向绿灯亮,南北方向红灯亮
MOV A,#0EBH
MOVX @DPTR,A
N21: JB P2.0,T03

N22: CJNE R3,#00H,N21
;------黄灯闪烁5秒程序------
N3: MOV R3,#05H
MOV DPTR,#0000H ;置8255A口,东西,南北方向黄灯亮
MOV A,#0E2H
MOVX @DPTR,A
N31: MOV R4,#00H
CJNE R4,#7DH,$ ;黄灯持续亮0.5秒
N32: MOV DPTR,#0000H ; 置8255A口,南北方向黄灯灭
MOV A,#0EBH
MOVX @DPTR,A
N33: MOV R4,#00H
CJNE R4,#7DH,$ ;黄灯持续灭0.5秒
CJNE R3,#00H,N3 ;闪烁时间达5秒则退出
SJMP N00
;------闯红灯报警程序------
B0: MOV R2,#03H ;报警持续时间3秒
B01: MOV A,R3
JZ N1 ;若倒计时完毕,不再报警
CLR P3.0 ;报警
CJNE R2,#00H,B01 ;判断3秒是否结束
SJMP N02
;------1秒延时子程序-------
N7: RETI
T0_INT:MOV TL0,#9AH ;给定时器T0送定时10ms的初值
MOV TH0,#0F1H
INC R4
INC R5
CJNE R5,#0FAH,T01 ;判断延时是否够一秒,不够则调用显示子程序
MOV R5,#00H ;R5清零
DEC R3 ;倒计时初值减一
DEC R2 ;报警初值减一
T01: ACALL DISP ;调用显示子程序
RETI ;中断返回
;------显示子程序------
DISP: JNB P2.4,T02
DISP1: MOV B,#0AH
MOV A,R3 ;R3中值二转十显示转换
DIV AB
MOV 79H,A
MOV 7AH,B
DIS: MOV A,79H ;显示十位
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#0002H
MOVX @DPTR,A
MOV DPTR,#0001H
MOV A,#0F7H
MOVX @DPTR,A
LCALL DELAY
DS2: MOV A,7AH ;显示个位
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#0002H
MOVX @DPTR,A
MOV DPTR,#0001H
MOV A,#0FBH
MOVX @DPTR,A
RET
;------东西方向车流量检测程序------
T03: MOV A,R3
SUBB A,#00H ;若绿灯倒计时完毕,不再检测车流量
JZ N3
JB P2.0,T03
INC R7
CJNE R7,#64H,E1
MOV R7,#00H ;中断到100次则清零
E1: SJMP N22
;------东西方向车流量显示程序------
T02: MOV B,#0AH
MOV A,R7 ;R7中值二转十显示转换
DIV AB
MOV 79H,A
MOV 7AH,B
DIS3: MOV A,79H ;显示十位
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#0002H
MOVX @DPTR,A
MOV DPTR,#0001H
MOV A,#0F7H
MOVX @DPTR,A
LCALL DELAY
DS4: MOV A,7AH ;显示个位
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#0002H
MOVX @DPTR,A
MOV DPTR,#0001H
MOV A,#0FBH
MOVX @DPTR,A
LJMP N7
;------延时4MS子程序----------
DELAY: MOV R1,#0AH
LOOP: MOV R6,#64H
NOP
LOOP1: DJNZ R6,LOOP1
DJNZ R1,LOOP
RET
;------字符表------
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END

⑹ 交通灯的单片机设计

哥们啊你是不是做毕业设计啊,那还不自己好好做啊,这个作出来很有用啊,这个既不需要扩展口,真的很简单啊,好好做吧,给你个图看看吧,基本上就是这个电路就行了啊

程序也很简单,用定时器就好了啊,中断也用的到,加油啦,支持你,Myfriends!!!(这个图中用了8个LED,做交通灯再加上4个就行了,口也够)

⑺ 基于51单片机的红绿灯设计

ORG 0000H
MOV DPTR ,#0B00H ;选中8155的命令寄存器,P2.2接CE端,p2.1接I/O
MOV A,#01H ;命令寄存器设为01H=000000001B D0=1A口输出,D1=0B口输入
MOVX @DPTR,A
LOOP :MOV DPTR,#0B01H
LED0:MOV A,#0FFH ;第一组灯点亮
MOVX @DPTR,A
MOV R4,#09H
LOOP0:ACALL DELAY
DJNZ R4,LOOP0
MOV A,#11011110B
MOVX @DPTR,A
ACALL DELAY
ACALL DELAY
ACALL DELAY
LED1:ACALL DELAY ;第二组灯点亮
MOV A,#11101101B
MOVX @DPTR,A
ACALL DELAY
MOV A,#0FFH
MOVX @DPTR,A
ACALL DELAY
MOV A,#11101101B
MOVX @DPTR,A
ACALL DELAY
MOV A,#0FFH
MOVX @DPTR,A
ACALL DELAY
MOV A,#11101101B
MOVX @DPTR,A
ACALL DELAY

LED2:MOV R5,#09H ;第三组灯点亮
LOOP1:ACALL DELAY
DJNZ R5,LOOP1
MOV A,#11110011B
MOVX @DPTR,A
ACALL DELAY
ACALL DELAY
ACALL DELAY
SJMP LOOP
DELAY:MOV R3,#02H
LOP3:MOV R1,#85H
LOP1:MOV R2,#0FAH
LOP2:DJNZ R2,LOP2
DJNZ R1,LOP1
DJNZ R3,LOP3
RET
END

⑻ 单片机课程设计:交通灯控制!

我给你发一个看看,是protues的仿真电路图,可以运行看效果,还有keil的汇编程序,有邮箱给你发去
我给你发了啊!!!下边是程序:
org 0000h
sjmp main
org 0030h
main: mov p0,#11101110b
acall del1
acall del1
acall del1
acall mmm
mov p0,#11011011b
acall del1
acall del1
mov p0,#11110101b
lcall del1
acall del1
acall del1
acall mmm
sjmp main
del1:mov r0,#0ffh
loop1:mov r1,#0ffh
loop2:djnz r1,loop2
djnz r0,loop1
ret
mmm:mov p1,#0ffh
mov p2,#0ffh
mov r3,#02h
mmm2:mov p1,r3
mov r2,#09h
mmm1:mov p2,r2
acall del1
acall del1
djnz r2,mmm1
djnz r3,mmm2
mov p1,r3
mov r2,#09h
mmm3: mov p2,r2
acall del1
acall del1
djnz r2,mmm3
ret
end

⑼ 基于单片机的交通灯模拟控制系统设计

#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
uint temp,temp1,temp2,num,shi,ge,i,j;
uchar code table[]={0x01,0x67,0x12,0x42,0x64,0x48,0x08,0x63,0x00,0x40};
sbit E1=P0^7;
sbit welay1=P2^6;
sbit welay2=P2^7;
sbit SNL=P2^2;
sbit SNY=P2^1;
sbit SNR=P2^0;
sbit EWL=P2^5;
sbit EWY=P2^4;
sbit EWR=P2^3;
void init()
{
P0=0xff;
P2=0xff;
temp=0;
temp1=0;
temp2=0;
shi=0;
ge=0;
E1=0;
TMOD=0x21;
TH0=0x3c; //50ms
TL0=0xb0;
EA=1;
ET0=1;
TF0=0;
TR0=1;
}
void delay(uchar z)
{
uchar x,y;
for(x=110;x>0;x--)
for(y=z;y>0;y--);
}

void display()
{
shi=num/10;
ge=num%10;
P0=table[ge];
welay2=1;
welay1=0;
delay(10);
welay1=1;
P0=table[shi];
welay1=1;
welay2=0;
delay(10);
welay2=1;
}
void time0() interrupt 1 using 1
{
temp++;
temp1++;
TH0=0x3c;
TL0=0xb0;
//display();
TR0=1;
}
void main()
{
init();
while(1)
{
if(temp==0)
{
EWL=0;
SNR=0;
num=31;
temp1=0;
for(i=30;i>0;i--)
{
num--;
while(temp1!=20)
{
display();
}
temp1=0;
}
}
if(temp==600) //
{
EWL=1;
num=6;
j=0;
for(i=12;i>0;i--)
{
j++;
if(j%2==0)
{
num--;
}
temp2=temp;
EWY=!EWY; //灯闪烁
while(temp-temp2!=10)
{
display();
};
}
}
if(temp==720)
{
EWY=1;
EWR=0;
SNR=1;
SNL=0;
num=24;
temp1=0;
for(i=24;i>0;i--)
{
num--;
while(temp1!=20)
{
display();
}
temp1=0;
}

}
if(temp==1200)
{
SNL=1;
j=0;
num=6;
for(i=12;i>0;i--)
{
temp2=temp;
SNY=!SNY;
j++;
if(j%2==0)
{
num--;
}
while(temp-temp2!=10)
{
display();
};
}
SNY=1;
EWR=1;
temp=0;
}
}

}

⑽ 急求:单片机汇编语言设计的交通灯,各位大侠帮帮忙 谢谢!!!!!!

这是我以前编的;
AJMP S1
SEVER:CLR EX0
PUSH 34H
PUSH 30H
PUSH 31H
PUSH PSW
PUSH DPH
PUSH DPL
MOV 40H,A
MOV 41H,R7
MOV 42H,R1
MOV 34H,#00010000B
MOV P1,#0FH
MOV R6,#0AH
LAST1:LCALL PTFO3
LCALL LED
LCALL DELAY2
DJNZ R6,LAST1
MOV P1,R0
MOV A,40H
MOV R7,41H
MOV R1,42H
POP DPL
POP DPH
POP PSW
POP 31H
POP 30H
POP 34H
SETB EX0
RETI

PTFO1:MOV P1,R0
LCALL PTFO3
LCALL LED
LCALL DELAY2
DJNZ R2,PTFO1
RET
PTFO2:MOV R0,35H
MOV P1,R0
LCALL PTFO3
LCALL LED
LCALL DELAY1
MOV R0,36H
MOV P1,R0
LCALL DELAY1
DJNZ R2,PTFO2
RET
DELAY1:MOV R7,#0AH
AJMP DELAY
DELAY2:MOV R7,#14H
DELAY:CLR EX0
MOV TMOD,#01H
MOV TL0,#00H
MOV TH0,#4CH
SETB TR0
HERE:JBC TF0,NEXT1
SJMP HERE
NEXT1:MOV TL0,#00H
MOV TH0,#4CH
DJNZ R7,HERE
CLR TR0
SETB EX0
RET

LED:MOV DPTR,#0FF82H
MOV A,#90H
MOVX @DPTR,A
MOV R1,#30H
MOV R7,#02H
MOV DPTR,#0FF80H
LOOP:MOV A,@R1
ADD A,#05H
MOVC A,@A+PC
MOVX @DPTR,A
INC R1
DJNZ R7,LOOP
RET
DB 3FH,06H,5BH,4FH,66H,6DH
DB 7DH,07H,7FH,6FH
PTFO3:MOV A, 34H
CLR C
SUBB A,#01H
JNB PSW.6,NEXT
CLR C
SUBB A,#06H
NEXT:MOV 34H,A
ANL A,#0FH
MOV 30H,A
MOV A,34H
ANL A,#0F0H
SWAP A
MOV 31H,A
RET
END
另外:
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP SEVER
ORG 0030H
MAIN:MOV DPTR,#0FF82H
MOV A,#0D1H
MOVX @DPTR,A
WAIT:MOVX A,@DPTR
JB ACC.7,WAIT
MOV A,#00H
MOVX @DPTR,A
MOV A,#2CH
MOVX @DPTR,A

SETB EA
SETB EX0
CLR IT0
CLR 00H
CLR 01H

MOV 60H,#05H ;起始5秒
MOV 61H,#05H ; ;;5秒显示
MOV 62H,#14H ;20秒
MOV 63H,#20H ;;20秒显示
MOV 64H,#03H ;;3秒
MOV 65H,#03H ;;3秒显示
MOV 66H,#0AH ; ;10秒
MOV 67H,#10H ; ;10秒显示

MAIN1:LCALL SEACH1
JBC 00H,START
AJMP MAIN1
START:MOV 34H,61H
MOV R2,60H
MOV R0,#0FH
LCALL PTFO1
S1:MOV 34H,63H
MOV R0,#96H
MOV R2,62H
LCALL PTFO1

MOV R2,64H
MOV 34H,65H
MOV 35H,#9FH
MOV 36H,#06H
LCALL PTFO2

MOV R2,62H
MOV 34H,63H
MOV R0,#69H
LCALL PTFO1

MOV R2,64H
MOV 34H,65H
MOV 35H,#6FH
MOV 36H,#09H
LCALL PTFO2
AJMP S1
SEVER:CLR EX0
PUSH 34H
PUSH 30H
PUSH 31H
PUSH PSW
PUSH DPH
PUSH DPL
MOV 40H,A
MOV 41H,R7
MOV 42H,R1
MOV 34H,67H
MOV P1,#0FH
MOV R6,66H
LAST1:LCALL PTFO3
LCALL LED
LCALL DELAY2
DJNZ R6,LAST1
MOV P1,R0
MOV A,40H
MOV R7,41H
MOV R1,42H
POP DPL
POP DPH
POP PSW
POP 31H
POP 30H
POP 34H
SETB EX0
RETI

PTFO1:MOV P1,R0
LCALL PTFO3
LCALL LED
LCALL DELAY2
MOV DPTR,#0FF82H
MOVX A,@DPTR
ANL A,#07H
JZ NEXT1
LCALL KEY
JBC 01H,NEXT11
NEXT1: DJNZ R2,PTFO1
RET
NEXT11:LCALL SEACH1
JBC 00H,NEXT1
SJMP NEXT11
PTFO2:MOV R0,35H
MOV P1,R0
LCALL PTFO3
LCALL LED
LCALL DELAY1
MOV R0,36H
MOV P1,R0
LCALL DELAY1
MOV DPTR,#0FF82H
MOVX A,@DPTR
ANL A,#07H
JZ NEXT2
LCALL KEY
JBC 01H,NEXT12
NEXT2: DJNZ R2,PTFO2
RET
NEXT12:LCALL SEACH1
JBC 00H,NEXT2
SJMP NEXT12
DELAY1:MOV R7,#0AH
AJMP DELAY
DELAY2:MOV R7,#14H
DELAY:CLR EX0
MOV TMOD,#01H
MOV TL0,#00H
MOV TH0,#4CH
SETB TR0
HERE:JBC TF0,NEXT13
SJMP HERE
NEXT13:MOV TL0,#00H
MOV TH0,#4CH
DJNZ R7,HERE
CLR TR0
SETB EX0
RET

LED:MOV DPTR,#0FF82H
MOV A,#90H
MOVX @DPTR,A
MOV R1,#30H
MOV R7,#02H
MOV DPTR,#0FF80H
LOOP:MOV A,@R1
ADD A,#05H
MOVC A,@A+PC
MOVX @DPTR,A
INC R1
DJNZ R7,LOOP
RET
DB 3FH,06H,5BH,4FH,66H,6DH
DB 7DH,07H,7FH,6FH
PTFO3:MOV A, 34H
CLR C
SUBB A,#01H
JNB PSW.6,NEXT
CLR C
SUBB A,#06H
NEXT:MOV 34H,A
ANL A,#0FH
MOV 30H,A
MOV A,34H
ANL A,#0F0H
SWAP A
MOV 31H,A
RET

KEY:MOV DPTR ,#0FF82H
MOV A,#40H
MOVX @DPTR,A
MOV DPTR,#0FF80H
MOVX A,@DPTR
ANL A,#3FH

CJNE A,#0AH,KEY1
SETB 00H
AJMP RETUN

KEY1:CJNE A,#0BH,KEY2
SETB 01H
AJMP RETUN

KEY2:CJNE A,#0CH,KEY3
ACALL SEACH2
MOV DPTR ,#0FF80H
MOVX A,@DPTR
ANL A,#3FH
CJNE A,#09H,ERROR1
ERROR1:JC NEXT3
MOV 61H,#05H
AJMP RETUN
NEXT3:SWAP A
MOV 61H,A
ACALL SEACH2
MOV DPTR, #0FF80H
MOVX A,@DPTR
ANL A,#3FH
CJNE A,#09H,ERROR2
ERROR2:JC NEXT4
MOV 61H,#05H
AJMP RETUN
NEXT4:ORL 61H,A
MOV A,61H
LCALL BCDH
MOV 60H,A
AJMP RETUN

KEY3:CJNE A,#0DH,KEY4
ACALL SEACH2
MOV DPTR, #0FF80H
MOVX A,@DPTR
ANL A,#3FH
CJNE A,#09H,ERROR3
ERROR3:JC NEXT5
MOV 63H,#20H
AJMP RETUN
NEXT5:SWAP A
MOV 63H,A
ACALL SEACH2
MOV DPTR ,#0FF80H
MOVX A,@DPTR
ANL A,#3FH
CJNE A,#09H,ERROR4
ERROR4:JC NEXT6
MOV 63H,#20H
AJMP RETUN
NEXT6:ORL 63H,A
MOV A,63H
LCALL BCDH
MOV 62H,A
AJMP RETUN

KEY4:CJNE A,#0EH,KEY5
ACALL SEACH2
MOV DPTR ,#0FF80H
MOVX A,@DPTR
ANL A,#3FH
CJNE A,#09H,ERROR5
ERROR5:JC NEXT7
MOV 65H,#03H
AJMP RETUN
NEXT7:SWAP A
MOV 65H,A
ACALL SEACH2
MOV DPTR ,#0FF80H
MOVX A,@DPTR
ANL A,#3FH
CJNE A,#09H,ERROR6
ERROR6:JC NEXT8
MOV 65H,#03H
AJMP RETUN
NEXT8:ORL 65H,A
MOV A,65H
LCALL BCDH
MOV 64H,A
AJMP RETUN

KEY5:CJNE A,#0FH,RETUN
ACALL SEACH2
MOV DPTR ,#0FF80H
MOVX A,@DPTR
ANL A,#3FH
CJNE A,#09H,ERROR7
ERROR7:JC NEXT9
MOV 67H,#10H
AJMP RETUN
NEXT9:SWAP A
MOV 67H,A
ACALL SEACH2
MOV DPTR, #0FF80H
MOVX A,@DPTR
ANL A,#3FH
CJNE A,#09H,ERROR8
ERROR8:JC NEXT10
MOV 67H,#10H
AJMP RETUN
NEXT10:ORL 67H,A
MOV A,67H
LCALL BCDH
MOV 66H,A
AJMP RETUN
RETUN: RET

SEACH1:MOV DPTR,#0FF82H
MOVX A,@DPTR
ANL A,#07H
JZ RETUN1
LJMP KEY
RETUN1:RET
SEACH2:MOV DPTR,#0FF82H
MOVX A,@DPTR
ANL A,#07H
JNZ RETUN3
SJMP SEACH2
RETUN3:RET
;;(20)标号:BCDH 功能:单字节BCD码整数转换成单字节十六进制整数

;;入口条件:待转换的单字节BCD码整数在累加器A中。
;;;出口信息:转换后的单字节十六进制整数仍在累加器A中。
;;;;;影响资源:PSW、A、B、R4 堆栈需求: 2字节

BCDH: MOV B,#10H ;;;分离十位和个位
DIV AB
MOV R4,B ;;;暂存个位
MOV B,#10 ;;;;将十位转换成十六进制
MUL AB
ADD A,R4 ;;;;;;按十六进制加上个位
RET

END
这两种都是我以前做的,都可以
和你那个好像有点不同
改下参数就可以了

阅读全文

与单片机交通灯设计条件相关的资料

热点内容
dvd光盘存储汉子算法 浏览:758
苹果邮件无法连接服务器地址 浏览:963
phpffmpeg转码 浏览:672
长沙好玩的解压项目 浏览:145
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:486
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:383
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:350
风翼app为什么进不去了 浏览:779
im4java压缩图片 浏览:362
数据查询网站源码 浏览:151
伊克塞尔文档怎么进行加密 浏览:893
app转账是什么 浏览:163