当前位置:首页 > 单片机 > 单片机
[导读] ;********************************************;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

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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭