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

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

?? 帶有時間設置和秒顯示的數字鬧鐘.asm

?? 一款有時鐘設置功能的時間表
?? ASM
字號:
;*********************************************************
;           帶有時間設置和秒顯示的數字鬧鐘
;  Date :  2006.3.13     12MHZ晶振                                  
;  Create by :塵封往事  逸飛     
; P3.2設置鍵 P3.3小時調整鍵 P3.5分鐘調整鍵 P1.7定時輸出指示
;**************************************************************
;*********************************************************
;                 變量地址分配
;********************************************************* 
SwDelay             equ  2;       設置按鍵時去抖動時間
DisplayBuffer       equ  30h;     設置顯示緩沖區的地址為30h-35h共6個字節
BeepVal             equ  36h;     蜂鳴時間長短存儲器地址 
OneSecondCounter    equ  39h;     設置1秒計數器的地址,1秒計數器是用來計數1秒內計時器的中斷次數
Hour                equ  3ah;     設置小時計數器的地址
Minute              equ  3bh;     設置分鐘計數器的地址
Second              equ  3ch;     設置秒計數器的地址
P1Val               equ  3dh;     設置數碼管位驅動值的地址
ClockMode           equ  20h.0;   模式(正常走時/鬧時)設置寄存器地址,值為0時正常走時,為1時鬧時設定
AlarmOnOff          equ  20h.1;   鬧鐘開啟/關閉標志,為0關閉,為1開啟
AlarmTimeOn         equ  20h.2;   此位為1時表示鬧時時間到
DispHour            equ  21h;     設置小時顯示寄存器的地址
DispMinute          equ  22h;     設置分鐘顯示寄存器的地址
DispSecond          equ  23h;     設置秒顯示寄存器的地址
AlarmHour           equ  2eh;     設置鬧時小時計數器的地址
AlarmMinute         equ  2fh;     設置鬧時分鐘計數器的地址
AlarmSetKey         bit  P3.2;    鬧鐘設置鍵
MinuteKey           bit  P3.5;    定義分設置鍵
HourKey             bit  P3.3;    定義小時設置鍵
RelayOut            equ  P1.7;    定義輸出引腳
;**********************************************************************
;                     程序開始
;**********************************************************************
         org 00h
         ajmp   Reset;            程序開始
         org 0bh     ;            Timer0中斷向量地址
         ajmp TimeInt;            跳到中斷處理程序
         org 0020h
Reset:               ;            以下為初始化程序,為各個變量賦初值
         mov sp,#70h;
         setb RelayOut 
  mov OneSecondCounter,#125
         ;
         mov Hour,#12;
         mov Minute,#00;
         mov Second,#00;       設置上電時時鐘顯示的初值
         ;
         mov AlarmHour,#06;
         mov AlarmMinute,#00;  設置上電時鬧時時間的初值
         ;
         clr AlarmOnOff;        上點復位后鬧時功能處于關閉狀態
         clr ClockMode;         正常走時模式
         clr AlarmTimeOn;
         setb RelayOut;          清鬧時輸出
         
;************************************
;   Use Timer 0 Mode 1
;   400us interrupt
;************************************
         mov tmod,#00000001b;
         mov th0,#0E3h;                  
          mov tl0,#39h;
         mov ie, #82h;            開全局中斷
         setb  tr0;               開定時中斷
;*****************************************
;         以下為主程序
;*****************************************
MainLoop:
          jb AlarmSetKey,CheckMinuteKey;  鬧時設置鍵按下了嗎?沒有則轉去檢測秒設置鍵
          ;                      
          call Delay;
          jb AlarmSetKey,CheckMinuteKey;  按下的時間超過500ms嗎?
          setb ClockMode;                 置為鬧時設置模式
          call AlarmSet;
CheckMinuteKey:
          jb MinuteKey,CheckHourKey;      分設置鍵按下了嗎?沒有則轉去檢測小時設置鍵
          ;                      如按下調用蜂鳴器發音程序
          mov a,Minute
          add a,#1;                       如果按下則將分鐘加一                          十進制調整
          mov Minute,a;
          cjne a,#3ch,NotOver1;           到60分鐘了嗎?
          mov Minute,#0;                  到60分鐘則將分鐘清0
NotOver1:                                ;以下等待按鍵釋放及防抖動
          jnb  MinuteKey,$
CheckHourKey:
          jb HourKey,CheckAlarm;          小時設置鍵按下了嗎?沒有則轉去鬧時狀態檢測
          ;                      如按下調用蜂鳴器發音程序
          mov a,Hour
          add a,#1;                       如果按下則將小時加1
          mov Hour,a
          cjne a,#18h,NotOver2
          mov Hour,#0;                    到24小時則將小時清0
NotOver2:                                ;以下等待按鍵釋放及防抖動
          jnb  HourKey,$
CheckAlarm:          ;
          jnb AlarmTimeOn,ToReturn
          call AlarmProcess
ToReturn:
          ajmp MainLoop

;**********************************************
;  定時器Timer0中斷服務程序(此程序每8ms執行一次)
;**********************************************
TimeInt:
          mov th0,#0E3h;                      重新加載定時參數
          mov tl0,#39h;
          push acc
          push psw;                           保護累加器及程序狀態字的內容
          setb rs0;                           選擇工作寄存器組1,
          clr  rs1;                           這樣可保護原工作寄存器組(0組)的內容
          djnz OneSecondCounter,NotoneSecond; 中斷了125次了嗎?即夠1秒了嗎?
          mov OneSecondCounter,#125;          如夠1秒則重新設置"OneSecondCounter"計數器
          call Clock               ;          調用將時鐘內容加1秒的子程序
          call ConvertoBuffer      ;          調用將時鐘內容轉換到顯示緩沖區子程序
NotoneSecond:
          call ScanDisplay         ;          調用掃描顯示子程序
          pop  psw
          pop  acc                 ;          恢復累加器及程序狀態字的內容
          reti                     ;          中斷返回
;*********************************************
;            掃描顯示子程序
;*********************************************
ScanDisplay:
                   MOV   R1,#DisplayBuffer       ;指向顯示數據首址
                   MOV   R4,#11111110b      ;掃描控制字初值
             PLAY: MOV   A,R4          ;掃描字放入A
                   MOV   P2,A          ;從P2口輸出
                   MOV   A,@R1         ;取顯示數據到A
                   MOV   DPTR,#TAB     ;取段碼表地址
                   MOVC  A,@A+DPTR     ;查顯示數據對應段碼
                   MOV   P0,A          ;段碼放入P1口
                 
     LCALL        Delay

                   INC   R1            ;指向下一地址
                   MOV   A,R4            ;掃描控制字放入A
                   JNB   ACC.7,ENDOUT    ;掃到第六位時結束
                   RL   A               ;A中數據循環左移
                   MOV   R4,A            ;放回R5內
                   AJMP  PLAY            ;跳回PLAY循環
           ENDOUT: SETB  P2.7            ;一次顯示結束,P2口復位
                   MOV    P0,#0FFH       ;P0口復位
                   RET                      ;子程序返回
             TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,7FH,0B7H,0FFH
;共陽段碼表          "0""1""2" "3""4""5""6""7" "8""9"".""=""不亮"

;****************************************************
;            時鐘內容加1秒的子程序
;****************************************************
Clock:
          mov a,Second;                     將原秒值送入a
          add a,#1;                         加1秒
          
          mov Second,a
          cjne a,#3cH,NotOverFlow;          夠60秒了嗎?
          mov Second,#0;                    夠了則將秒值清0
          ;
          mov a,Minute
          add a,#1
          mov Minute,a;                     分鐘加1
          cjne a,#3cH,NotOverFlow;          夠60分了嗎?
          mov Minute,#0;                    夠了則將分值清0
          ;
          mov a,Hour
          add a,#1
          mov Hour,a;                       小時加1
          cjne a,#18H,NotOverFlow;          夠24小時嗎?
          mov Hour,#0;                      夠了則將小時值清0
NotOverFlow:
          jnb AlarmOnOff,NotAlarm;          鬧鐘開啟了嗎?如沒有開啟則無需理會是否到鬧時時間
          mov a,Second
          jnz NotAlarm;                     秒為零嗎?
          mov a,Minute
          cjne a,AlarmMinute,NotAlarm;      時間分鐘值和鬧時設置分鐘值相等嗎?
          mov a,Hour
          cjne a,AlarmHour,NotAlarm;        時間小時值和鬧時設置小時值相等嗎?
          setb AlarmTimeOn;                 到了鬧時時間則將“鬧時時間到”標志設為1
NotAlarm:
          ret
          ;
;**************************************************************************
;            將時鐘內容或鬧時設置值轉換到顯示緩沖區子程序
;**************************************************************************
ConvertoBuffer:
          mov r1,#DisplayBuffer
          jb ClockMode,DispAlarmSet;        判斷時鐘模式,以決定是顯示實時時間還是鬧時時間
          mov a,Second;
          mov DispSecond,a;
          mov a,Minute;
          mov Dispminute,a;
          mov a,Hour;
          mov DispHour,a;                   顯示實時時間
          ;
          ajmp Convert
DispAlarmSet:
          jb AlarmOnOff,AlarmOn
          mov DispSecond,#00h
          ajmp Next
AlarmOn:
          mov DispSecond,#11;             顯示鬧時時間及顯示鬧鐘狀態:顯示“00”表示關閉鬧鐘,
Next:                                    ;“11”表示開啟鬧鐘
          mov a,AlarmMinute;
          mov Dispminute,a;
          mov a,AlarmHour;
          mov DispHour,a;
                         ;
Convert:
          mov a,DispSecond;                取秒值
          mov b,#10
          div ab                              
          mov @r1,b;                       
          inc r1;                          緩沖寄存器的地址加1
          mov @r1,a;                       將秒值的十位值存入緩沖區
          ;                                
          inc r1
          mov a,DispMinute
          mov b,#10
          div ab                            
          mov @r1,b;                       
          inc r1;                          緩沖寄存器的地址加1
          mov @r1,a;                       將秒值的十位值存入緩沖區
          ;                                
          inc r1
          mov a,DispHour
          mov b,#10
          div ab                             
          mov @r1,b;                       
          inc r1;                          緩沖寄存器的地址加1
          mov @r1,a;                       將秒值的十位值存入緩沖區
          ;                                
          ret;                        

;**************************************************
;                   鬧時設置子程序
;**************************************************
AlarmSet:
          jnb  AlarmSetKey,$
          call Delay;                     等待“AlarmSetKey”鍵釋放
CheckArmMinuteKey:          ;
          jb MinuteKey,CheckArmHourKey;   分設置鍵按下了嗎?沒有則轉去檢測小時設置鍵
          setb AlarmOnOff
          mov a,AlarmMinute
          add a,#1;                       如果按下則將分鐘加1                          十進制調整
          mov AlarmMinute,a;
          cjne a,#3ch,ArmNotOver1;        到60分鐘了嗎?
          mov AlarmMinute,#0;             到60分鐘則將分鐘清0
ArmNotOver1:                             ;以下等待按鍵釋放及防抖動
          jnb  MinuteKey,$
CheckArmHourKey:
          jb HourKey,AlarmSetEnd;         小時設置鍵按下了嗎?沒有則返回反復檢測
          setb AlarmOnOff
          mov a,AlarmHour
          add a,#1;                       如果按下則將小時加1
          mov AlarmHour,a
          cjne a,#18h,ArmNotOver2
          mov AlarmHour,#0;               到24小時則將小時清0
ArmNotOver2:                             ;以下等待按鍵釋放及防抖動
          jnb  HourKey,$
AlarmSetEnd:
          jb AlarmSetKey,AlarmSet;        設置完畢了嗎?
          jnb AlarmSetKey,$;
          clr ClockMode;                  從設置模式轉為走時模式
          ret

;**************************************************
;             鬧時服務子程序
;**************************************************
AlarmProcess:
          clr RelayOut;
          jb AlarmSetKey,AlarmReturn;   停止鬧時鍵(即鬧時設置鍵)按下了嗎?
   clr AlarmOnOff
          jnb AlarmSetKey,$;
          setb  RelayOut;                如停止鬧時鍵按下則停止鬧時
          clr AlarmTimeOn;
AlarmReturn:
          ret
;**************************************************
;          延時子程序
;**************************************************
Delay:
          mov r6,#2
Del:
          mov r7,#249
          djnz r7,$
          djnz r6,Del
          ret
          end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕亚洲成人| 中文字幕在线不卡| 欧美日韩国产天堂| 色婷婷综合视频在线观看| 91碰在线视频| 在线观看精品一区| 欧美日韩精品欧美日韩精品一综合| 日本最新不卡在线| 图片区小说区国产精品视频| 精品粉嫩aⅴ一区二区三区四区| 福利91精品一区二区三区| 国产成人a级片| 国产99一区视频免费| 91网上在线视频| 久久成人18免费观看| 国产伦精品一区二区三区免费| 亚洲精品中文在线影院| 日韩美女在线视频| 久久久久久9999| 综合激情成人伊人| 26uuu另类欧美| 亚洲欧洲性图库| 久久影院午夜片一区| 国产精品日产欧美久久久久| 一区二区三区国产| 精品一区二区三区影院在线午夜| 亚洲欧美日本在线| 日韩综合小视频| 大胆欧美人体老妇| 欧美色综合网站| av电影一区二区| 欧美日韩www| 日本一区二区视频在线| 亚洲成人动漫av| 成人美女在线观看| 欧美精品一二三| 中文无字幕一区二区三区| 欧美精品一区二区三区四区| 最新中文字幕一区二区三区| 首页国产欧美久久| 成a人片国产精品| 欧美成人艳星乳罩| 亚洲激情五月婷婷| 国产精品18久久久久久久久| 欧美精品久久一区| 亚洲视频一二三| 国产精品一区在线| 高潮精品一区videoshd| 欧美二区乱c少妇| 亚洲黄色小说网站| 福利一区二区在线| 久久影视一区二区| 日韩va亚洲va欧美va久久| 免费在线一区观看| 欧美网站一区二区| 亚洲视频免费观看| 国产成人在线看| av亚洲精华国产精华| 久久久午夜精品理论片中文字幕| 久久先锋影音av鲁色资源| 日韩精品乱码av一区二区| 欧美怡红院视频| 亚洲欧美日韩国产综合| 99久久综合国产精品| 欧美视频在线一区| 日韩欧美在线123| 丝袜美腿亚洲一区| 欧美日韩电影在线| 亚洲一二三专区| 欧美日韩亚洲综合| 久久午夜色播影院免费高清 | 中文在线资源观看网站视频免费不卡| 国产午夜精品久久久久久免费视| 亚洲欧洲精品一区二区三区不卡| 亚洲风情在线资源站| 欧美中文字幕一区二区三区| 亚洲天堂av老司机| 91蝌蚪porny九色| 欧美一级专区免费大片| 国产精品另类一区| 亚洲一区二区视频| 欧美日韩不卡在线| 久久久久久久综合日本| 国产精品资源网| 中文字幕免费一区| 色哟哟国产精品| 天天av天天翘天天综合网 | 欧美在线观看禁18| 一区二区三区毛片| 国产综合色在线| 欧美激情艳妇裸体舞| 一本久久a久久精品亚洲| 亚洲国产精品综合小说图片区| 理论电影国产精品| 欧美在线一区二区| 免费久久精品视频| 国产欧美精品在线观看| 色av综合在线| 狠狠v欧美v日韩v亚洲ⅴ| 日本一区二区三区免费乱视频 | 久久综合狠狠综合| 91在线观看美女| 日本人妖一区二区| 欧美高清在线一区二区| 91高清视频免费看| 国产一区二区三区精品视频| 在线播放/欧美激情| 国产美女在线观看一区| 亚洲欧美另类小说视频| 日韩欧美国产一区二区在线播放| 图片区小说区国产精品视频| 久久精品一级爱片| 欧美三级电影一区| 国产精品一线二线三线精华| 精品女同一区二区| 免费在线视频一区| 亚洲综合色婷婷| 日本一区二区免费在线观看视频| 国产原创一区二区| 香蕉av福利精品导航| 国产精品久久久久桃色tv| 成人免费高清在线| 久久精工是国产品牌吗| 亚洲综合在线五月| 18成人在线观看| 国产无人区一区二区三区| 国产精品一区二区在线播放| 舔着乳尖日韩一区| 亚洲午夜在线电影| 一色屋精品亚洲香蕉网站| 成人av在线影院| 精品一区二区在线播放| 亚洲成a人在线观看| 国产精品看片你懂得| 久久久综合九色合综国产精品| 国产精品一区二区你懂的| 免费欧美在线视频| 日韩精品电影在线| 日韩欧美一区二区不卡| 国产伦精品一区二区三区免费 | 91精品黄色片免费大全| 在线观看国产精品网站| 97se狠狠狠综合亚洲狠狠| 国产69精品久久久久777| 久草这里只有精品视频| 九一九一国产精品| 精品在线播放午夜| 裸体一区二区三区| 国产视频一区在线观看| 久久综合久色欧美综合狠狠| 成人激情小说乱人伦| 成人性生交大片| www.亚洲精品| 99re这里都是精品| 日日摸夜夜添夜夜添亚洲女人| 久久久久久久综合| 欧美韩日一区二区三区| 国产精品久久一卡二卡| 国产精品超碰97尤物18| 伊人夜夜躁av伊人久久| 一区二区三区精品视频在线| 亚洲国产成人av网| 青青草97国产精品免费观看 | 国产一区久久久| 国产成人aaa| 91免费看`日韩一区二区| 日本午夜精品一区二区三区电影 | 国产美女主播视频一区| 成人三级在线视频| 色综合av在线| 日韩亚洲欧美成人一区| 久久综合久色欧美综合狠狠| 国产精品国产三级国产普通话蜜臀 | 成人午夜视频在线观看| 91小视频免费观看| 欧美日韩卡一卡二| 精品国产亚洲在线| 亚洲日本青草视频在线怡红院| 日韩欧美你懂的| 国产精品美女久久久久久| 亚洲图片自拍偷拍| 国产一区二区在线电影| 91精品福利视频| 日韩欧美一二区| 666欧美在线视频| 欧美国产1区2区| 日韩和欧美一区二区| 懂色中文一区二区在线播放| 在线观看日韩电影| 欧美精品一区二区三区高清aⅴ| 欧美高清视频一二三区 | 欧美成人a∨高清免费观看| 国产精品美女久久久久久久久| 国产午夜精品一区二区三区视频 | 国产日韩欧美高清| 亚洲精品日韩专区silk| 麻豆一区二区三| 欧美午夜在线一二页| 欧美国产乱子伦| 七七婷婷婷婷精品国产|