;程序功能:上电开机:PIN5为高电平,绿灯亮;PIN2,PIN3为低电平,红灯灭;
; 轮流检测PIN6,PIN7脚电平,欠压3.9V,10V,红灯亮,绿灯灭,过压5.9V,15.9V
; 红灯亮,绿灯灭,alram为TTL高电平,过压锁死
LIST P=12F675
INCLUDE __CONFIG(B'11000101110100') ;Highest band gap voltage,0,0,Data memory is not protected ;Program memory is code-protected,BOD enabled,MCLR pin is MCLR function ;PWRT enabled,WDT disabled,INTOSC oscillator ;************************************** READH EQU 2Ah ;读到的高2位数据 READL EQU 2Bh ;读到的低8位数据 SOUH EQU 40h ;欠压设置,高2位存储地址 SOU EQU 41h ;欠压设置,低8位存储地址 RLTH EQU 42h ;过压设置,高2位存储地址 RLT EQU 43h ;过压设置,低8位存储地址 ORG 0000H GOTO MAIN ORG 0004H GOTO ADBEGIN ORG 0030H MAIN BCF STATUS,RP0 ;BANK 0 CLRF GPIO MOVLW 07H MOVWF CMCON ;关闭比较器 BSF STATUS,RP0 ;BANK 1 CALL 3FFH ; 读内部振荡出厂校准字,返回值在W寄存器内 MOVWF OSCCAL ;校准晶振 MOVLW B'00001011';TRISIO 三态控制器 MOVWF TRISIO ;设置TRISIO方向控制器,GP0,GP1,GP3为输入口 MOVLW B'00010011' MOVWF ANSEL ;8分频晶振,AN0AN1为模拟口,AN2AN3为数字口 BANKSEL OPTION_REG MOVLW B'00000000';将预分频器分配给TIMER0 模块,2分频 MOVWF OPTION_REG ; BANKSEL INTCON MOVLW B'10100000' ;允许全局中断,禁止外围中断,允许TRMO中断,禁止GP2/INT外部中断 MOVWF INTCON ;禁止GPIO端口电平变化中断,TMR0寄存器没有溢出,未发生GP2/INT中断 ;GP5:GP0 引脚电平均未发生变化 MOVLW 02H MOVWF 24H ;AD通道设置选择 MOVLW D'10' MOVWF 25H ;过压后延时采样,10*90uS=900uS ;******************************************** ;欠压设置2.5V,5V路对应值3.8V,15V路对应值10V MOVLW 0002H MOVWF SOUH MOVLW 0000H MOVWF SOU ;********************************************* ;过压设置值3.9V,5V路对应值5.9V,15V路对应15.9V MOVLW 0003H MOVWF RLTH MOVLW 0020H MOVWF RLT MOVLW B'10000001' MOVWF ADCON0 ;右对齐,参考电压Vdd,模拟通道0 BANKSEL TMR0 MOVLW D'242' MOVWF TMR0 GOTO $ ;********************************************* ;定时中断后开始AD转换 ADBEGIN BTFSC INTCON,T0IF ;是否是定时器TMR0中断 BANKSEL ADCON0 BSF ADCON0,GO ;开始转换 ADWAIT BTFSC ADCON0,GO GOTO ADWAIT ;等待转换完成 ;********************************************** ;AD转换后数据判断处理 READ BANKSEL ADRESH ;自动设置存储地址bank MOVF ADRESH,W ;读电压值高2位, CLRF STATUS MOVWF READH ;读到的高2位数据放到vrevh寄存器 BANKSEL ADRESL ;自动设置存储地址bank MOVF ADRESL,w ;读电压低8位 CLRF STATUS MOVWF READL ;***************************************************** LOWPOWER MOVF SOU,W SUBWF READL,W BTFSS STATUS,C;没有借位,跳过 GOTO JUMP1 MOVF SOUH,W CONTIUE1 SUBWF READH,W BTFSS STATUS,C ;没有借位,跳过 GOTO ALARM0 OVERPOWER MOVF RLT,W SUBWF READL,W BTFSS STATUS,C ;没有借位,跳过 GOTO JUMP2 MOVF RLTH,W CONTIUE2 SUBWF READH,W BTFSS STATUS,C ;;没有借位,跳过 GOTO NORMAL GOTO ALARM1 ;***************************************** ;时间到,准备选择通道和赋值 LOOP DECFSZ 24H,F GOTO SKIP BANKSEL ADCON0 MOVLW B'10000001' MOVWF ADCON0 ;右对齐,参考电压Vdd,模拟通道0 MOVLW D'2' MOVWF 24H GOON BCF INTCON,T0IF;恢复定时器继续判断 BANKSEL INTCON BSF INTCON,7 BANKSEL TMR0 MOVLW D'242' ADDWF TMR0,F GOTO $ ;*************************************************** ;子程序 SKIP BANKSEL ADCON0 MOVLW B'10000101' MOVWF ADCON0 ;右对齐,参考电压Vdd,模拟通道0 GOTO GOON JUMP1 INCFSZ SOUH,W GOTO CONTIUE1 JUMP2 INCFSZ RLTH,W GOTO CONTIUE2 NORMAL BANKSEL GPIO BTFSC 22H,0 ;为0跳过 GOTO BACK BSF GPIO,2 ;绿灯亮 BCF GPIO,4 ;红灯灭 BACK BCF 22H,0 GOTO LOOP ALARM0 BSF 22H,0 BANKSEL GPIO BCF GPIO,2 ;绿灯灭 BSF GPIO,4 ;红灯亮 GOTO LOOP ALARM1 DECFSZ 25H,F ;为0则跳 GOTO LOOP BANKSEL GPIO BSF GPIO,5 ;关机 BCF GPIO,2 ;红灯亮 BSF GPIO,4 ;绿灯灭 GOTO $ END
上一篇:PIC16F873A单片机的照度测量项目原理图与源代码
下一篇:PIC单片机16*64点阵屏proteus仿真
推荐阅读
史海拾趣
对于很多科研单位由于科研需要或产品存放需要,很多原料、半成品或成品(在此我们统称科研品),需要有特定的存放温度湿度环境,同时为保证各种设备的正常的运行,就需要保障电力供应、生活用水、污水处理等各种基本要素的正常工作,所以上述温度、 ...… 查看全部问答∨ |
|
这个板子采用了STC的2052AD,可以支持8路8位分辨率的AD输入,我设计的这个用了其中4路,其他的IO口作为现实和驱动继电器用,支持1路继电器输出,4位数码管,1路报警蜂鸣器,所有单片机的引脚全部引出可以为外部扩展使用。… 查看全部问答∨ |
我想用中国移动的TD-SCDMA模块传输视频,开发板是ARM平台。ARM将视频采集压缩之后通过USB口传给TD模块,现在正确配置之后,能成功拨号并传输视频。 但是,目前传输效果很差,分辨率为352*288的CIF格式视频每秒只能传 ...… 查看全部问答∨ |
请教大虾。。。基于s3c2440的wince下的GPS接收系统 小弟目前正在做毕业设计,题目rt。 ============================================================ 目前硬件已经搭建了,rs232 gps模块+mini2440开发板,在wince 5.0下用串口调试助手和GPSViewer等软件调试过,可以收到6颗星左右,功能还行。 = ...… 查看全部问答∨ |
(公司项目笔记及源码) QTOpia最新版本及Linux内核的arm移植 http://item.taobao.com/auction/item_detail.jhtml?x_id=0db2&item_id=fc0e4ae6d2507c66f0782f153aa43d4e… 查看全部问答∨ |
不知道动了什么东东,我在模拟器的startup中加了些文件并保存了改变,然后在evc中重新编译程序,就发现再也连接不上模拟器了,不知道怎么恢复到先前的状态,重装模拟器问题依然存在,请各位英雄帮帮忙?谢谢… 查看全部问答∨ |
|
我装的是evc4套件,顺序是:activesync--evc4--sp4--pocketpc2003.能装上,能打开编程环境和运行仿真器,可就是不能把程序下载到仿真器上运行,老是超时,提示:download failed.安装和运行时防火墙全是关闭的。总是出现这样的问题,不知道是怎么回事, ...… 查看全部问答∨ |