STC12C5A60S2汇编(ADC查询方式)示例程序

发布者:老王古玩店最新更新时间:2018-02-01 来源: eefocus关键字:STC12C5A60S2  ADC  查询方式 手机看文章 扫描二维码
随时随地手机看文章

STC12C5A60S2汇编(ADC查询方式)示例程序

;/*Declare SFR associated with the ADC */
ADC_CONTR   EQU 0BCH            ;ADC control register

ADC_RES     EQU 0BDH            ;ADC high 8-bit result register
ADC_LOW2    EQU 0BEH            ;ADC low 2-bit result register
P1ASF       EQU 09DH            ;P1 secondary function control register


;/*Define ADC operation const for ADC_CONTR*/
ADC_POWER   EQU 80H             ;ADC power control bit
ADC_FLAG    EQU 10H             ;ADC complete flag
ADC_START   EQU 08H             ;ADC start control bit
ADC_SPEEDLL EQU 00H             ;420 cLOCks
ADC_SPEEDL  EQU 20H             ;280 clocks
ADC_SPEEDH  EQU 40H             ;140 clocks
ADC_SPEEDHH EQU 60H             ;70 clocks

;-----------------------------------------
    ORG   0000H
    LJMP  MAIN
;-----------------------------------------
    ORG   0100H
MAIN:
    LCALL INIT_UART             ;Init UART, use to show ADC result
    LCALL INIT_ADC              ;Init ADC sfr
;-------------------------------
NEXT:
    MOV    A,#0
    LCALL SHOW_RESULT           ;Show channel0 result
    MOV    A,#1
    LCALL SHOW_RESULT           ;Show channel1 result
    MOV    A,#2
    LCALL SHOW_RESULT           ;Show channel2 result
    MOV    A,#3
    LCALL SHOW_RESULT           ;Show channel3 result
    MOV    A,#4
    LCALL SHOW_RESULT           ;Show channel4 result
    MOV    A,#5
    LCALL SHOW_RESULT           ;Show channel5 result
    MOV    A,#6
    LCALL SHOW_RESULT           ;Show channel6 result
    MOV    A,#7
    LCALL SHOW_RESULT           ;Show channel7 result

    SJMP  NEXT

;/*----------------------------
;Send ADC result to UART
;Input: ACC (ADC channel NO.)
;Output:-
;----------------------------*/
SHOW_RESULT:
    LCALL SEND_DATA             ;Show Channel NO.
    LCALL GET_ADC_RESULT        ;Get high 8-bit ADC result
    LCALL SEND_DATA             ;Show result

;//if you want show 10-bit result, uncomment next 2 lines
;    MOV    A,ADC_LOW2            ;Get low 2-bit ADC result
;    LCALL SEND_DATA             ;Show result
    RET


;/*----------------------------
;Read ADC conversion result
;Input: ACC (ADC channel NO.)
;Output:ACC (ADC result)
;----------------------------*/
GET_ADC_RESULT:
    ORL   A,#ADC_POWER | ADC_SPEEDLL | ADC_START
    MOV    ADC_CONTR,A           ;Start A/D conversion
    NOP                         ;Must wait before inquiry
    NOP
    NOP
    NOP
WAIT:
    MOV    A,ADC_CONTR           ;Wait complete flag
    JNB   ACC.4,WAIT            ;ADC_FLAG(ADC_CONTR.4)
    ANL   ADC_CONTR,#NOT ADC_FLAG ;Clear ADC_FLAG
    MOV    A,ADC_RES             ;Return ADC result
    RET

;/*----------------------------
;Initial ADC sfr
;----------------------------*/
INIT_ADC:
    MOV    P1ASF,#0FFH           ;Open 8 channels ADC function
    MOV    ADC_RES,#0            ;Clear previous result
    MOV    ADC_CONTR,#ADC_POWER | ADC_SPEEDLL
    MOV    A,#2                  ;ADC power-on and delay
    LCALL DELAY
    RET

;/*----------------------------
;Initial UART
;----------------------------*/
INIT_UART:
    MOV    SCON,#5AH             ;8 bit data ,no parity bit
    MOV    TMOD,#20H             ;T1 as 8-bit auto reload
    MOV    A,#-5                 ;Set Uart baudrate -(18432000/12/32/9600)
    MOV    TH1,A                 ;Set T1 reload value
    MOV    TL1,A
    SETB  TR1                   ;T1 start running
    RET

;/*----------------------------
;Send one byte data to PC
;Input: ACC (UART data)
;Output:-
;----------------------------*/
SEND_DATA:
    JNB   TI,$                  ;Wait for the previous data is sent
    CLR   TI                    ;Clear TI flag
    MOV    SBUF,A                ;Send current data
    RET

;/*----------------------------
;SOFtware delay function
;----------------------------*/
DELAY:
    MOV    R2,A
    CLR   A
    MOV    R0,A
    MOV    R1,A
DELAY1:
    DJNZ  R0,DELAY1
    DJNZ  R1,DELAY1
    DJNZ  R2,DELAY1
    RET

    END


关键字:STC12C5A60S2  ADC  查询方式 引用地址:STC12C5A60S2汇编(ADC查询方式)示例程序

上一篇:STC单片机解码HT6121/6122遥控器
下一篇:STC12C5A60S2串口演示程序

推荐阅读最新更新时间:2024-03-16 15:54

ADC设计挑战:从高性能转向低功耗
新的应用需求不断推动模拟技术的发展:性能越来越高,集成度不断提高。ADC产品作为模拟IC的重要成员,在符合上述发展的趋势下,还存在自身的特点。 当使用“巧克力”手机时,不用按键只用轻触那泛着深红色光的区域,你是否知道电容感应技术改变了你的体验;当看到那小小的骑车机器人“村田顽童”可以前进、倒退、爬坡并且停而不倒时,你是否知道其中使用了多种传感器以检测各个方向的倾斜角度和探测道路状况;当你惊叹残疾人可以自如地控制假肢完成复杂动作时,你是否知道与假肢相连的探测器可以检测人体肌肉的最细微运动从而实现对假肢的控制;也许你并没有留意到用手机通话时显示屏会自动关闭以便降低功耗,这是手机检测到显示屏被物体(例如耳朵)遮住时的操作……所有这些都表
[模拟电子]
<font color='red'>ADC</font>设计挑战:从高性能转向低功耗
利用过采样增加SAR ADC的动态范围
您使用过任何ADC( - 或SAR)并使其工作在过采样模式下吗? 您是否得到了需要的结果? 您遇到过什么问题吗? 以前有些关于 - 和SAR(逐次逼近型)ADC概述中,曾讨论过信噪比(SNR)和有效位数(ENOB)相关的过采样技术。 过采样技术最常用于 - 型ADC,但也可用于SAR ADC。 本文将对此做进一步讨论。 首先是系统级概要介绍: 用于光谱分析、磁共振成像(MRI)、气相色谱分析、振动、石油/天然气勘探和地震仪的高性能数据采集信号链要求具备高动态范围(DR)性能,同时降低功耗、尺寸和成本。 获得较高动态范围的一种方法,是对转换器过采样,以便精确监控并测量来自传感器微弱和强烈的输入信号。
[模拟电子]
利用过采样增加SAR <font color='red'>ADC</font>的动态范围
STM32L4系列 ADC基本原理
一、ADC简介 Analog-to-Digital Converter的缩写。指模/数转换器或者模拟/数字转换器。 STM32ADC简介 STM32 拥有 1~3 个 ADC,ADC1和ADC2紧密耦合,可在双模式下工作(ADC1为主模式)。每个ADC由一个12位逐次逼近的模数转换器组成。每个ADC有多达19个多路复用通道。各种通道的A/D转换可以在单一、连续、扫描或不连续模式下执行。ADC的结果是存储在左对齐或右对齐的16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。 ADC工作框图(根据STM32F1的ADC框图介绍STM32L4系列的ADC,大部分相同,有些寄存器有所变动)
[单片机]
STM32L4系列 <font color='red'>ADC</font>基本原理
linux2.6.32.2 mini2440平台移植-- ADC 驱动移植
1.2.1 关于 S3C2440 的 ADC 和触摸屏接口 Linux-2.6.32.2 内核并没有提供支持 S3C2440 的 ADC 驱动程序,因此我们自行设计了一个,这个驱动比较简单,属于字符设备,。在 S3C2440 芯片中,AD 输入和触摸屏接口使用共同的 A/D 转换器,见S3C2440芯片手册第 16 章节,如图。 1.2.2 在内核中添加 ADC 驱动 在 S3C2440 芯片中,AD 输入和触摸屏接口使用共同的 A/D 转换器,因此,ADC 驱动和触摸屏驱动若想共存,就必须解决共享 A/D 转换器 资源这个问 题,因此在 ADC 驱动程序中声明了一个全局的 ADC_LOCK 信号量。 (1)将
[单片机]
linux2.6.32.2 mini2440平台移植-- <font color='red'>ADC</font> 驱动移植
ADI公司的模数转换器兼备一流的无杂散动态范围和低功耗性能
——AD9524 ADC 采用小封装兼备高性能和低功耗特性, 从而使其非常适合于无线基础设施应用和手持式仪器设备 关于 AD9254 模数转换器 美国模拟器件公司( Analog Device , Inc., 简称 ADI )推出 ADC9254 150 MSPS (每秒百万次采样)转换速率 14 bit 分辨率的模数转换器( ADC )扩展了其无线基础设施应用的器件种类。这款 ADC 工作在 70 MHz 时具有 83 dB 的无杂散动态范围( SFDR ),同时功耗仅为 430 mW—— 功耗比同类解决方降低了 50 %。这种高 SFDR 、低功耗和小封装尺寸( 7 mm×7
[新品]
正点原子F4 ADC 45讲ADC基本原理
ADC 将模拟信号转化为数字信号 STM32adc 原理 STM32 的ADC库函数 中文参考手册 11章 STM32开发指南23章 多看手册,加强对ADC的理解 将连续的模拟信号转化为离散的数字信号 通道: ADC控制器只有3个,但是他可以有很多个通道。一个控制器有N个通道,每一个通道可以设置采样时间。 如上图可以查看ADC控制器的的个数,这个可以在选型手册上看到 Vref为单片机的参考电压 Vref+ 默认接到VDDA Vref- 默认接地 有16个规则通道,有 4个注入通道 (上图来自中文参考手册) 注入通道相当于是中断
[单片机]
正点原子F4 <font color='red'>ADC</font> 45讲<font color='red'>ADC</font>基本原理
msp430的一些常用的C语言控制程序---ADC12(2)
下面是ADC12单通道单次的中断方式的例子: //ADC12单通道单次的中断方式 #include msp430x14x.h unsigned ADC_Result; void ADC12_Init(); void main(){ WDTCTL = WDTPW + WDTHOLD; ADC12_Init(); _BIS_SR(GIE); ADC12CTL0 |= ADC12SC; while(1); } // void ADC12_Init(){ ADC12CTL0 &= ENC; P6DIR &= ~BIT6; P6SEL |= BIT6; //选择P6.6的第二功能 ADC1
[单片机]
纤巧的数字预失真接收器集成了 RF、滤波器和 ADC
    在蜂窝基站中,功率放大器 (PA) 消耗的电功率比其他任何组件都多,因此就服务提供商而言, PA 是增大运营支出的一个重要因素。复杂的数字调制方法要求 PA 具有极高的线性,因此必须在远低于饱和区的范围内驱动功率放大器,在这个区域内, PA 的效率最高。为了提高 PA 的效率,设计师使用了数字技术,以降低波峰因数,并改善 PA 的线性度,从而允许 PA 在靠近饱和区的范围内工作。数字预失真 (DPD) 是首选的 PA 线性化方法。数字预失真算法受到了大量关注,不过还有一个关键组件,即 RF 反馈接收器。     数字预失真接收器的要求     数字预失真接收器将 PA 的输出从 RF 信号转换回数字信号,是反馈环路的
[电源管理]
纤巧的数字预失真接收器集成了 RF、滤波器和 <font color='red'>ADC</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved