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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1391|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)1602匯編,調(diào)試亂碼或者不顯示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:73992 發(fā)表于 2022-2-16 09:03 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
程序目的是在 lcd1602 第一行最后一格顯示字符  “A”
硬件p0口作為8位數(shù)據(jù)線
我調(diào)試了好幾天了,要么滿屏幕跑A,要么亂碼,要么就不顯示,
程序如下,請老師指導(dǎo)一下
EN                BIT                P2.7                         ;      程序主要目的是在lcd1602        在第一行最后一格顯示A
RW                BIT                P2.5
RS                BIT                P2.6       
SJMP        MAIN
WRCMD:                                                        ;寫指令程序,用R3寄存器中轉(zhuǎn)指令值
                CLR                EN
                CLR                RS
                CLR                RW
                MOV                P0,R3                        ;將R3的值賦給P0口
                lcall        DE5MS
                SETB        EN                                ;使能
                NOP
                NOP
                NOP
                CLR                EN
                LCALL        DE5MS
                RET
WRDAT:                                                        ;寫數(shù)據(jù)程序,用R4寄存器中轉(zhuǎn)數(shù)據(jù)值
                CLR                EN
                SETB        RS
                CLR                RW
                MOV                P0,R4                        ;將R4的值賦給P0口
                lcall        DE5MS
                SETB        EN                                ;使能
                NOP
                NOP
                NOP
                CLR                EN
                LCALL        DE5MS
                RET
INIT:
                MOV                R3,#0X38                ;初始化程序       
                LCALL        WRCMD
                LCALL        DE5MS
                MOV                R3,#0X38
                LCALL        WRCMD
                LCALL        DE5MS
                MOV                R3,#0X38                       
                LCALL        WRCMD
                LCALL        DE5MS
                MOV                R3,#0X38
                LCALL        WRCMD
                LCALL        DE5MS
                MOV                R3,#0X08                       
                LCALL        WRCMD
                LCALL        DE5MS
                MOV                R3,#0X01
                LCALL        WRCMD
                LCALL        DE5MS
                MOV                R3,#0X06                       
                LCALL        WRCMD
                LCALL        DE5MS
                MOV                R3,#0X0C
                LCALL        WRCMD
                LCALL        DE5MS
                RET
MAIN:                                                                ;主程序開始的地方
                                LCALL        INIT                ;調(diào)用初始化程序
                D1:               
                                LCALL        DE5MS
                                MOV                r3,#0X80        ;將lcd1602第一行07位地址0x80用r3寄存器轉(zhuǎn)給p0口
                                LCALL        WRCMD
                                LCALL        DE5MS
                                MOV                r4,#0X41        ;將lcd1602第一行07位地址,要顯示數(shù)據(jù)用r4寄存器轉(zhuǎn)給p0口
                                LCALL        WRDAT
                                LCALL        DE5MS
                                SJMP  d1
DE5MS:        MOV                51H,#20                                ;延時(shí)程序
D2:                MOV                52H,#123
                DJNZ        52H,$
                DJNZ        51H,D2
                RET
END       

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

使用道具 舉報(bào)

沙發(fā)
ID:73992 發(fā)表于 2022-2-16 16:28 | 只看該作者
已經(jīng)解決,是第一行地址沒有加80h造成的
回復(fù)

使用道具 舉報(bào)

板凳
ID:73992 發(fā)表于 2022-2-16 22:16 | 只看該作者
//修改后顯示成功的程序如下
                                                        //本程序主要目的是在lcd1602        在第一行  第二行各顯示一個(gè)字符//

EN                BIT                P2.7                         
RW                BIT                P2.5
RS                BIT                P2.6
                SJMP        MAIN
WRCMD:       
                lcall        DE5MS                ;這里要加延時(shí),不然不顯示
                CLR                EN
                CLR                RS
                CLR                RW
                MOV                P0,R3                ;將寄存器R3的值賦給P0口
                SETB        EN                        ;使能
                CLR                EN
                RET
WRDAT:                                               
                lcall        DE5MS                ; 這里要加延時(shí),不然不顯示
                CLR                EN
                SETB        RS
                CLR                RW
                MOV                P0,R4                ;將寄存器R4的值賦給P0口
                SETB        EN                        ;使能
                CLR                EN
                RET
INIT:
                MOV                R3,#0X38                ;初始化程序                   0x38要寫兩次以上,不然第二行不顯示
                LCALL        WRCMD
                MOV                R3,#0X38                ;初始化程序       
                LCALL        WRCMD
                MOV                R3,#0X0c                       
                LCALL        WRCMD
                LCALL        DE5MS
                MOV                R3,#0X06
                LCALL        WRCMD
                LCALL        DE5MS
                MOV                R3,#0X01                       
                LCALL        WRCMD
                LCALL        DE5MS
                RET
MAIN:                                                                ;主程序開始的地方
                                LCALL        INIT                ;調(diào)用初始化程序
                D1:               
                                MOV                R3,#0x80        ;將lcd1602第一行要顯示的地址用r3寄存器轉(zhuǎn)給p0口,第一行地址 80H+00H=80H起
                                LCALL        WRCMD
                                MOV                r4,#0x42        ;第一行顯示字符數(shù)據(jù)        “B”
                                LCALL        WRDAT
                                MOV                R3,#0xc0        ;將lcd1602第二行位地址用r3寄存器轉(zhuǎn)給p0口,第二行地址 80H+40H=C0H起
                                LCALL        WRCMD
                                MOV                r4,#0x41        ;第二行顯示字符數(shù)據(jù)         "A"
                                LCALL        WRDAT
                                SJMP          $
DE5MS:        MOV                51H,#20                                ;延時(shí)程序
D2:                MOV                52H,#123
                DJNZ        52H,$
                DJNZ        51H,D2
                RET
END       
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产高清免费视频 | 免费黄网站在线观看 | 国产在线视频在线观看 | 中文精品久久 | 奇米影视首页 | 精品视频在线一区 | 户外露出一区二区三区 | 日日夜夜精品视频 | 中文一区二区视频 | 欧美久久国产 | 欧美日韩不卡 | 欧美亚洲网站 | 亚洲精品乱码久久久久久蜜桃 | 亚洲区一区二区 | 亚洲精品久久久久久久久久久 | 国产精品区二区三区日本 | 人人cao| 亚洲第一av| 午夜精品在线 | 在线成人免费观看 | 欧美日韩亚洲视频 | 黄色片在线 | 欧美在线a | 99re6在线视频精品免费 | 老司机成人在线 | 国产精品夜色一区二区三区 | 91美女在线 | 麻豆91精品91久久久 | 日本黄色大片免费 | 国产精品资源在线观看 | 国产成年人小视频 | 精品国产一区二区三区久久影院 | 欧美日本在线观看 | 国产精品高清一区二区 | 精品久久久久久 | 精品久草| 欧美激情一区二区三级高清视频 | 日日干日日操 | 伊人久久综合 | 蜜桃一区二区三区 | 免费黄色的网站 |