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

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

?? adc0832-1602lcd.asm

?? 學習單片機的程序集
?? ASM
字號:

 
          AD_CLK  EQU  P1.0      ;ADC0832 時鐘端
          AD_DAT  EQU  P1.1      ;ADC0832 數據端
          AD_CS   EQU  P3.4      ;ADC0832 片選信號

          LCD_RS  EQU  P2.0      ;LCD 數據/命令選擇端
          LCD_RW  EQU  P2.1      ;LCD 讀/寫選擇端
          LCD_EN  EQU  P2.2      ;LCD 使能信號
          LCD_X   EQU  20H       ;LCD 地址變量

            ORG  0000H
            JMP  START
;===================================================
START:      MOV  SP,#60H
            MOV  P0,#0FFH
            MOV  P2,#0FFH
            CALL  SET_LCD

START1:     CALL  AD_CONV        ;AD轉換
            CALL  AD_CHULI       ;數據處理
            CALL  LCD_CONV       ;數據顯示
            JMP   START1
;====================================================
;  LCD 初始化設置
;====================================================
SET_LCD:
          CLR  LCD_EN
          CALL  INIT_LCD     ;初始化 LCD
          CALL  DELAY1
          MOV  DPTR,#INFO1   ;指針指到顯示信息1
          MOV  A,#1          ;顯示在第一行
          CALL  LCD_SHOW
          MOV  DPTR,#INFO2   ;指針指到顯示信息2
          MOV  A,#2          ;顯示在第二行
          CALL  LCD_SHOW
          RET
;-----------------------------------------------------
INFO1:  DB  "DIGITALVOLTMETER",0  ;LCD 第一行顯示信息
INFO2:  DB  " VOLTAGE:     V ",0  ;LCD 第二行顯示信息
;-----------------------------------------------------
;-----------------------------------------------------
; LCD 接口初始化
;-----------------------------------------------------
INIT_LCD:
          MOV  A,#38H     ;雙列顯示,字形5*7點陣
          CALL  WCOM
          CALL  DELAY1
          MOV  A,#38H     ;雙列顯示,字形5*7點陣
          CALL  WCOM
          CALL  DELAY1
          MOV  A,#38H     ;雙列顯示,字形5*7點陣
          CALL  WCOM
          CALL  DELAY1
          MOV  A,#0CH     ;開顯示,關光標,
          CALL  WCOM
          CALL  DELAY1
          MOV  A,#01H     ;清除 LCD 顯示屏
          CALL  WCOM
          CALL  DELAY1
          RET
;-------------------------------------------------
DELAY1:                    ;延時5MS
          MOV  R6,#25
  DEL1:   MOV  R7,#100
          DJNZ  R7,$
          DJNZ  R6,DEL1
          RET
;==================================================
;在LCD的第一行或第二行顯示信息字符
;==================================================
LCD_SHOW:

          CJNE  A,#1,LINE2  ;判斷是否為第一行
  LINE1:  MOV  A,#80H       ;設置 LCD 的第一行地址
          CALL  WCOM        ;寫入命令
          CALL  CLR_LINE    ;清除該行字符數據
          MOV  A,#80H       ;設置 LCD 的第一行地址
          CALL  WCOM        ;寫入命令
          JMP  FILL
  LINE2:  MOV  A,#0C0H      ;設置 LCD 的第二行地址
          CALL  WCOM        ;寫入命令
          CALL  CLR_LINE    ;清除該行字符數據
          MOV  A,#0C0H      ;設置 LCD 的第二行地址
          CALL  WCOM
  FILL:   CLR  A            ;填入字符
          MOVC  A,@A+DPTR   ;由消息區取出字符
          CJNE  A,#0,LC1    ;判斷是否為結束碼
          RET
  LC1:    CALL  WDATA       ;寫入數據
          INC  DPTR         ;指針加1
          JMP  FILL         ;繼續填入字符
          RET
;---------------------------------------------------
CLR_LINE:                  ;清除該行 LCD 的字符
          MOV  R0,#24
   CL1:   MOV  A,#' '
          CALL  WDATA
          DJNZ  R0,CL1
          RET
;======================================================
; 寫指令使能子程序
;RS=L,RW=L,D0-D7=指令碼,E=高脈沖
;=====================================================
WCOM:
          MOV  P0,A
          CLR  LCD_RS
          CLR  LCD_RW
          SETB LCD_EN
          CALL  DELAY0
          CLR  LCD_EN
          RET
;=====================================================
;寫數據使能子程序
;RS=H,RW=L,D0-D7=數據,E=高脈沖
;=====================================================
WDATA:
          MOV  P0,A
          SETB  LCD_RS
          CLR   LCD_RW
          SETB  LCD_EN
          CALL  DELAY0
          CLR   LCD_EN
          RET

DELAY0:   MOV  R7,#250     ;延時500微秒
          DJNZ  R7,$
          RET
;---------------------------------------------------
;在 LCD 第二行指定位置顯示字符
;(A)=ASCII 數據, (B)=位置變量
;---------------------------------------------------
LCDP2:                    
          PUSH  ACC        ;入棧保護A
          MOV  A,B         ;設置顯示地址
          ADD  A,#0C0H     ;設置LCD的第二行地址
          CALL  WCOM       ;寫入命令
          POP  ACC         ;由堆棧取出A
          CALL  WDATA      ;寫入數據
          RET
;=================================================
;ASCII 轉換并在第二行顯示數字子程序
;=================================================
LCD_CONV:
          MOV  A,R4          ;加載數據
          MOV  LCD_X,#10     ;設置位置
          CALL  SHOW_DIG2A   ;顯示數據
          INC  LCD_X         ;設置位置
          MOV  A,#'.'        
          MOV  B,LCD_X           
          CALL  LCDP2        ;顯示小數點
          MOV  A,R5          ;加載數據
          INC  LCD_X         ;設置位置
          CALL  SHOW_DIG2B   ;顯示數據
          RET
;---------------------------------------
;整數部分轉換為ASCII碼,送顯示
;只顯示一位數
;---------------------------------------
SHOW_DIG2A:
          MOV  B,#16
          DIV  AB
          MOV  A,B        ;只取整數部分的個位
          ADD  A,#30H     ;轉換為ASCII碼
          MOV  B,LCD_X    ;地址變量送B
          CALL  LCDP2     ;送顯示
          RET
;---------------------------------------
;小數部分轉換為ASCII碼,送顯示
;顯示兩位數
;---------------------------------------
SHOW_DIG2B:
          MOV  B,#16
          DIV  AB
          ADD  A,#30H     ;轉換為ASCII碼
          PUSH  B
          MOV  B,LCD_X    ;地址變量送B
          CALL  LCDP2     ;送顯示
          POP  B
          MOV  A,B
          ADD  A,#30H     ;轉換為ASCII碼
          INC  LCD_X
          MOV  B,LCD_X    ;地址變量送B
          CALL  LCDP2     ;送顯示
          RET
;=========================================================
;AD0832 初始化與AD轉換子程序
;(A)=AD轉換值
;=========================================================
AD_CONV:                       
            SETB AD_CS          ;一個轉換周期開始
            CLR  AD_CLK
            CLR  AD_CS          ;CS置0,片選有效
            SETB AD_DAT         ;DI置1,起始位
            NOP
            SETB AD_CLK         ;第一個脈沖
            CLR  AD_DAT         ;在負跳變之前加一個DI反轉操作
            CLR  AD_CLK
            SETB AD_DAT         ;DI置1,設為單通道
            NOP
            SETB AD_CLK         ;第二個脈沖
            CLR  AD_DAT
            CLR  AD_CLK
            CLR  AD_DAT         ;DI置0,選擇通道0
            NOP
            SETB AD_CLK         ;第三個脈沖
            SETB AD_DAT
            CLR  AD_CLK
            NOP
            SETB AD_CLK         ; 第四個脈沖
            MOV  R1,#08H        ;計數器初值,讀取8位數據,
AD_READ:    CLR  AD_CLK         ;下降沿
            MOV  C,AD_DAT       ;讀取DO端數據
            RLC A               ;C移入A,高位在前
            SETB AD_CLK         ;下一個脈沖
            DJNZ R1,AD_READ     ;沒讀完繼續
            SETB  AD_CS
            RET
;====================================================
;AD轉換值處理子程序
;入口:(A) =AD轉換值
;出口:處理后的數據 (R4)=高位,(R5)=低位
;====================================================
AD_CHULI:
            CLR  C
            MOV  R5,#00H    ;十進制轉換的低位寄存器
            MOV  R4,#00H    ;十進制轉換的高位寄存器
            MOV  R3,#08H    ;十進制調整的次數
AD_CHULI1:
            RLC  A
            MOV  R2,A           ;送 R2 保存
            MOV  A,R5           ;(R5)乘2加C
            ADDC  A,R5
            DA  A               ;做十進制調整
            MOV  R5,A           ;結果存回R5
            MOV  A,R4           ;(R4)乘2加C
            ADDC  A,R4
            MOV  R4,A           ;結果存回R4
            MOV  A,R2
            DJNZ  R3,AD_CHULI1  ;是否轉換完?
            MOV  A,R5           ;(R5)乘2
            ADD  A,R5
            DA  A
            MOV  R5,A           ;結果存回R5
            MOV  A,R4
            ADDC  A,R4          ;(R4)乘2加C
            DA   A
            MOV  R4,A           ;結果存回R4
            RET
;---------------------------------------------------
            END             ;結束

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲精品7777| 国产ts人妖一区二区| 91免费版pro下载短视频| 国产色产综合色产在线视频| 国产精品一区二区91| 欧美成人a∨高清免费观看| 免费在线观看精品| 欧美精品一区二区久久婷婷| 久久国产人妖系列| 69p69国产精品| 日韩精品久久久久久| 欧美日韩在线电影| 亚洲一二三四区| 欧美色成人综合| 亚洲成人免费视| 欧美日韩久久一区| 午夜国产不卡在线观看视频| 欧美精品乱人伦久久久久久| 亚洲第四色夜色| 欧美伊人久久大香线蕉综合69| 亚洲精品亚洲人成人网在线播放| 色婷婷综合激情| 亚洲综合丝袜美腿| 欧美日韩精品系列| 天堂一区二区在线免费观看| 日韩美一区二区三区| 极品少妇xxxx偷拍精品少妇| 久久精品欧美一区二区三区不卡 | 成人免费观看男女羞羞视频| 精品黑人一区二区三区久久 | 成人免费毛片a| 欧美一区二区三区在线| 精品在线免费视频| 亚洲免费在线视频一区 二区| 欧美影视一区在线| 琪琪久久久久日韩精品| 欧美国产在线观看| 色综合久久精品| 蜜芽一区二区三区| 国产亚洲欧洲一区高清在线观看| 99精品欧美一区二区三区综合在线| 亚洲色图视频网| 91精品啪在线观看国产60岁| 天天色综合天天| 26uuu另类欧美亚洲曰本| 91伊人久久大香线蕉| 日本女优在线视频一区二区| 国产精品欧美一级免费| 欧美怡红院视频| 国产suv精品一区二区6| 亚洲综合视频网| 国产亚洲一区字幕| 欧美日韩亚洲国产综合| 国产成人在线免费| 亚洲国产cao| 国产精品网站在线| 欧美色图免费看| 国产一区二区在线观看视频| 一区二区三区在线高清| 久久精品一区二区三区不卡 | 在线观看免费成人| 国产做a爰片久久毛片| 一区二区三区四区激情| 精品国产网站在线观看| 欧美亚洲动漫精品| 精品一区二区三区在线观看国产 | 久久亚洲精精品中文字幕早川悠里 | 欧美日韩在线播放三区| 岛国精品在线观看| 免费高清不卡av| 亚洲综合丝袜美腿| 亚洲日本一区二区| 久久亚洲春色中文字幕久久久| 大尺度一区二区| 久久99国产精品成人| 亚洲成在线观看| 亚洲精品国产第一综合99久久| 久久久夜色精品亚洲| 91精品婷婷国产综合久久| 色综合久久精品| 91亚洲精华国产精华精华液| 国产精品自拍一区| 亚洲午夜日本在线观看| 亚洲国产精品成人综合色在线婷婷 | 五月激情六月综合| 亚洲精品国产a久久久久久| 中文字幕av一区二区三区高| 国产亚洲欧美日韩在线一区| 精品日韩在线观看| 精品女同一区二区| 精品99久久久久久| 日韩三级中文字幕| 91豆麻精品91久久久久久| 92国产精品观看| 91麻豆国产自产在线观看| 99久久伊人精品| 成人黄色网址在线观看| 风流少妇一区二区| 成人永久aaa| 成人av免费观看| 91一区二区三区在线观看| 99国产精品视频免费观看| 91伊人久久大香线蕉| 国产91精品露脸国语对白| 懂色av噜噜一区二区三区av| 99久久精品99国产精品| 色综合一区二区| 欧美美女喷水视频| 日韩精品中文字幕在线不卡尤物| 欧美tk—视频vk| 国产欧美中文在线| 亚洲欧洲在线观看av| 亚洲欧美激情插| 香蕉成人啪国产精品视频综合网| 日韩综合一区二区| 麻豆高清免费国产一区| 国产成人精品在线看| 日本高清无吗v一区| 日韩三级在线免费观看| 中文在线一区二区| 精品国产麻豆免费人成网站| 国产亚洲欧洲997久久综合| 中文字幕亚洲精品在线观看| 亚洲高清在线视频| 免费在线观看一区二区三区| 国产成人8x视频一区二区| 91美女精品福利| 日韩欧美国产麻豆| 国产清纯白嫩初高生在线观看91 | 成人一区二区三区视频 | 久久美女高清视频| 亚洲欧洲美洲综合色网| 亚洲超碰精品一区二区| 狠狠狠色丁香婷婷综合激情 | 国产激情91久久精品导航| 91在线高清观看| 欧美亚洲免费在线一区| 日韩精品一区二区三区四区视频| 国产精品素人视频| 日日夜夜免费精品| 成人黄色在线视频| 欧美一级在线免费| 中文字幕一区二区三区不卡在线| 亚洲成av人片在线观看无码| 国产91对白在线观看九色| 欧美天堂一区二区三区| 欧美国产欧美综合| 奇米色一区二区| 欧美另类videos死尸| 亚洲日本青草视频在线怡红院| 国产在线乱码一区二区三区| 日韩一区二区三区免费看 | 久久久天堂av| 紧缚捆绑精品一区二区| 91精品在线免费观看| 亚洲成人精品影院| 欧美性感一类影片在线播放| 亚洲激情图片qvod| 9色porny自拍视频一区二区| 日本一区二区高清| 国产99一区视频免费| 久久影院午夜论| 国产麻豆精品久久一二三| 精品人在线二区三区| 美女久久久精品| 欧美va日韩va| 国产一区福利在线| 久久久久99精品一区| 国产乱理伦片在线观看夜一区| 久久综合久久久久88| 日本不卡视频在线| 欧美大片顶级少妇| 国产在线观看免费一区| 2020国产精品自拍| 国产成人欧美日韩在线电影| 国产日韩欧美一区二区三区乱码| 国产99久久久国产精品| 国产精品成人在线观看| 91蝌蚪porny| 亚洲成人手机在线| 日韩精品一区二区三区在线播放 | 国产一区二区三区四区五区美女 | 欧美一区二区三区四区视频| 奇米精品一区二区三区四区| 欧美一个色资源| 国产黑丝在线一区二区三区| 中文av字幕一区| 一本大道久久a久久精品综合| 一区二区三区精品久久久| 欧美日韩国产高清一区二区| 久久er99热精品一区二区| 2023国产一二三区日本精品2022| 国产99一区视频免费| 亚洲黄网站在线观看| 欧美精品在线观看播放| 国内精品不卡在线| 亚洲色图视频网| 欧美不卡一区二区三区| 成人高清免费观看| 日韩电影在线看|