当前位置:首页 > 单片机 > 单片机
[导读] ;********************************************;Function:电源掉电模式示例程序*;MICroProcessor:HT48R50A-1/28SKDIP-A*;Author:www.picavr.com*;Crystal:4MHz*;************************************


;********************************************
;Function:电源掉电模式示例程序*

;MICroProcessor:HT48R50A-1/28SKDIP-A*

;Author:www.picavr.com*
;Crystal:4MHz*
;********************************************

#INCLUDEHT48R50A-1.INC
LCD_DATAEQUPB
LCD_DATA_CTRLEQUPBC
LCD_CTRLEQUPC
LCD_CTRL_CTRLEQUPCC
EEQU5
RSEQU3
;--------------------------------------------------------------------
DATA.SECTIONAT60H’DATA’
DELAY_COUNTER_1DB?;[60H]
DELAY_COUNTER_2DB?;[61H]
DELAY_COUNTER_3DB?;[62H]
DATADB?;[63H]
COUNTERDB?;[64H]
EXE_INT_FLAGDB?;[65H]
;--------------------------------------------------------------------
CODE.SECTIONAT00H’CODE’
ORG00
JMPSTART
ORG04H
JMPINTERRUPT
ORG0CH
JMPTIMER1

ORG20H
START:
CLRLCD_DATA_CTRL
CLRLCD_CTRL_CTRL
CLRLCD_DATA
CLRLCD_CTRL
CLRPAC
CLREXE_INT_FLAG
CALLLCD_RESET
MOV A,0BH
MOV INTC,A
MOV A,80H
MOV TMR1C,A
SLEEP:
MOV A,OFFSETLCD_MESSAGE_1
MOV TBLP,A
CALLLCD_DISPLAY
HALT
;--------------------------------------------------------------------
SIZEXE_INT_FLAG
JMPPORT_7
JMPSLEEP
PORT_7:
MOV A,OFFSETLCD_MESSAGE_3
MOV TBLP,A
CALLLCD_DISPLAY
MOV A,OFFSETMUSIC_DATA
MOV TBLP,A
MOV A,08H
MOV COUNTER,A
PLAY_MUSIC:
TABRDLDATA
MOV A,DATA
MOV TMR1L,A
INCTBLP
TABRDLDATA
MOV A,DATA
MOV TMR1H,A
INCTBLP
SETTMR1C.4
CALLDELAY
SDZCOUNTER
JMPPLAY_MUSIC
CLRTMR1C.4
JMPSLEEP
RET
;--------------------------------------------------------------------
INTERRUPT:
MOV A,OFFSETLCD_MESSAGE_2
MOV TBLP,A
CALLLCD_DISPLAY
MOV A,10H
MOV COUNTER,A
MOV A,OFFSETSEGMENT_DATA
MOV TBLP,A
LOOP_INT:
TABRDLDATA
MOV A,DATA
MOV PA,A
CALLDELAY
INCTBLP
SDZCOUNTER
JMPLOOP_INT
SETPA
CLRINTC.4
SETEXE_INT_FLAG
RETI
;--------------------------------------------------------------------
TIMER1:
SZPC.2
JMPOUTPUT_0
SETPC.2
JMPOUTPUT_END
OUTPUT_0:
CLRPC.2
OUTPUT_END:
RETI
;--------------------------------------------------------------------
LCD_RESETPROC
MOV A,30H;LCDreset,step1
MOV LCD_DATA,A;
CALLWRITE;
CALLDELAY;LCDreset,step2
MOV A,30H;LCDreset,step3
MOV LCD_DATA,A;
CALLWRITE;
CALLDELAY;LCDreset,step4
MOV A,30H;LCDreset,step5
MOV LCD_DATA,A;
CALLWRITE;
MOV A,38H;LCDsetting,step1
MOV LCD_DATA,A;functionset
CALLWRITE;
MOV A,06H;LCDsetting,step2
MOV LCD_DATA,A;entrymodeset
CALLWRITE;
MOV A,01H;LCDsetting,step3
MOV LCD_DATA,A;displayclear
CALLWRITE;
CALLDELAY;
MOV A,0EH;LCDsetting,step4
MOV LCD_DATA,A;displayturnon
CALLWRITE;
RET
LCD_RESETENDP
;--------------------------------------------------------------------
LCD_DISPLAYPROC
MOV A,01H;LCDsetting,step5
MOV LCD_DATA,A;displayclear
CALLWRITE;
CALLDELAY;
MOV A,80H;LCDsetting,step6
MOV LCD_DATA,A;DDRAMaddresssetting
CALLWRITE;address=00h(firstline)
SETLCD_CTRL.RS;LCDsetting,step7
MOV A,10H;writedatatoDDRAM
MOV COUNTER,A
DISPLAY1:
TABRDLDATA
MOV A,DATA
MOV LCD_DATA,A
CALLWRITE
INCTBLP
SDZCOUNTER
JMPDISPLAY1
CLRLCD_CTRL.RS;
MOV A,0C0H;LCDsetting,step8
MOV LCD_DATA,A;DDRAMaddresssetting
CALLWRITE;address=40h(secondline)
SETLCD_CTRL.RS;LCDsetting,step9
MOV A,10H;writedatatoDDRAM
MOV COUNTER,A
DISPLAY2:
TABRDLDATA
MOV A,DATA
MOV LCD_DATA,A
CALLWRITE
INCTBLP
SDZCOUNTER
JMPDISPLAY2
CLRLCD_CTRL.RS
RET
LCD_DISPLAYENDP
;--------------------------------------------------------------------
WRITEPROC
SETLCD_CTRL.E
CLRLCD_CTRL.E
MOV A,0FFH
MOV DELAY_COUNTER_1,A
WAIT:
SDZDELAY_COUNTER_1
JMPWAIT
RET
WRITEENDP
;--------------------------------------------------------------------
DELAYPROC
MOV A,03H
MOV DELAY_COUNTER_1,A
MOV DELAY_COUNTER_2,A
MOV DELAY_COUNTER_3,A
DELAY_WAIT:
SDZDELAY_COUNTER_3
JMPDELAY_WAIT
SDZDELAY_COUNTER_2
JMPDELAY_WAIT
SDZDELAY_COUNTER_1
JMPDELAY_WAIT
RET
DELAYENDP
;--------------------------------------------------------------------
ORG0F00H
LCD_MESSAGE_1:;[PowerDownmode!]
;[IamsleePINg..!]
DC50H,6FH,77H,65H,72H,20H,44H,6FH
DC77H,6EH,20H,6DH,6FH,64H,65H,21H
DC49H,20H,61H,6DH,20H,73H,6CH,65H
DC65H,70H,69H,6EH,67H,2EH,2EH,21H

LCD_MESSAGE_2:;[INTBwakemeup!]
;[Goodmorningsir]
DC49H,4EH,54H,42H,20H,77H,61H,6BH
DC65H,20H,6DH,65H,20H,75H,70H,21H
DC47H,6FH,6FH,64H,20H,6DH,6FH,72H
DC6EH,69H,6EH,67H,20H,73H,69H,72H

LCD_MESSAGE_3:;[PA.7wakemeup!]
;[Iloveyoubaby]
DC50H,41H,2EH,37H,20H,77H,61H,6BH
DC65H,20H,6DH,65H,20H,75H,70H,21H
DC49H,20H,6CH,6FH,76H,65H,20H,79H
DC6FH,75H,20H,62H,61H,62H,79H,20H

SEGMENT_DATA:;7SEGMENTDATA(COMMONANODE)
DC081H,0CFH,092H,086H;0123
DC0CCH,0A4H,0A0H,08FH;4567
DC080H,084H,088H,0E0H;89AB
DC0B1H,0C2H,0B0H,0B8H;CDEF

MUSIC_DATA:;MUSICDATA
DC043H,0FCH,0B1H,0FCH
DC009H,0FDH,033H,0FDH
DC083H,0FDH,0C7H,0FDH
DC005H,0FEH,023H,0FEH
;--------------------------------------------------------------------
END

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

利用LogiCoA™微控制器,以更低功耗实现与全数字控制电源同等的功能

关键字: 微控制器 电源 CPU

甲类电源是一种开关式电源,它通过快速开关来控制电压,使输出电压保持恒定。甲类电源的输出电流波形接近直流,能够提供高效率和高功率输出。

关键字: 甲类电源 线性电源 电源

复位电路是一种用来使电路恢复到起始状态的电路设备,它的操作原理与计算器有着异曲同工之妙,只是启动原理和手段有所不同。复位电路,就是利用它把电路恢复到起始状态

关键字: 复位电路 电容 电源

TDK株式会社(东京证券交易所代码:6762)新近推出了爱普科斯 (EPCOS) B43659系列焊片式铝电解电容器。新系列元件是一款结构更紧凑的新一代通用型产品,工作电压为450 V(直流),具有更高的CV值,功能及适...

关键字: 电容器 光伏逆变器 电源

开关电源作为电子设备中的核心部件,负责将交流电转换为稳定的直流电,为设备的正常运行提供可靠的电力保障。然而,随着使用时间的增长和外部环境的变化,开关电源也可能出现故障,影响其正常工作。本文将重点介绍开关电源的常见故障及其...

关键字: 开关电源 电源 电子设备

开关电源作为电子设备中的关键部件,其稳定性和可靠性对于设备的正常运行至关重要。然而,在使用过程中,开关电源有时也会出现故障,需要进行维修。本文将为您详细介绍开关电源的维修步骤,帮助您快速解决电源问题,恢复设备的正常使用。

关键字: 开关电源 电源 电子设备

随着科技的飞速发展,电子设备已经渗透到我们生活的方方面面,从智能手机、电脑到家用电器,无一不需要稳定的电力供应。而在这背后,开关电源作为电力转换和管理的关键部件,正发挥着至关重要的作用。本文将深入探讨开关电源在现代科技中...

关键字: 开关电源 电源

在现代电子技术的飞速发展中,电源滤波器的应用变得日益广泛。作为电子设备中的关键组件,电源滤波器在抑制电磁干扰、提高设备性能、增强设备可靠性以及保护设备安全等方面发挥着至关重要的作用。那么,电源为什么要滤波呢?本文将从科技...

关键字: 电源 滤波器

高带宽和软开关拓扑是应对当前苛刻的电动汽车电源电子技术挑战的理想解决方案

关键字: 软开关拓扑 电动汽车 电源

尼得科株式会社将扩大其位于泰国的服务器用水冷模块CDU(Coolant Distribution Unit)生产线,计划在目前的月产能200 台基础上于 2024 年 6 月增加到每月 2,000 台。

关键字: 人工智能 电源 电路板
关闭
关闭