亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lcd1502驅動程序.txt

?? 不錯的LCD驅動——LCD1502驅動程序!希望大家喜歡!
?? TXT
字號:
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
CLRZ
CMP.B  LCD_LIE_BRAM,R15
JNZ  LCD_CLEAR_1
RET

;===============RESETTING_LCD_MODE=============
;調用此程序是使LCD復位并進入工作狀態
LCD_REST
MOV.B  #0E2H,LCD_COM_BRAM ;復位
CALL  #LCD_E1_COM
CALL  #LCD_E2_COM

MOV.B  #0A4H,LCD_COM_BRAM ;關閉休閑狀態
CALL  #LCD_E1_COM
CALL  #LCD_E2_COM

MOV.B  #0A9H,LCD_COM_BRAM ;設置1/32占空比
CALL  #LCD_E1_COM
CALL  #LCD_E2_COM

MOV.B  #0A0H,LCD_COM_BRAM ;正向排序設置
CALL  #LCD_E1_COM
CALL  #LCD_E2_COM

MOV.B  #0C0H,LCD_COM_BRAM ;設置顯示起始行為第一行
CALL  #LCD_E1_COM
CALL  #LCD_E2_COM

MOV.B  #0AFH,LCD_COM_BRAM ;開顯示設置
CALL  #LCD_E1_COM
CALL  #LCD_E2_COM
RET

;查LCD PAGE #0B8H.#0B9H/#0BAH.#0BBH上屏須要顯示的個數 
;這段程序已測試過  03-3-12 9:55
;R15/R14/R13
LCD_CHK
CLR  LCD_COUNT_RAM
MOV.B  #8,LCD_R0_RAM  ;查殉上屏須要顯示的個數,一屏最多可以顯示7個16X16
CLR.B  LCD_LIE_BRAM  ;清上屏查殉結果寄存器
MOV  LCD_WORD_RAM,R14 ;把須要檢查字的首位16位地址放進R14.LCD_WORD_RAM
      ;定義時必須是16位地址
LCD_CHK_0
DEC.B  LCD_R0_RAM
JZ  LCD_CHK_1  ;測試完成退出
CLRZ 
MOV.B  @R14+,LCD_COUNT_RAM
TST.B  LCD_COUNT_RAM  ;測試每個字寄存器是否為零
JZ  LCD_CHK_0  ;為零時轉
INC.B  LCD_LIE_BRAM  ;大于零查殉結果寄存器加一
JMP  LCD_CHK_0  ;反回測試
LCD_CHK_1 
        CLR             LCD_COUNT_RAM
        MOV.B           LCD_LIE_BRAM,LCD_COUNT_RAM
MOV  LCD_COUNT_RAM,&MPY ;把檢測的結果乘以16
MOV  #16D,&OP2
MOV  &RESLO,LCD_COUNT_RAM ;相乘的結果放回寄存器
MOV.B  LCD_COUNT_RAM,LCD_LIE_BRAM
RRA.B           LCD_LIE_BRAM             ;結果除2.放到上屏頁的寄存器
MOV.B  #61D,LCD_COUNT_RAM
SUB.B  LCD_LIE_BRAM,LCD_COUNT_RAM
MOV.B  LCD_COUNT_RAM,LCD_LIE_BRAM
RET
;調用前必須把要顯示屏第一個字的地址放在R15內 
;列:MOV  #LCDUP_WORD0_BRAM,LCD_WORD_RAM
       ;MOV  #LCDDOWN_WORD0_BRAM,LCD_WORD_RAM 
       ;用到的寄存器R15/R14
LCD
CLRZ
CMP.B  #0B8H,LCD_PAGE_BRAM
JNE  LCD_1
MOV  #LCDUP_WORD0_BRAM,LCD_WORD_RAM
JMP  LCD_0
LCD_1 MOV  #LCDDOWN_WORD0_BRAM,LCD_WORD_RAM
LCD_0 CALL  #LCD_CHK
BIS.B  #BIT0,LCD_BIT_RAM
MOV.B  #7D,LCD_R1_RAM  
;每次調用均連續顯示7個16X16的字  而遇到字寄存器是
MOV  LCD_WORD_RAM,R15 ;零就反回因為字表里面是沒有零的
LCD_DISPALY
CLR  R14
        MOV.B           @R15+,R14
TST  R14   ;R15是顯示字首位地址寄存器,準備用于間接尋址
JZ  LCD_RET   ;字寄存器是零就反回
MOV  #32D,&MPY  ;查表然后吧結果送到寄存器
MOV  R14,&OP2
MOV  &RESLO,LCD_COUNT_RAM
ADD  #LCD_DB,LCD_COUNT_RAM
MOV  LCD_COUNT_RAM,R14
MOV.B  #32D,LCD_R0_RAM  ;R14用于放計算查找數據的個數
LCD_PAGE 
MOV.B  LCD_PAGE_BRAM,LCD_COM_BRAM;把頁地址送到命令寄存器
CLRZ
BIT.B  #BIT0,LCD_BIT_RAM
;LCD_BIT_RAM的BIT0=LCD_E1_E2為高時轉到E1發送,第就是E2
JZ  LCD_PAGE_E2  ;Z為零就轉到E2  否則向下工作
LCD_PAGE_E1 
CALL  #LCD_E1_COM  ;向E1發送頁地址
JMP  LCD_LIE   ;跳去列發送
LCD_PAGE_E2 
CALL  #LCD_E2_COM  ;向E2發送頁地址
LCD_LIE 
MOV.B  LCD_LIE_BRAM,LCD_COM_BRAM;把列地址送到命令寄存器
CLRZ
BIT.B  #BIT0,LCD_BIT_RAM
;LCD_BIT_RAM為高時轉到E1發送,第就是E2
JZ  LCD_LIE_E2  ;Z為零就轉到E2  否則向下工作
LCD_LIE_E1 
CALL  #LCD_E1_COM  ;向E1發送列地址
JMP  LCD_DATA
LCD_LIE_E2 
CALL  #LCD_E2_COM  ;向E2發送列地址
LCD_DATA
CALL  #LCD_FIND_DATA  ;調用數據發送命令
CLRZ
BIT.B  #BIT0,LCD_PAGE_BRAM ;測試頁寄存器的BIT0位
JNZ  LCD_PAGE_0  ;大于零(即是BIT0=1)就轉
BIS.B  #BIT0,LCD_PAGE_BRAM ;把頁寄存器的BIT0位置高(原來是低#0B8H/#0BAH)
JMP  LCD_RETURN  
LCD_PAGE_0 
BIC.B  #BIT0,LCD_PAGE_BRAM ;把頁寄存器的BIT0位置低(原來是高#0B9H/#0BBH)
INC.B  LCD_LIE_BRAM  ;列地址加一
CLRZ
CMP.B  #61D,LCD_LIE_BRAM  ;檢查列有沒有超過61列
JNZ  LCD_RETURN  ;Z大于零就轉  等于零就向下工作
CLR.B  LCD_LIE_BRAM  ;清列寄存器
CLRZ 
BIT.B  #BIT0,LCD_BIT_RAM ;測試LCD_BIT_RAM位  在E1就轉為E2 在E2就立即反回 
JNZ  LCD_PAGE_1  ;Z為零就轉到E2  否則向下工作
JMP  LCD_RET   ;轉到子程序反回命令
LCD_PAGE_1 
BIC.B  #BIT0,LCD_BIT_RAM ;把LCD_BIT_RAM位置低  設為E2顯示狀態
JMP  LCD_PAGE  ;反回頁傳送命令地址
LCD_RETURN 
CLRZ 
DEC.B  LCD_R0_RAM  ;查找數據的個數寄存器減1
JNZ  LCD_PAGE  ;R14大于零轉回頁傳送命令地址
CLRZ
DEC.B  LCD_R1_RAM  ;字個數寄存器減1
BIC.B  #BIT0,LCD_PAGE_BRAM
JNZ  LCD_DISPALY  ;反回主顯示調用程序
LCD_RET
RET     ;反回主程序

;=================================================== 
LCD_FIND_DATA  
MOV.B  @R14+,LCD_DATA_BRAM 
CLRZ
BIT.B  #INV_BIT,LCD_BIT_RAM
JZ  NO_INV
INV.B  LCD_DATA_BRAM
NO_INV CLRZ
BIT.B  #BIT0,LCD_BIT_RAM ;測試LCD_BIT_RAM位  在E1就轉為E2 在E2就立即反回
JZ  LCD_FIND_E2  ;Z為零就轉到E2  否則向下工作
CALL  #LCD_E1_DATA  ;調用E1數據發送子程序
JMP  LCD_FIND_DATA_RET
LCD_FIND_E2 
CALL  #LCD_E2_DATA  ;調用E2數據發送子程序
LCD_FIND_DATA_RET 
RET
END LCD

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲va在线va天堂| 成人av第一页| 91精品国产综合久久国产大片| 国产精品久久久久四虎| 国产成人精品免费网站| 国产丝袜欧美中文另类| 国产精品一区二区在线观看不卡 | 国产性做久久久久久| 精品午夜久久福利影院| 欧美成人伊人久久综合网| 亚洲第一搞黄网站| 成人小视频在线| 国产精品久久久久久久午夜片| 麻豆免费看一区二区三区| 日韩视频国产视频| 日本不卡中文字幕| 日韩一级完整毛片| 韩日欧美一区二区三区| 国产精品传媒视频| 69堂精品视频| 成人伦理片在线| 午夜精品免费在线| 国产视频一区不卡| 欧洲亚洲国产日韩| 国产在线精品不卡| 一二三区精品福利视频| 精品对白一区国产伦| 91麻豆精品在线观看| 蜜臀av一区二区在线免费观看| 国产精品嫩草久久久久| 欧美老肥妇做.爰bbww视频| 国产一区中文字幕| 午夜私人影院久久久久| 久久精品日产第一区二区三区高清版| 99精品热视频| 精品亚洲免费视频| 亚洲国产精品久久人人爱| 久久影院视频免费| 欧美日韩中文一区| 暴力调教一区二区三区| 麻豆国产精品一区二区三区| 亚洲日本va午夜在线电影| 精品国产一区久久| 欧美三级资源在线| 不卡电影一区二区三区| 美腿丝袜亚洲三区| 亚洲国产cao| 国产精品第13页| 精品国产乱码久久久久久图片| 欧美性三三影院| av亚洲精华国产精华| 国产精品一级黄| 奇米影视在线99精品| 亚洲一区二区视频| 亚洲欧洲精品天堂一级| 国产色产综合色产在线视频| 欧美一区二区三区在线视频| 91豆麻精品91久久久久久| 不卡一二三区首页| 国产91精品免费| 国产精品正在播放| 九色|91porny| 麻豆成人综合网| 日韩和的一区二区| 亚洲成a人片在线观看中文| 亚洲乱码国产乱码精品精98午夜 | 激情伊人五月天久久综合| 亚洲制服丝袜在线| 一区二区三区四区蜜桃| 亚洲天堂网中文字| 国产精品毛片大码女人| 国产欧美日韩不卡| 欧美国产激情一区二区三区蜜月| 精品少妇一区二区三区| 欧美电影免费观看完整版| 欧美一区二区三区公司| 91精品蜜臀在线一区尤物| 91麻豆精品91久久久久同性| 91精品欧美久久久久久动漫| 欧美久久久久中文字幕| 7777精品伊人久久久大香线蕉经典版下载| 色综合久久综合| 欧美中文字幕亚洲一区二区va在线| 色妞www精品视频| 色呦呦国产精品| 欧美日韩亚洲综合一区| 欧美男男青年gay1069videost| 欧美日韩性生活| 欧美一级国产精品| 久久一日本道色综合| 国产欧美精品一区二区三区四区| 国产欧美一二三区| 综合激情网...| 亚洲高清不卡在线| 毛片av一区二区| 国产成人精品一区二| 91麻豆国产精品久久| 7777精品伊人久久久大香线蕉完整版| 欧美一区二区在线看| 久久久精品一品道一区| 中文字幕在线不卡视频| 亚洲第一激情av| 国产自产视频一区二区三区| 国产成人综合亚洲91猫咪| 波多野结衣亚洲| 欧美日韩国产欧美日美国产精品| 91精品国产综合久久蜜臀| 久久伊人中文字幕| 一区二区不卡在线播放 | 亚洲美腿欧美偷拍| 天天射综合影视| 国产成人av影院| 欧美性感一类影片在线播放| 精品国产一区二区在线观看| 亚洲视频小说图片| 另类欧美日韩国产在线| jizz一区二区| 欧美白人最猛性xxxxx69交| 国产精品美女久久久久久久网站| 亚洲18色成人| www..com久久爱| 欧美成人激情免费网| 最新国产の精品合集bt伙计| 蜜臀av性久久久久蜜臀av麻豆| 99在线热播精品免费| 日韩午夜电影av| 夜夜嗨av一区二区三区| 国产精品1区2区3区| 欧美人动与zoxxxx乱| 1024精品合集| 国产一区二区导航在线播放| 欧美男人的天堂一二区| 亚洲欧洲成人精品av97| 激情五月婷婷综合网| 欧美日韩一级视频| 亚洲视频一二三区| 国产成人免费视| 欧美大度的电影原声| 一区二区三区在线免费播放| 成人免费观看av| 欧美电影免费观看高清完整版在线观看| 亚洲欧美激情在线| 成人一区二区三区视频在线观看| 日韩欧美国产麻豆| 五月天婷婷综合| 一本色道久久综合亚洲aⅴ蜜桃 | 精品国产乱码久久久久久浪潮| 毛片av一区二区三区| 欧美日韩一区中文字幕| 亚洲少妇屁股交4| 成人黄色免费短视频| 久久久久高清精品| 国产精品综合一区二区三区| 日韩免费视频一区| 麻豆免费看一区二区三区| 在线成人高清不卡| 亚洲成人av电影在线| 91福利在线看| 一区二区欧美精品| 91国偷自产一区二区三区观看| 国产精品久久久久国产精品日日| 国产精品系列在线观看| 久久综合狠狠综合久久激情| 久久99精品视频| 久久综合久久99| 国产成人午夜电影网| 国产亚洲精品精华液| 国产成人精品网址| 国产精品入口麻豆原神| 国产69精品久久久久777| 日本一区二区综合亚洲| 国产伦理精品不卡| 国产精品毛片无遮挡高清| 91在线国产福利| 一个色妞综合视频在线观看| 欧美日韩午夜影院| 日本欧美在线观看| 26uuu久久综合| 国产精品1区2区| 国产精品久久久久久久第一福利| 色综合久久久久久久| 亚洲国产成人av好男人在线观看| 欧美区视频在线观看| 久久91精品国产91久久小草| 国产亚洲精品超碰| 99久久精品一区二区| 亚洲高清不卡在线| 欧美大胆人体bbbb| 成人深夜视频在线观看| 亚洲精品中文在线| 欧美一区二区三区视频| 国产一区二区在线观看视频| 国产精品久久毛片av大全日韩| 色综合天天综合网天天看片| 石原莉奈在线亚洲二区| 久久亚洲一区二区三区明星换脸| 成人性生交大片免费看视频在线 | 欧美日本在线观看| 极品少妇xxxx偷拍精品少妇| 国产精品美女久久久久av爽李琼|