飞思卡尔单片机应用实验指导书(6)

2020-02-20 21:11

MCUInit(); //MCU初始化 ADCInit(); //AD模块初始化 LEDinit(); //LED数码块接口初始化 EnableInterrupts;

while(1){

V1Value=ADCAve(15,50); //取得中值滤波法得到的AD转换数值 ADCV_Vol(V1Value,LEDBUF); //将AD转换数值转化为对应的电压值的

//BCD码存入LED显示缓冲区LEDBUF

LEDshow(LEDBUF) ; //LED数码块显示 } }

ADC.c

//头文件

#include \

void ADCInit(void) {

ADC1CFG = 0b11010001;//低功耗,4分频,长采样,8位模式,总线时钟2分频 ADC1SC1=0b00000000;

ADC1SC2=0b00000000;//软件触发,禁止比较功能 }

uint8 ADCValue(uint8 channel) {

uint8 SC1_3; uint8 resultH; uint8 result;

//1 选取通道号AD0-AD27 = 00000-11011

channel &= 0b00011111; //取通道号变量的低五位(实际通道号) SC1_3 =ADC1SC1

&(ADC1SC1_COCO_MASK |ADC1SC1_AIEN_MASK |ADC1SC1_AIEN_MASK);

// 取ADC1SC1的高三位(取上电复位默认值000) // 单次转换, 禁止中断, 转换未完成

ADC1SC1 = SC1_3 | channel; //合并上述8位 //2 取A/D转换结果

while ((ADC1SC1 & ADC1SC1_COCO_MASK) == 0); //未完成则执行空操作 resultH = ADC1RH; result =ADC1RL; return result; }

uint8 ADCMid(uint8 channel) //中值滤波 {

uint8 i,j,k,tmp; //1 取三次A/D转换结果 i = ADCValue(channel); j = ADCValue(channel); k = ADCValue(channel); //2 从三次A/D转换结果中取中值 tmp = (i > j) ? j : i; tmp = (tmp > k) ? tmp : k; return tmp; }

uint8 ADCAve(uint8 channel, uint8 n) //均值滤波 {

uint16 i; uint32 j; j = 0;

for (i = 0; i < n; i++) j += ADCMid(channel); j = j/n; return (uint8)j; }

//将AD转换得到的数值量还原为实际的电压值,将电压值的BCD码存储显示缓冲区 void ADCV_Vol(uint8 ADC_V,uint8 *p){ uint8 V,V1;

V=(uint8)(ADC_V/51); V1=ADC_VQ; *p=V;

V=(uint8)(V1*10)/51; V1=(V1*10)Q; *(p+1)=V;

V=(uint8)(V1*10)/51; V1=(V1*10)Q; *(p+2)=V;

V=(uint8)(V1*10)/51; *(p+3)=V; } LED.c

#include \#include \void LEDinit(void) {

PTBDD = 0xFF; //数据口为输出

PTBPE=0xff; //为B口输出配置上拉电阻 PTBDS=0xff;

PTDDD |= 0x33; //位选口为输出 }

void LEDshow(uint8 *Buf) {

uint8 i,c; //uint16 j;

for (i = 0;i <= 3;i++) { c = Buf[i]; LEDshow1(3-i,c); //延时

delay(10); } }

const uint8 Dtable[10] =

// 0 1 2 3 4 5 6 7 8 9 {0x3F,0x06,0x5B,0x4F,0x66, 0x6D,0x7D,0x07,0x7F,0x6F}; //片选表 (电平为低片选) const uint8 CStable[4] = // 0 1 2 3 {0xDF,0xEF,0xFD,0xFE};

void LEDshow1(uint8 i, uint8 c) {

PTDD = CStable[i]; PTBD = Dtable[c]; }


飞思卡尔单片机应用实验指导书(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:广东省高级人民法院 广东省人民检察院 广东省公安厅印发关于核实

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: