历史上的今天

今天是:2024年09月23日(星期一)

正在发生

2020年09月23日 | 单片机多通道AD采集源程序(8路) STC15w系列

发布者:asa1670 来源: 51hei关键字:单片机  多通道  AD采集  STC15w系列 手机看文章 扫描二维码
随时随地手机看文章

12864为串行接法。AD0~AD4接的5V电源。
AD5~AD7接的GND。

STC15W408AS 自带8路10位AD  
程序只使用了高八位。量程为255.
程序里面含10位AD采集。1024。
代码已注释。
新手上路。有错误还请斧正。

制作出来的实物图如下:
 

单片机源程序如下:

#include

#include"intrins.h"

#define uchar unsigned char;

#define uint unsigned int;


uchar a1,b1; //接收高八位,低八位

uint ad1;    //用于接收10位AD数据


#define  ADC_POWER 0X80; // 上电状态

#define  ADC_FLAG  0x10; // FLAG=1,结束转换。ADC_FLAG:A/D转换结束标志位

#define  ADC_START 0X08; // START=1,开始转换。

#define  ADC_SPEEDLL 0X00; //540个时钟

#define  ADC_SPEEDL  0X20; //360个时钟

#define  ADC_SPEEDH  0X40; //180个时钟

#define  ADC_SPEEDHH  0X60;//90个时钟

/*12864显示*/

unsigned char tab[]= {"AD1:    AD2:    "};

unsigned char tab1[]={"AD3:    AD4:    "};

unsigned char tab2[]={"AD5:    AD6:    "};

unsigned char tab3[]={"AD7:    AD8:    "};

uchar num[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};//0~9

sbit rw=P2^6;                //12864 input

sbit e=P2^7;                 //12864 clock

uint ADC_data;               //高八位数据

void chushihua();            //12864初始化

void zhiling(unsigned char zhiling);

void shuru(unsigned char n);

void shuju(unsigned char shuju);

void guding();

void ADC_init();

uchar ADC_P(unsigned char ch);

void delay(unsigned char x)

{

        while(x--);

}

void main()

{

        TMOD=0X11;

        TH0=0X3C;

        TL0=0XB0;

        EA=1;

        ET0=1;

        TR0=1;

        chushihua();//12864初始化程序

        ADC_init(); //ADC初始化程序

       

        while(1)

        {


                ADC_data=ADC_P(0);//ad通道1

          delay(5);

                tab[4]=num[ADC_data/1000];

                delay(5);

                tab[5]=num[ADC_data%1000/100];

                delay(5);

                tab[6]=num[ADC_data%100/10];

                delay(5);

                tab[7]=num[ADC_data%10];

               

                ADC_data=ADC_P(1);//ad通道2

          delay(5);

                tab[12]=num[ADC_data/1000];

                delay(5);

                tab[13]=num[ADC_data%1000/100];

                delay(5);

                tab[14]=num[ADC_data%100/10];

                delay(5);

                tab[15]=num[ADC_data%10];

       

                ADC_data=ADC_P(2);//ad通道3

          delay(5);

                tab1[4]=num[ADC_data/1000];

                delay(5);

                tab1[5]=num[ADC_data%1000/100];

                delay(5);

                tab1[6]=num[ADC_data%100/10];

                delay(5);

                tab1[7]=num[ADC_data%10];

               

                ADC_data=ADC_P(3);//ad通道4

          delay(5);

                tab1[12]=num[ADC_data/1000];

                delay(5);

                tab1[13]=num[ADC_data%1000/100];

                delay(5);

                tab1[14]=num[ADC_data%100/10];

                delay(5);

                tab1[15]=num[ADC_data%10];

               

                ADC_data=ADC_P(4);//ad通道5

          delay(5);

                tab2[4]=num[ADC_data/1000];

                delay(5);

                tab2[5]=num[ADC_data%1000/100];

                delay(5);

                tab2[6]=num[ADC_data%100/10];

                delay(5);

                tab2[7]=num[ADC_data%10];

               

                ADC_data=ADC_P(5);//ad通道6

          delay(5);

                tab2[12]=num[ADC_data/1000];

                delay(5);

                tab2[13]=num[ADC_data%1000/100];

                delay(5);

                tab2[14]=num[ADC_data%100/10];

                delay(5);

                tab2[15]=num[ADC_data%10];

               

                ADC_data=ADC_P(6);//ad通道7

          delay(5);

                tab3[4]=num[ADC_data%1000/100];

                delay(5);

                tab3[5]=num[ADC_data%1000/100];

                delay(5);

                tab3[6]=num[ADC_data%100/10];

                delay(5);

                tab3[7]=num[ADC_data%10];

               

                ADC_data=ADC_P(7);//ad通道8

          delay(5);

                tab3[12]=num[ADC_data/1000];

                delay(5);

                tab3[13]=num[ADC_data%1000/100];

                delay(5);

                tab3[14]=num[ADC_data%100/10];

                delay(5);

                tab3[15]=num[ADC_data%10];

                guding();

        }

}

/****************

*以下关于ADC

*****************/

void ADC_init() //adc初始化

{

        P1ASF=0XFF;     //设置P1为ADC采集

        ADC_RES=0;                        //清除高八位结果寄存器

        ADC_CONTR=0XE0; //ADC上电  A/D转换周期90个时钟周期

        delay(5);

}


uchar ADC_P(unsigned char ch) //ADC处理函数

{

        ADC_CONTR&=~ADC_FLAG;  //关闭标志位

        ADC_CONTR=0X80|0X00|0X08|ch;

        _nop_();_nop_();_nop_();_nop_();

        while(!(ADC_CONTR&0x10));//等待ADC转换完成


        return ADC_RES;  //返回ADC结果  8位AD

       

/*   ADC_CONTR &= !ADC_FLAG;         //清除ADC中断标志

          delay(30);

    ADC_CONTR=0x80|0x00|0x08|0x00;

          a1=ADC_RES;  //高8位

          b1=ADC_RESL; //低8位

          delay(60);

//        ADC_data=(a1<<2)|(b1>>6); //10AD  */

}

/*************************

*

*

*以下12864相关子函数

*

*************************/

void shuru(unsigned char n)

{

        unsigned char a;

        for(a=0;a<8;a++)

        {

                e=0;

                if((n<                {

                        rw=1;

                }                                            

                else

                {

                        rw=0;

                }

                e=1;        //移位时钟

                e=0;

[1] [2]
关键字:单片机  多通道  AD采集  STC15w系列 引用地址:单片机多通道AD采集源程序(8路) STC15w系列

上一篇:Sdcc编译环境下中断函数的编写
下一篇:STC15F2K60S2单片机数字电压表制作(不用外围A/D换换)

推荐阅读

   在好(que)评(huo)如潮的魅族 16 发布之后,魅族也没闲着,在今天发布了魅族 16 X。  发布会刚发完,学霸君就立马拿到了全新的 16 X,快速上手后,飞快为大家带来这款上手体验,看完这篇文章,手机好不好、值不值得买就有数了~读作次旗舰,写作真旗舰  第一次打开盒子,学霸君还以为快递小哥送错了手机。  这不就是魅族 16 吗?但...
(文章来源:第一财经) 在第21届中国国际工业博览会上,更安全、更小巧、更灵活的协作机器人成为展会的一大主题,外资和自主品牌纷纷推出新款协作机器人,并将其应用到汽车、3C、食品、机械加工等领域。 作为制造业皇冠顶端的明珠,中国工业机器人市场在保持多年高速增长之后,迎来了销量拐点。根据中国机器人产业联盟统计与国际机器人联合会初步汇总...
电机的温度检测与控制在工业生产中有着至关重要的作用,目前国内缺乏针对电机转子温度进行实时在线监控的系统。而电机超时、超负荷的运转会导致电机温度急剧上升,轻则影响工业生产的安全性、稳定性,重则直接酝酿巨大的经济损失。由于电机内部的结构复杂,工作时转子高速运转,无法实现有线测量,所以大多数电机的温度监测系统还以非直接接触式的测量为主...
英特尔Evo™跨界贾樟柯,首创迷你短剧探索科技和人生的进化之旅40款英特尔Evo™笔记本家族全球首秀亮相中国,软硬件双进化大秀“百变武艺”2021年9月23日,北京——今日,英特尔Evo™(以下简称“Evo”)超能轻薄体验日在北京举行,为大家带来一场科技与文艺融合的盛宴。知名导演贾樟柯令人惊喜地亮相活动现场,并与Evo跨界合作推出业内首创的迷你短剧——...

史海拾趣

问答坊 | AI 解惑

逆变充电机控制新技术

逆变电源的控制难度与输入输出电压有很大的关系,输入或输出电压的范围越宽,PID电路的控制参数计算就越显得复杂,而在整个调节范围内出现自激的可能性也越大。本逆变充电机不仅输出电压和电流具有很大的调节范围(50~260V、0~40A),而且还要保证 ...…

查看全部问答∨

科胜讯支付7000万美元和解与TI的专利纠纷

科胜讯系统(Conexant Systems)将向德州仪器支付7,000万美元,以了结双方关于ADSL技术专利权和授权协议的纠纷。双方的纠纷可以追溯到2004年Conexant收购GlobespanVirata。根据协议,德州仪器将给予科胜讯使用与DSL技术相关的基本专利的授权。此 ...…

查看全部问答∨

PROTEL 99se的鼠标增强软件

此软件为Protel99se在鼠标操作方面的作了补充, 使您能更好的使用Protel99se电路板设计软件, 适合普通三键鼠标和滚轮鼠标。 此软件非常好用,在原理图上你就可以用滚轮放大缩小了。 希望大家喜欢。…

查看全部问答∨

正激励有源钳位电路分析设计

本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 介绍同步整流的工作原理,选择与之适应的有源钳位正激励变换器并对其工作进行分析。有需要的可以看下。 …

查看全部问答∨

对VGA控制器有详细介绍的两本外文书籍

这两本书对VGA控制器有详细的说明,有图形和字符显示方式一本是 FPGA Prototyping by Verilog Examples 还有FPGA Prototyping by VHDL Examples 还有一本是Rapid Prototyping of Digital Systems…

查看全部问答∨

求教:fedora11下stream.h的问题

fedora11下,打开终端运行make后,提示错误:stream.h找不到那个目录或文件; 不知道怎么解决? 也想知道stream.h存放在哪里? 谢谢大虾们 …

查看全部问答∨

extern POBJECT_TYPE IoDriverObjectType链接错误?

根据某位著名的驱动大师的说法:IoDriverObjectType是一个全局变量,只需要声明即可使用。但是声明后提示错误: extern POBJECT_TYPE IoDriverObjectType; 1>driver2005.obj() : error LNK2001: unresolved external symbol "struct _OBJECT_ ...…

查看全部问答∨

招聘单片机工程师

招聘单片机工程师 工作地点:深圳西丽 职位要求: 1、一年以上单片机开发经验,精通汇编、C语言。精通 AVR、51单片机开发。 2、精通模数电路,熟练应用 Protell 99se,会焊接基本功。 3、熟悉FPGA、有FPGA项目设计经验优先考虑。 4、熟悉linux ...…

查看全部问答∨

请教flash读写的问题

使用的是华恒AT91ARM9200的板子,测试flash读写时出的问题。在修改/devices/mtd/maps/at91arm9200加入新的分区后,open成功,第一次调用write()可以成功,但之后再调用read()则不成功,并会显示"waiting for chip to be ready timed out in read. ...…

查看全部问答∨

急!跪求射频电路板高手啊!

我的毕业设计要做一个电视信号发射机,可是射频电路板从来没画过,也不会画,所以想请大侠们帮帮忙啊,小妹感激不尽 ! 原理图在附件里!…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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