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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1027|回復(fù): 1
收起左側(cè)

求大佬看下單片機(jī)匯編程序吧,實(shí)在不知道哪里不對(duì)

[復(fù)制鏈接]
ID:515805 發(fā)表于 2019-5-31 17:34 | 顯示全部樓層 |閱讀模式
我的仿真圖也改了下,用的共陽(yáng)極數(shù)碼管,自己也用了別的顯示程序測(cè)了,沒(méi)得問(wèn)題。但是我程序一仿真數(shù)碼管就沒(méi)得動(dòng)靜
程序:TEMP_ZH EQU 30H       ;溫度存放單元
TEMPL   EQU        25H                  ;低字節(jié)存放
TEMPH   EQU 26H       ;高字節(jié)存放
TEMP_TH EQU 27H                  ;高溫報(bào)警溫度
GEW     EQU 24H       ;定義個(gè)位
SHI     EQU 23H       ;定義十位
BAI     EQU 22H       ;定義百位

K1      EQU P1.0
K2      EQU P1.1
K3      EQU P1.2

BUZ     EQU P2.4          ;蜂鳴
FLAG    EQU 21H.0          ;溫度傳感器標(biāo)志位
DQ      EQU P3.3

;******************主程序************************
        ORG   0000H
                SJMP  START
                ORG   0030H
START:  MOV   SP,   #60H
                MOV   P0,   #0FFH  ;讓p0輸出高電平,熄滅數(shù)碼管
                MOV   P2,        #0F0H
                MOV   R7,   #0   
MIAN:   MOV   TEMP_TH, #85 ;設(shè)立高溫報(bào)警溫度為85
LOOP4:  ACALL RESET        ;18B20復(fù)位程序
LOOP1:        JNB   FLAG, LOOP4
LOOP:        ACALL ZXD                   ;調(diào)用讀取溫度子程序
                ACALL TURN                   ;調(diào)用數(shù)據(jù)轉(zhuǎn)化程序
                ACALL DISPLAY           ;調(diào)用顯示程序
LOOP2:        ACALL KEY                   ;調(diào)用鍵盤
                INC   TEMP_ZH
                JMP   LOOP

;*******************DS18B20復(fù)位初始化程序************************
RESET:  SETB  DQ
        NOP
                NOP
                CLR   DQ
                MOV   R1,   #3
DLY:    MOV   R0,   #107
        DJNZ  R0,   $
                DJNZ  R1,   DLY                ;延時(shí)648μs程序
                SETB  DQ                         ;拉高數(shù)據(jù)線
                NOP
                NOP
                NOP
                MOV   R0,   #25H
T2:     JNB   DQ,   T3
        DJNZ  R0,   T2
                JMP   T4
T3:     SETB  FLAG
        JMP   T5
T4:     CLR   FLAG
        JMP   T7
T5:     MOV   R0,   #249
T6:     DJNZ  R0,   T6
T7:     SETB  DQ
        RET
;*************************溫度讀寫指令**************************
ZXD:    MOV   SP,   #60H
        ACALL RESET               
                JNB   FLAG, ZXD          
                MOV   A,    #0CCH          ;跳過(guò)rom指令
                ACALL WRITE
                MOV   A,    #44H          ;溫度轉(zhuǎn)換指令
                ACALL WRITE
                MOV   R2,   #6
DLY1:        MOV   R1,   #255
DLY2:        MOV   R0,   #255
        DJNZ  R0,   $
                DJNZ  R1,   DLY2
                DJNZ  R2,   DLY1          ;延時(shí)780ms
                ACALL RESET
                MOV   A,    #0CCH
                ACALL WRITE
                MOV   A,    #0BEH          ;讀取寄存器指令
                ACALL WRITE
                ACALL READ                          ;讀取溫度
                RET



;*************************寫入DS18B20程序***********************
WRITE:  MOV   R2,   #8                 ;一共8位數(shù)據(jù)
        CLR   C
WR1:        CLR   DQ
                MOV   R3,   #6
                DJNZ  R3,   $
                RRC   A                                 ;右移A將數(shù)據(jù)給C
                MOV   DQ,    C                 ;寫入一個(gè)位
                MOV   R0,   #23
                DJNZ  R0,   $
                SETB  DQ
                NOP
                DJNZ  R2,   WR1                 ;循環(huán)8次
                SETB  DQ
                RET

;************************讀DS18B20程序****************************
READ:   MOV   R4,   #2   
        MOV   R1,   #TEMPL   ;將25H,26H寫入
RE0:    MOV   R2,   #8
RE1:    CLR   C
        SETB  DQ
                NOP
                NOP
                CLR   DQ
                NOP
                NOP
                NOP
                SETB  DQ                          ;拉高數(shù)據(jù)線
                MOV   R3,   #7
                DJNZ  R3,   $                  
                MOV   C,    DQ
                MOV   R3,   #23       
                DJNZ  R3,   $              ;等待50us
                RRC   A
                DJNZ  R2,   RE1                  ;讀下個(gè)位
                MOV   @R1,  A
                INC   R1
                DJNZ  R4,   RE0
                RET                                                                          

;************************數(shù)據(jù)轉(zhuǎn)化程序******************************
TURN:   ANL   26H,  #07H          ;取后3位
        ANL   25H,  #0F0H          ;取前4位
                MOV   A,    25H
                ORL   26H,  A
                MOV   A,    26H
                SWAP  A                           ;高低互換
                MOV   TEMP_ZH,  A
                RET

;*************************溫度比較及報(bào)警**********************************
BJ:     MOV   A,    TEMP_TH         
        SUBB  A,    TEMP_ZH
                JC    TCL
                JNC   TCL1
                RET
TCL1:   CLR   BUZ
        RET
TCL:    SETB  BUZ
        RET
                                                                  
                  
                                                                                                               
;************************顯示程序***************************************
DISPLAY:MOV   A,         TEMP_ZH
        MOV   B,    #100
                DIV   AB                       ;商送A,余送B
                MOV   BAI,   A
                MOV   A,     B
                MOV   B,    #10
                DIV   AB
                MOV   SHI,   A
                MOV   GEW,    B
                MOV   DPTR, #TAB
                MOV   A,     BAI
                MOVC  A,     @A+DPTR
                MOV   P0,    A
                SETB  P2.0
                ACALL DELAY
                CLR   P2.0
                MOV   A,     SHI
                MOVC  A,     @A+DPTR
                MOV   P0,    A
                SETB  P2.1
                ACALL DELAY
                CLR   P2.1
                MOV   A,     GEW
                MOVC  A,     @A+DPTR
                MOV   P0,    A
                SETB  P2.2
                ACALL DELAY
                CLR   P2.2
                MOV   P0,    #39H          ;顯示c代碼
                SETB  P2.3
                ACALL DELAY
                CLR   P2.3
                ACALL BJ       
                JB    K1,    LOOP3
                JB    K2,    JIAN
                JB    K3,    JIA                   
                SJMP  DISPLAY
LOOP3:  LJMP  LOOP2

;**********************顯示段碼(共陽(yáng))*********************
TAB:    DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;*****************************小延時(shí)程序***********************************
DELAY:  MOV   R0,    #25
A1:     MOV   R1,    #20
A2:     DJNZ  R1,         A2
        DJNZ  R0,    A1
                RET
                 
                 

;****************************鍵盤程序***************************************
KEY:    CJNE  R7,#00H,HD
               RET
JIAN:   DEC   TEMP_ZH                  ;TEMP_ZH位地址減一
        INC   R7
                ACALL DISPLAY
JIA:    INC   TEMP_ZH         ;TEMP_ZH位地址加一
        DEC   R7
                ACALL DISPLAY
                RET
HD:     INC   TEMP_ZH
        DJNZ  R7,    HD
                RET
                END               
求大佬指點(diǎn),謝謝了
RA@9`]YMWR@79O%Y6BSGN[I.png
回復(fù)

使用道具 舉報(bào)

ID:415123 發(fā)表于 2019-5-31 20:51 | 顯示全部樓層
你的DISPLAY是作為子程序調(diào)用的,你卻在后面使用了不少跳轉(zhuǎn)指令,是錯(cuò)誤的。一句話,子程序最后必須是返回,不能跳轉(zhuǎn)。好好理一下思路
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人免费视频 | 欧美大片黄 | 日本成人在线网址 | 亚洲一区二区免费电影 | 日本成人一区二区 | 亚洲精品欧美精品 | 国产精品不卡一区 | 亚洲香蕉| 9久9久 | 一区二区三区福利视频 | av在线免费观看网站 | 国产精品一区二区欧美 | 国产精品视频一区二区三区四区国 | 亚洲 精品 综合 精品 自拍 | 一二三区在线 | 美女拍拍拍网站 | 免费人成在线观看网站 | 亚洲福利在线观看 | 亚洲一区不卡 | 久免费视频 | 亚洲国产一区二区三区在线观看 | 午夜视频一区二区三区 | 成人在线精品 | 红桃视频一区二区三区免费 | 中文字幕在线观看第一页 | 欧美成年人网站 | 精品视频一区二区 | 亚洲精品久久久久中文字幕二区 | 情侣酒店偷拍一区二区在线播放 | 欧美一级淫片免费视频黄 | 韩日精品在线观看 | 中文字幕乱码一区二区三区 | 暖暖成人免费视频 | 美日韩精品 | 日韩视频一区二区三区 | 亚洲国产精品激情在线观看 | 久久小视频 | 日韩成人免费视频 | 日韩高清中文字幕 | 欧美成人免费在线视频 | 日韩av一区二区在线观看 |