历史上的今天
返回首页

历史上的今天

今天是:2024年11月07日(星期四)

正在发生

2019年11月07日 | 单片机AD接收UART发送模块电路图PCB与vb上位机源码

2019-11-07 来源:51hei

Altium Designer画的AD接收UART发送模块电路原理图和PCB图如下:
0.png?imageView2/2/w/5500.png?imageView2/2/w/550

【简要说明】

一、 尺寸:长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?imageView2/2/w/550

image017.png?imageView2/2/w/550 

image014.jpg?imageView2/2/w/550image012.jpg?imageView2/2/w/550image004.jpg?imageView2/2/w/550image010.jpg?imageView2/2/w/550 

单片机源程序如下:

    #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)

           

    ……………………


    推荐阅读

    史海拾趣

    ACP Optoelectronic Technology Co Ltd公司的发展小趣事

    在国内市场取得一定成绩后,ACP Optoelectronic Technology Co Ltd开始积极拓展国际市场。公司积极参加国际电子展会和技术交流活动,与海外企业建立合作关系,拓展销售渠道。经过几年的努力,ACP Optoelectronic Technology Co Ltd的产品已经成功打入多个国际市场,公司也逐渐发展成为一家具有国际影响力的光电企业。

    Enova Technology Corp公司的发展小趣事

    自2000年4月成立以来,Enova Technology Corporation(伊诺瓦科技)就以其卓越的技术创新能力在电子行业中崭露头角。公司总部位于台湾新竹科学工业园区,这里汇聚了众多高科技企业和研发机构,为伊诺瓦科技提供了丰富的技术资源和人才支持。

    伊诺瓦科技专注于硬件加解密解决方案的研发与应用,其产品在军事单位、政府机关、财务金融机构等领域得到了广泛应用。其中,公司的X-WallSE产品凭借其独特的携带式电子钥匙(Security Key)技术,实现了硬盘的一对一加密,为用户提供了前所未有的数据安全保护。这一创新技术的推出,不仅提升了公司的市场竞争力,也为整个电子行业树立了新的技术标杆。

    随着技术的不断发展,伊诺瓦科技不断推出更加先进的产品和解决方案。例如,公司的SecureNAS系列产品在网络硬盘服务器加解密应用方面提供了全新的解决方案,为用户提供了更加便捷、高效的数据安全保护。这些产品的推出,不仅进一步巩固了公司在电子行业的领先地位,也为公司的未来发展奠定了坚实的基础。

    铨力(ALLPOWER)公司的发展小趣事

    随着新能源汽车市场的快速发展,铨力公司看到了新的发展机遇。于是,公司开始布局新能源汽车领域,研发和生产新能源汽车所需的电源和充电设备。通过不断创新和拓展市场,铨力在新能源汽车领域也取得了显著的成绩,为公司的发展注入了新的动力。

    这五个故事展示了铨力(ALLPOWER)公司在电子行业中的发展历程和取得的成就。从创立初期的太阳能电源产品研发,到技术突破和产品升级,再到国际市场的拓展和产业链整合,以及新能源汽车领域的布局,铨力始终保持着创新的精神和进取的态度,不断推动着公司的发展。

    BRIGHT公司的发展小趣事

    BRIGHT公司不仅在电子产品领域取得了成功,还积极拓展酒店业务。他们成立了伯瑞特酒店集团,并在全国范围内开设了多家酒店。这些酒店以高品质的服务和独特的文化特色赢得了广大消费者的喜爱。其中,宁波伯瑞特酒店荣获了全国钻级酒店评定中的五钻酒家称号,千岛湖伯瑞特度假酒店也获得了金鼎特色文化主题饭店的荣誉。这些荣誉的获得不仅彰显了BRIGHT公司在酒店业务方面的实力,也为其未来的发展奠定了坚实的基础。

    安国国际(ALCOR)公司的发展小趣事

    随着公司规模的扩大和业绩的增长,安国国际的产品线逐渐从计算机外设产品拓展至消费型电子产品和手持便携装置。为满足市场需求,公司不断推出创新产品,如输出入装置暨多媒体图像处理装置应用控制芯片、网桥控制芯片、网络安全保护装置等。同时,为提升运营效率和灵活性,安国在2015年进行了组织调整和专业分工,将不同业务线分割为多家子公司,使得各业务领域能够更加专注和高效地发展。

    Eagle-Picher公司的发展小趣事

    然而,Eagle-Picher的发展并非一帆风顺。1991年9月16日,位于密苏里州乔普林的Eagle-Picher工业公司电子部遭受了一场毁灭性的大火。火灾导致公司的电池生产设备化为灰烬,给公司的业务带来了巨大的打击。然而,Eagle-Picher并没有放弃,而是迅速组织力量进行重建和恢复生产。这一事件虽然给公司带来了短期的困难,但也展现了Eagle-Picher的坚韧和决心。

    问答坊 | AI 解惑

    MCGS组态软件设计及其应用

    一、引言     过去工业控制计算机系统的软件功能都靠软件人员编程实现。工作量大,软件通用性差,且易产生错误。随着工业控制要求的不断提高,专门用于工业控制的组态软件应运而生,它是一套功能齐全的组态生成工具软件,通用性强,而 ...…

    查看全部问答>

    ARM c程序的问题

    _irqHandler PROC    1. STMFD   sp!,{r0-r4,r12,lr}    2. mov     r4,#0x80000000  //中断控制寄存器首地址(假设的)    3. ldr     r0,[r4,#0] ...…

    查看全部问答>

    给论坛的建议

    我希望论坛能够在下载扣金币方面可以放松点,比如每次只扣一个或者在某个贴上下载只扣若干个就好了,因为有些文件确实比较大,要下好几个压缩文件才能行的,而每下一个就扣好几,很多人都有些不舍得,毕竟金币有比较难得,特别是新手就更麻烦了,我 ...…

    查看全部问答>

    wince 桌面快捷方式

    请问: wince中的文件夹有没有后缀名? 我想把一个名为NandFlash的文件夹,放到桌面快捷方式, 我在WINCE500\\PLATFORM\\SMDK2440\\FILES创建了一个NandFlash.LNK文件,里面写上22#\\windows\\NandFlash 我又在Project.bib 里面加上 NandFlash ...…

    查看全部问答>

    PCI设备识别不正常

    首先我的程序在某些主板上是可以正常工作的(具体型号我也搞不懂),设置的是从设备,内部只有从设备状态机。没有接入奇偶检验,仲裁和热插拔。 问题是在一些主板上发现设置为从设备时无法找到设备,设置为主设备可以找到,但是通过软件读取配置信 ...…

    查看全部问答>

    0

    居然要全部下完才能都打开?这个有点不厚道…

    查看全部问答>

    LM3S程序求教

    //————————————————头文件————————————————————#include \"inc/hw_ints.h\"//硬件中断#include \"inc/hw_memmap.h\"#include \"inc/hw_types.h\"//硬件类型#include \"driverlib/gpio.h\"//GPIO#include \"dri ...…

    查看全部问答>

    中断究竟是个怎么回事?

    今天听单片机老师讲课讲中断,说分了好几种,被他弄得一头雾水,还是没明白他说的中断都有什么,怎么配置,查了查2553手册,愣是没找到讲解终端的地方,球大神指点123!不胜感激。…

    查看全部问答>

    DCDC电源中的电流检测

    文章介绍了7中电流检测的办法,可以作为电流检测的入门读物 …

    查看全部问答>