让找料更便捷
电子元器件
采购信息平台
生意随身带
随时随地找货
一站式电子元器件
采购平台
半导体行业观察第一站
标签:
摘要: 在51单片机的设计中经常会接触到模拟量输入,下面为模拟(AD)量输入接口选择源程序。//-----------------------模拟(AD)量输入接口选择函数声明,变量定义--------------------------------------------------------#include <reg51.h>#include <intrins.h>sbit
在51单片机的设计中经常会接触到模拟量输入,下面为模拟(AD)量输入接口选择源程序。
//-----------------------模拟(AD)量输入接口选择函数声明,变量定义--------------------------------------------------------
#include <reg51.h>
#include <intrins.h>
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();
}
上一篇:已经是第一篇
型号 | 厂商 | 价格 |
---|---|---|
EPCOS | 爱普科斯 | / |
STM32F103RCT6 | ST | ¥461.23 |
STM32F103C8T6 | ST | ¥84 |
STM32F103VET6 | ST | ¥426.57 |
STM32F103RET6 | ST | ¥780.82 |
STM8S003F3P6 | ST | ¥10.62 |
STM32F103VCT6 | ST | ¥275.84 |
STM32F103CBT6 | ST | ¥130.66 |
STM32F030C8T6 | ST | ¥18.11 |
N76E003AT20 | NUVOTON | ¥9.67 |