资源预览内容
第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
第9页 / 共25页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
液晶显示液晶显示164接口实验接口实验n实验目的实验目的n实验器材实验器材n硬件接线硬件接线n软件功能软件功能n程序清单程序清单n备注说明备注说明1实验目的实验目的: 掌握点阵字符型液掌握点阵字符型液晶显示晶显示(LCD)(LCD)编程方法编程方法2实验器材实验器材: 2.LCD(2.LCD(液晶显示屏液晶显示屏) ) HC164(8HC164(8位移位寄存器位移位寄存器) )3硬件接线硬件接线: VCC16151413121110090807060504030201LCD(HD44780)Q7Q6Q5Q4Q3Q2Q1Q0 B ACPCRVCC74HC164MOS1SPSCKPTC3PTC2PTC1PTC0SSVCCMC68HC908GP324软件功能软件功能:n开始运行时开始运行时,LCD,LCD显示显示“Wait “Wait Receiving.”Receiving.”n等待接收字符,当收到等待接收字符,当收到1616个个字符时,显示之,重复此功字符时,显示之,重复此功能能5程序清单:程序清单:程序说明程序说明口地址定义口地址定义SPI地址定义地址定义SCI串行通信口定义串行通信口定义变量定义变量定义系统初始化系统初始化主程序主程序LCD初始化子程序初始化子程序LCD命令执行子程序命令执行子程序74HC164初始化初始化LCD显示子程序显示子程序中断矢量中断矢量6*-*-程序说明程序说明-*-* *文件名文件名* *硬件连接:硬件连接:74HC16474HC164的的Q0-Q7Q0-Q7分别接分别接LCDLCD的的DB0-DB7DB0-DB7;* 74HC164* 74HC164的的MRMR,CLKCLK接分别接分别MCUMCU的的PTC3PTC3,SCKSCK;* 74HC164* 74HC164的的B B接接MCUMCU的的VCC(+5V)VCC(+5V);* 74HC164* 74HC164的的A A接接MCUMCU的的MOSIMOSI;* LCD* LCD的的E E,R/WR/W,RSRS分别接的分别接的PTC2PTC2,PTC1PTC1,PTC0PTC0。* *程序描述:程序描述:1.1.开始运行时开始运行时,LCD,LCD显示显示“Wait Receiving.”“Wait Receiving.”* 2.* 2.等待接收字符,当收到等待接收字符,当收到1616个字符时显示之,个字符时显示之,* * 重复此功能。重复此功能。* *目的:掌握点阵字符型液晶显示目的:掌握点阵字符型液晶显示(LCD)(LCD)编程方法编程方法* *备注说明:从备注说明:从PCPC机输入被显示的机输入被显示的1616个字符,以串行通信方个字符,以串行通信方* * 式发送到单片机,在液晶屏上显出这些字符。式发送到单片机,在液晶屏上显出这些字符。*-*-*7*-*-口地址定义口地址定义-PTC EQU $0002 PTC EQU $0002 ;C;C口数据寄存器口数据寄存器LCD-RS EQU 0 LCD-RS EQU 0 ;LCD;LCD寄存器选择信号接寄存器选择信号接PTC0PTC0LCD-RW EQU 1 LCD-RW EQU 1 ; ;读写信号接读写信号接PTC1PTC1LCD-E EQU 2 LCD-E EQU 2 ;LCD;LCD使能信号接使能信号接PTC2PTC2HC164-CR EQU 3 HC164-CR EQU 3 ;74HC164;74HC164(移位寄存器)(移位寄存器) ; ;清除端接清除端接PTC3PTC3DDRC EQU $0006 DDRC EQU $0006 ;C;C口数据方向寄存器口数据方向寄存器*-*-SPI(SPI(串行外设接口串行外设接口) )地址定义地址定义-SPCR EQU $0010 SPCR EQU $0010 ;SPI;SPI控制寄存器控制寄存器SPSCR EQU $0011 SPSCR EQU $0011 ;SPI;SPI状态和控制寄存器状态和控制寄存器BIT-SPTE EQU 3 BIT-SPTE EQU 3 ;SPI;SPI发送器空标志位发送器空标志位SPDR EQU $0012 SPDR EQU $0012 ;SPI;SPI数据寄存器数据寄存器8*-*-SCISCI串行通信口地址串行通信口地址-SCS1 EQU $0016 SCS1 EQU $0016 ; ;串行通信接口状态寄存器地址串行通信接口状态寄存器地址SCDR EQU $0018 SCDR EQU $0018 ; ;串行通信接口数据寄存器地址串行通信接口数据寄存器地址*-*-变量定义变量定义-ORG $0090ORG $0090BYTEDISPLY RMB 1 BYTEDISPLY RMB 1 ; ;临时存放一个字符临时存放一个字符LCD-BUFFER RMB 16 LCD-BUFFER RMB 16 ; ;存放存放1616字节字节FlashStartAddr equ $8000FlashStartAddr equ $8000 ; ;程序开始地址(因芯片不同可以更改)程序开始地址(因芯片不同可以更改)*9*-*-主程序主程序- ORG ORG ORG ORG FlashStartAddrFlashStartAddrMainInit: ;MainInit: ;复位后程序从此开始执行复位后程序从此开始执行 ; ;系统初始化系统初始化 SEI ; SEI ;禁止所有中断禁止所有中断 LDHX #$023F ; LDHX #$023F ;堆栈初始化,放入堆栈初始化,放入GP32GP32的的RAMRAM最高端最高端 TXS TXS JSR Init0 ; JSR Init0 ;调系统初始化子程序调系统初始化子程序Init0Init0,初始学习时跳过此处,初始学习时跳过此处 ;I/O ;I/O初始化初始化 NOP NOP ; ;初始化初始化 LDA #%00111010 LDA #%00111010 ;SPI;SPI初始化设置初始化设置: :禁止中断禁止中断, , ; ;主机方式主机方式, ,时钟低电平有时钟低电平有SPSCKSPSCK启动移位、启动移位、 ; ;脉冲脉冲, ,普通推拉模式普通推拉模式, ,允许允许SPISPI STA SPCR STA SPCR LDA #%00000000 LDA #%00000000 ; ;禁止中断禁止中断, ,禁止错误检测禁止错误检测, , ; ;时钟分频系数为时钟分频系数为2 2 STA SPSCR STA SPSCR 10 LDA DDRC LDA DDRC ; ;初始化初始化E E,RWRW,RSRS控制信号控制信号 ORA #%00001111 ORA #%00001111 ;PTC3-0;PTC3-0为输出为输出 STA DDRC STA DDRC LDHX #$00 LDHX #$00DISPLAY1: DISPLAY1: ; ;把要显示的把要显示的1616个初始字符个初始字符 ; ;放入放入LCD-BUFFERLCD-BUFFER中中 LDA DISPLAYBYTES,X LDA DISPLAYBYTES,X STA LCD-BUFFER,X STA LCD-BUFFER,X AIX #1 AIX #1 CPHX #$10 CPHX #$10 BNE DISPLAY1 BNE DISPLAY1 ; ;循环循环1616次次 BRA START BRA START11DISPLAYBYTES FCB WAIT RECEIVING.DISPLAYBYTES FCB WAIT RECEIVING.START:START: JSR INIT-74HC164JSR INIT-74HC164 ; ;初始化初始化74HC16474HC164 ;(;(移位寄存器移位寄存器) ) JSR INIT-LCDJSR INIT-LCD ;LCD;LCD初始化初始化 JSR SHOW-LCD-BUFFERJSR SHOW-LCD-BUFFER ; ;把把LCD-BUFFERLCD-BUFFER中的中的 ;16;16个字符送个字符送LCDLCD显示显示12 LDHX #$00 LDHX #$00 DISPLAY2: DISPLAY2: ; ;从从PCPC机接收机接收1616个字符放入个字符放入LCD-LCD- ;BUFFER ;BUFFER开始的内存中开始的内存中 BRCLR 5,SCS1,* BRCLR 5,SCS1,* ; ;与与PCPC机串行通信机串行通信, ,判断接收器判断接收器 ; ;是否满是否满 LDA SCDR LDA SCDR ; ;读读SCISCI数据寄存器数据寄存器 STA LCD-BUFFER,X STA LCD-BUFFER,X AIX #1 AIX #1 CPHX #$10 CPHX #$10 BNE DISPLAY2 BNE DISPLAY2 JMP START JMP START*13*-*-INIT-LCD(LCDINIT-LCD(LCD初始化子程序初始化子程序) )-* *入口入口: :无无* *功能功能: :初始化初始化LCD(HD44780)LCD(HD44780)* *调用子程序调用子程序:LCDCOMMAND(LCD:LCDCOMMAND(LCD命令执行子程序命令执行子程序) )* *占用占用CPUCPU内部寄存器内部寄存器:A,X:A,X*-*-INIT-LCD:INIT-LCD: BCLR LCD-RS,PTC ; BCLR LCD-RS,PTC ;令令LCDLCD的的RS=0,R/W=0,RS=0,R/W=0, ; ;进行进行LCDLCD初始化初始化 BCLR LCD-RW,PTC BCLR LCD-RW,PTC LDA #%00111000 LDA #%00111000 ; ;功能设置功能设置:8:8位数据接口位数据接口, , ;2 ;2行显示行显示,5*10,5*10点阵模式点阵模式 JSR LCDCOMMAND JSR LCDCOMMAND14 LDA #%00001000 LDA #%00001000 ; ;显示开关控制显示开关控制: :开显示,开显示, ; ;关光标显示关光标显示, ,不闪烁不闪烁 JSR LCDCOMMAND JSR LCDCOMMAND JSR INIT-74HC164 JSR INIT-74HC164 ;74HC164(;74HC164(移位寄存器移位寄存器) ) ; ;初始化初始化 BCLR LCD-RS,PTC BCLR LCD-RS,PTC ;RS,RW;RS,RW清零开始清屏清零开始清屏 BCLR LCD-RW,PTC BCLR LCD-RW,PTC BRCLR BIT-SPTE,SPSCR,* BRCLR BIT-SPTE,SPSCR,* ; ;判断发送数据寄存器判断发送数据寄存器 ; ;是否为空是否为空 LDA #%00000001 LDA #%00000001 ; ;清屏指令清屏指令 JSR LCDCOMMAND JSR LCDCOMMAND LDHX #$2DF LDHX #$2DF ;ms;ms 15CLR-LCD-2-MS: CLR-LCD-2-MS: ; ;延时延时 AIX #-1AIX #-1 CPHX #0 CPHX #0 BNE CLR-LCD-2-MSBNE CLR-LCD-2-MS LDA #%00000110LDA #%00000110 ; ;输入方式设置输入方式设置: :数据读写数据读写 ; ;操作后操作后,AC,AC自动增自动增1 1显示不动显示不动, , ; ;光标左移光标左移 JSR LCDCOMMANDJSR LCDCOMMAND LDA #%00010100LDA #%00010100 ; ;光标移位设置光标移位设置: :光标右光标右 ; ;移一个字符位移一个字符位,AC,AC自动加自动加1 1 JSR LCDCOMMANDJSR LCDCOMMAND LDA #%00001100 LDA #%00001100 ; ;显示开关设置显示开关设置: :开显示开显示, , ; ;关光标显示关光标显示, ,不闪烁不闪烁 JSR LCDCOMMANDJSR LCDCOMMAND RTS RTS16*-*-LCDCOMMAND(LCDLCDCOMMAND(LCD命令执行子程序命令执行子程序) )-* *入口入口:A:A* *功能功能: :对对A A中指令送中指令送LCD(HD44780),LCD(HD44780),进行命令执行或进行命令执行或* *字符显示字符显示* *占用占用CPUCPU内部寄存器内部寄存器:A:A*-*-LCDCOMMAND:LCDCOMMAND: PSHH PSHH ; ;保护现场保护现场 PSHX PSHX PSHA PSHA ; ;保护入口指令码保护入口指令码 BRCLR BIT-SPTE,SPSCR,* BRCLR BIT-SPTE,SPSCR,* ; ;测试状态测试状态, ,发送数据发送数据 ; ;寄存器是否为空寄存器是否为空17JSR INIT-74HC164 JSR INIT-74HC164 ; ;初始化初始化74HC16474HC164芯片芯片 PULA PULA ; ;弹出入口指令码弹出入口指令码 STA SPDR STA SPDR ; ;把指令码发送出去把指令码发送出去 BRCLR BIT-SPTE,SPSCR,* BRCLR BIT-SPTE,SPSCR,* ; ;测试发送完毕测试发送完毕NOPNOP NOP NOP BSET LCD-E,PTC BSET LCD-E,PTC ;LCD;LCD开始接受数据开始接受数据, , ; ;置使能位为置使能位为1 118 NOP NOP NOP NOP BCLR LCD-E,PTC BCLR LCD-E,PTC ;LCD;LCD结束接受数据结束接受数据, ,置置 ; ;使能位为使能位为0 0 LDHX #$0020 LDHX #$0020 ; ;等待等待40us40us DBNZX * DBNZX * PULX PULX ; ;恢复现场恢复现场 PULH PULH RTS RTS*19*-*-INIT-74HC164(74HC164INIT-74HC164(74HC164初始化初始化) )-* *入口入口: :无无* *功能功能: :清空清空74HC16474HC164* *占用占用CPUCPU内部寄存器内部寄存器:HX:HX*-*-INIT-74HC164:INIT-74HC164: BCLR HC164-CR,PTC BCLR HC164-CR,PTC ;CR;CR为为0 0清除清除74HC16474HC164中的数据中的数据 BSET HC164-CR,DDRC BSET HC164-CR,DDRC LDHX #$0020 LDHX #$0020 ; ;等待等待40us40us DBNZX * DBNZX * BSET HC164-CR,PTC BSET HC164-CR,PTC ; ;清除完毕清除完毕,74HC64,74HC64的的CRCR ; ;转为高电平转为高电平 RTS RTS20*-*-SHOW-LCD-BUFFEER(LCDSHOW-LCD-BUFFEER(LCD显示子程序显示子程序) )-*-* *入口入口: :内存内存LCD-BUFFERLCD-BUFFER开始的开始的1616个地址中存放要显个地址中存放要显* *示的字符编码示的字符编码* *功能功能: :显示内存显示内存LCD-BUFFERLCD-BUFFER开始的开始的1616字节数据字节数据* *调用调用:LCDCOMMAND:LCDCOMMAND子程序子程序* *占用占用CPUCPU内部寄存器内部寄存器:A,HX:A,HX*-*-*SHOW-LCD-BUFFER: SHOW-LCD-BUFFER: ; ;进行显示数据寄存器进行显示数据寄存器 ;(DD RAM);(DD RAM)地址设置地址设置 BCLR LCD-RS,PTC BCLR LCD-RS,PTC BCLR LCD-RW,PTC BCLR LCD-RW,PTC ; ;设置前设置前8 8个字符个字符 ; ;首首DDRAMDDRAM地址地址21 LDA #%10000000 LDA #%10000000 JSR LCDCOMMAND JSR LCDCOMMAND LDHX #$0 LDHX #$0 ; ;显示前显示前8 8个字符个字符SHOW-FIRST-8BYTE:SHOW-FIRST-8BYTE: BSET LCD-RS,PTC BSET LCD-RS,PTC ; ;令令LCDRS=1,R/W=0,LCDRS=1,R/W=0, ; ;写入数据到写入数据到DD RAMDD RAM中中 BCLR LCD-RW,PTC BCLR LCD-RW,PTC LDA LCD-BUFFER,X LDA LCD-BUFFER,X ; ;将将LCD-BUFFER+XLCD-BUFFER+X ; ;的数据放入的数据放入A A作为入口作为入口 JSR LCDCOMMAND JSR LCDCOMMAND22 AIX #1AIX #1 CPHX #$8 CPHX #$8 BNE SHOW-FIRST-8BYTE BNE SHOW-FIRST-8BYTE LDA #%11000000 LDA #%11000000 ; ;设置后设置后8 8个字符首个字符首DD RAMDD RAM地址地址 BCLR LCD-RS,PTC BCLR LCD-RS,PTC BCLR LCD-RW,PTC BCLR LCD-RW,PTC JSR LCDCOMMAND JSR LCDCOMMAND LDHX #$08 LDHX #$08 ; ;显示后显示后8 8个字符个字符SHOW-NEXT-8BYTE:SHOW-NEXT-8BYTE: BSET LCD-RS,PTC BSET LCD-RS,PTC ; ;令令LCDLCD的的RS=1,R/W=0,RS=1,R/W=0,写入写入 ; ;数据到数据到DD RAMDD RAM中中23 BCLR LCD-RW,PTC BCLR LCD-RW,PTC LDA LCD-BUFFER,X LDA LCD-BUFFER,X ; ;将将LCD-BUFFER+XLCD-BUFFER+X的数据的数据 ; ;放入放入A A作为入口作为入口 JSR LCDCOMMAND JSR LCDCOMMAND AIX #1 AIX #1 CPHX #$10 CPHX #$10 BNE SHOW-NEXT-8BYTE BNE SHOW-NEXT-8BYTE RTS RTS*-中断矢量中断矢量-*-* ORG $FFFE ORG $FFFE ; ;复位向量复位向量 DW MAININIT DW MAININIT24系统初始化nInit0: ;系统初始化Init0子程序n LDA #%00000001 ;初始化CONFIG2n STA $001En LDA #%00111101 ;初始化CONFIG1n STA $001Fn CLR $0036 ;初始化PTCLn MOV #$01,$0036n MOV #$01,$0038n MOV #$2C,$0039n MOV #$80,$003An BSET 5,$0036n BSET 7,$0037n BSET 4,$0036n RTS25
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号