久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2792|回復: 1
打印 上一主題 下一主題
收起左側

單片機交通燈控制 匯編程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:768523 發表于 2020-6-3 15:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
J6---P0
;J7---P2
;J5---P1
;BUZZ----P3.0
;STOP----INT0;定義各引腳
DISP_LEQU 52H
DISP_HEQU 51H
TIME   EQU 50H
DIODE_BUSEQU 53H
DIODE_WEIEQU 54H
BIAOZHI   EQU 55H
NB_DIODE_YANGEQU 56H
NB_DIODE_YIN  EQU 57H
DX_DIODE_YANGEQU 58H
DX_DIODE_YIN  EQU 59H
TEM_TIME   EQU 5AH
TEM_BIAOZHI   EQU 5BH
TEM_NB_DIODE_YANGEQU 5CH
TEM_NB_DIODE_YIN  EQU 5DH
TEM_DX_DIODE_YANGEQU 5EH
TEM_DX_DIODE_YIN  EQU 5FH
ORG0
AJMPMAIN
ORG0003H
LJMPSTOP
ORG000BH;中斷向量地址
AJMPT0_50;跳轉到標號
        ORG 001BH
        LJMP T1_KK
        ORG 0030H;程序開始單元
MAIN:   MOV R0,#7FH
K_CLR:  MOV @R0,#0
        DJNZ R0,K_CLR;
        MOV TMOD,#11H;選擇定時器T0工作方式,方式1;T1工作方式,方式1
        SETB IT0;允許T0中斷
        MOV TH0,#3CH;定時器T0初始化
        MOV TL0,#0B0H
        MOV TH1,#0FFH;定時器T1的初始化
        MOV TL1,#0CH
        MOV R4,#20;設置循環次數
        MOV IE,#8BH;開中斷
        MOV TIME,#10,定時10s
        MOV NB_DIODE_YANG,#09H
        MOV NB_DIODE_YIN,#33H
        MOV DX_DIODE_YANG,#09H
        MOV DX_DIODE_YIN,#0CCH
        MOV BIAOZHI,#00H
        CLR F0;表示綠燈閃爍是否的標志
        SETB TR0;開定時器0
        CLR  TR1;關中斷
LOOP:  ACALL DISPLAY;調用延時子程序
        ACALL DIODE;調用延時子程序
        SJMP LOOP
T0_50:  MOV TL0,#0B0H;重置T0初值
        MOV TH0,#3CH
        DJNZ R4,EXITMM,R4的內容減1,不等于0則轉移
        MOV R4,#20; 20*50=1000ms=1s
        DEC TIME ;  40-1-1-...-1=?1      
        ;MOV A,TIME; 將時間送到寄存器R7之中
        ;CJNE A,#00H,EXIT;A與00H比較,不相等則轉移至EXIT        
        MOV A,BIAOZHI;將標志送到寄存器R7中
        CJNE A,#00H,NEXT1;A與00H比較,不相等則轉移至NEXT1
        MOV A,TIME; 將時間送到寄存器R7之中
        CJNE A,#00H,EXITMM;A與00H比較,不相等則轉移至EXUTMM
        MOV BIAOZHI,#01H
        MOV TIME,#15定時15S
        MOV NB_DIODE_YANG,#24H
        MOV NB_DIODE_YIN,#33H
        MOV DX_DIODE_YANG,#09H
        MOV DX_DIODE_YIN,#0CCH
        SJMP EXITMM
NEXT1:  MOV A,BIAOZHI;將標志送到寄存器R7中
        CJNE A,#01H,NEXT2;A與01H比較,不相等則轉移至NEXT2
        MOV A,TIME; 將時間送到寄存器R7之中
        CJNE A,#00H,SS;A與00H比較,不相等則轉移至SS
        CLR TR1
        MOV BIAOZHI,#02H
        MOV TIME,#13
        MOV NB_DIODE_YANG,#24H
        MOV NB_DIODE_YIN,#0CCH
        MOV DX_DIODE_YANG,#09H
       MOV DX_DIODE_YIN,#33H
        SJMP EXITMM
SS:   MOV A,TIME
        CJNE A,#10,NEXT1_10_1;A與10比較,不相等則轉移至NEXT1_10_1SS
NEXT1_10_1:JNC EXITMM
        MOV A,TIME     
        CJNE A,#5,NEXT1_4;A與5比較,不相等則轉移至NEXT1_4
NEXT1_4:JNCNEXT1_SHANSHUO
        SJMP NEXT1_YELLOW
NEXT1_SHANSHUO:
         SETB TR1
         CPL F0
         JB F0,MIE_NEXT1
         MOV NB_DIODE_YANG,#24H
EXITMM:  LJMP EXIT
MIE_NEXT1:MOVNB_DIODE_YANG,#00H
         SJMP EXIT
NEXT1_YELLOW:SETBTR1;允許T1開始計數
        MOV NB_DIODE_YANG,#12H
        SJMP EXIT
        NEXT2: MOV A,BIAOZHI
        CJNE A,#02H,NEXT3;A與02H比較,不相等則轉移至NEXT3
        MOV A,TIME
        CJNE A,#00H,SSSS;A與00H比較,不相等則轉移至SSSS
        MOV BIAOZHI,#01H
        MOV TIME,#15
        CLR TR1
        MOV NB_DIODE_YANG,#24H
        MOV NB_DIODE_YIN,#33H
        MOV DX_DIODE_YANG,#09H
        MOV DX_DIODE_YIN,#0CCH
        SJMP EXIT
SSSS: MOV A,TIME
        CJNE A,#10,NEXT2_10_2;A與10比較,不相等則轉移至NEXT2_10_2SS
NEXT2_10_2:JNC EXIT
        MOV A,TIME
        CJNE A,#5,NEXT2_4;A與5比較,不相等則轉移至NEXT2_4SS
NEXT2_4:JNCNEXT2_SHANSHUO
        SJMP NEXT2_YELLOW
NEXT2_SHANSHUO:
         SETB TR1
         CPL F0;
         JB F0,MIE_NEXT2;位操作,F0直接地址為1則轉移,不為1則順行
         MOV NB_DIODE_YANG,#24H
         SJMP EXIT
MIE_NEXT2:MOV NB_DIODE_YANG,#00H
         SJMP EXIT
NEXT2_YELLOW:
        SETB TR1;允許T1開始計時
        MOV NB_DIODE_YANG,#12H
        SJMP EXIT
NEXT3:  MOV A,BIAOZHI
        CJNE A,#03H,EXIT;A與03H比較,不相等則轉移至EXIT
        CLR TR1;停止計時
        MOV A,TIME
        CJNE A,#01H,NEXT4_N;A與01H比較,不相等則轉移至NEXT4_N
        MOV TIME,TEM_TIME
        MOV BIAOZHI,TEM_BIAOZHI
        MOV NB_DIODE_YANG,TEM_NB_DIODE_YANG
        MOV NB_DIODE_YIN,TEM_NB_DIODE_YIN
        MOV DX_DIODE_YANG,TEM_DX_DIODE_YANG
        MOV DX_DIODE_YIN,TEM_DX_DIODE_YIN
        SJMP EXIT
NEXT4_N:MOV NB_DIODE_YANG,#09H
         MOV DX_DIODE_YANG,#09H
EXIT:   RETI
T1_KK:MOV TL1,#00H
        MOV TH1,#0FFH
        CPL P3.0;開蜂鳴器
        RETI
STOP: CLR EA;
        JB P3.2,STOP_H
        ACALL DELAY;調用延時子程序
        ACALL DELAY;調用延時子程序
        ACALL DELAY;調用延時子程序
        ACALL DELAY;調用延時子程序
        ACALL DELAY;調用延時子程序
        ACALL DELAY;調用延時子程序
        JB P3.2,STOP_H;位操作,P3.2口直接地址為1則轉移,不為1則順行
        MOV TEM_TIME,TIME
        MOV TEM_BIAOZHI,BIAOZHI
        MOV TEM_NB_DIODE_YANG,NB_DIODE_YANG
        MOV TEM_NB_DIODE_YIN,NB_DIODE_YIN
        MOV TEM_DX_DIODE_YANG,DX_DIODE_YANG
        MOV TEM_DX_DIODE_YIN,DX_DIODE_YIN
        MOV TIME,#15;定時15s
        MOV BIAOZHI,#03H
        MOV NB_DIODE_YANG,#09H        
        MOV DX_DIODE_YANG,#09H
STOP_H:SETBEA      
        RETI
DISP_PRO:MOV A,TIME
        MOV B,#10
        DIV AB;A除以B,商的整數送A,余數送B
        MOV DISP_H,A
        MOV DISP_L,B;LED數字顯示,十位與個位分離
        RET
DISPLAY:ACALL DISP_PRO;調用DISP_PRO子程序
        MOV P2,#00H      ;關發光二極管
        MOV DPTR,#DISP_TAB
        MOV A,DISP_H   ;十位
        CJNE A,#00H,N_DISPLAY;A與00H比較,不相等則轉移至SS
        SJMP M_DISPLAY;跳轉
N_DISPLAY:MOVCA,@A+DPTR
        MOV P1,A;將累加器A中的數送到P1口
        MOV P0,#0AAH;將0AAH送到P0口
        ACALL DELAY;調用延時子程序
M_DISPLAY:MOVA,DISP_L   ;個位
        MOVC A,@A+DPTR
        MOV P1,A;將累加器A中的數送到P1口
        MOV P0,#55H,將55H送到P0口   
        ACALL DELAY調用延時子程序
        RET
DIODE:  MOV P0,#00H  ;關LED
        MOV P1,NB_DIODE_YANG; 將NB_DIODE_YANG里的內容送到P1口
        MOV P2,NB_DIODE_YIN; 將NB_DIODE_YIN里的內容送到P2口      
        ACALL DELAY;調用延時子程序
RETDIODE:  MOV P0,#00H  ;關LED
        MOV P1,NB_DIODE_YANG; 將NB_DIODE_YANG里的內容送到P1口
        MOV P2,NB_DIODE_YIN; 將NB_DIODE_YIN里的內容送到P2口      
        ACALL DELA;Y調用延時子程序
  MOV P1,DX_DIODE_YANG; 將DX_DIODE_YANG里的內容送到P1口
        MOV P2,DX_DIODE_YIN;將DX_DIODE_YIN里的內容送到P2口
        ACALL DELAY調用延時子程序
        RET
  MOV P1,DX_DIODE_YANG; 將DX_DIODE_YANG里的內容送到P1口
        MOV P2,DX_DIODE_YIN;將DX_DIODE_YIN里的內容送到P2口
        ACALL DELAY;調用延時子程序
        RET
DELAY:  MOV R7,#2
DEL:    MOV R6,#0FAH
        DJNZ R6,$;延時T=2*250*4=2ms
        DJNZ R7,DEL
        RET
DISP_TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;LED查表
        END
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2020-6-5 04:16 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级在线观看 | 美女黄网 | 欧美日韩亚洲国产综合 | 中文字幕av在线一二三区 | 国产精品揄拍一区二区久久国内亚洲精 | 亚洲欧美激情精品一区二区 | 久久草在线视频 | 91中文字幕在线 | 亚洲一区二区中文字幕 | 亚洲国产精品久久久久 | 黄色国产 | 国产精品v | 国产成人精品久久 | 成人av电影在线 | 亚洲成人中文字幕 | 亚洲九色 | 午夜三级视频 | 久久亚洲春色中文字幕久久久 | 欧美一区二区三区在线播放 | 日干夜干| 午夜精品视频在线观看 | 欧美黄色一区 | 国产精品国产三级国产aⅴ原创 | 久久久久国产精品一区二区 | 久久99网| 精品视频在线播放 | 欧美日韩在线精品 | www.99re| 一区二区三区精品视频 | 超碰人人艹| 妞干网福利视频 | 久久网一区二区 | 久久久精品欧美 | 亚洲成人一区二区 | 北条麻妃一区二区三区在线视频 | 亚洲综合网站 | 欧美精三区欧美精三区 | 国产a区 | 中文字幕一区二区三区四区五区 | 亚洲欧美中文日韩在线v日本 | www.亚洲成人网 |