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

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

?? clock_lcd1.asm

?? 使用51些列單片機實現秒表計數功能
?? ASM
字號:
;/********************************************************************
; *
; *  程序功能 :  液晶顯示的秒表
; *
; *  應用軟件 :  KEIL C
; *
; *  版    本 :  KEIL 7.06
; *
; *  硬    件 :  WS803、WS804、WS806、WS2511、WS2566、WS9600、WS9700
; *
; *  整理時間 :  2006-03-11
; *
; *
; *  注:為了有更多實用的實驗程序供大家學習,部分程序參考網上的資源,
; *      在此謝謝這些無私奉獻的朋友!!!
; *
; ********************************************************************/
 /* 實驗目的:1、了解液晶顯示的基本原理
  *           2、掌握如何有單片機來控制液晶顯示模塊的內容
  *           3、掌握單片機對按鍵的控制
  * 實驗內容:
  *          晶振 11.0592M
  *          定時器0,方式1
  *          計時中斷程序每隔10ms中斷一次
  *******************************************************************/
          TLOW   EQU  0CH     ;定時器初值
          THIGH  EQU  0DCH

          HOUR   EQU  30H
          MIN    EQU  31H
          SEC    EQU  32H
          SEC0   EQU  33H     ;10ms計數值
          KEY_S  EQU  34H     ;為鍵當前的端口狀況
          KEY_V  EQU  35H     ;為鍵上次的端口狀況
          X      EQU  36H     ;LCD 地址變量
          KEY_C  EQU  37H     ;鍵計數單元

          K1     EQU  P2.0
          K2     EQU  P2.1
          K3     EQU  P2.2
          K4     EQU  P2.3

          BEEP  EQU  P3.2
          RS    EQU  P2.5     ;LCD控制端口定義
          RW    EQU  P2.6
          EN    EQU  P2.7

;----------------------------------------------------
          ORG   0000H
          JMP  START
          ORG  0BH
          JMP  T0_INT
;----------------------------------------------------
START:    MOV  SP,#60H
          CLR  EN
          CALL  SET_LCD
          CALL  INIT            ;初始化變量
          MOV  KEY_V,#01H
          CALL  INIT_TIMER      ;初始化定時器
          CALL  MENU
LOOP:     CALL   CONV           ;時間計數處理
          CALL LOOP1
          CALL  SKEY            ;判是否有鍵按下
          JZ  LOOP              ;無鍵按下轉LOOP
          CALL   CONV
          CALL  SKEY
          JZ  LOOP
          MOV  KEY_V,KEY_S      ;交換數據
          CALL  P_KEY
          JMP  LOOP
;-----------------------------------------------------
LOOP1:    JB  K4,LOOP2         ;判清零鍵是否按下
          CALL  BZ
          JMP  START
LOOP2:    RET
;-----------------------------------------------------
P_KEY:                          ;
          MOV  A,KEY_V
          JB  ACC.0,P_KEY3
          INC  KEY_C
          MOV  A,KEY_C          ;K3鍵是否第一次按下?
          CJNE  A,#01H,P_KEY1
          MOV    DPTR,#MADJ    ;顯示執行信息
          MOV    A,#1          ;
          CALL   LCD_PRINT
          SETB  TR0            ;啟動中斷
          RET
P_KEY1:                          ;K3鍵是否第二次按下?
          MOV   A,KEY_C
          CJNE  A,#02H,P_KEY2
          MOV   DPTR,#MADJ1      ;顯示執行信息
          MOV   A,#1
          CALL  LCD_PRINT
          CLR   TR0              ;停止中斷
          RET
P_KEY2:                          ;K3鍵是否第三次按下?
          MOV   A,KEY_C
          CJNE  A,#03H,P_KEY3
          MOV   DPTR,#MADJ2      ;顯示執行信息
          MOV   A,#1
          CALL  LCD_PRINT
          SETB   TR0             ;啟動中斷
          RET
P_KEY3:                          ;K3鍵是否第四次按下?
          MOV   A,KEY_C
          CJNE  A,#04H,P_KEY4
          MOV   DPTR,#MADJ3      ;顯示執行信息
          MOV   A,#1
          CALL  LCD_PRINT
          CLR   TR0              ;啟動中斷
P_KEY4:   RET
;-------------------------------------------------------
SKEY:     CLR  A                ;判是否有鍵按下子程序
          MOV  KEY_S,A
          MOV  C,K3
          RLC  A
          ORL  KEY_S,A
          MOV  A,KEY_S
          XRL  A,KEY_V          ;有鍵按下,A 中內容不為零
          RET
;--------------------------------------------------------
LMESS1:  DB  "                ",0  ;LCD 第一行顯示消息
LMESS2:  DB  "TIME            ",0  ;LCD 第二行顯示消息
;--------------------------------------------------------
INIT:    CLR  A
         MOV  KEY_C,A         ;初始化控制變量
         MOV  SEC0,A
         MOV  SEC,A
         MOV  MIN,A
         MOV  HOUR,A
         MOV  KEY_S,A
         MOV  KEY_V,A
         SETB  BEEP
         CLR  TR0
         RET
;------------------------------------------------------------
INIT_TIMER:                     ;初始化定時器接口
         MOV  TMOD,#01H         ;設置定時器0 工作模式為模式1
         MOV  IE,  #82H         ;啟用定時器0 中斷產生
         MOV  TL0,#TLOW
         MOV  TH0,#THIGH
         RET
;-------------------------------------------------------------
T0_INT:
         PUSH  ACC           ;定時器0計時中斷程序
         MOV  TL0,#TLOW
         MOV  TH0,#THIGH
         INC  SEC0
         MOV  A,SEC0         ;10ms 計數值加1
         CJNE  A,#100,TT
         MOV  SEC0,#0
         INC  SEC            ;秒加1
         MOV  A,SEC
         CJNE  A,#60,TT
         INC  MIN            ;分加1
         MOV  SEC,#0
         MOV  A,MIN
         CJNE  A,#60,TT
         INC  HOUR           ;時加1
         MOV  MIN,#0
         MOV  A,HOUR
         CJNE  A,#24,TT
         MOV  SEC0,#0
         MOV  SEC,#0          ;秒、分、時單元清0
         MOV  MIN,#0
         MOV  HOUR,#0
TT:     POP  ACC
         RETI
;-------------------------------------------------------
;   在第二行顯示數字
;-------------------------------------------------------
SHOW_DIG2:                    ;在 LCD 的第二行顯示數字
          MOV  B,#10         ;設置被除數
          DIV  AB            ;結果A存商數,B存余數
          ADD  A,#30H        ;A為十位數,轉換為字符
          PUSH  B            ;B放入堆棧暫存
          MOV  B,X           ;設置 LCD 顯示的位置
          CALL  LCDP2        ;由 LCD 顯示出來
          POP  B             ;
          MOV  A,B           ;B為個位數
          ADD  A,#30H        ;轉換為字符
          INC  X             ;LCD 顯示位置加1
          MOV  B,X           ;設置 LCD 顯示的位置
          CALL  LCDP2        ;由 LCD 顯示出來
          RET
;-------------------------------------------
;轉換為 ASCII 碼并顯示
;-------------------------------------------
CONV:
          MOV  A,HOUR        ;加載小時數據
          MOV  X,#5          ;設置位置
          CALL  SHOW_DIG2    ;顯示數據
          INC  X             ;
          MOV  A,#':'        ;
          MOV  B,X           ;
          CALL  LCDP2        ;
          MOV  A,MIN         ;加載分鐘數據
          INC  X             ;設置位置
          CALL  SHOW_DIG2    ;顯示數據
          INC  X             ;
          MOV  A,#':'        ;
          MOV  B,X           ;
          CALL  LCDP2        ;
          MOV  A,SEC         ;加載秒數數據
          INC  X             ;設置位置
          CALL  SHOW_DIG2    ;顯示數據
          INC  X             ;
          MOV  A,#':'        ;
          MOV  B,X           ;
          CALL  LCDP2        ;
          MOV  A,SEC0        ;加載秒數數據
          INC  X             ;設置位置
          CALL  SHOW_DIG2
          RET
;---------------------------------------------------------
;  LCD  CONTROL
;---------------------------------------------------------
SET_LCD:                     ;對 LCD 做初始化設置及測試
          CLR  EN
          CALL  INIT_LCD     ;初始化 LCD
          MOV  R5,#10
          CALL  DELAY
          MOV  DPTR,#LMESS1  ;指針指到顯示消息1
          MOV  A,#1          ;顯示在第一行
          CALL  LCD_PRINT
          MOV  DPTR,#LMESS2  ;指針指到顯示消息2
          MOV  A,#2          ;顯示在第二行
          CALL  LCD_PRINT
          RET
;----------------------------------------------------------
INIT_LCD1:                   ;LCD 控制指令初始化
          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
;----------------------------------------------------------
ENABLE:                       ;寫指令
          CLR RS              ;RS=L,RW=L,E=高脈沖
          CLR RW              ;D0-D7=指令碼
          SETB EN
          ACALL DELAY1          
          CLR EN
          RET
;----------------------------------------------------------
LCD_PRINT:       ;在LCD的第一行或第二行顯示字符

          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
;-------------------------------------------------------
   DE:    MOV  R7,#250      ;延時500微秒
          DJNZ  R7,$
          RET
;-------------------------------------------------------
   EN1:
          CLR   RW
          SETB  EN         ;短脈沖產生啟用信號
          CALL  DE
          CLR  EN
          CALL  DE
          RET
;------------------------------------------------------
INIT_LCD:                  ;8位I/O控制 LCD 接口初始化
          MOV  P0,#38H     ;雙列顯示,字形5*7點陣
          call  enable
          call  delay1
          MOV  P0,#38H     ;雙列顯示,字形5*7點陣
          call  enable
          call  delay1
          MOV  P0,#38H     ;雙列顯示,字形5*7點陣
          call  enable
          call  delay1
          CALL  INIT_LCD1
          RET
;-----------------------------------------------------
WCOM:                     ;以8位控制方式將命令寫至LCD
          MOV  P0,A       ;寫入命令
          call  enable
          RET
;-----------------------------------------------------
WDATA:                    ;以8位控制方式將數據寫至LCD
          MOV  P0,A       ;寫入數據
          SETB  RS        ;設置寫入數據
          CALL  EN1
          RET
;-----------------------------------------------------
;第二行顯示字符
;-----------------------------------------------------
LCDP2:                    ;在LCD的第二行顯示字符
         PUSH  ACC        ;
         MOV  A,B         ;設置顯示地址
         ADD  A,#0C0H     ;設置LCD的第二行地址
         CALL  WCOM       ;寫入命令
         POP  ACC         ;由堆棧取出A
         CALL  WDATA      ;寫入數據
         RET
;----------------------------------------------------
DELAY:                    ;延時10MS
         MOV  R6,#50
  D1:    MOV  R7,#100
         DJNZ  R7,$
         DJNZ  R6,D1
         DJNZ  R5,DELAY
         RET
;-----------------------------------------------------
DELAY1:                    ;延時5MS
         MOV  R6,#25
  D2:    MOV  R7,#100
         DJNZ  R7,$
         DJNZ  R6,D2
         RET
;-----------------------------------------------------
BZ:                        ;蜂鳴器
         MOV  R6,#100
  B1:    CALL  DEX
         CPL  BEEP
         DJNZ  R6,B1
         MOV  R5,#10
         CALL  DELAY
         RET
DEX:    MOV  R7,#180
DE1:    NOP
         DJNZ  R7,DE1
         RET

;-------------------------------------------------
MMENU:  DB  " SECOND-CLOCK 0 ",0
MADJ:   DB  " BEGIN COUNT  1 ",0
MADJ1:  DB  " PAUSE COUNT  2 ",0
MADJ2:  DB  " BEGIN COUNT  3 ",0
MADJ3:  DB  " PAUSE COUNT  4 ",0
;-------------------------------------------------
MENU:                      ;LCD 顯示工作菜單消息
         MOV  DPTR,#MMENU
         MOV  A,#1
         CALL  LCD_PRINT
         RET
;-------------------------------------------------
         END



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品视频一区二区三区不卡| 欧美本精品男人aⅴ天堂| 国产一区二区三区久久悠悠色av | 国产凹凸在线观看一区二区| 精品一区二区国语对白| 国产真实乱偷精品视频免| 麻豆精品一区二区三区| 久久精品国产一区二区三区免费看| 日韩精品1区2区3区| 久久国产麻豆精品| 国产乱理伦片在线观看夜一区 | 成人av资源网站| www..com久久爱| 99久久777色| 在线不卡a资源高清| 精品国产凹凸成av人网站| 久久久久久久久岛国免费| 中文字幕一区免费在线观看| 亚洲日本在线看| 日本三级亚洲精品| 国产精品资源站在线| 波多野结衣视频一区| 日本丶国产丶欧美色综合| 91精品国产综合久久久久久| 日韩欧美一区二区视频| 国产亚洲va综合人人澡精品 | 青娱乐精品视频在线| 韩国一区二区三区| 色婷婷精品久久二区二区蜜臂av| 欧美日韩一二三| 国产午夜精品福利| 亚洲一区在线电影| 国产精品一级在线| 欧美日韩在线精品一区二区三区激情| 日韩三级视频中文字幕| 国产精品美女一区二区三区| 午夜视黄欧洲亚洲| 成人午夜在线视频| 4438x成人网最大色成网站| 国产精品狼人久久影院观看方式| 亚洲一区国产视频| 成人黄色av网站在线| 欧美一区二区视频在线观看 | 日韩视频一区二区在线观看| 国产女主播视频一区二区| 亚洲va欧美va人人爽午夜| 国产99一区视频免费| 9191精品国产综合久久久久久 | 欧美日韩免费视频| 国产精品日产欧美久久久久| 另类的小说在线视频另类成人小视频在线| 99re视频精品| 国产精品成人免费| 国产91精品露脸国语对白| 精品日韩欧美一区二区| 亚洲不卡av一区二区三区| 91麻豆高清视频| 欧美激情综合在线| 国产福利91精品一区二区三区| 91精品国产综合久久久久久久久久 | 婷婷开心激情综合| 在线免费亚洲电影| 亚洲天堂精品在线观看| 国产jizzjizz一区二区| www久久精品| 久久精品国产亚洲a| 欧美大片在线观看一区| 美女视频免费一区| 日韩欧美中文字幕一区| 美腿丝袜亚洲色图| 欧美变态tickle挠乳网站| 免费高清在线视频一区·| 日韩欧美国产一区二区三区| 五月激情六月综合| 在线电影一区二区三区| 亚洲第一狼人社区| 91麻豆精品国产自产在线| 亚洲综合丁香婷婷六月香| 欧美专区日韩专区| 日日夜夜免费精品| 欧美电影免费提供在线观看| 精品在线亚洲视频| 久久综合九色综合97_久久久| 久热成人在线视频| 久久亚洲综合av| 成人黄色小视频在线观看| 亚洲精品中文在线| 欧美亚洲国产一区二区三区va| 性做久久久久久| 精品少妇一区二区三区视频免付费 | 欧美经典一区二区| 波多野结衣中文字幕一区 | 亚洲色图欧美激情| 欧美网站一区二区| 久久av资源网| 中文字幕亚洲在| 欧美精品乱码久久久久久按摩| 另类调教123区| 中国色在线观看另类| 在线免费av一区| 美脚の诱脚舐め脚责91| 国产精品免费视频观看| 欧美日韩精品一区二区| 国产在线播放一区三区四| 中文字幕在线视频一区| 欧美三级电影在线看| 激情小说欧美图片| 亚洲黄色片在线观看| 日韩欧美亚洲一区二区| 成人激情开心网| 日韩中文字幕麻豆| 国产精品久线观看视频| 欧美日韩国产123区| 岛国av在线一区| 免费在线观看精品| 亚洲精品中文字幕在线观看| xfplay精品久久| 在线观看亚洲专区| 国产成人午夜精品影院观看视频| 亚洲一区在线电影| 中文字幕av一区二区三区免费看| 欧美精品久久久久久久多人混战| 国产精品18久久久| 青青草原综合久久大伊人精品优势| 综合久久久久综合| 国产目拍亚洲精品99久久精品| 欧美一区二区三区人| 欧美自拍丝袜亚洲| 色综合久久天天综合网| 国产电影一区在线| 经典三级在线一区| 男女男精品网站| 亚洲成av人影院在线观看网| 亚洲欧美日韩成人高清在线一区| 欧美国产乱子伦 | 久久综合精品国产一区二区三区| 在线观看一区日韩| 色综合天天综合色综合av | 日本不卡一区二区三区高清视频| 亚洲人成影院在线观看| 国产精品久久久久一区| 久久精品亚洲精品国产欧美kt∨| 日韩免费视频线观看| 911精品国产一区二区在线| 欧美在线不卡视频| 色先锋久久av资源部| 色综合久久综合| 91蝌蚪porny| 在线观看亚洲专区| 欧美丝袜丝交足nylons图片| 色吊一区二区三区| 欧美午夜一区二区三区 | 午夜欧美在线一二页| 亚洲一区二区在线观看视频| 亚洲色图.com| 亚洲综合免费观看高清完整版在线| 亚洲欧美日本韩国| 亚洲一级在线观看| 日本不卡高清视频| 国产一区二区剧情av在线| 国产精品一二三四五| 成人av小说网| 一本久道中文字幕精品亚洲嫩| 色综合久久中文综合久久牛| 欧美在线free| 欧美一区二区人人喊爽| www国产亚洲精品久久麻豆| 久久久久国产精品麻豆ai换脸| 国产日韩欧美一区二区三区综合| 亚洲日本青草视频在线怡红院| 亚洲精品日韩综合观看成人91| 亚洲成人免费在线观看| 极品少妇一区二区三区精品视频| 国产麻豆成人传媒免费观看| 成人免费视频caoporn| 91色婷婷久久久久合中文| 欧美视频中文字幕| 日韩美女视频一区二区在线观看| 日韩女优制服丝袜电影| 国产午夜精品一区二区| 一区二区三区在线观看国产| 精品在线一区二区| 99国产精品久久久久久久久久久| 欧美亚洲国产一卡| 久久综合色一综合色88| 夜夜嗨av一区二区三区中文字幕| 人妖欧美一区二区| 99久久精品久久久久久清纯| 在线播放91灌醉迷j高跟美女| 久久精品人人爽人人爽| 亚洲va欧美va人人爽午夜| 国产精品亚洲综合一区在线观看| 91成人看片片| 国产亚洲欧美在线| 石原莉奈在线亚洲三区| 北条麻妃国产九九精品视频| 制服丝袜国产精品| 亚洲乱码国产乱码精品精可以看| 久久99精品久久只有精品| 欧美影视一区二区三区|