导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[哈佛]LCD1502驱动程序



No.70856
作者:哈佛
邮件:jola2002@163.com
ID:29699
登陆:81次
QQ:5822022
--  MSN:jola2005912@hotmail.com
文章数:185篇
最后登陆IP:218.17.158.164
最后登陆:2014/12/16 13:54:00
注册:2005/1/6 19:18:03
财富:1280
发帖时间:2005/1/9 12:39:53
发贴者IP:202.105.135.4
标题:哈佛:LCD1502驱动程序
摘要:No.70856LCD1502驱动程序 LCD1502驱动程序 

--------------------------------------------------------------------------------
 
;LCD部分用到的RAM  0200H~~~~021FH  用到的Rn有R15/R14
;LCD复位子程序(LCD_REST)不须要设事先置直接调用即可
;半屏显示子程序(LCD)在调用前必须送入页地址 例如:MOV.B #0B8H,LCD_PAGE_BRAM
;        CALL  #LCD    显示上屏
;       :MOV.B #0BAH,LCD_PAGE_BRAM
;        CALL  #LCD  显示下屏
;LCDUP_WORD0_BRAM~~~LCDUP_WORD6_RAM        是上屏显示字的代码寄存器一屏显示7个字
;LCDDOWN_WORD0_BRAM~~~LCDDOWN_WORD6_RAM    是下屏显示字的代码寄存器一屏显示7个字
;每屏显示是以中间为基准向两边平均显示   在调用半屏显示子程序时已经自动计算LCD的列地址
;清屏指令可分全屏清除(LCD_CLEAR_ALL)和半屏清除(LCD_CLEAR)
;注 全屏清除子程序不需入口直接调用就行  而半屏清除子程序在调用前入口与半屏显示子程序相同
#include  "msp430x14x.h"
 NAME LCD
 MODULE LCD
 PUBLIC LCD
 RSEG PROM
;=========LCD==================================
      ;A0=1为数据  A0=0为命令 
#define  A0   04H    
#define  E1   02H     
#define  E2   01H     
#define  BIT_OUT   P4OUT
#define  DATA_BUS  P2OUT
;=============LCD____8RAM的位定义===============
#define  LCD_COM_BRAM  0200H
#define  LCD_DATA_BRAM  0201H
#define  LCD_LIE_BRAM  0202H
#define  LCD_PAGE_BRAM  0203H
;=============LCD_UP_RAM============================
#define  LCDUP_WORD0_BRAM 0204H
#define  LCDUP_WORD1_BRAM 0205H
#define  LCDUP_WORD2_BRAM 0206H
#define  LCDUP_WORD3_BRAM 0207H
#define  LCDUP_WORD4_BRAM 0208H
#define  LCDUP_WORD5_BRAM 0209H
#define  LCDUP_WORD6_BRAM 020AH
;==========下面的RAM只是在测试状态下才会用到=====
#define  LCDUP_WORD7_BRAM 020BH
;=============LCD_DOWN_RAM=====================
#define  LCDDOWN_WORD0_BRAM 020CH
#define  LCDDOWN_WORD1_BRAM 020DH
#define  LCDDOWN_WORD2_BRAM 020EH
#define  LCDDOWN_WORD3_BRAM 020FH
#define  LCDDOWN_WORD4_BRAM 0210H
#define  LCDDOWN_WORD5_BRAM 0211H
#define  LCDDOWN_WORD6_BRAM 0212H
;==========下面的RAM只是在测试状态下才会用到=====
#define  LCDDOWN_WORD7_BRAM 0213H
;=============LCD_数据寄存器_RAM=================
#define  LCD_R0_BRAM  0214H 
#define  LCD_R1_BRAM  0215H 
;=============LCD____16RAM的位定义===============
#define  LCD_COUNT_WRAM  021CH
#define  LCD_WORD_WRAM  021EH
;=============LCD____BIT的位定义===============
#define  LCD_BIT_RAM  0220H
#define  LCD_E1_E2  0000H 
      ;是LCD左右屏选择为BIT=1选通左边  BIT=0选通右边 
#define  LCD_INV   02H 
                                             ;高电平时显示反白 
;---------------------------------------------------       
;=========================================================== 
LCD_E1_COM
        BIC.B  #A0,&BIT_OUT        ;A0置低 设为命令通道
 MOV.B  LCD_COM_BRAM,&LCD_BUS ;输出命令
 BIS.B  #E1,&BIT_OUT ;开E1
 BIC.B  #E1,&BIT_OUT ;关E1
 RET     ;反回
 
LCD_E2_COM
 BIC.B  #A0,&BIT_OUT ;A0置低 设为命令通道
 MOV.B  LCD_COM_BRAM,&LCD_BUS ;输出命令
 BIS.B  #E2,&BIT_OUT ;开E2
 BIC.B  #E2,&BIT_OUT ;关E2
 RET     ;反回
 
 
LCD_E1_DATA
 BIS.B  #A0,&BIT_OUT ;A0置高 设为命令通道
 MOV.B  LCD_DATA_BRAM,&LCD_BUS ;输出命令
 BIS.B  #E1,&BIT_OUT ;开E1
 BIC.B  #E1,&BIT_OUT ;关E1
 RET     ;反回
 
LCD_E2_DATA
 BIS.B  #A0,&BIT_OUT ;A0置高 设为数据通道
 MOV.B  LCD_DATA_BRAM,&LCD_BUS ;输出命令
 BIS.B  #E2,&BIT_OUT ;开E2
 BIC.B  #E2,&BIT_OUT ;关E2
 RET     ;反回
;================CLEAR_LCD_DISPALY==============
;每次直接调用程序就可以清全屏显示 不须入口
LCD_CLEAR_ALL
 CLR  R15
 CLR  R14
LCD_CLEAR_ALL_1
 BIS.B  #0B8H,R15
 MOV.B  R15,LCD_COM_BRAM
 CALL  #LCD_E1_COM
 CALL  #LCD_E2_COM
 MOV.B  #00H,LCD_COM_BRAM
 CALL  #LCD_E1_COM
 CALL  #LCD_E2_COM
 MOV.B  #61D,R14
LCD_CLEAR_ALL_2
 MOV.B  #000H,LCD_DATA_BRAM
 CALL  #LCD_E1_DATA
 CALL  #LCD_E2_DATA
 CLRZ
 DEC.B  R14
 JNZ  LCD_CLEAR_ALL_2
 INC.B  R15
 CLRZ
 CMP.B  #0BCH,R15
 JNE  LCD_CLEAR_ALL_1
 RET
;================CLEAR_LCD_DISPALY=============
 ;每次直接调用程序就可以清半屏显示   
;调用前必须送入页地址到LCD_PAGE_RAM(页地址寄存器)
;例如:MOV.B #0B8H,LCD_PAGE_BRAM   
;      :CALL #LCD_CLEAR 就是清上半屏显示
;      :MOV.B #0BAH,LCD_PAGE_BRAM   
;      :CALL #LCD_CLEAR 就是清下半屏显示
LCD_CLEAR
 CLR  R15
 MOV.B  LCD_PAGE_BRAM,LCD_LIE_BRAM
 ADD.B  #2D,LCD_LIE_BRAM
LCD_CLEAR_1
 BIS.B  LCD_PAGE_BRAM,R15  
 MOV.B  R15,LCD_COM_BRAM
 CALL  #LCD_E1_COM
 CALL  #LCD_E2_COM
 MOV.B  #00H,LCD_COM_BRAM
 CALL  #LCD_E1_COM
 CALL  #LCD_E2_COM
 MOV  #61D,R14
LCD_CLEAR_2
 MOV.B  #00H,LCD_DATA_BRAM
 CALL  #LCD_E1_DATA
 CALL  #LCD_E2_DATA
 CLRZ
 DEC.B  R14
 JNZ  LCD_CLEAR_2
 INC.B  R15
 ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:94毫秒 最大:25297毫秒 查询8次