Altium Designer画的AD接收UART发送模块电路原理图和PCB图如下:
【简要说明】
一、 尺寸:长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转换数值显示
单片机源程序如下:
#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< } /********************************************************************** 主函数 **********************************************************************/ 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) ……………………
上一篇:AVR单片机的TWI中断模式
下一篇:AVR定时器1快速PWM模式设置
推荐阅读最新更新时间:2024-11-20 18:49
设计资源 培训 开发板 精华推荐
- LTC1727ES8-5、3.3V 和 5V Plus 可调双电源监视器的典型应用
- USB2.0拓展坞,基于SL2.1A,多种接口方案可选
- USB-HUB
- 使用 Analog Integrations Corporation 的 AIC16 的参考设计
- FPF1504L高级负载管理开关典型应用电路
- TCR2BF28、200mA、2.8V 输出电压 CMOS 低压降稳压器的典型应用,在 SMV(SOT-25) 中具有自动放电功能
- 基于LET9060S的RF功率放大器,用于2路无线电和一般无线服务
- LTC6990HS6#TRMPBF 全范围 VCO 振荡器的典型应用,具有任何 NDIV 设置(fMAX 至 fMIN,VIN = 0V 至 VSET)
- ADA4530-1R-EBZ-TIA,ADA4530-1 8 引脚 SOIC 封装 SP 放大器评估板
- LTC3607IMSE 双路 600mA 单片式同步降压型 DC/DC 稳压器的典型应用电路