;****************************************************************
list p=12f615 ; 指定所用单片机型号
#include <p12f615.inc> ; 引入选用单片机预定义文件
__CONFIG _CP_ON & _BOR_ON & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT & _IOSCFS_8MHZ
; _MCLRE_ON 引脚MCLR为外部复位, _MCLRE_OFF 引脚MCLR为数字输入,MCLR内部连接到VDD
__IDLOCS 0XC613 ; ID号...
;****************************************************************
;* 设置显示相关寄存器
;****************************************************************
cblock 0x40 ; 变量连续块定义
TEMP
TEMP1
TEMP2
D_ADDR
Byte
Count
timeS0 ; 定时时间-个位
timeS1 ; 定时时间-十位
endc ;结束变量连续定义
;****************************************************************
;* 定义 数据 & 控制I/O口
;****************************************************************
#DEFINE keyin GPIO,5 ; 按键SW
#DEFINE ccpout GPIO,2 ; PWM输出
;******************************DATA******************************
ORG 0x000
nop ; ICD 第一字节为nop
goto main ; 转入主程序
ORG 0x04 ; 中断入口
...............中断子程序
;****************************************************************
;* MAIN -- 主程序(初始化)
;****************************************************************
main bsf STATUS,RP0 ; Bank 1
movlw b'00111011'
movwf TRISIO
movlw b'00001000' ; 7位=0 GPPU内部弱上拉=使能
movwf OPTION_REG ; 3位=1 预分频为WDT 0-2位 分频比=?
movlw b'00100000'
movwf WPU ; 弱上拉GPIO 寄存器
movlw b'00100000'
movwf IOC ; 电平变化中断GPIO 寄存器
bcf STATUS,RP0 ; Bank 0
bcf STATUS,RP1
movlw b'00111011'
movwf GPIO
movlw b'10001000'
movwf INTCON ; 开总中断(GIE 7bin=1)和GPIO电平变化中断(GPIE 3bin=1)
maoff clrf FLAG ; 清标志
call offPWM ; PWM关闭程序
SLEEP
goto main
;****************************************************************
|