51单片机选择模拟(AD)量输入接口

发布者:紫菜包饭最新更新时间:2015-03-13 来源: dqjsw关键字:51单片机  模拟量  输入接口 手机看文章 扫描二维码
随时随地手机看文章
在51单片机的设计中经常会接触到模拟量输入,下面为模拟(AD)量输入接口选择源程序。

//-----------------------模拟(AD)量输入接口选择函数声明,变量定义--------------------------------------------------------
#include
#include
sbit     sel_A = P1^1;
sbit     sel_B = P1^2;
sbit     sel_C = P1^3;
unsigned char ABC;
void timer_set();                     //51单片机定时器初始化函数
void collection_data();               //采集函数声明           
#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};                  //--------------------------------------------------------------------------------------------------
#define on_system_interrupt(); {EA=1;}; //  打开系统中断允许,与硬件有关
#define off_system_interrupt(); {EA=0;}; //  关闭系统中断允许,与硬件有关
//-------------------------------------------------------------------------------------------------------
//  函数名称: timer_set 
//  功能说明: 设置定时器工作状态,与硬件有关
//--------------------------------------------------------------------------------------------------------
void timer_set()
     {
   TMOD=0x22;  //定时器1为工作模式2(8位自动重装),0为模式2(8位自动重装) 
      PCON=0x00;
      TH0=(256-100);  //100微秒定时
      TL0=TH0;
      ET0=1;
   }
//-------------------------------------------------------------------------------------------------------
//  函数名称: IntTimer0
//  功能说明: 定时器中断函数,与硬件有关,但不做处理,直接调用通用中断处理函数
//--------------------------------------------------------------------------------------------------------
void IntTimer0() interrupt 1

  off_system_interrupt();
  ABC++;
  sel_A=ABC&0x01;
  sel_B=ABC&0x02;
  sel_C=ABC&0x03;
  delayNOP();               //定时消除抖动
  collection_data();
  on_system_interrupt();
}

关键字:51单片机  模拟量  输入接口 引用地址:51单片机选择模拟(AD)量输入接口

上一篇:51单片机串口调试程序C语言
下一篇:串行接口电压输出型DA转换器的控制

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

80c51单片机的基本配置有哪些 80c51单片机各个引脚及功能
  80c51单片机的基本配置有哪些   80C51单片机的基本配置包括:   CPU:80C51单片机的CPU由一个8位的ALU(算术逻辑单元)、一个8位的累加器、一个8位的B寄存器、一个16位的程序计数器和一个8位的状态寄存器组成。   存储器:80C51单片机的存储器包括程序存储器(ROM)、数据存储器(RAM)和特殊功能寄存器(SFR)。   时钟源:80C51单片机支持多种时钟源,包括外部晶体、外部时钟信号、内部振荡器等。   中断系统:80C51单片机支持多种中断源和中断优先级设置,可以灵活处理各种外部事件。   IO端口:80C51单片机的IO端口由多个可编程的输入输出引脚组成,可以连接各种外部设备。   通信接口:
[单片机]
基于ISP 的简约型51单片机实验板的设计
0 引言 现在市面上通用的51内核单片机主要有ATMEL公司的AT89S51、AT89S52系列,飞利浦公司的P89C51RXX系列和P89LPC900系列。其中AT公司的52系列是51系列的增强版本,飞利浦公司的P89C51RXX系列的内部功能跟AT89S51基本相同,都是增强型51内核。通过比较选择飞利浦公司的P89C51RA2BN单片机,该单片机内部有8K的FLASH ROM程序存储器,可以满足大部分的实验和小系统设计。而且该单片机跟AT89S52相比,还有内部PCA(可编程计数器阵列),和512字节的数据存储器,7个中断源和集成内部硬件看门狗。该单片机的引脚和普通51单片机完全兼容,可以做为51单片机的代换产品。另外该型
[单片机]
基于ISP 的简约型<font color='red'>51单片机</font>实验板的设计
51单片机 独立键盘控制
键盘部分原理图: 历程里面设计到数码管,这个参考前面的文章《 51单片机 数码显示数字 》。 代码如下: 注释很详细。 //按键key1显示数字加1,按键key2显示数字减1,按键key3清零,按键key4数字每秒加1. #include //头文件 #define uint unsigned int //宏定义 #define uchar unsigned char //按键标示声明 sbit key1=P3^4; sbit key2=P3^5; sbit key3=P3^6; sbit key4=P3^7; sbit duanxuan=P2^6; sbit weixuan=P2^7;
[单片机]
51单片机汽车车窗除霜系统设计案例
一、功能简介 本项目使用Proteus8.12仿真51单片机控制器,使用LCD1602显示模块、光线传感器、DS18B20温度传感器、PCF8691 ADC模块、继电器加热模块等。 主要功能: 系统运行后,LCD1602显示温度和光线强度值; 当车窗光线强度低于一定值,且车窗温度低于一定值,车窗开启加热;当光线强度达到要求或者温度达到要求,关闭加热。 主要功能如下: (1)温度/光线检测; (2)LCD1602显示; (3)自动加热除霜。 二、软件设计 //系统数据获取 void sys_data_get(void) { static u8 i=0; while(1) {
[单片机]
<font color='red'>51单片机</font>汽车车窗除霜系统设计案例
51单片机红外遥控解码,很详细(汇编语言,C语言等)
单片机源程序如下: #include reg51.h #define hw_hs0038_ENTITY #include hw_hs0038.h sbit in=P3^2; //uchar i=0; //uchar k ; bit bdata b=0; /* void timer0(void) interrupt 1 using 1 { b=1; TH0=0; TL0=0; } */ void hw_start() { while(in==1); //等待低电平到来 } void
[单片机]
51单片机PWM控制LED亮灭
设计思路:用定时器中断产生最小时间单位T0,每m个T0组成一个子 周期 T10,其中前n个T0为LED导通时间,即Ton=n*T0,则Toff=(m-n)*T0 ;每X个T10组成一个母周期T20,其中前y个T10为有效控制时间,后续的(x-y)个T10令LED熄灭或者子周期占空比调至最小。 ;适当调节n/m和x/y的比例使显示效果达到最佳。 ;以下是刚刚调试通过的小段程序,显示效果良好。 ;实验过程本人有一种推测,不知是否成立: ;子周期的最小占空比的宽度应大于LED的点亮时间,即点亮LED的时间宽度n/m*T0应足够产生余辉。类似于动态数码管对点亮时间的要求。 ;母周期的宽度应小于1/50s,提高刷新频率以令肉眼察觉不出闪烁。
[单片机]
51单片机时钟精度误差的解决
前几天用STC89C52单片机制作了一个电子时钟,经过一段时间的实验,发现时间精度存在误差,一分钟慢4秒左右。 这可了不得,十分钟就要慢40秒,一天下来不得慢半96分钟!!! 这个单片机晶振频率为11.0592mhz,和大部分时钟的晶振频率相同,应该没有问题。 后天考虑到源代码: 在定时器中断函数里: void t0(void) interrupt 1 using 0 { tcount++; if(tcount==4000) {tcount=0; second++; if(second==60) {second=0; minute++; if(minut
[单片机]
基于8051单片机和SC1128芯片实现病房呼叫系统的设计
传统的病房呼叫系统普遍采用有线式,不仅布线安装繁琐、维护不便、利用率低,而且实时性差。虽然无线式呼叫系统没有布线问题,但它的可靠性差,而且无线电波会干扰其它医疗仪器设备,目前大多数医院不采用无线呼叫系统。 随着电力载波技术的发展,应用低压电力线作为传输媒质,采用扩频、数字编码、单片机控制等技术实现病房呼叫已成为可能。本文运用电力载波技术设计了一种病房呼叫系统。 1 病房呼叫系统的基本要求 临床求助呼叫是传送临床信息的重要手段,病房呼叫系统是病人请求值班医生或护士进行诊断或护理的紧急呼叫工具,可将病人的请求快速传送给值班医生或护士, 并在值班室的监控中心电脑上留下准确完整的记录,是提高医院和病室护理水平的必备设备之一。呼叫系
[单片机]
基于80<font color='red'>51单片机</font>和SC1128芯片实现病房呼叫系统的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看
    502 Bad Gateway

    502 Bad Gateway


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