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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

請問為什么轉換結果看不到啊,還有LCD上顯示字符之后就消失了,只剩下數字

[復制鏈接]
回帖獎勵 10 黑幣 回復本帖可獲得 2 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
仿真:

代碼:
RS BIT P2.0
RW BIT P2.1
LCDE BIT P2.2

NUM EQU 30H        ;存放AD輸出
TEMP EQU 20H        ;存放轉換后的數字
        
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP ITX0
ORG 0100H
MAIN:
        SETB IT0        ;INT0為邊沿出發觸發
        SETB EA                ;開系統中斷
        SETB EX0        ;開INT0中斷
        MOV DPTR,#7FF8H        ;送入口地址并指向IN0
        MOVX @DPTR,A        ;啟動A/D轉換,A的值沒有意義
HERE:
        LCALL CONVERT
        AJMP HERE        ;等待中斷

//中斷程序
ITX0:
        CLR EX0
        PUSH PSW        ;保護現場
        MOVX A,@DPTR        ;讀取轉換后的數字量
        MOV R1,A
        MOV 30H,R1
;        MOV DPTR,#7FF8H        ;重新賦值
;LOOP:
;        MOVX @DPTR,A        ;啟動AD轉換
;        POP PSW
        RETI        ;中斷返回

//數據轉換
CONVERT:
        MOV A,NUM
        MOV B,#51        ;AD轉換結果轉換成BCD碼
        DIV AB
        MOV 22H,B        ;小數位
        ADD A,#25
        MOV B,#10
        DIV AB
        MOV 20H,A
        MOV 21H,B
        LCALL SHOW_CHAR
        LCALL SHOW_NUM
        JMP $
//顯示字符串"Temp"
SHOW_CHAR:
        MOV R3,#4        ;字符串長度
        MOV DPTR,#TAB
        CLR A
        LCALL INIT_LCDE
        MOV R0,#80H        ;定位到LCDE的第一行開頭
        LCALL WRITE_CODE
        LCALL DELAY
L1:
        MOVC A,@A+DPTR
        MOV R1,A
        LCALL WRITE_DATA
        LCALL DELAY
        INC DPTR
        CLR A
        DJNZ R3,L1
        RET
//將轉換后的數據在LCD上顯示出來
SHOW_NUM:
        MOV R3,#3
        MOV DPTR,#NUMB        ;獲取轉換后的數據的首地址
        CLR A
        LCALL INIT_LCDE
        MOV R0,#85H        ;定位到字符串后面
        LCALL WRITE_CODE
        LCALL DELAY
L2:        
        MOV R1,#20H
        MOV A,@R1
        MOVC A,@A+DPTR
        MOV R1,A
        LCALL WRITE_DATA
        LCALL DELAY
        INC R1
        CLR A
        DJNZ R3,L2
;RECOVER:
;        SETB EX0        ;顯示完畢再次允許中斷
        RET
        

//雙重延遲函數
DELAY:
        MOV R6,#8
W2:        MOV R7,#248
W1:        DJNZ R7,W1
        DJNZ R6,W2
        RET
        
//指令函數,在調用之前,先將指令碼放在R0中
WRITE_CODE:
        CLR LCDE        ;清除使能信號
        CLR RS
        CLR RW        ;RS=0,RW=0,寫指令
        MOV P0,R0        ;送指令
        LCALL DELAY
        SETB LCDE        ;設置使能信號
        LCALL DELAY
        CLR LCDE
        RET

//數據函數,調用之前,先將數據放在R1中
WRITE_DATA:
        CLR LCDE        ;清除使能信號
        SETB RS
        CLR RW        ;RS=1,RW=0
        MOV P0,R1        ;送數據
        LCALL DELAY
        SETB LCDE        ;設置使能信號
        LCALL DELAY
        CLR LCDE
        RET

//初始化函數
INIT_LCDE:
        CLR LCDE
        MOV R0,#0
        MOV R0,#38H        ;設置16×2顯示,5×7點陣,8位數據接口
        LCALL WRITE_CODE
        MOV R0,#0
        MOV R0,#0EH        ;設置開顯示,不顯示光標
        LCALL WRITE_CODE
        MOV R0,#0
        MOV R0,#06H        ;設置寫一個字符后地址指針加一
        LCALL WRITE_CODE
        MOV R0,#0
        MOV R0,#01H        ;顯示清零,數據指針清零
        LCALL WRITE_CODE
        RET

NUMB:        DB 30H,31H,31H,33H,34H,35H,36H,38H,39H        ;0123456789
TAB:        DB "Temp"

END

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1068447 發表于 2023-3-26 19:28 | 只看該作者
仿真是這樣的

回復

使用道具 舉報

板凳
ID:384109 發表于 2023-3-27 08:13 | 只看該作者
LCD的初始化在主程序里做一次就可以了,不用每次寫入顯示數據時都做
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩av中文| 午夜精品久久 | 国产精品成人国产乱一区 | 91亚洲免费| 2019天天干天天操 | 久久亚洲一区二区 | 精品久久久久久久久久久久久久 | 日韩欧美一区二区三区 | 国产激情在线 | 国产精品午夜电影 | 精品国产乱码久久久久久牛牛 | 欧美国产亚洲一区二区 | 九九热精品在线 | 蜜桃视频在线观看免费视频网站www | 激情免费视频 | 亚洲成人综合社区 | 91豆花视频 | 亚洲一区二区三区视频免费观看 | 精品一区二区三区视频在线观看 | 精品网站999www | www.久久精品视频 | 成人a免费| 在线精品一区 | 欲色av | 久久久精彩视频 | 国产一区二区欧美 | 精品亚洲一区二区 | 亚洲免费视频一区 | 亚洲国产一区二区视频 | 一区二区国产精品 | 美女久久久久久久久 | 日韩欧美电影在线 | 天堂网中文字幕在线观看 | 欧美成人h版在线观看 | 在线欧美小视频 | 精品免费国产一区二区三区四区介绍 | 国产激情视频在线 | 久久人爽 | 亚洲少妇综合网 | 日韩欧美一区二区三区 | 欧美黑人一级爽快片淫片高清 |