单片机AD接收UART发送模块电路图PCB与vb上位机源码

发布者:温馨生活最新更新时间:2019-11-07 来源: 51hei关键字:单片机  AD接收  UART发送 手机看文章 扫描二维码
随时随地手机看文章

Altium Designer画的AD接收UART发送模块电路原理图和PCB图如下:
0.png0.png

【简要说明】

一、 尺寸:长50mmX宽25mmX高10mm
二、主要芯片:ATMEGA8
三、工作电压:直流5V

二、 特点:
1、检测模拟量电压范围0~5V
2、数码管显示范围0~5000
3、四位数码管显示
4、输入输出接线简单
5、AD转换频率125K,8位数据转换
6、波特率:9600 , 误差率:0.156%

三、 作用:将0~5V的模拟电压量转换成为0~5000的数字量,由数码管显示出来,并转换成为0~255的十六进制,由单片机UART(即,TXD口发出),经232电平转换后,可以和电脑直接通信。


AD接收UART发送模块AD转换数值显示

image016.jpg

image017.png 

image014.jpgimage012.jpgimage004.jpgimage010.jpg 

单片机源程序如下:

    #include

    #include  

    #define uchar unsigned char

    #define uint  unsigned int

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

                    数码管段码定义0123456789

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

    uchar Table[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};         //所需的段的位码

    uchar wei[4]={0X10,0X20,0X40,0X80};  //位的控制端        (仿真) 

    //uchar wei[4]={0Xe0,0Xd0,0Xb0,0X70};  //位的控制端        (板子) 

    uint date;        //定义数据类型 

    uchar z,x,c,v;        //定义数据类型 

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

                                                                    延时函数                                                                           

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

    void DelayMs(uint i)  //0.25ms

    {uint j;

    for(;i!=0;i--)

      {for(j=8000;j!=0;j--) {;}}

    }

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

                    数码管动态扫描

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

    void Pre_Display()


    /***********************数据转换*****************************/ 

      z=date/1000;                         //求千位

      x=date%1000/100;                 //求百位

      c=date%100/10;                 //求十位

      v=date%10;                         //求个位


          PORTD=wei[0];

              PORTB=Table[z];

              DelayMs(1);  

                PORTD=wei[1];

          PORTB=Table[x];

              DelayMs(1);  

                 PORTD=wei[2];

          PORTB=Table[c];

              DelayMs(1);  

          PORTD=wei[3];

          PORTB=Table[v];

              DelayMs(1);  

      }

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

                                                                    电压值处理函数                                                                           

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

    uint ADC_Convert(void)

    {uint temp1,temp2;

    temp1=(uint)ADCL;//先读ADCL

    temp2=(uint)ADCH;//再读ADCH

    temp2=(temp2<<8)+temp1;//求值

    temp2=temp2*49/10;//求显示的电压值(0~5.12)V

    if(temp2>=5000)temp2=5000;

    return(temp2);

    }

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

                          初始化I/O口

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

    void Init_IO(void)             //初始化I/O口

    {

    DDRC=0x00;                    //设置C口为不带上拉输入;

    PORTC=0x00;

    DDRB=0xff;                    //设置B口为推挽1输出;

    PORTB=0xff;

    DDRD=0xFF;                    //设置D口为推挽1输出;

    PORTD=0xFF;

    }

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

                          串口初始化子程序

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

    void Uart_Init(void)

    {

        UCSRB  =  0x00;     //disable while setting baud rate

        UCSRA  =  0x00;     //Bit1为1则倍速发送

        UCSRC  =  0x86;  

        UBRRL  =  0x33;     //波特率:9600 Bps

        UBRRH  =  0x00;     //误差率:0.156%

        UCSRB  =  0x18;  

    }

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

                         串口发送字节子程序

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

    void Putchar(unsigned char c)

    {

       while (!(UCSRA&(1<   UDR=c;

    }

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

                                                                    主函数                                                                           

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

    void main(void)

    {uint i;

    uint B=50;

    uint TXD;

    Init_IO();

    Uart_Init();

    ADMUX=0x00; 


                       //选择第一通道;

    /**********************转换速率应在50~200K****************************/

    ADCSR=0xe6;                   //125K转换速率,自由转换模式;启动AD转换器

    DelayMs(1);                //延时待系统稳定;

    while(1)

    {


    B--;

    i=ADC_Convert();   //显示电压值(0~1024)

           

    ……………………


    关键字:单片机  AD接收  UART发送 引用地址:单片机AD接收UART发送模块电路图PCB与vb上位机源码

    上一篇:AVR单片机的TWI中断模式
    下一篇:AVR定时器1快速PWM模式设置

    推荐阅读最新更新时间:2024-11-20 18:49

    详解单片机在便携式无线心电监护仪中的作用
      随着经济的快速发展和人们生活水平的不断提高,健康已成为人们关注的焦点。心脏疾病是危害人类健康的一大杀手,其偶然性与突发性的特点使得心电监护系统具有重要的临床应用价值。由于传统的心电监护仪不能进行远距离的实时监护,所以便携式无线心电监护系统显得更加重要。无线医疗监护系统主要由生理信息与数据采集、无线数据通信、控制和显示等单元组成。目前国内已有用于临床的无线心电监护产品,但其采用的方案大都是“采集器+发送器(PDA或手机)”,从成本上看其价格昂贵;从无线传输方面看,大多是将心电数据以模拟信号传输,这必然导致信号在传输过程中发生失真。此外,由于人体电阻差异导致心电信号在1~10 mV之间变动,固定放大倍数系统缺乏适应性。   基于
    [单片机]
    详解<font color='red'>单片机</font>在便携式无线心电监护仪中的作用
    51单片机C语言程序(三)数码管
    程序一 利用动态扫描方法在六位数码管上显示出稳定的654321. 时钟频率为11.0592M #include reg52.h //52单片机头文件 #include intrins.h //包含有左右循环移位子函数的库 #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 sbit dula=P2^6; //数码管段选锁存端 sbit wela=P2^7; ////数码管位选锁存端 uchar code table ={ //数码管显示编码 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0
    [单片机]
    MCS-51单片机与CPLD/FPGA接口逻辑设计
    在功能上,单片机与大规模CPLD有很强的互补性。单片机具有性能价格比高、功能灵活、易于人机对话、良好的数据处理能力潍点;CPLD/FPGA则具有高速、高可靠以及开发便捷、规范等优点。以此两类器件相结合的电路结构在许多高性能仪器仪表和电子产品中仍将被广泛应用。本文就单片机与CPLD/FPGA的接口方式作一简单介绍,希望对从事单片机和CPLD/FPGA研发的朋友能有所启发。 单片机与CPLD/FPGA的接口方式一般有两种,即总线方式与独立方式,分别说明如下: 一、总线方式 单片机以总线方式与CPLD/FPGA进行数据与控制信息通信有许多优点。 (1)速度快。如图一所示,其通信工作时序是纯硬件行为,对于MCS-51单
    [应用]
    基于RS485的组态王与单片机多机串口通信设计
    1 引言 随着工业化要求提高,分布式系统发展以及控制设备与监控设备之间通讯需要,组态软件设计的监控系统逐步普及。现在组态软件繁多,比如KingVieW(组态王)、 MCGS、WinCC等。KingView软件基于Microsoft Windows XP,NT/2000操作系统.具有友好的人机操作界面、强大的IO设备端口驱动能力,可与各种PLC、智能仪表、智能模块、板卡、变频器等实时通讯。由 于在检测大量模拟量的工业现场使用PLC与组态软件通讯势必增加产品成本。而单片机接口丰富,与A/D转换模块组合可以完成相同的工作,并且系统可靠、成本低。 2 组态王与单片机的串口通讯方法 目前,组态王与单片机的通信多是通过动态数据交换(DDE
    [单片机]
    基于RS485的组态王与<font color='red'>单片机</font>多机串口通信设计
    51单片机+LCD12864的万年历Proteus仿真
    原理图如下 部分程序如下 单片机源程序如下: #include reg51.h #include DS18B20.h #include DS1302.h #include LCD12864.h char a; sbit KEY1=P3^4; sbit KEY2=P3^5; sbit KEY3=P3^6; bit flag=1; //进入/退出设置标志 uchar choose=0x01; //切换标志 void delay10(void) //延时10ms { unsigned char i,j; for(i=0;i 255;i++) for(j=0;j 200;j++); } voi
    [单片机]
    51<font color='red'>单片机</font>+LCD12864的万年历Proteus仿真
    学习单片机是汇编编程还是C语言编程
    关于用汇编和C语言编程的问题。这个问题困恼很多人,可能主要是学校教学和部分教材的教育引导引起的吧,大一开了C语言编程,没等学生知道到底C语言有什么实际的用途,马上其他的语言一起来过来了。即使是开始了专门的单片机课程,但是课程的内容与技术文档很相识,指令很多,但是完整的不多,所以学完了也不知道,到底为什么要学习编程。   很多同学大一就开设了C语言的课,我也上过,但是那时候就是天天几乘几,几加几啊,求个阶乘啊,用C语言去解决小学数学问题,每周两次上机,对着书本不停的敲打,下课了也不知道自己到底掌握了什么,掌握了这个有什么用途。学完了有什么用?如果在面试的时候,老板问,你学过编程吗,你脑子里马上是什么 C语言,VC什么VB。很多,什么C
    [单片机]
    详解:8051单片机的结构与原理
    单片机的基本结构包括中央处理器(CPU) 、存储器、定时/计数器、输入输出接口、中断控制系统和时钟电路六部分。 一、基本组成 中央处理器(CPU) 包括运算器和控制器两部分,是单片机的核心。运算器可用于各种运算,控制器用于控制单片机各部分协调工作。 存储器 用于存放程序和原始数据。 时钟电路 时钟电路产生单片机运行的控制信号,控制单片机严格按时序执行指令。 定时/计数器:实现定时或计数功能。输入输出接口(I/O)实现单片与其他设备之间的数据传送。中断控制系统: 用于响应中断源的中断请求。 二、单片机引脚 双列直插式封装(DIP,Dual Inline Package)方形封装(PLCC,Plastic Lead
    [单片机]
    MCU市场 Holtek:产品多样化抵御经济寒流
    价格始终决定着市场的游戏规则。面对32位MCU的追赶,8位MCU牢牢把持消费类电子、医疗设备以及家电市场,稳坐低端嵌入式领域的头把交椅。“有什么理由让小家电产品采用32位MCU?”Holtek总经理高国栋对扎根基础应用的8位MCU前景相当有把握,“8位MCU专注的市场与32位不同。性价比牵动消费类电子等8位MCU市场的神经,而功能方面,8位MCU已足以满足设计要求。” 低功耗、闪存、触摸技术提升性价比 8位MCU自从20世纪70年代诞生以来,随着科技日新月异的发展,其本身的性能也不断革新,以推动产品的更新换代。Holtek主打8位MCU产品多年,近来更凭借家庭安防产品打入日本市场,2008年有望出货650万颗,较2
    [单片机]
    小广播
    设计资源 培训 开发板 精华推荐

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

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

    换一换 更多 相关热搜器件

     
    EEWorld订阅号

     
    EEWorld服务号

     
    汽车开发圈

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