完整word版自动化专业微机接口课程设计1Word格式文档下载.docx
- 文档编号:22536092
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:20
- 大小:281.95KB
完整word版自动化专业微机接口课程设计1Word格式文档下载.docx
《完整word版自动化专业微机接口课程设计1Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《完整word版自动化专业微机接口课程设计1Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。
内部包含系统时钟、采样和保持、8位A/D转换器、数据寄存器以及控制逻辑电路。
TLC549每25uS重复一次“输入——转换——输出”。
器件有两个控制输入:
I/OCLOCK和片选(CS)。
内部系统时钟和I/OCLOCK可独立使用。
应用电路的设计只需利用I/O时钟启动转换或读出转换结果。
当CS为高电平时,DATAOUT处于高阻态且I/O时钟被禁止。
当CS变为低电平时,前次转换结果的最高有效位(MSB)开始出现在DATAOUT端。
在接下来的7个I/OCLOCK周期的下降沿输出前次转换结果的后7位,至此8位数据已经输出。
然后再将第8个时钟周期加至I/OCLOCK,此时钟周期的下跳沿变使芯片进行下一轮的AD转换。
在第8个I/OCLOCK周期之后,CS必须变为高电平,并且保持高电平直至转换结束为止(>
17uS),否则CS的有效高电平至低电平的转换将引起复位(其它详细资料看芯片说明)。
TLC549串行模数转换电路原理参见图3。
图3TLC549串行模数转换电路
3.液晶显示器
四、设计要求
1.进行总体方案设计:
1)画出系统硬件原理图并用文字说明原理;
2)将程序划分为若干个模块,画出框图;
3)依据题意,确定各接口芯片工作于何方式下;
4)确定各接口芯片的端口地址、控制字等,为初始化编程做好准备;
2.画出各模块内的流程图,依据流程图编写源程序代码,并写出注释;
3.将源程序汇编、连接,产生可执行文件;
4.硬件与软件调试,通过实验达到设计要求。
5.硬件设计完成后,要在Protel中画出原理图及印制板图,并打印出来附在报告中。
五、实验设备
1.微机一台
2.Lab8000通用微控制器实验系统一套
3.温度测量及控制扩展板一块
六、设计过程
1.液晶屏
液晶显示器简称LCD显示器。
它是利用液晶经过处理后能改变光线的传输方向的特性实现显示信息。
液晶显示器按其功能可分为三类:
笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。
前两种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果。
本次课程设计我选用字符型点阵式LCD液晶显示器RT-1602C,用作显示检测到的温度。
RT-1602C采用标准的16脚接口,各引脚情况如下:
第1脚:
VSS,电源地
第2脚:
VDD,+5V电源
第3脚:
V0,液晶显示偏压信号,一般加电位器调整
第4脚:
RS,数据/命令选择端,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W,读/写选择端,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E,端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7,为8位双向数据线。
第15脚:
BLA,背光源正极
第16脚:
BLK,背光源负极
2.TLC549
(1)因测得的温度是模拟量,所以需要模数转换器,将其转换为数字量,通过单片机89C51传入液晶显示器RT-1602C,将其输出。
本次课程设计我选用A/D转换器TLC549。
(2)TLC549是TI公司生产的一种低价位、高性能的8位A/D转换器,它以8位开关电容逐次逼近的方法实现A/D转换,其转换速度小于17us,最大转换速率为40000HZ,4MHZ典型内部系统时钟,电源为3V至6V。
它能方便地采用三线串行接口方式与各种微处理器连接,构成各种廉价的测控应用系统。
TLC549片型小,采样速度快,功耗低,价格便宜,控制简单.适用于低功耗的袖珍仪器上的单路A/D或多路并联采样。
(3)TLC549引脚图及各引脚功能
TLC549引脚图
REF+:
正基准电压输入2.5V≤REF+≤Vcc+0.1。
REF-:
负基准电压输入端,-0.1V≤REF-≤2.5V。
且要求:
(REF+)-(REF-)≥1V。
VCC:
系统电源3V≤Vcc≤6V。
GND:
接地端。
/CS:
芯片选择输入端,要求输入高电平VIN≥2V,输入低电平VIN≤0.8V。
DATAOUT:
转换结果数据串行输出端,与TTL电平兼容,输出时高位在前,低位在后。
ANALOGIN:
模拟信号输入端,0≤ANALOGIN≤Vcc,当ANALOGIN≥REF+电压时,转换结果为全“1”(0FFH),ANALOGIN≤REF-电压时,转换结果为全“0”(00H)。
I/OCLOCK:
外接输入/输出时钟输入端,同于同步芯片的输入输出操作,无需与芯片内部系统时钟同步。
(4)应用接口及采样程序
TLC549可方便地与具有串行外围接口(SPI)的单片机或微处理器配合使用,也可与51系列通用单片机连接使用。
实际应用程序清单如下:
初始化:
SETBP1.2 ;
置CS为1。
CLRP1.0 ;
置I/OCLOCK为零。
MOVR0,#00H;
移位计数为零。
A/D过程:
A/DP:
CLRP1.2
NOP ;
等待1.4μs,NOP数根据晶振情况选择
NXT:
SETBP1.0
MOVC,P1.1
RLCA
CLRP1.0
INCR0
CJNER0,#8,NXT
MOVR0,#00
SETBP1.2
MOVDTSVRM,A;
DTSVRM:
DATASAVERAM.
RET
3.Protel设计
4.温度检测器实物调试
将各个元器件在电路板上焊接好,然后进行温度检测调试。
因为是初学者,又有老师的指导,所以实物调试与仿真结果基本相似。
但焊接时,要注意排列好各个元器件的位置,以免元器件过于紧凑,或是电线接错位置,或混联。
七、设计成果
1.Protel原理图
2.Protel印制板图
3.Proteus仿真图
4.程序编辑
(1)汇编程序
LCD_RSEQUP3.0
LCD_RWEQUP3.1
LCD_ENEQUP3.2
LCD_DATAEQUP1
DATBITP2.4
CLKBITP2.5
CSBITP2.3
LCDDBufEQU40H;
显示数据缓冲
SetTempEQU50H;
设定温度缓冲
CurTempEQU51H;
测得温度缓冲
ORG0
LJMPSTART
ORG0030H
START:
LCALLSET_LCD
START1:
LCALLTLC549_ADC
LCALLCONV
MOVA,#80H
LCALLWCOM;
写入命令
mova,LCDDBUF+1
ORLA,#30H
LCALLWDATA
MOVA,#81H
mova,LCDDBUF
LJMPSTART1
CONV:
MOVB,#67;
ADHEX*67/256
MULAB
MOVA,B
MOVCurTemp,A
movb,#10;
拆开显示
divab
movLCDDBUF+1,A
mova,b
movLCDDBUF,A
RET
WCOM:
;
以8位控制方式将命令写至LCD
MOVLCD_DATA,A;
CLRLCD_RS;
RS=L,RW=L,D0-D7=指令码,E=高脉冲
CLRLCD_RW
SETBLCD_EN
LCALLDE
CLRLCD_EN
WDATA:
以8位控制方式将数据写至LCD
写入数据
SETBLCD_RS
SET_LCD:
8位I/O控制LCD接口初始化
MOVA,#38H;
双列显示,字形5*7点阵
LCALLWCOM
Lcalldelay1
MOVA,#38H
MOVA,#0CH;
开显示,显示光标,光标不闪烁
MOVA,#01H;
清除LCD显示屏
DELAY1:
延时5MS
MOVR6,#25
DL2:
MOVR7,#100
DJNZR7,$
DJNZR6,DL2
DE:
MOVR7,#250
TLC549_ADC:
CLRA
CLRCLK
CLRCS
MOVR6,#8
ADLOOP:
SETBCLK
NOP
MOVC,DAT
RLCA
DJNZR6,ADLOOP
SETBCS
END
(2)C程序
#include<
reg51.h>
#include<
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitrs=P3^0;
//命令/数据选择
sbitrw=P3^1;
//读写口
sbite=P3^2;
//锁存控制
sbitCLK=P2^5;
sbitDO=P2^4;
sbitCS=P2^3;
unsignedintVolt;
unsignedcharLCD[7];
uchardatakaishi[16]={"
wengdu"
};
uchardatadis1[16]={"
mymuxt"
//显示两行
uchardatadis2[16]={"
bestruggle"
delay(uinttime)//int型数据为16位,所以最大值为65535
{
uinti,j;
//定义变量i,j,用于循环语句
for(i=0;
i<
time;
i++)//for循环,循环50*time次
for(j=0;
j<
100;
j++);
//for循环,循环50次
}
wcode(uchart)
{
rs=0;
//写的是命令
rw=0;
//写状态
e=1;
//使能
P1=t;
//写入命令
delay(20);
//等待写入,如果时间太短,会导致液晶无法显示
e=0;
//数据的锁定
}
wdata(uchart)
rs=1;
//写的是数据
//写入数据
xian1()
uchari;
wcode(0x80);
//设置第一行显示地址
16;
i++)//循环16次,写完1行
wdata(dis1[i]);
//写入该行数据
//******************************************************************
//LCD显示第二行
xian2()
wcode(0xc0);
//设置第二行显示地址
wdata(dis2[i]);
//LCD初始化
InitLCD()
{
wcode(0x01);
//清屏
wcode(0x06);
//输入方式控制,增量光标不移位
wcode(0x0e);
//显示开关控制
wcode(0x38);
//功能设定:
设置16x2显示,5x7显示,8位数据接口
}
unsignedcharTLC549_ADC(void)
unsignedchari,tmp;
CS=1;
CLK=0;
CS=0;
_nop_();
for(i=0;
i<
8;
i++)
tmp<
<
=1;
tmp|=DO;
CLK=1;
_nop_();
CLK=0;
for(i=17;
i!
=0;
i--)_nop_();
return(tmp);
voidVolt_To_LCD(void)
ucharAD_Data;
AD_Data=TLC549_ADC();
Volt=5.0/256*AD_Data*1000;
LCD[0]='
'
;
LCD[1]='
LCD[2]='
LCD[3]='
LCD[4]='
LCD[5]=Volt/1000+'
0'
//千位
LCD[6]=Volt/100%10+'
//百位
LCD[7]='
.'
//小数点
LCD[8]=Volt/10%10+'
//十位
LCD[9]=Volt%10+'
//个位
LCD[10]='
c'
LCD[11]='
\0'
//字符串结束标志符
}
voidxianshi()
inti;
i++)
{wdata(kaishi[i]);
delay(20);
wcode(0x80+0x40);
{wdata(LCD[i]);
main()
{
InitLCD();
//初始化1602
xian1();
//显示第一行
xian2();
//显示第二行
while
(1)//进入死循环,防止看门狗复位
xianshi;
//每输入一次码,向左移位一次
delay(3000);
//滚动速度设置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 自动化 专业 微机 接口 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)