单片机课程设计安徽科技学院报告封面.docx
- 文档编号:3602088
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:13
- 大小:191.85KB
单片机课程设计安徽科技学院报告封面.docx
《单片机课程设计安徽科技学院报告封面.docx》由会员分享,可在线阅读,更多相关《单片机课程设计安徽科技学院报告封面.docx(13页珍藏版)》请在冰豆网上搜索。
单片机课程设计安徽科技学院报告封面
《单片机原理与应用》课程设计报告
单片机与A/D转换器串行接口设计
要求:
一、功能要求
1、每隔一秒,采集AIN0~AIN11模拟输入;
2、转换结果从串行口送到虚拟终端显示;
3、在串行口连接虚拟终端,将测量结果送到虚拟终端显示;
4、要求测量0~5V之间的模拟电压。
二、设计过程要求
1、查阅资料确定设计方案;
2、对设计方案进行仿真验证;
3、选择合适的元器件,搭建电路实验验证效果;
4、画出PCB图;
5、书写设计报告;
6、答辩。
三、设计报告要求
设计报告主要包括:
题目、内容和要求、总体方案和设计思路、仿真电路图、软件设计、仿真调试效果、实验测试效果图、PCB图、心得体会。
姓名:
张建
学号:
1886100125
专业:
电子科学与技术
班级:
10级 1 班
成绩:
评阅人:
安徽科技学院理学院物电系
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。
由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。
2TLC2543的特点
(1)12位分辩率A/D转换器;
(2)在工作温度范围内10μs转换时间;
(3)11个模拟输入通道;
(4)3路内置自测试方式;
(5)采样率为66kbps;
(6)线性误差±1LSBmax;
(7)有转换结束输出EOC;
(8)具有单、双极性输出;
(9)可编程的MSB或LSB前导;
(10)可编程输出数据长度。
3TLC2543的引脚排列及说明
TLC2543有两种封装形式:
DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1。
图1TLC2543的封装
表1TLC2543引脚说明
引脚号
名称
I/O
说明
1~9,11,12
AIN0~AIN10
I
模拟量输入端。
11路输入信号由内部多路器选通。
对于4.1MHz的I/OCLOCK,驱动源阻抗必须小于或等于50Ω,而且用60pF电容来限制模拟输入电压的斜率
15
I
片选端。
在
端由高变低时,内部计数器复位。
由低变高时,在设定时间内禁止DATAINPUT和I/OCLOCK
17
DATAINPUT
I
串行数据输入端。
由4位的串行地址输入来选择模拟量输入通道
16
DATAOUT
O
A/D转换结果的三态串行输出端。
为高时处于高阻抗状态,
为低时处于激活状态
19
EOC
O
转换结束端。
在最后的I/OCLOCK下降沿之后,EOC从高电平变为低电平并保持到转换完成和数据准备传输为止
10
GND
地。
GND是内部电路的地回路端。
除另有说明外,所有电压测量都相对GND而言
18
I/OCLOCK
I
输入/输出时钟端。
I/OCLOCK接收串行输入信号并完成以下四个功能:
(1)在I/OCLOCK的前8个上升沿,8位输入数据存入输入数据寄存器。
(2)在I/OCLOCK的第4个下降沿,被选通的模拟输入电压开始向电容器充电,直到I/OCLOCK的最后一个下降沿为止。
(3)将前一次转换数据的其余11位输出到DATAOUT端,在I/OCLOCK的下降沿时数据开始变化。
(4)I/OCLOCK的最后一个下降沿,将转换的控制信号传送到内部状态控制位
14
REF+
I
正基准电压端。
基准电压的正端(通常为Vcc)被加到REF+,最大的输入电压范围由加于本端与REF-端的电压差决定
13
REF-
I
负基准电压端。
基准电压的低端(通常为地)被加到REF-
20
Vcc
电源
4接口时序
可以用四种传输方法使TLC2543得到全12位分辩率,每次转换和数据传递可以使用12或16个时钟周期。
一个片选(
)脉冲要插到每次转换的开始处,或是在转换时序的开始处变化一次后保持
为低,直到时序结束。
图2显示每次转换和数据传递使用16个时钟周期和在每次传递周期之间插入
的时序,图3显示每次转换和数据传递使用16个时钟周期,仅在每次转换序列开始处插入一次
时序。
图216时钟传送时序图(使用
,MSB在前)
图316时钟传送时序图(不使用
,MSB在前)
TLC2543驱动程序:
#include
#definebyteunsignedchar
#defineucharunsignedchar
#definewordunsignedint
#defineuintunsignedint
#defineulongunsignedlong
#defineBYTEunsignedchar
#defineWORDunsignedint
uintread2543(ucharport);
voidCollectADmodule(uint*ad_result);
externvoidtime(unsignedintucMs);//延时单位:
ms
/**************************************
2543控制引脚宏定义
*************************************/
sbitAD_EOC=P1^0;/*TLC2543转换完成指示引脚EOC*/
sbitCLOCK=P1^2;/*2543时钟*/
sbitAD_CS=P1^3;/*2543片选*/
sbitD_IN=P1^4;/*2543输入*/
sbitD_OUT=P1^5;/*2543输出*/
/**************************************
TLC2543驱动程序
*************************************/
/**************************************
名称:
read2543
功能:
TLC2543驱动模块
输入参数:
port通道号
输出参数:
ad转换值
*************************************/
uintread2543(ucharport)
{
uintad=0;
uchari;
P1=0xeb;
CLOCK=0;
AD_CS=0;
port<<=4;
for(i=0;i<8;i++)//读高8位
{
if(D_OUT)ad|=0x01;
D_IN=(bit)(port&0x80);
CLOCK=1;
CLOCK=0;
port<<=1;
ad<<=1;
}
for(i=8;i<12;i++)//读低4位
{
if(D_OUT)ad|=0x01;
CLOCK=1;
CLOCK=0;
ad<<=1;
}
AD_CS=1;
ad>>=1;
return(ad);
}
/**************************************************
*函数说明:
采集实际端口的数据
**************************************************/
voidCollectADmodule(uint*ad_result)
{
uchari;
AD_EOC=1;
read2543(0);//启动0通道转换,第一次转换结果不准确,丢弃
while(!
AD_EOC){}//等待转换完成
time(3);
read2543(0);
while(!
AD_EOC){}//等待转换完成
for(i=0;i<11;i++){
ad_result[i]=read2543(i+1);//读转换结果,并启动下次转换
while(!
AD_EOC){}//等待转换完成
time(3);
read2543(i+1);//读转换结果,并启动下次转换
while(!
AD_EOC){}//等待转换完成
}
}
主程序:
#include"common.h"
externvoidCollectADmodule(uint*ad_result);
/********main函数*********/
voidmain(void){
uintidataTLC2543[11];
uchari;
initUart();/*初始化串口*/
do{
CollectADmodule(TLC2543);//调用11通道AD转换
for(i=0;i<11;i++){
printf("TLC2543[%bd]=%u\n",i,TLC2543[i]);//打印输出结果
}
printf("\n\n");//回车2次
time(1000);
}while(TRUE);
}
AT89C51单片机程序:
#include
#include
/*********************************************************
*函数说明:
延时5us,晶振改变时只用改变这一个函数!
1、对于11.0592M晶振而言,需要2个_nop_();
2、对于22.1184M晶振而言,需要4个_nop_();
*入口参数:
无
*返回:
无
*********************************************************/
voiddelay_5us(void)//延时5us,晶振改变时只用改变这一个函数!
{
_nop_();
_nop_();
//_nop_();
//_nop_();
}
/************delay_50us***************/
voiddelay_50us(void)//延时50us
{
unsignedchari;
for(i=0;i<4;i++)
{
delay_5us();
}
}
/********延时100us******************/
voiddelay_100us(void)//延时100us
{
delay_50us();
delay_50us();
}
/***********延时单位:
ms*******************/
voidtime(unsignedintucMs)//延时单位:
ms
{
unsignedcharj;
while(ucMs>0){
for(j=0;j<10;j++)delay_100us();
ucMs--;
}
}
/**********初始化串口波特率************/
voidinitUart(void)/*初始化串口波特率,使用定时器2*/
{
/*Setuptheserialportfor9600baudat11.0592MHz*/
SCON=0x50;//串口工作在方式1
RCAP2H=(65536-(3456/96))>>8;
RCAP2L=(65536-(3456/96))%256;
T2CON=0x34;
TI=1;/*置位TI*/
}
仿真电路图
仿真结果
PCB图:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机课程设计 安徽科技学院报告封面 单片机 课程设计 安徽 科技学院 报告 封面