历史上的今天
返回首页

历史上的今天

今天是:2024年11月12日(星期二)

正在发生

2019年11月12日 | PIC12F675两通道的AD转换的汇编程序

2019-11-12 来源:51hei

;程序功能:上电开机: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


推荐阅读

史海拾趣

Hendon Semiconductors公司的发展小趣事

随着电子产品的不断小型化和集成化,表面贴装技术(SMT)成为了电子制造行业的重要趋势。Hendon Semiconductors紧跟这一趋势,不断提升其表面贴装和精密制造能力。公司引进了先进的生产设备和测试仪器,确保产品的质量和可靠性。同时,Hendon Semiconductors还加强了对生产过程的监控和管理,通过严格的质量控制体系确保每一片电路板都符合客户的要求。

Bivar公司的发展小趣事

在电子行业的初期,Bivar公司以其创新的技术突破赢得了市场的认可。公司研发出一款新型电阻器,具有高稳定性和长寿命的特点,迅速在行业内引起了关注。凭借这一技术优势,Bivar逐渐在电阻器市场上占据了一席之地,并逐渐扩大生产规模,实现了公司的初步成长。

Hitachi Chemical Co America Ltd公司的发展小趣事

随着环保意识的日益增强,电子行业对绿色环保的要求也越来越高。Bivar公司积极响应这一趋势,投入大量资源进行环保技术的研发和应用。公司推出了一系列绿色环保的电子产品,如低能耗、无毒害的电阻器和电容器等。这些产品不仅符合了市场需求,还为公司树立了良好的环保形象。

E. Dold & Söhne KG公司的发展小趣事

在电子行业快速发展的背景下,E. Dold & Söhne KG公司始终紧跟科技潮流,致力于技术创新。公司投入大量资源研发新型电子元件和系统,以满足市场对于高性能、高可靠性产品的需求。通过不断的技术创新,E. Dold & Söhne KG公司在行业内树立了良好的口碑,成为众多知名企业的合作伙伴。

ACCUTEK公司的发展小趣事

ACCUTEK公司成立于XXXX年,起初只是电子行业中的一家小型初创企业。创始人凭借对电子技术的深入理解和市场趋势的敏锐洞察,决定专注于高精度数控设备的研发和生产。公司初期面临着资金短缺、技术瓶颈和市场认可度低等挑战,但凭借团队的坚持和不懈努力,逐渐在市场中站稳脚跟,赢得了初步的客户信任。

ETEQ Microsystems Inc公司的发展小趣事

面对电子行业日新月异的发展变化,ETEQ Microsystems Inc始终保持敏锐的市场洞察力。公司不断调整战略方向,积极应对行业变革带来的挑战。未来,ETEQ Microsystems Inc将继续加大研发投入,推动技术创新和产品升级,致力于成为电子行业的领军企业。

问答坊 | AI 解惑

运算放大器的增益误差对DAC性能的影响

假设DAC使用了一个反相运算放大器,C1=C2,A(0)=1000,若VREF=1V,问DAC在最怀情况下的最大精度? 反相放大器的环路增益=0.5×1000=500,因此增益误差为1/501=0.002。增益误差应该小于±0.5LSB,表示为: 增益误差=0.002…

查看全部问答>

驳关于STC89的一些咵噪

网上对STC的评价并不是很好,于是斗胆尝试了一把,到现在还是没有发现什么问题 我用的是89C58…

查看全部问答>

PXA300(Monahans) 能否支持1024x768分辨率?

PXA300(Monahans) 能否支持1024x768分辨率?…

查看全部问答>

求问关于WINCE 键盘锁定和解锁的问题

wince提供解锁某个键的函数API么? 解锁方面的API有么? 谢谢…

查看全部问答>

帮忙出主意,我的前途该往哪里走

  大家好,迷茫了很久,还是看不到方向,请有智慧的您帮忙吧,诚心请教   我毕业直接来到深圳,工作两年,第一年几乎虚度了,第二年用三星八位单片机汇编语言做了点简单的事(按键,led,定时器,i/o口发音,固定显示的液晶之类,硬件电路也 ...…

查看全部问答>

在CE下怎么对光驱进行操作?

如题,我想用EVC编程对光驱在CE下进行操作。…

查看全部问答>

【讨论】关于FLASH的问题

我在做写入flash的时候写入的是113个字节的数据,A段的从1000开始写的!!! 我把要写入的数据建立在一个结构里了!!! 可是写完以后读的时候总是后写入的两个读出的是0;如果写入的少的话,比如我写50个字节那么 就有最后1个读出是0;我想问问 ...…

查看全部问答>

求助!!MPS430F149驱动电机时候总死机

用F149驱动继电器结合驱动380V三相电机 利用两极继电器 中间采用光耦驱动第一级继电器 第一级继电器再控制第二级380继电器 上高压电时继电器结合 电机转 然后单片机就死机 求助!!!…

查看全部问答>

看到一款平板电脑,用TI的OMP4430----居然只要¥1500元

下面是那个厂家的广告单........如果又要买平板的兄弟真的可以考虑   …

查看全部问答>

为什么我的开发板下载郭天祥的程序没用

这个开发板是去年在淘宝上买的,放那里一直没动,最近想学了,所以拿出来看看,在百度文库里有这个开发板的详细介绍,下面是地址http://wenku.baidu.com/view/0878e189680203d8ce2f249a.html单片机的型号是STC 90C516RD+郭天祥视频教程里面的程序下 ...…

查看全部问答>