新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > LED單片機定時鬧鈴程序

        LED單片機定時鬧鈴程序

        作者: 時間:2012-12-31 來源:網絡 收藏

        ;*****led顯示程序**************************************
        ; 變量地址分配
        ;*********************************************************
        Hour EQU 3AH; 小時計數器的地址
        Minute EQU 3BH; 分鐘計數器的地址
        Second EQU 3CH; 秒計數器的地址
        P1Val EQU 3DH; 數碼管位驅動值的地址
        ClockMode BIT 20H.0; 模式(正常走時/鬧時)設置寄存器地址,
        值為0時正常走時,為1時鬧時設定
        AlarmOnOff BIT 20H.1; 鬧鐘開啟/關閉標志,為0關閉,為1開啟
        AlarmTimeOn BIT 20H.2; 此位為1時表示鬧時時間到
        DispHour EQU 21H; 小時顯示寄存器的地址
        DispMinute EQU 22H; 分鐘顯示寄存器的地址
        DispSecond EQU 23H; 秒顯示寄存器的地址
        AlarmHour EQU 2EH; 鬧時小時計數器的地址
        AlarmMinute EQU 2FH; 鬧時分鐘計數器的地址
        k1 BIT P3.2; 鬧鐘設置鍵
        k2 BIT P3.3; 小時設置鍵
        k3 BIT P3.5; 分鐘設置鍵
        ;http://www.51hei.com

        ;*************************************
        ; 程序開始
        ;*************************************
        ORG 0000H
        AJMP Main
        ORG 0BH
        AJMP TimeInt
        ORG 0020H
        Main:
        MOV SP,#70H
        MOV 39H,#14H
        MOV Hour,#12
        MOV Minute,#00
        MOV Second,#00
        MOV AlarmHour,#06
        MOV AlarmMinute,#00
        CLR ClockMode
        CLR AlarmTimeOn
        SETB p1.7
        MOV TMOD,#00000001B
        MOV TH0,#03CH
        MOV TL0,#0B0H
        MOV IE, #82H
        SETB TR0
        L1:
        JB K1,CheckMinuteKey
        LCALL Delay
        JB K1,CheckMinuteKey
        SETB ClockMode
        LCALL AlarmSet
        CheckMinuteKey:
        JB K3,CheckHourKey
        MOV A,Minute
        ADD A,#1
        MOV Minute,A;
        CJNE A,#60,NotOver1
        MOV Minute,#0
        NotOver1:
        JNB K3,$
        CheckHourKey:
        JB K2,CheckAlarm
        MOV A,Hour
        ADD A,#1
        MOV Hour,A
        CJNE A,#24,NotOver2
        MOV Hour,#0
        NotOver2:
        JNB K2,$
        CheckAlarm: ;
        JNB AlarmTimeOn,ToReturn
        LCALL LOOP
        ToReturn:
        AJMP L1

        ;**********************************************
        ; 定時器Timer0中斷服務程序
        ;**********************************************
        TimeInt:
        MOV TH0,#03CH
        MOV TL0,#0B0H
        PUSH ACC
        PUSH PSW
        SETB RS0
        CLR RS1
        DJNZ 39H,NotoneSecond
        MOV 39H,#14H
        LCALL Clock
        LCALL ConvertoBuffer
        NotoneSecond:
        LCALL ScanDisplay
        POP PSW
        POP ACC
        RETI
        ScanDisplay:
        MOV R1,#30H
        MOV R4,#11111110B
        MOV A,R4
        PLAY:
        MOV P2,A
        MOV A,@R1
        MOV DPTR,#TAB
        MOVC A,@A+DPTR
        MOV P0,A
        LCALL Delay
        INC R1
        MOV A,R4
        RL A
        JNB ACC.6,LD1
        MOV R4,A
        AJMP PLAY
        LD1: RET
        TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
        ;共陽段碼表 "0""1""2" "3""4""5""6""7" "8""9""不亮"
        Clock:
        MOV A,Second
        ADD A,#1
        MOV Second,A
        CJNE A,#3CH,NotOverFlow
        MOV Second,#0
        MOV A,Minute
        ADD A,#1
        MOV Minute,A
        CJNE A,#3CH,NotOverFlow
        MOV Minute,#0
        MOV A,Hour
        ADD A,#1
        MOV Hour,A
        CJNE A,#18H,NotOverFlow
        MOV Hour,#0
        NotOverFlow:
        JNB AlarmOnOff,NotAlarm
        MOV A,Minute
        CJNE A,AlarmMinute,NotAlarm
        MOV A,Hour
        CJNE A,AlarmHour,NotAlarm
        SETB AlarmTimeOn
        NotAlarm:
        RET


        上一頁 1 2 下一頁

        關鍵詞: 單片機 LED 定時鬧鈴

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 手游| 绥中县| 德化县| 金坛市| 恭城| 肥东县| 义马市| 精河县| 丹阳市| 崇阳县| 平南县| 策勒县| 清水县| 广西| 邮箱| 平乡县| 石河子市| 洪洞县| 两当县| 江津市| 湖北省| 宁波市| 旅游| 修文县| 信阳市| 左云县| 大关县| 桐城市| 富平县| 金湖县| 米脂县| 马鞍山市| 盐津县| 凤城市| 确山县| 金沙县| 玛曲县| 望都县| 怀柔区| 霍林郭勒市| 昌都县|