PIC单片机AD中断调试(无数字滤波)

发布者:快乐的旅程最新更新时间:2014-12-23 来源: 51hei关键字:PIC单片机  中断调试 手机看文章 扫描二维码
随时随地手机看文章

PIC单片机AD转换的中断调试程序如下(无数字滤波):

#include
#define uchar unsigned char
#define uint  unsigned int
__CONFIG(0x3B31);
const uchar disp[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uint adval;
float advalf;
uchar flag;
void delayms(uint x)
{  
   uint j,k;
   for(j=x;j>0;j--)
      for(k=110;k>0;k--);
}
void display(uint x )
{  
 PORTD= disp[x/1000]|0x80;
    PORTA= 0xF1;
    delayms(1);
  
    PORTD= disp[x/100%10];
    PORTA= 0xF3;
    delayms(1);

    PORTD= disp[x/10%10];
    PORTA= 0xF5;
    delayms(1);

    PORTD= disp[x%10];
    PORTA= 0xF7;
    delayms(1);
}
void init()
{
 uint adval=0;
    float advalf=0;
 flag = 0;
    TRISA=0x01;
    TRISC=0;
    PORTC=0x01;
    TRISD=0;
  
    ADCON0=0x41;  //8分频(4M)、AN0、使能ADC
   ADCON1=0x8E;  //右对齐、AN0通道
 ADRESH = ADRESL = 0;
 PIE1 |=0x40;  //AD中断使能
 INTCON |= 0xC0;  //外设使能、全局中断使能
 ADGO=1;    //ADC转换使能
    delayms(10);
}
void interrupt AD(void)
{
 if(ADIF&&ADIE)  //AD中断使能且标志位置位 
 {
  ADIF = 0;  //标志位复位
  ADGO=0;   //暂停AD转换
  flag = 1;  //置标志位
 }
}

void main()
{  
    init();
 while(1)
 {
  if(flag)
  { 
   flag = 0;
   adval=ADRESH;
      adval=adval<<8|ADRESL;
      advalf=adval/1023.0*5.0;
      adval=advalf*1000;
         ADGO=1;  //ADC转换使能
        display(adval);
  }
 }
}

关键字:PIC单片机  中断调试 引用地址:PIC单片机AD中断调试(无数字滤波)

上一篇:PIC16F877异步串口中断探析
下一篇:PIC16F877A 内部EEPROM读写实验

推荐阅读最新更新时间:2024-03-16 13:49

PICC 编译环境编写PIC单片机程序的探讨
目前,Microchip公司生产的PIC系列单片机以其低成本、低功耗、高性能、开发速度快且一次性用户可编程等优点迅速占领了国内市场,成为国内销售量最大的单片机。但国内介绍其C语言开发工具的书籍和文章却比较少,在开发过程中给广大程序员带来了许多困难和不便。 Microchip公司没有针对中低档系列PIC单片机的C语言编译器,但很多专业的第三方公司提供众多支持PIC单片机的C语言编译器,常见的有 Hitech、CCS、IAR以及Bytecraft等公司。Hitech公司的PICC编译器稳定可靠,编译生成的代码效率高,在用PIC单片机进行系统设计和开发的工程师群体中得到广泛认可。因此,本文主要以Hi Tech PICC为基础,介绍PIC
[单片机]
PICC 编译环境编写<font color='red'>PIC单片机</font>程序的探讨
AD1871型模数转换器的应用
1 引言   AD1871是目前市场上动态范围、采样速率和采样精度等指标都很突出数据的一款24位ADC,它的推出为设计高速、高精度数据采集系统提供了一种较好的解决方案。由于其输出为串行输出,当其和MCU直接相连时,会使采样系统的采样速率大大降低。笔者采用现场可编程门阵列(FPGA)设计了ADl871和MCU之间的接口,由FPGA完成对ADl871的控制,并将其输出的串行数据在FPGA的内部变为并行数据,并行后的数据以8位或12位为一组发给MCU。由于FPGA的实际传输速率可以满足和ADl871的传输速率要求,故上述“瓶颈”得以解决。   2 接口设计   2.1 时钟设计   图1示出A/D转换器的输入时钟设计,MD转换
[模拟电子]
<font color='red'>AD</font>1871型模数转换器的应用
PIC单片机之探讨低功耗
许多人说PIC单片机一大的优势就是低功耗,那我们就来讨论,讨论低功耗的实现。 1,睡眠(sleep) 睡眠方式是我们最常用的一种方式来降低功耗,但睡眠期间单片机不能做任何的事情。对于那些没事情就睡着,有事情就做一下的情况睡眠无疑是功耗最低的处理方式。 比如: 睡眠+ I/O电平变化中断唤醒 当按键没按下时,单片机睡眠,当按键按下后,执行相应的工作。 睡眠+数据接收中断唤醒 这样单片机就可以再没有接收到数据时候进入睡眠状态,接收到数据的时候就唤醒然后处理数据。当然首先单片机要有相关的外设比如SPI ,I2C,USART,等这些支持这些通讯的模块。 睡眠+看门狗唤醒 这个可以用在需要定时唤醒做事情的场合 2,降低时钟频率
[单片机]
基于PIC单片机对全功能步进电机的控制设计
//适合3ePIC实验板。 #include //包含单片机内部资源预定义 #include void delay(unsigned int endcount); //延时函数,延时为endcount*0.5毫秒 void run(); //步进电机运行控制函数 void stop(); //步进电机停止函数 //定义变量 unsigned int count; //延时函数用计数器 static int step_index; //步进索引数,值为0-7 staTIc bit turn; //步进电机转动方向 staTIc bit stop_flag; //步进电机停止标志 staTIc int speedlevel; //
[单片机]
基于<font color='red'>PIC单片机</font>对全功能步进电机的控制设计
ADI推出SDR应用的革命性解决方案——AD9361
软件无线电 (SDR) ,是一种通过固定不变的硬件平台,然后利用软件编程或者是软件升级的方式来支持不同通讯标准和不同频段的技术。换言之,软件无线电平台是一种可重构的无线电通讯系统。这个概念是上世纪九十年代初提出的,经过近 20 年的发展,如今越来越多地为众多行业以及客户们所接受,并成为他们设计无线通讯系统的首选。 然而,一些技术瓶颈的存在使得市面上的软件无线电产品并不能很好地满足当今通讯产业的发展需求: 1. 集成 式的射频收发器由于在射频的频带以及支持的信号带宽方面受到很大限制,所以应用面很窄,它不能称为真正的软件无线电解决方案; 2. 很多客户用离散的器件来搭建软件无线电平台,但离散器件功耗大,系统
[网络通信]
ADI推出SDR应用的革命性解决方案——<font color='red'>AD</font>9361
PIC单片机的EEPROM读写实例及说明
; PIC单片机的EEPROM读写实例及说明 ;**************************************************************************** ; This is a program to test the function of reading&writting for EEPROM. ; You can observe the value of register(30H--?) buy changing VALU and WRC_ . ; Notice that:it must be { ADDR+WRC_ =0ffh } ! ;********************
[单片机]
pic单片机A/D转换程序
//选择RAO做为模拟输入通道; //连续转换4次再求 平均值 做为转换结果 //最后结构只取低8位 //结果送 数码管 的低3位显示 #include p IC .h //包含 单片机 内部资源预定义 __CONFIG(0x1832); //芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡 const char TABLE ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0X82,0XF8,0X80,0X90}; //定义常数0-9的数据表格 void DELAY(); //delay函数申明 void init(); /
[单片机]
CD4051和AD595制作的温度采集仪
在电子工业中,随着整机集成度的提高和元器件的微型化、复杂化,在印制板上焊接元件时对各种焊接设备如波峰焊、回流焊、SMT等在内的温度工艺要求越来越高。这就需要一种可移动的温度数据采集仪器,能随传送带进入焊炉内,测量记录下不同焊点在印制板上的焊盘孔、过孔等在焊炉内不同位置时的温度参数,并能将测量数据方便地传送给电脑,进行数据曲线的显示、分析和打印,以便制定和执行合适的工艺流程。 无线通信可以去除设备对线缆和连接器的依赖。IrDA红外通信是一种低价且适应性广的短距离无线通信技术,只要通信双方都支持IrDA协议,就能很快建立通信链路,实现数据交换。近来红外通信在电子设备中得到了广泛的应用。为此,研制了带有红外接口的移动式温度数据采集仪。
[测试测量]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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