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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2721|回復: 5
收起左側

有了對應程序還是報錯是什么鬼,小白求救

[復制鏈接]
ID:668068 發表于 2019-12-19 15:22 | 顯示全部樓層 |閱讀模式
200黑幣
大佬們知道這是怎么回事嗎,雖然下邊有對應的程序但是還是在報錯,附上程序和截圖
SNF    EQU  00H             //南北通行標志位
EWF    EQU  01H             //東西通行標志位
URF    EQU  02H             //緊急事件標志位
ORG    0000H                //上電轉主程序
LJMP   MAIN                 
ORG    000BH                //定時中斷入口
LJMP   DSZD                    
ORG    0003H                //緊急中斷入口
LJMP   URZD
ORG    0030H   
MAIN:  LCALL INIT           //調用初始化子程序
LOOP:  LCALL DIS            //循環執行顯示子程序
       AJMP  LOOP      

///初始化程序
INIT:  SETB  SNF              
       SETB  EWF           
       SETB  URF           
       MOV   R2,#20         //定時器中斷20次為1s
       MOV   TMOD,#01H      //初始化定時器
       MOV   TL0,#0B0H
       MOV   TH0,#3CH
       SETB  EA             //開定時中斷與緊急中斷
       SETB  ET0
       SETB  TR0
       SETB  EX0
       SETB  IT0            //設置中斷程控方式
       MOV   DPTR,#TAB      //數值首地址放入DPTR中
       MOV   40H,#40        //東南西北通行時間設置
       MOV   41H,#40
       MOV   30H,#40        //通行時間初始化
       MOV   31H,#60
       MOV   P0,#4CH        //初始化時南北通行并把交通燈狀態分別放在32H和33H中
       MOV   32H,#4CH
       MOV   P2,#15H
       MOV   33H,#15H
       RET
///顯示子程序
DIS:   MOV   P3,#0DFH       //選中南北方向的十位數碼管
       MOV   A,30H          //把顯示數據送入數碼管顯示
       MOV   B,#10
       DIV   AB
       MOVC  A,@A+DPTR
       MOV   P1,A           
       LCALL D1MS
       MOV   P3,#0EFH       //選中南北方向的個位數碼管
       MOV   A,B            //把顯示數據送入數碼管顯示
       MOVC  A,@A+DPTR      
       MOV   P1,A
       LCALL D1MS

       MOV   P3,#7FH        //選中第東西方向的十位數碼管
       MOV   A,31H          //送入數碼管顯示
       MOV   B,#10
       DIV   AB
       MOVC  A,@A+DPTR
       MOV   P1,A
       LCALL D1MS
       MOV   P3,#0BFH       //選中第東西方向的個位數碼管
       MOV   A,B
       MOVC  A,@A+DPTR
       MOV   P1,A
       LCALL D1MS

       SETB  P3.0
       SETB  P3.1
       JNB   P3.0,DIS_S     //查詢是否第一個按鍵按下
       JNB   P3.1,DIS_E     //查詢是否第二個按鍵按下
       AJMP  DIS_R          //沒有鍵按下則返回

D5MS:  MOV R7,#10            //延時程序
D1MS:  MOV R7,#10
       MOV R6,#50
L1:    DJNZ R6,$
       DJNZ R7,L1
       RET
       END

DIS_S: LCALL D5MS           //按鍵去抖
       JNB   P3.0,DIS_SN
       AJMP  DIS_R  
        
DIS_SN:MOV   40H,#50        //對通行時間從新分配,南北通行時間加長
       MOV   41H,#30
       AJMP  DIS_R

DIS_E: LCALL D5MS           //按鍵去抖
       JNB   P3.1,DIS_EW
       AJMP  DIS_R

DIS_EW:MOV   40H,#30        //東西通行時間加長
       MOV   41H,#50

DIS_R: RET                  

//---------------------------------------------------------------------------

///定時中斷處理程序
DS_C:  LJMP  DS_R           //接力跳轉
DSZD:  PUSH  ACC            //保護現場
       PUSH  PSW
       CLR   TR0            //關定時器及中斷標志位并重新賦值
       CLR   TF0
       MOV   TL0,#0B0H
       MOV   TH0,#3CH
       DJNZ  R2,DS_C        //判斷1m時間是否到達
       MOV   R2,#20         //到達重新賦值
       DEC   30H            //南北方向通行時間減一
       MOV   A,30H          //把減一后的時間送入顯示存儲單元

///南北通行到達最后4秒時黃燈閃爍
DS_10: CJNE  A,#4,DS_11     //如果通行時間剩余4秒
       JNB   SNF,DS_11      //判斷是否是南北通行
       MOV   P0,#8AH        
       MOV   32H, #8AH      //把交通燈狀態存入存儲單元
DS_11: CJNE  A,#3,DS_12     //不是剩余3秒,返回
       JNB   SNF,DS_12      //不是南北通行時間,返回
       MOV   P0,#88H
       MOV   32H, #88H
DS_12: CJNE  A,#2,DS_13
       JNB   SNF,DS_13
       MOV   P0,#8AH
       MOV   32H, #8AH
DS_13: CJNE  A,#1,DS_14
       JNB   SNF,DS_14
       MOV   P0,#88H
       MOV   32H, #88H
DS_14: JNZ   DS_NE          //通行時間沒有結束轉向改變東西方向的數碼管
       CPL   SNF            //如果通行時間結束則對標志位取反
       JNB   SNF,DS_1       //判斷是否南北通行
       MOV   30H,40H        //是,點亮相應的交通燈
       MOV   P0,#4CH
       MOV   32H,#4CH       //存儲交通燈狀態
       MOV   P2,#15H
       MOV   33H, #15H      //存儲交通燈狀態
DS_NE: DEC   31H            //東西方向通行時間減一
       MOV   A,31H          //把通行剩余時間送入顯示存儲單元

///東西方向通行時間剩余4秒鐘黃燈閃爍

DS_20: CJNE  A,#4,DS_21   
       JB    EWF,DS_21
       MOV   P0,#51H
       MOV   32H, #51H
DS_21: CJNE  A,#3,DS_22
       JB    EWF,DS_22
       MOV   P0,#41H
       MOV   32H, #41H
DS_22: CJNE  A,#2,DS_23
       JB    EWF,DS_23
       MOV   P0,#51H
       MOV   32H, #51H
DS_23: CJNE  A,#1,DS_24
       JB    EWF,DS_24
       MOV   P0,#41H
       MOV   32H, #41H     
DS_24: JNZ   DS_R             //東西方向時間沒有結束,返回
       CPL   EWF              //對通行狀態取反
       JNB   EWF,DS_2         //東西方向通行時間到來,跳轉
       MOV   31H,#80          //東西方向通行結束,重新顯示時間
       MOV   P0,#89H          //點亮相應的交通燈
       MOV   32H, #89H
       MOV   P2,#29H
       MOV   33H, #29H
       AJMP  DS_R     
DS_1:  MOV   30H,#80          //南北通行時間結束,重新對顯示存儲單元賦值     
       MOV   P0,#89H          //執行轉彎狀態1
       MOV   32H, #89H
       MOV   P2,#26H
       MOV   33H, #26H
       AJMP  DS_NE            
DS_2:  MOV   31H,41H          //東西方向開始通行,賦值予顯示存儲單元
       MOV   P0,#61H          //點亮相應的交通燈
       MOV   32H, #61H
       MOV   P2,#15H
       MOV   33H, #15H
DS_R:  SETB  TR0
       POP   PSW              //恢復現場
       POP   ACC
       RETI

//---------------------------------------------------------------------------

///緊急中斷處理程序
URZD:  PUSH  ACC              //保護現場
       PUSH  PSW
       CLR   IE0              //清除中斷標志位
       CLR   TR0              //關定時器
       CPL   URF              //緊急事件標志位
       JB    URF,UR_CON       //緊急結束;跳轉
       MOV   P0,#49H          //各路口燈全顯示紅燈亮
       MOV   P2,#15H
       AJMP  UR_R
UR_CON:SETB TR0               //恢復正常交通
       MOV   A,32H
END


51hei截圖20191219151842.png
51hei截圖20191219151831.png
51hei截圖20191219151803.png
回復

使用道具 舉報

ID:25310 發表于 2019-12-20 10:27 | 顯示全部樓層
本帖最后由 pcbboy 于 2019-12-22 16:17 編輯

//可以啦
//#include "reg51.h"
//#include "intrins.h"

SNF    EQU  00H             //南北通行標志位
EWF    EQU  01H             //東西通行標志位
URF    EQU  02H             //緊急事件標志位
        
ORG    0000H                //上電轉主程序
LJMP   MAIN   

ORG    000BH                //定時中斷入口

LJMP   DSZD                    
ORG    0003H                //緊急中斷入口
LJMP   URZD

        
ORG    0080H   
MAIN:  LCALL INIT           //調用初始化子程序
LOOP:  LCALL DIS            //循環執行顯示子程序
       AJMP  LOOP      

///初始化程序
INIT:  SETB  SNF              
       SETB  EWF           
       SETB  URF           
       MOV   R2,#20         //定時器中斷20次為1s
       MOV   TMOD,#01H      //初始化定時器
       MOV   TL0,#0B0H
       MOV   TH0,#3CH
       SETB  EA             //開定時中斷與緊急中斷
       SETB  ET0
       SETB  TR0
       SETB  EX0
       SETB  IT0            //設置中斷程控方式
       MOV   DPTR,#TAB      //數值首地址放入DPTR中
       MOV   40H,#40        //東南西北通行時間設置
       MOV   41H,#40
       MOV   30H,#40        //通行時間初始化
       MOV   31H,#60
       MOV   P0,#4CH        //初始化時南北通行并把交通燈狀態分別放在32H和33H中
       MOV   32H,#4CH
       MOV   P2,#15H
       MOV   33H,#15H
       RET
///顯示子程序
DIS:   MOV   P3,#0DFH       //選中南北方向的十位數碼管
       MOV   A,30H          //把顯示數據送入數碼管顯示
       MOV   B,#10
       DIV   AB
       MOVC  A,@A+DPTR
       MOV   P1,A           
       LCALL D1MS
       MOV   P3,#0EFH       //選中南北方向的個位數碼管
       MOV   A,B            //把顯示數據送入數碼管顯示
       MOVC  A,@A+DPTR      
       MOV   P1,A
       LCALL D1MS

       MOV   P3,#7FH        //選中第東西方向的十位數碼管
       MOV   A,31H          //送入數碼管顯示
       MOV   B,#10
       DIV   AB
       MOVC  A,@A+DPTR
       MOV   P1,A
       LCALL D1MS
       MOV   P3,#0BFH       //選中第東西方向的個位數碼管
       MOV   A,B
       MOVC  A,@A+DPTR
       MOV   P1,A
       LCALL D1MS

       SETB  P3.0
       SETB  P3.1
       JNB   P3.0,DIS_S     //查詢是否第一個按鍵按下
       JNB   P3.1,DIS_E     //查詢是否第二個按鍵按下
       AJMP  DIS_R          //沒有鍵按下則返回

D5MS:  MOV R7,#10            //延時程序
D1MS:  MOV R7,#10
       MOV R6,#50
L1:    DJNZ R6,$
       DJNZ R7,L1
       RET
   

DIS_S: LCALL D5MS           //按鍵去抖
       JNB   P3.0,DIS_SN
       AJMP  DIS_R  
        
DIS_SN:MOV   40H,#50        //對通行時間從新分配,南北通行時間加長
       MOV   41H,#30
       AJMP  DIS_R

DIS_E: LCALL D5MS           //按鍵去抖
       JNB   P3.1,DIS_EW
       AJMP  DIS_R

DIS_EW:MOV   40H,#30        //東西通行時間加長
       MOV   41H,#50

DIS_R: RET                  

//---------------------------------------------------------------------------

///定時中斷處理程序

DS_C:  LJMP  DS_R           //接力跳轉

DSZD:
        PUSH  ACC            //保護現場
       PUSH  PSW
       CLR   TR0            //關定時器及中斷標志位并重新賦值
       CLR   TF0
       MOV   TL0,#0B0H
       MOV   TH0,#3CH
       DJNZ  R2,DS_C        //判斷1m時間是否到達
       MOV   R2,#20         //到達重新賦值
       DEC   30H            //南北方向通行時間減一
       MOV   A,30H          //把減一后的時間送入顯示存儲單元

///南北通行到達最后4秒時黃燈閃爍
DS_10: CJNE  A,#4,DS_11     //如果通行時間剩余4秒
       JNB   SNF,DS_11      //判斷是否是南北通行
       MOV   P0,#8AH        
       MOV   32H, #8AH      //把交通燈狀態存入存儲單元
DS_11: CJNE  A,#3,DS_12     //不是剩余3秒,返回
       JNB   SNF,DS_12      //不是南北通行時間,返回
       MOV   P0,#88H
       MOV   32H, #88H
DS_12: CJNE  A,#2,DS_13
       JNB   SNF,DS_13
       MOV   P0,#8AH
       MOV   32H, #8AH
DS_13: CJNE  A,#1,DS_14
       JNB   SNF,DS_14
       MOV   P0,#88H
       MOV   32H, #88H
DS_14: JNZ   DS_NE          //通行時間沒有結束轉向改變東西方向的數碼管
       CPL   SNF            //如果通行時間結束則對標志位取反
       JNB   SNF,DS_1       //判斷是否南北通行
       MOV   30H,40H        //是,點亮相應的交通燈
       MOV   P0,#4CH
       MOV   32H,#4CH       //存儲交通燈狀態
       MOV   P2,#15H
       MOV   33H, #15H      //存儲交通燈狀態
DS_NE: DEC   31H            //東西方向通行時間減一
       MOV   A,31H          //把通行剩余時間送入顯示存儲單元

///東西方向通行時間剩余4秒鐘黃燈閃爍

DS_20: CJNE  A,#4,DS_21   
       JB    EWF,DS_21
       MOV   P0,#51H
       MOV   32H, #51H
DS_21: CJNE  A,#3,DS_22
       JB    EWF,DS_22
       MOV   P0,#41H
       MOV   32H, #41H
DS_22: CJNE  A,#2,DS_23
       JB    EWF,DS_23
       MOV   P0,#51H
       MOV   32H, #51H
DS_23: CJNE  A,#1,DS_24
       JB    EWF,DS_24
       MOV   P0,#41H
       MOV   32H, #41H     
DS_24: JNZ   DS_R             //東西方向時間沒有結束,返回
       CPL   EWF              //對通行狀態取反
       JNB   EWF,DS_2         //東西方向通行時間到來,跳轉
       MOV   31H,#80          //東西方向通行結束,重新顯示時間
       MOV   P0,#89H          //點亮相應的交通燈
       MOV   32H, #89H
       MOV   P2,#29H
       MOV   33H, #29H
       AJMP  DS_R     
DS_1:  MOV   30H,#80          //南北通行時間結束,重新對顯示存儲單元賦值     
       MOV   P0,#89H          //執行轉彎狀態1
       MOV   32H, #89H
       MOV   P2,#26H
       MOV   33H, #26H
       AJMP  DS_NE            
DS_2:  MOV   31H,41H          //東西方向開始通行,賦值予顯示存儲單元
       MOV   P0,#61H          //點亮相應的交通燈
       MOV   32H, #61H
       MOV   P2,#15H
       MOV   33H, #15H
DS_R:  SETB  TR0
       POP   PSW              //恢復現場
       POP   ACC
       RETI

//---------------------------------------------------------------------------

///緊急中斷處理程序
INTEX0:
URZD:  PUSH  ACC              //保護現場
       PUSH  PSW
       CLR   IE0              //清除中斷標志位
       CLR   TR0              //關定時器
       CPL   URF              //緊急事件標志位
       JB    URF,UR_CON       //緊急結束;跳轉
       MOV   P0,#49H          //各路口燈全顯示紅燈亮
       MOV   P2,#15H
       AJMP  UR_R
UR_CON:SETB TR0               //恢復正常交通
       MOV   A,32H
            RETI
           
//共陽:
TAB:  0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
//共陰:
TAB: 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71


UR_R:

RETI



           
END
回復

使用道具 舉報

ID:668068 發表于 2019-12-21 23:59 | 顯示全部樓層
pcbboy 發表于 2019-12-20 10:27
//可以啦
//#include "reg51.h"
//#include "intrins.h"

程序是好了但是顯示器出問題了。。。
回復

使用道具 舉報

ID:510365 發表于 2019-12-22 05:26 | 顯示全部樓層
你的TAB列表哪里去了?
回復

使用道具 舉報

ID:25310 發表于 2019-12-22 16:13 | 顯示全部樓層
mond 發表于 2019-12-21 23:59
程序是好了但是顯示器出問題了。。。

“TBA: ”這里要你自己寫哦,里面的數字是我隨便寫的
回復

使用道具 舉報

ID:25310 發表于 2019-12-23 09:32 | 顯示全部樓層
mond 發表于 2019-12-21 23:59
程序是好了但是顯示器出問題了。。。

更新過一次,你看看我的帖子里有兩個TBA,里面有數碼管的共陰和共陽TBA,按照你的硬件自己選擇試一試。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久国产 | 中文字幕高清免费日韩视频在线 | 精品一级 | 亚洲一区免费视频 | 我要看黄色录像一级片 | 国产91成人 | 日韩精品1区2区3区 成人黄页在线观看 | 日皮视频免费 | 亚洲精品国产成人 | 久久久久久一区 | 国产高清在线观看 | 国产高清在线精品 | 成人免费黄色 | 久久丁香| 超碰免费在线 | 91亚洲国产成人久久精品网站 | 欧美视频日韩 | 激情综合五月 | 精品一区二区三区在线观看 | 久久i | 中文在线一区二区 | 欧美色图综合网 | 中文在线视频观看 | 九一在线 | 毛片一区| 中文字幕亚洲区一区二 | 91亚洲精品国偷拍自产在线观看 | 欧美在线一区视频 | 精品一区二区久久久久久久网精 | www久久av| 免费的av网站| 亚洲高清在线播放 | 日本超碰 | 成人做爰www免费看视频网站 | 99视频免费 | 亚洲欧美日韩精品 | 在线伊人网 | 日本成人免费网站 | 国产黄色一级电影 | 久久6视频 | 久久精品1 |