收藏 分销(赏)

飞思卡尔8位单片机MC9S0813程序LCD编程汇编程序例.doc

上传人:pc****0 文档编号:7827753 上传时间:2025-01-19 格式:DOC 页数:4 大小:741.50KB
下载 相关 举报
飞思卡尔8位单片机MC9S0813程序LCD编程汇编程序例.doc_第1页
第1页 / 共4页
飞思卡尔8位单片机MC9S0813程序LCD编程汇编程序例.doc_第2页
第2页 / 共4页
飞思卡尔8位单片机MC9S0813程序LCD编程汇编程序例.doc_第3页
第3页 / 共4页
飞思卡尔8位单片机MC9S0813程序LCD编程汇编程序例.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、13.3.1 LCD编程汇编程序例(1)LCD编程汇编子程序LCD编程汇编子程序(LcdShow.asm)*LCD引脚定义LcdData EQU PTB ;Lcd显示数据传送口LcdData_D EQU DDRB ;数据口方向寄存器LcdCtrl EQU PTC ;Lcd控制信号传送口LcdCtrl_D EQU DDRC ;控制口方向寄存器LcdRS EQU 0 ;Lcd寄存器选择信号PTC0LcdRW EQU 1 ;读写信号接PTC1LcdE EQU 2 ;Lcd使能信号接PTC2*LCDShow:在HD44780显示屏上显示数据-*功能描述:在HD44780显示屏上显示HX所指向的32个数

2、据 *入口:HX=待显示的数据 *出口:无 *堆栈深度:2+8+2=12 *内部调用:InitLCD,LCDCommand *-以上为子程序说明-*LcdShow: PSHA ;保护A AIS #-!1 ;开辟临时变量 JSR InitLcd ;调用Lcd初始化子程序 ;显示第1行16个字符 BCLR LcdRS,LcdCtrl ;RS=0 设置显示字符首DD RAM地址 BCLR LcdRW,LcdCtrl ;R/W=0 LDA #%10000000 ;后7位为DDRAM地址,=0x00 JSR LcdCommand LDA #!16 ;临时变量初值=16(1行显示个数) STA !1,SP

3、 LcdShow1: BSET LcdRS,LcdCtrl ;RS、R/W=1 0 写数据到DDRAM BCLR LcdRW,LcdCtrl LDA ,X ;取待显示的数据 JSR LcdCommand AIX #!1 ;指向下一个待显示的数据 DBNZ !1,SP,LcdShow1 ;显示完毕?否,继续 ;显示第2行16个字符 BCLR LcdRS,LcdCtrl ;RS=0 设置显示字符首DD RAM地址 BCLR LcdRW,LcdCtrl ;R/W=0 LDA #%11000000 ;后7位为DDRAM地址,=0x40 JSR LcdCommand LDA #!16 ;临时变量初值=1

4、6(1行显示个数) STA !1,SP LcdShow2: BSET LcdRS,LcdCtrl ;RS、R/W=1 0 写数据到DDRAM BCLR LcdRW,LcdCtrl LDA ,X ;取待显示的数据 JSR LcdCommand AIX #!1 ;指向下一个待显示的数据 DBNZ !1,SP,LcdShow2 ;显示完毕?否,继续 AIS #!1 ;释放临时变量 PULA ;恢复A RTS *InitLcd:初始化Lcd(HD44780)-*功能描述:初始化Lcd(HD44780),设置显示方式,清屏,AC自动+1*入 口:无 *出 口:无 *堆栈深度:2+3+3=8 *内部调用:

5、LCDCommand *-*InitLcd: PSHH ;保护HX、A PSHX PSHA LDA #%11111111 ;数据口为输出 STA LcdData_D LDA LCDCtrl_D ;控制口低三位为输出 ORA #%00000111 STA LCDCtrl_D BSET LcdE,LcdCtrl ;进行LCD设置 BCLR LcdRS,LcdCtrl ;RS、R/W=00 BCLR LcdRW,LcdCtrl LDA #%00111100 ;8位数据,2行显示,5*7点阵 JSR LcdCommand LDA #%00001000 ;关显示,关光标显示,不闪烁 JSR LcdCom

6、mand LDA #%00000001 ;清屏 JSR LcdCommand LDHX #$03DF ;等待清屏完毕,时间1.6msDelay2ms: ;延时 AIX #-1 CPHX #0 BNE Delay2ms LDA #%00000110 ;AC自动增1,显示不移动,光标左移 JSR LcdCommand LDA #%00010100 ;光标右移一个字符AC自动+1 JSR LcdCommand LDA #%00001100 ;开显示,关光标显示,不闪烁 JSR LcdCommand PULA ;恢复HX、A PULX PULH RTS *LcdCommand:执行A中的Lcd命令-*

7、功能描述:执行A中的Lcd命令,且延时 *入 口:A,存放指令码或数据 *出 口:无 *堆栈深度:2+1=3 *-*LcdCommand: PSHX ;保护X LDX #$30 ;等待40us DBNZX * STA LcdData ;A-LcdData BSET LcdE,LcdCtrl ;LcdE=1,为了获得E下降沿 NOP NOP NOP BCLR LcdE,LcdCtrl ;LcdE=0,E下降沿,Lcd获得数据 LDX #$30 ;等待40us DBNZX * PULX ;恢复X RTS(2)LCD编程汇编主程序 实例编号:A07 路径:ASMA07_ 液晶LCD显示(Lcdmai

8、n.asm)*-*文 件 名:LcdMain.asm *硬件连接: 1.LCD的DB0-7与MCU的B口的PTB0-7连接 * 2.LCD的RS,R/W,E与MCU的PTC0,PTC1,PTC2连接 *功能:1.初始显示:Wait Receiving. Soochow 2005.08* 2.等待接收字符,当收到32个字符时显示,重复此功能 *-嵌入式应用技术基础教程教学实例-*头文件$include GP32ASM.H ;包含GP32的头文件*两个起始地址名RAMstartAddr equ $0040 ;RAM的起始地址FlashStartAddr equ $8000 ;程序开始地址*内存变量

9、 org RAMstartAddr ;RAM的起始地址 LCD_Buf32 rmb !32 ;存放32字节*=*主程序 org FlashStartAddr ;程序起始地址MainInit: ;复位后程序从此开始执行 ;系统初始化 SEI LDHX #$023F ;堆栈初始化 TXS JSR GP32Init ;调系统初始化子程序GP32Init ;串行口初始化 JSR SCIInit ;显示初始字符Wait Receiving. Soochow 2005.08 LDHX #DisplayInit JSR LCDShow ;程序总循环入口MainLoop: LDHX #LCD_Buf32 LD

10、A #!32 JSR SCIReN BCS MainLoop ;C=1,未收到 ;把LCD_Buf32为首址32个字符送LCD显示 LDHX #LCD_Buf32 JSR LCDShow JMP MainLoopDisplayInit FCB WAIT RECEIVING. FCB Soochow 2005.08 *外部子程序存放处,这些子程序都在当前目录中$INCLUDE H08SCI.asm $INCLUDE GP32init.asm$INCLUDE SCIInit.asm$include LcdSub.asm*中断向量 ORG $FFFE ;复位向量 DW MainInit (3)PC机

11、方程序 图13-5 LCD实验程序PC机方操作界面PCJ机部分主要功能是输入要在单片机板的液晶屏上显示的32个字符,然后以串行通信方式发向单片机,单片机接收此组字符在液晶屏上显示出来。下面给出PC机方程序。PC机方操作界面见图13-5。可在图中的输入框中输入要显示的字符,仅限于可显示字符,以便与LCD模块内部字符编码相一致,LCD才能正确显示。数据输入后,单击“发送数据”按钮,数据从串行口发向单片机,则LCD上显示相应字符。可以重复操作。实例编号:A07 路径:ASMA07_ 液晶LCD显示 vb_lcd Option ExplicitDim i As Integer 临时使用Dim send

12、data(31) As Byte 发送数据数组Private Sub Form_Load() 初始化 串行口初始化 Call SCIinit(MSComm1, 1, 9600,N,8,1) Text1.MaxLength = 32 输入框限制32个字符End SubPrivate Sub Command1_click(Index As Integer) Select Case Index Case 0 单击“发送数据”命令按钮 For i = 1 To Len(Text1.Text) 给senddata数组赋值senddata(i - 1) = Asc(Mid(Text1.Text, i, 1) Next i If Len(Text1.Text) 32 Then 不足部分补空格 For i = Len(Text1.Text) To 31 senddata(i) = 32 Next i End If MSComm1.Output = senddata 发送出去 Case 1 单击“退出”命令按钮 MSComm1.PortOpen = False 关闭 End End SelectEnd Sub

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服