pic1路AD转换c语言,PIC单片机AD转换LED显示程序

PIC单片机AD转换LED显示程序

来源:--

作者:--

浏览:1020

时间:2016-08-10 14:18

标签:

摘要:

;*   单片机 模拟量进行模/数转换,并用LED显示出来我们可以看到转换 ;*  结果,0位AD当做8位来用了,利用 单片机 片内硬件资源TMR0和预分频器, ;*  为ADC提供定时启动信号,A/D转换的时钟源选用了系统周期的8倍,选 ;*  用了电源电压VDD和VSS作为基准电压,软件方式查询其中断标志位ADIF

;*   单片机 模拟量进行模/数转换,并用LED显示出来我们可以看到转换

;*  结果,0位AD当做8位来用了,利用 单片机 片内硬件资源TMR0和预分频器,

;*  为ADC提供定时启动信号,A/D转换的时钟源选用了系统周期的8倍,选

;*  用了电源电压VDD和VSS作为基准电压,软件方式查询其中断标志位ADIF.

;************************************************************

LIST     P=16F877                      ;列表伪指令

INCLUDE  "P16F877.INC"                 ;把包含文件含入源程序

;**************************************************

__CONFIG 3F39H;设置配置位中振荡方式为XT,其它全部禁止或关闭

;************************************************************

ORG    0000H

NOP                                    ;放置一条ICD必段的空操作指令

START

BANKSEL PORTC                          ;选择同PORTC寄存器相同的体

CLRF    PORTC                          ;清PORTC

MOV LW   B’010000001’                   ;选择:时钟时钟源为FOSC/8,允许ADC工作

MOV WF   ADCON0                         ;通道AN0,暂时不启动转换过程    BANKSEL OPTION_REG                     ;选择寄存器OPTION_REG的体为当前体

MOV LW   B’10000111’                    ;设定:RB口不用上拉,分频器配给TMR0

MOV WF   OPTION_REG                     ;分频比设为1:256

CLRF    TRISC                          ;PORTC所有管脚设为输出(接LED)

MOV LW   B’00001110’                    ;转换结果左对齐,只选1个A/D通道RA0/AN0

MOV WF   ADCON1                         ;选择VDD和VSS作参考源

BANKSEL PORTC                          ;选中同寄存器PORTC的体为当前体

;---------------------------------

MAIN

BTFSS   INTCON,T0IF                    ;等待和循环检测TMR0溢出中断标志位

GOTO    MAIN                           ;如果没有发生TMR0溢出中断则返回循环检测

BCF     INTCON,T0IF                    ;如果发生了TMR0溢出中断,则清除标志位T0IF

BSF     ADCON0,GO                      ;开启A/D转换过程

WAIT

BTFSS   PIR1,ADIF                      ;等待A/D转换过程结束,检测ADC中断标志位

GOTO    WAIT                           ;如果没有转换结束,则返回循环检测

MOV F    ADRESH,W                       ;如果转换完毕,则把A/D结果读到W

MOV WF   PORTC                          ;经过W送C口LED显示

GOTO    MAIN                           ;循环进行A/D转换

;---------------------------------

END                                    ;源程序结束

分享到:

90da879458bf0f4491d5f6f37b03a631.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书所附光盘跟目录下包含以下子目录: ● C语言程序例程。该子目录包括以下子程序: ——AD程序实现模拟量到数字量的转换功能; ——CAN程序实现CAN总线通讯功能; ——keyboard_check程序实现键盘的扫描查询方式输入; ——keyboard_disturb程序实现PORTB的"电平变化中断"进行键盘的输入; ——led0-8程序实现在8个LED上依次显示1~8数字; ——PWM程序用于使CCP1模块产生分辨率为10位的PWM波形,占空比为50%; ——RS-232程序通过RS-232接口来完成PC计算机与单片机之间的通信; ——simple_POARD程序为外围功能模块简单应用实例,点亮与PORTD口相连的八个发光二极管; ——stopwatch程序实现计时秒表功能,时钟显示范围00.00~99.99秒,分辨度为0.01秒; ——switchinput程序用于开关量的输入(采用SPI总线),并显示在与D口相连的LED上; ——wakeup程序实现PIC18F458的休眠工作方式,并由实验板上的按键产生"电平变化中断"将其从休眠状态中激活; ——WDT程序实现"看门狗"WDT的功能; ——Yejing程序实现液晶显示器的接口和显示功能。 ● 汇编语言程序例程。该子目录包括以下子程序: ——AD程序实现模拟量到数字量的转换功能; ——CAN程序实现CAN总线通讯功能; ——CAN2程序是优化的程序,同样实现CAN总线通讯功能; ——keyboard_check程序实现键盘的扫描查询方式输入; ——keyboard_disturb程序实现PORTB的"电平变化中断"进行键盘的输入; ——led0-8程序实现在8个LED上依次显示1~8数字; ——PWM程序用于使CCP1模块产生分辨率为10位的PWM波形,占空比为50%; ——RS-232程序通过RS-232接口来完成PC计算机与单片机之间的通信; ——simple_POARD程序为外围功能模块简单应用实例,点亮与PORTD口相连的八个发光二极管; ——stopwatch程序实现计时秒表功能,时钟显示范围00.00~99.99秒,分辨度为0.01秒; ——switchinput程序用于开关量的输入(采用SPI总线),并显示在与D口相连的LED上; ——wakeup程序实现PIC18F458的休眠工作方式,并由实验板上的按键产生"电平变化中断"将其从休眠状态中激活; ——WDT程序实现"看门狗"WDT的功能; ——Yejing程序实现液晶显示器的接口和显示功能。 ● MPLAB及C18安装使用简介。 ● 建立工程项目实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值