⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pic-lcd.asm

📁 用PIC汇编实现单片机控制LCD显示以及人机对话全部代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;******************************************
;           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 + -