📄 pic-lcd.asm
字号:
;******************************************
; This is a ASM File
;作者:
;日期:
;功能:驱动520T的LCD,LM9033A_128*96
;备注:2008-07-14,有BESTMAN开机LOGO。
;******************************************
LIST P=16F77
INCLUDE "P16F77.INC"
__CONFIG _CP_ALL&_WDT_OFF&_BODEN_OFF&_PWRTE_OFF&_HS_OSC
INDF EQU 00H
TMR0 EQU 01H
PCL EQU 02H
STATUS EQU 03H
FSR EQU 04H
PA EQU 05H
PB EQU 06H
PC EQU 07H
CS EQU 0 ;CHIP SEL
RS EQU 1 ;REGISTER(D/INS) SEL
;
RW EQU 3 ;READ=1/WRITE=0
E EQU 4 ;E=L,RD/E=H,WR
RT EQU 5 ;LCD /RESET
;OFF EQU 5 ;自动关机,低有效
;6,RS232信号发送口,串口模块
;7,接收口,串口模块
PD EQU 08H
VU EQU 0 ;VOL-按键口
MENU EQU 1 ;菜单调整按键口
VD EQU 2 ;VOL+按键口
TT EQU 3 ;去探头按键口
BLA EQU 4 ;LCM背光控制
BUZ EQU 5 ;蜂鸣器输出控制
PU EQU 6 ;9511+控制
DN EQU 7 ;9511-控制
PE EQU 09H
CLK EQU 0
RST EQU 1
I_O EQU 2
;************************
COUNT EQU 20H ;MAIN程序分支用
FLAG EQU 21H ;用
SETUP EQU 0 ;显示
CLRLCD EQU 1 ;CLR显示
STA EQU 2 ;开机画面显示完成标志
FREEZE EQU 3 ;冻结按键按下标志
PPC EQU 4 ;与电脑通信按键按下标志
LONG EQU 5 ;连续按键长按调节标志
;6==>有按键标志
;7==>长按键无效标志
DISP_FG EQU 22H ;开机画面显示用
;2,3,4,5=>分页显示开机画面,完成后自动清零。
TEMP EQU 23H
;------------------------------
WORK EQU 24H ;显示图表标志(Z)
KUANG EQU 0H ;边框显示
POW EQU 1H ;电量显示
VOL EQU 2H ;声音显示
FREEZ EQU 3H ;冻结图表
PIC EQU 4H ;未用
CLRLD EQU 5H ;波形显示前清屏标志/0,清屏;1,波形
TST EQU 6H ;展示老化模式
NO_SIGN EQU 7H ;ADC无信号标志
PCOM EQU 25H ;页地址用于开机,清全屏
TIM EQU 26H ;YCOM计数器清全屏
TCOUNT EQU 27H ;开机画面表格计数器
YCOM_L EQU 28H ;列地址低位(Z)
YCOM_H EQU 29H ;列地址高位(Z)
CLR_RAM EQU 2AH ;开机画面显示次数
PCOUNT EQU 2BH ;小表格计数器
;-----------------------------
TIM1 EQU 2CH ;VOL延时计数器
;-----------------------------
W_TEMP EQU 2DH ;中断用(Z)
PCLATH_TMP EQU 2EH ;中断用(Z)
STATUS_TMP EQU 2FH ;中断用(Z)
;----------------------------------
YCOM_H_W EQU 30H ;波形显示中(Z)
YCOM_L_W EQU 31H ;波形显示中(Z)
ADTEMP EQU 32H ;AD中断用(Z)
TEMPX EQU 33H ;;;临时寄存器
AD_MID EQU 34H ;起点终点均值
SOU EQU 35H ;AD起点
TEMP1 EQU 36H ;2次AD值的差
TEMP2 EQU 37H ;同一页中显示AD值的差
PCOM_W EQU 38H ;曲线及清屏中使用
PIC_WAVE EQU 39H ;第0位判断显示图表/波形,第1位判断显示VOL_POW/TIM
YCOM_H_TD EQU 40H ;显示时间日期用
YCOM_L_TD EQU 41H ;LCM列设置寄存器
YCOM_H_VP EQU 42H ;显示电量音量用
YCOM_L_VP EQU 43H ;LCM列设置寄存器
PCOM_WC EQU 44H ;波形显示之前清屏用
;------------------------------------
KEYF EQU 4AH;菜单键,选择功能
;0==>VOL
;1~5YEAR,MON,DAY,HOUR,MIN
;6=>EXIT,取消日期调整,恢复VOL调整。
;7
KEYRAM EQU 4BH ;键值计数器
KCOUNT EQU 4CH ;按键销抖计数器
KEEP EQU 4DH ;键值备份寄存器
KDELAY EQU 4EH ;长按键延时计数器
;------------------------------------
DSFLAG EQU 50H ;DS1302设置标志
;DSFLAG,0;/DS1302设置完成
;DSFLAG,1;/0=>读时间/1=>读日期
;DSFLAG,2;/分布设置DS1302
;DSFLAG,6;/VOL--单次按键
;DSFLAG,7;/按键长按时间大于90MS标志
SECR EQU 51H ;秒/不显示秒,用于电源控制
MINR EQU 52H ;分
HOUR EQU 53H ;时
DAYR EQU 54H ;日期
MONR EQU 55H ;月
WEEK EQU 56H ;周/不显示星期,用于电源控制延时
YEAR EQU 57H ;年
;--------------------------------------
BTIME EQU 5AH ;按键音延时计数器
BTIME1 EQU 5BH ;按键音延时计数器
TIM2 EQU 5CH ;X9511模拟按键控制音量,延时电平翻转
COMEON EQU 5DH ;无按键取消日期时间调整计数器
COMEON1 EQU 5EH ;无按键取消日期时间调整计数器
;--------------------------------------
TIMF EQU 61H ;时间显示标志
;0~4分别表示时,分,年,月,日
DCOUNT2 EQU 62H ;时间高低位判断显示
DCOUNT EQU 63H ;时间数字表格显示用
DCOUNT1 EQU 64H ;4次以循环,1个数字4格
VOL_TEMP EQU 65H ;音量+-显示
;---------------------------------------
POWF EQU 66H ;电池电量判断
;1,2,3=>少1,2,3格电标志
DSCOUNT EQU 67H ;DS1302移位传送用
TSTRAM EQU 68H ;测试展示模式用于设置数据个数
ADTEMP_T EQU 69H ;测试展示模式用于设置展示数据
XDELAY EQU 6AH ;延时关机计数器
YDELAY EQU 6BH ;延时关机计数器
;-------------------------------------
TIMTZ EQU 6CH ;;添加时间调整界面用
;0==>1,进入时间调节界面
;1==>1,YMDHMIN图表显示完成
DISTIM EQU 6EH ;;时间调整界面显示时间
;0~5=>YEAR,MON,DATE,HOUR,MIN,EXIT
;-------------------------------------
TTDOU EQU 6FH ;;探头按键计数
AGCFLAG EQU 70H ;AGC状态标志
;0==>下降沿0//上升沿1
;2==>AGC标志
;3==>
;6==>防止冻结按键抖动双保险
;7==>防止冻结按键抖动
AGCOUNT EQU 71H ;下降沿最低点大雨20的次数
AGCRAM EQU 72H ;AD最低值小于3的次数,关闭AGC
AGCTEMP EQU 73H ;下降沿次数与AGCOUNT比较决定AGCFLAG
ADDF EQU 7FH ;添加坐标后适用清屏
XFBB_FLAG EQU 74H
CNT_H EQU 75H
CNT_L EQU 76H
XFBB_TEMP EQU 77H
;***************************
ORG 00H
GOTO START
ORG 04H
GOTO AD_INT
;ORG 05H
;***************************
ORG 1A00H
PAGE23:
ADDWF PCL,1;from 14h,end 7dh/from 08h,end 7Eh
DT 0x01,0x01,0x03,0x03,0x06,0x06,0x06,0x0C,0x0C,0x0C,0x18,0x18
dt 0x18,0x10,0x31,0x31,0x31,0x23,0x63,0x63,0x62,0x62,0x63,0x43,0xC3,0xC1,0xC1,0xC0
dt 0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0xC0
dt 0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x40,0x60,0x60,0x60,0x60,0x20,0x30,0x30
dt 0x30,0x10,0x18,0x18,0x18,0x08,0x0C,0x0C,0x0C,0x06,0x06,0x06,0x03,0x03,0x01,0x01
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01
dt 0x07,0x0C,0x1A,0x1B,0x3B,0x33,0x33,0x33,0x3B,0x1B,0x19,0x0C,0x07,0x01
dt 0x01,0x03,0x06,0x0C,0x0C,0x18,0x10,0x30
dt 0x20,0x60,0xC0,0xC0,0x80,0x81,0x03,0x06,0x04,0x0C,0x18,0x18,0x30,0x30,0x60,0x60
dt 0xC0,0xC1,0x83,0x86,0x8C,0x18,0x30,0x20,0x60,0x60,0x60,0x30,0x1F,0x8F,0x80,0xC0
dt 0xFF,0x3F,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x1B,0x1B,0x1B,0x1B,0x19,0x18,0x1C
dt 0x0F,0x0F,0x00,0x07,0x0D,0x0D,0x18,0x18,0x0D,0x05,0x18,0x10,0x1D,0x0D,0x06,0x02
dt 0x06,0x0D,0x19,0x12,0x1C,0x00,0x00,0x0F,0x1F,0x18,0x12,0x16,0x16,0x16,0x96,0x90
dt 0x99,0x9F,0xCE,0x40,0x60,0x30,0x18,0x08,0x0C,0x06,0x03,0x01,0x00,0x00,0x7C,0xFF
dt 0x01,0x00,0x00,0xFF,0xFF,0x30,0x38,0x3C,0x37,0xE3,0xC0,0x00,0x01,0xFF,0x7C
;***************************************************************************************
ORG 0800H
PAGE45:
ADDWF PCL,1;from 02h,end 7Ch/from 00h,end 73h
dt 0x03,0x07,0x1C,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x01,0x07
dt 0x0E,0x18,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x0F,0x3C,0x70
dt 0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x1E,0xF9,0xE3,0x0F,0x1E,0x78
dt 0xE0,0x80,0x01,0x0F,0xFF,0xF3,0x83,0x0E,0x7C,0xF0,0x83,0x0E,0xFF,0xE3,0x03,0x1E
dt 0xFE,0xF0,0x01,0x1F,0xFC,0xC0,0x06,0xB6,0xB6,0xA0,0x02,0x1F,0xFF,0xF0,0x03,0xBF
dt 0xB0,0x83,0xBF,0xFF,0xC0,0x1F,0xFF,0x88,0xEE,0xEA,0x8B,0xEB,0xEB,0x8B,0xEE,0xE8
dt 0x8B,0x9F,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x1E
dt 0xC7,0x61,0xB0,0xB0,0xB8,0x98,0x18,0x98,0xB8,0xB0,0xB0,0x60,0xC0
DT 0x1F,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0F,0x3E,0xF0,0xC0,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0F,0x3E,0x78,0xE1,0x81,0x01,0x03,0x03
dt 0x07,0x07,0x0F,0x1E,0x16,0x34,0x6C,0xD9,0xB9,0x71,0xF1,0xE1,0xC1,0x80,0x00,0x00
dt 0x71,0xF1,0xD1,0x91,0xB1,0xB3,0x73,0x73,0xE3,0xE6,0xE5,0x71,0x33,0x93,0xD3,0x73
dt 0x31,0x01,0xB1,0xE1,0xC1,0x91,0xF1,0xF1,0xF0,0xB0,0x81,0xC1,0x13,0x33,0xF3,0xF1
dt 0x00,0xC1,0xF3,0xF3,0x03,0x11,0xB0,0xE0,0x60,0x51,0x11,0xB3,0xB3,0x13,0x51,0xD0
dt 0xE0,0x60,0x30,0x11,0x03,0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x80,0xF0,0x7F,0x0F
;*******************************************************************************
ORG 01000H
PAGE67:
ADDWF PCL,1;from 00h,end 73h/from 02h,end 72h
dt 0xF8,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x01,0x1F,0xFE,0xF0,0xF0,0xE0,0xE0,0xE0,0xC0,0xC0,0xC0,0x80
dt 0x80,0x00,0x00,0x01,0x07,0x3F,0xFC,0xF1,0xC7,0xC7,0xCF,0xEF,0xFF,0xDF,0x1F,0x7F
dt 0xCF,0xDF,0xFF,0xFB,0xF3,0xEF,0xDF,0xDF,0x3C,0xF0,0xE3,0xC7,0x8F,0xCF,0xFF,0xE7
dt 0xC7,0xC7,0xC0,0xC3,0xC7,0xC7,0xC7,0xEF,0xFE,0xF8,0xE3,0xC7,0x86,0x80,0xE3,0xE7
dt 0xE6,0xC0,0xC7,0xFF,0xFC,0xF3,0x0F,0x3E,0x70,0xE7,0xCF,0x8E,0x81,0x87,0xFE,0xF9
dt 0x07,0x7E,0xF8,0xE3,0x8F,0x8C,0x81,0xFF,0xFF,0x3C,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x03,0xFF,0xFC
DT 0xC0,0xE0,0x38,0x1C,0x04,0x03,0x01,0x00,0xC0,0xF0,0x7C,0x1E,0x07,0x03
dt 0x01,0x01,0x00,0x00,0xF8,0xFE,0x07,0x03,0x01,0x01,0x01,0x01,0x01,0x03,0x07,0x06
dt 0x0E,0x1F,0x7F,0xFF,0xFF,0xDF,0x3E,0xFE,0xFC,0xFF,0xFF,0xFC,0xF0,0xC0,0x8C,0xBC
dt 0xBC,0xBF,0xBF,0xFE,0xFC,0xF8,0xF1,0x87,0x1F,0xFE,0xFC,0xE1,0x0F,0x3F,0xFC,0xE1
dt 0x8F,0x3F,0x7C,0xE0,0x9F,0xF8,0xE3,0x8F,0x3F,0xF8,0xE3,0xCF,0x3F,0xFE,0xF0,0x87
dt 0x3F,0xFF,0xE7,0x9F,0x78,0xE1,0x8F,0x1F,0xDC,0xC1,0x8F,0x7F,0xF3,0x9F,0x7C,0xF1
dt 0x87,0x3F,0xFE,0xF0,0x83,0x1F,0xFC,0xE0,0x00,0x00,0x00,0x01,0x03,0x06,0x0C,0x18
dt 0x70,0xE0,0x80
TABLE_POW:
MOVF TCOUNT,W
ADDWF PCL,1
RETLW 0FF
RETLW 0FF
RETLW 81H
RETLW 81H
RETLW 0FFH
RETLW 81H
RETLW 81H
RETLW 0FFH
RETLW 81H
RETLW 81H
RETLW 0FFH
RETLW 81H
RETLW 81H
RETLW 0FFH
RETLW 3CH
RETLW 18H
;*******************************************************************************
ORG 01800H
PAGE89:
ADDWF PCL,1;from 08h,end 6bh/from 14h,end 5fh
dt 0x80,0xC0,0x60,0x30,0x30,0x18,0x08,0x8C
dt 0x86,0xC2,0xC3,0x63,0x61,0x60,0x60,0xB0,0xB0,0xB0,0xB0,0xA0,0xE0,0x60,0xE0,0xC0
dt 0xE0,0xE0,0xE0,0xA0,0x20,0x60,0x60,0x60,0xE0,0xC0,0x80,0xE0,0x60,0x60,0x60,0x60
dt 0xE0,0xE0,0x60,0x60,0x60,0xE0,0xE0,0xC0,0x80,0x00,0x60,0xE0,0xE0,0xA0,0x20,0xE0
dt 0xE0,0x80,0x00,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0x60,0xE0,0xE0
dt 0xE0,0xE0,0xE0,0x60,0x60,0xE0,0xE0,0xE0,0x60,0xE0,0xE0,0xE0,0xE0,0xE0,0x60,0xE1
dt 0xE1,0xE3,0x62,0x66,0xE4,0x8C,0x18,0x10,0x30,0x60,0xC0,0x80
DT 0x80,0x80,0xC0,0xC0,0x40,0x60,0x60,0x30,0x30,0x30,0x18,0x18
dt 0x18,0x08,0x0C,0x0C,0x0C,0x04,0x06,0x06,0x06,0x06,0x06,0x02,0x03,0x03,0x03,0x03
dt 0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x03,0x03
dt 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x02,0x06,0x06,0x06,0x06,0x04,0x0C,0x0C
dt 0x0C,0x0C,0x18,0x18,0x10,0x10,0x30,0x30,0x20,0x60,0x60,0x40,0xC0,0x80,0x80,0x80
TABLE_VOL:
MOVF TCOUNT,W
ADDWF PCL,1
RETLW 18H
RETLW 3CH
RETLW 24H
RETLW 42H
RETLW 0BDH
RETLW 0C3H
RETLW 18H
RETLW 18H
RETLW 00H
RETLW 3CH
RETLW 00H
RETLW 7EH
RETLW 00H
RETLW 0FFH
RETLW 00H
RETLW 0FFH
DATA0:
ADDWF PCL,1
RETLW 3EH
RETLW 22H
RETLW 3EH
RETLW 00H
DATA1:
ADDWF PCL,1
RETLW 12H
RETLW 3EH
RETLW 02H
RETLW 00H
DATA2:
ADDWF PCL,1
RETLW 2EH
RETLW 2AH
RETLW 3AH
RETLW 00H
DATA3:
ADDWF PCL,1
RETLW 2AH
RETLW 2AH
RETLW 3EH
RETLW 00H
DATA4:
ADDWF PCL,1
RETLW 0CH
RETLW 14H
RETLW 3EH
RETLW 00H
DATA5:
ADDWF PCL,1
RETLW 3AH
RETLW 2AH
RETLW 2EH
RETLW 00H
DATA6:
ADDWF PCL,1
RETLW 3EH
RETLW 2AH
RETLW 2EH
RETLW 00H
DATA7:
ADDWF PCL,1
RETLW 20H
RETLW 20H
RETLW 3EH
RETLW 00H
DATA8:
ADDWF PCL,1
RETLW 3EH
RETLW 2AH
RETLW 3EH
RETLW 00H
DATA9:
ADDWF PCL,1
RETLW 3AH
RETLW 2AH
RETLW 3EH
RETLW 00H
;********************************************
;********************************************
ORG 06H
MAIN0:
ADDWF PCL,1
GOTO DISP
GOTO DS1302
GOTO KEYSCAN
GOTO DELAY
;*************************
TRET:
MAIN:
MOVLW .200
SUBWF TMR0,W
BTFSS 3,0
GOTO MAIN;每次循环时间为250uS,500条指令
;------------------------------------11-3 V
BTFSS XFBB_FLAG,0
GOTO L_CTL_OUT
INCF CNT_L,1
MOVLW .200
XORWF CNT_L,0
BTFSS STATUS,2
GOTO L_CTL_OUT
CLRF CNT_L
INCF CNT_H,1
MOVLW .150
XORWF CNT_H,0
BTFSS STATUS,2
GOTO L_CTL_OUT
CLRF CNT_H
BCF XFBB_FLAG,0
BCF PD,4
;------------------------------------
L_CTL_OUT:
CLRWDT
CLRF TMR0
CLRW
OPTION
BTFSC POWF,0
BSF ADCON0,GO
BTFSS FLAG,6 ;有按键标志,蜂鸣器叫一声
GOTO MAIN1
;BSF PD,BUZ
DECFSZ BTIME
GOTO MAIN1
DECFSZ BTIME1
GOTO MAIN1
;BCF PD,BUZ
BCF FLAG,6
MOVLW 06H
MOVWF BTIME1
;------------------------------------
MAIN1:;模拟按键调音量,连续按键时按照时间间隔模拟单次按键控制x9511
BTFSC DSFLAG,6;按键程序作实际按键计时,主程序单次 按键模拟计时控制9511
GOTO MAIN10
BTFSS DSFLAG,7;DSFLAG,7/按键长按时间大于90MS标志
GOTO MAIN11
VOL_LONG:;长按
DECFSZ TIM2,1
GOTO MAIN11
MOVLW 0E3H;/E3=.227/50ms电平转换一次
MOVWF TIM2
MOVF KEEP,1;/KEEP=0,VOL--/KEEP=2,VOL++
MOVLW 080H
BTFSS 3,2
MOVLW 040H
XORWF PD,1
GOTO MAIN11
MAIN10:;单个按键
MOVF KEEP,1;/KEEP=0,VOL--/KEEP=2,VOL++
MOVLW 080H
BTFSS 3,2
MOVLW 040H
XORWF PD,1
DECFSZ TIM2,1
GOTO MAIN11
MOVLW 0E3H
MOVWF TIM2
BSF PD,7
BCF DSFLAG,6
BSF PD,6
;-------------------------------------------------
MAIN11:
INCF COUNT,1
MOVLW 03H
ANDWF COUNT,W
GOTO MAIN0
;********************************
;********************************
AD_INT:
BCF PIR1,ADIF
MOVWF W_TEMP ;保护现场
SWAPF STATUS,W
CLRF STATUS ;SEL BANK0
MOVWF STATUS_TMP
MOVF PCLATH,W
MOVWF PCLATH_TMP
CLRF PCLATH
;;***现场保护完毕,中断程序开始
MOVF ADRES,W
MOVWF TEMP
BTFSC ADCON0,CHS0
GOTO POW_CHK
;-----------------------
btfss AGCFLAG,7
GOTO INT_0
MOVLW 00H
DECFSZ TTDOU,1
GOTO INT_1
MOVLW 013H
MOVWF TTDOU
BCF AGCFLAG,7
;***
MOVF TEMP,W
INT_0:
BTFSS AGCFLAG,6
GOTO INT_1
MOVLW 00H
DECFSZ TTDOU,1
GOTO INT_1
MOVLW 013H
MOVWF TTDOU
BCF AGCFLAG,6
MOVF TEMP,W
;-----------------------
INT_1:
MOVWF ADTEMP
BCF WORK,NO_SIGN
RLF ADTEMP,1;ADREx2=>ADTEMP++++
MOVLW 20H;;;;;;;;;+++
BTFSS AGCFLAG,2;;;+++AGC开启标志
GOTO INT_NEXT
SUBWF ADTEMP,1;;;;+++
BTFSS 3,0
CLRF ADTEMP
INT_NEXT:
MOVLW 0bH
SUBWF ADTEMP,W
MOVLW 00H
BTFSS 3,0
GOTO SIGN_OFF
MOVLW 50H
SUBWF ADTEMP,W
MOVLW 4FH
BTFSC 3,0
MOVWF ADTEMP
GOTO INT_OUT
SIGN_OFF:
MOVWF ADTEMP;ADTEMP<07H,认为无信号
BSF WORK,NO_SIGN
GOTO INT_OUT
;-------------------------------------- 电池监测 3.3V/256=0.01289
POW_CHK:
MOVWF TEMP
MOVLW .139 ;1.79V
SUBWF TEMP,W
CLRF POWF
BTFSC 3,0
GOTO INT_OUT
BSF POWF,1
MOVLW .85 ;1.1V
SUBWF TEMP,W
BTFSC 3,0
GOTO INT_OUT
BSF POWF,2
MOVLW .39 ;0.5V
SUBWF TEMP,W
BTFSS 3,0
BSF POWF,3
;;***************
INT_OUT: ;中断出口
MOVF SOU,W
BTFSC FLAG,PPC
MOVWF TXREG
INT_OUT1:
BCF ADCON0,CHS0
MOVF PCLATH,W ;恢复现场
MOVWF PCLATH
SWAPF STATUS_TMP,W
MOVWF STATUS
SWAPF W_TEMP,F
SWAPF W_TEMP,W
RETFIE
;*******************************
;*******lm9033A_LCD*****10条指令
W_DATA:;写数据
BSF PC,RS
GOTO WR_LCD
W_INS:;写指令
BCF PC,RS
WR_LCD:
NOP
BCF PC,RW
NOP
BSF PC,E
MOVWF PB
NOP
BCF PC,E
NOP
RETURN
;******************************
;***********DS1302*************
DS_WR:;60条指令,写数据上升沿有效
MOVWF TEMP
MOVLW 08H
MOVWF DSCOUNT
LOOP:
BCF PE,CLK
BSF PE,I_O
BTFSS TEMP,0
BCF PE,I_O
RRF TEMP,1
BSF PE,CLK;写数据上升沿有效
DECFSZ DSCOUNT,1
GOTO LOOP
BCF PE,CLK
RETURN
;-----------------------
DS_RD:;70 条指令
MOVLW 08H
MOVWF DSCOUNT
BANKSEL TRISE
BSF TRISE,2
CLRF STATUS
LOOP1:
BCF PE,CLK
BCF 3,0
BTFSC PE,I_O
BSF 3,0
RRF TEMP,1
BSF PE,CLK
DECFSZ DSCOUNT,1
GOTO LOOP1
BANKSEL TRISE
BCF TRISE,2 ;I_O恢复为输出
BANKSEL PORTE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -