单片机实训总结报告
时间:2025-04-04
时间:2025-04-04
单片机的实训之后的总结(不要都搞成一样,老师发现就不好了)
数据采集器的设计
任务1 数据采集器的实现过程
试验要求:
1、 实验前,务必预习实验内容,深入了解相关知识,了解A/D转换器的基本概念,先分析相关程序画出相关电路图,然后模拟电路运转,最终得到实验结果; 2、 实验中,认真思考所做的每一步,弄懂其中的道理,填写好实
验过程; 3、
实验后,总结经验教训,写出实验体会和收获,为今后学习奠
定良好的基础。
实验目的:
1,了解A/D转换器的基本概念,认识ADC0808/0809的内部结构和其引脚
功能。
2,熟悉其与单片机的典型链接,数据采集器的设计过程 3,硬件电路和程序设计思想 4,在proteus完成相关模拟实验。 实验内容:
一、 在Proteus环境下,用ADC0808设计一个数据采集器,通过串行口
与上为相连机,如果 串行口收到了上位机的采集命令(0X41),就将8路模拟量转换为数字量,通过串行口以ASCII码的形式发送给上位机。
二、硬件电路,为调试方便,ADC0808的时钟信号CLKY由Proteus的虚拟
信号源提供,时钟信号设置为600KHZ;8路模拟量中INO接VCC,IN7接地,其他6路通过电位器分压获得。
三、数据采集器程序清单如下; #include <reg51.h>
单片机的实训之后的总结(不要都搞成一样,老师发现就不好了)
#include <absacc.h>
#define uint unsigned int #define uchar unsigned char
uchar idata adbuf[8]; uint addr; uchar n;
//存放A/D转换结果
//指向IN0~IN7通道地址 //通道计数
void init_serial(void)
{ SCON=0x50; //0101,0000 8位数据位,无奇偶校验 TMOD=0x20;
//定时器T1工作于方式2
PCON=PCON&0x7f; //SMOD=0 TH1=-3; TL1=-3; TR1=1; }
void send(uchar dat) { SBUF=dat; while(TI==0); TI=0; }
void int0(void) interrupt 0 {
adbuf[n]=XBYTE[addr]; //读取并保存当前转换结果 addr++; n++; if(n<8)
XBYTE[addr]=0; else
//启动对下一通道的转换
//指向下一通道的地址
//计数器加1
//启动定时器T1
//装入时间常数,波特率为9600
单片机的实训之后的总结(不要都搞成一样,老师发现就不好了)
EX0=0; }
void getadc(void) {n=0;
addr=0x7ff8; XBYTE[addr]=0; EX0=1;
//指向IN0通道的地址 //启动对当前通道的转换
//允许外部中断0中断
while(n<8); //等待8路模拟量转换完成 }
void main() {uchar i; init_serial(); IT0=1; EA=1; while(1)
{ while(RI==0); RI=0;
//等待接收完一个字符 //清除接收标志
//初始化串行口
//外部中断0下降沿触发 //开中断
i=SBUF; //读取收到的字符 if(i==0x41) { getadc();
//依次完成对8个通道模拟量的转换
for(i=0;i<8;i++)
{ send(adbuf[i]/100+0x30); adbuf[i]=adbuf[i]%100; send(adbuf[i]/10+0x30); send(adbuf[i]%10+0x30); send(0x20);
send(0x20);
单片机的实训之后的总结(不要都搞成一样,老师发现就不好了)
} send(0x0d); send(0x0a); } } }
四、模拟电路图:
五、调试方法与步骤,在KEIL下建立项目,输入源程序,编译后调试方式
全速运行,在虚拟终端的窗口输入大写字“A”,此时8路模拟量转换结果会在一行中显示出来,以此为IN0,IN1, .INO和IN7为显示值为255和000,其他为由电位器RV1中心抽头位置确定,调节RV1,然后在虚拟终端的窗口中输入大写字母“A”,IN0~IN7随之变化,
实验过程中存在的问题及解决方法:
本次试验中,对于模拟量转换为数字量的方式不明确,在模拟试验中程
序的调整,数据采集等难以做到准确,通过查阅相关资料和老师的指导,最终使问题得以解决。
单片机的实训之后的总结(不要都搞成一样,老师发现就不好了)
实验体会和收获:
通过本次试验,让我们了解了模拟量与数字量之间的转换关系,从总
学习了两种转换芯片和相关的C语言驱动程序,为今后的学习工作打下良好的基础。
任务2 数字电压表设计
试验要求:
1、 实验前,务必预习实验内容,深入了解相关知识,认识SPI总线,认识8位串行A/D转换器TLC549,先分析相关程序画出相关电路图,然后模拟电路运转,最终得到实验结果; 2、 实验中,认真思考所做的每一步,弄懂其中的道理,填写好实
验过程; 3、
实验后,总结经验教训,写出实验体会和收获,为今后学习奠
定良好的基础。
实验目的:
一、 二、 三、 四、 五、
实验内容:
1.利用TCL549 转换器设计一个简易数字电压表,用4位LED显示器将
被测电压显示出来,测量范围为0.000~5.000V*(电路连接:将试验仪器的JP2短接,ACS,ACLK,ADO分别与P10~P12相连);
2.硬件电路,将TLC549的CS,CLK,DO接到单片机的三条I/O口线,
了解SPI总线及总线结构系统的典型结构; 了解串行A/D转换器内部结构和引脚; 掌握TLC549的时序;
完成在proteus完成相关模拟实验。 数字电压表的设计;
单片机的实训之后的总结(不要都搞成一样,老师发现就不好了)
…… 此处隐藏:5913字,全部文档内容请下载后查看。喜欢就下载吧 ……