收藏 分享(赏)

LCD12864显示程序(汇编语言).doc

上传人:tangtianxu1 文档编号:2979409 上传时间:2018-10-01 格式:DOC 页数:7 大小:49KB
下载 相关 举报
LCD12864显示程序(汇编语言).doc_第1页
第1页 / 共7页
LCD12864显示程序(汇编语言).doc_第2页
第2页 / 共7页
LCD12864显示程序(汇编语言).doc_第3页
第3页 / 共7页
LCD12864显示程序(汇编语言).doc_第4页
第4页 / 共7页
LCD12864显示程序(汇编语言).doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、;实验目的:熟悉 12864LCD 的使用;12864LCD 带中文字库;编程让 12864LCD 显示公司名称“深圳乾龙盛电子” ,公司电话“075528187975” ,公司传真“0755-28187976”;硬件设置:;关断所有拨码开关。#include ;_CONFIG _DEBUG_OFF芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M 晶体 HS 振荡#define RS PORTA,5 ;命令/数据选择#DEFINE RW PORTA,4 ;读/写选择#DEFINE E PORTA,3 ;使能信号#DEFINE PSB PORTA,2 ;并口/串口选择(H/L

2、)#DEFINE RST PORTA,0 ;复位信号;-LCD_X EQU 30H ;页地址LCD_Y EQU 31H ;Y 地址COUNT EQU 32H ;循环计数用COUNT1 EQU 33H ;循环计数用COUNT2 EQU 34H ;循环计数用POINT EQU 35H ;查表偏移地址 POINT1 EQU 36H ;查表偏移地址POINT2 EQU 37H ;查表偏移地址TEMP EQU 38H ;临时寄存器TEMP1 EQU 39H ;临时寄存器;-ORG 0000H ;复位地址NOP ;ICD 需要的空指令GOTO MAIN ;跳转到主程序;*主程序*MAINBANKSEL T

3、RISACLRF TRISA ;A 口输出CLRF TRISD ;D 口输出BANKSEL ADCON1MOVLW 06HMOVWF ADCON1 ;A 口全为数字口CLRF STATUSBCF RST ;复位 LCDCALL DELAY ;延时一段时间BSF RST ;清除复位信号NOPBSF PSB ;并口通讯;*初始化*MOVLW 30H ;基本指令操作CALL SEND_IMOVLW 01H ;清除显示CALL SEND_IMOVLW 06H ;指定在写入或读取时,光标的移动方向CALL SEND_IMOVLW 0CH ;开显示,关光标,不闪烁CALL SEND_I;*显示汉字*HAN

4、_WR2CALL CLEAR_P ;清屏HAN_WR2A ;“深圳乾龙盛电子”MOVLW LOW(TAB1A) MOVWF POINTMOVLW HIGH(TAB1A)MOVWF POINT1 ;获取表格的首地址MOVLW 0eH ;数数据字节个数(7 个汉字共 14 字节)MOVWF COUNT MOVLW 81H ;页地址CALL SEND_ICALL QUSHU HAN_WR2B ;“WWW。PIC16。COM”MOVLW LOW(TAB1B)MOVWF POINTMOVLW HIGH(TAB1B)MOVWF POINT1MOVLW 10HMOVWF COUNTMOVLW 90HCALL

5、 SEND_ICALL QUSHUHAN_WR2C ;“TEL0755-28187975”MOVLW LOW(TAB1C)MOVWF POINTMOVLW HIGH(TAB1C)MOVWF POINT1MOVLW 10HMOVWF COUNTMOVLW 88HCALL SEND_ICALL QUSHUHAN_WR2D ;“FAX0755-28187976”MOVLW LOW(TAB1D)MOVWF POINTMOVLW HIGH(TAB1D)MOVWF POINT1MOVLW 10HMOVWF COUNTMOVLW 98HCALL SEND_ICALL QUSHUCALL DELAYCALL

6、FLASH ;调用闪烁程序CALL CLEAR_P ;清屏GOTO HAN_WR2 ;返回重新显示;*写准备*WR_ZBMOVLW 30HCALL SEND_IMOVFW LCD_Y ;Y 地址CALL SEND_IMOVFW LCD_X ;页地址CALL SEND_IRETURN;*闪烁程序*FLASHMOVLW 8H ;关显示CALL SEND_ICALL DELAY1MOVLW 0CH ;开显示CALL SEND_ICALL DELAY1CALL DELAY1MOVLW 08H ;关显示CALL SEND_ICALL DELAY1MOVLW 0CH ;开显示CALL SEND_ICALL

7、 DELAY1CALL DELAY1MOVLW 08H ;关显示CALL SEND_ICALL DELAY1MOVLW 0CH ;开显示CALL SEND_ICALL DELAY1CALL DELAY1RETURN;*清屏*CLEAR_PMOVLW 1H ;清除显示CALL SEND_IRETURN;*取数显示程序*QUSHUCLRF TEMP ;偏移地址清 0QUSHU1MOVFW TEMPADDWF POINT,0 ;求偏移地址MOVWF POINT2 CALL TAB1 ;查表CALL SEND_D ;送 LCD 显示INCF TEMP,1 ;偏移地址加 1,查找下一个数据CALL DE

8、LAYDECFSZ COUNT,1GOTO QUSHU1RETURN;*送数据到 LCD*;写数据子程序;RS=1,RW=0,E=高脉冲,D0-D7=数据;*SEND_DMOVWF TEMP1 ;暂存数据CALL CHK_BUSY ;判断总线是否忙BSF RSBCF RWMOVFW TEMP1MOVWF PORTD ;送出数据BSF ENOPNOPBCF ERETURN;*送命令到 LCD*;写指令子程序;RS=0,RW=0,E=高脉冲,D0-D7=指令码;*SEND_IMOVWF TEMP1 ;暂存命令CALL CHK_BUSY ;判断总线是否忙 BCF RSBCF RWMOVFW TEMP

9、1MOVWF PORTD ;送命令BSF ENOPNOPBCF ERETURN;*判断总线是否忙*;测忙碌子程序;RS=0,RW=1,E=H,D0-D7=状态字;*CHK_BUSYBANKSEL TRISDMOVLW 0FFHMOVWF TRISD ;D 口设置为输入CLRF STATUSMOVLW 0FFHMOVWF PORTDBCF RSBSF RWCHECK_BUSY_1NOPNOPNOPBSF ENOPNOPNOPBTFSS PORTD,7 ;D7 为高表示总线忙,为低表示总线空闲GOTO $+6 NOPNOPNOPBCF E GOTO CHECK_BUSY_1BCF EBANKSEL

10、 TRISDCLRF TRISD ;恢复 D 口为输出CLRF STATUSRETURN;*延时程序*DELAYMOVLW 0afHMOVWF 20HMOVLW 0ffhMOVWF 21HDECFSZ 21H,1GOTO $-1DECFSZ 20H,1GOTO $-5RETURN;*延时程序 1*;显示闪烁用DELAY1MOVLW 05HMOVWF 22HCALL DELAYDECFSZ 22H,1GOTO $-2RETURN;*数据表格*TAB1MOVFW POINT1 MOVWF PCLATH MOVFW POINT2MOVWF PCL TAB1Adt 0C9,0EE ;深dt 0DB,0DA ;圳dt 0C7,0AC ;乾dt 0C1,0FA ;龙dt 0CA,0A2 ;盛dt 0B5,0E7 ;电dt 0D7,0D3 ;子TAB1B ;WWW.PIC16.COMdt , , W, W, W, ., P, I, C, 1,6, ., C, O, M, TAB1C ;TEL0755-28187975dt T, E, L ,0 ,7, 5 ,5,-, 2, 8,1, 8 ,7,9 ,7,5TAB1D ;FAX0755-28187976dt F, A, X, 0, 7, 5, 5, -,2, 8,1, 8, 7, 9, 7, 6;*源程序结束*end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报