自动化专业微机接口课程设计1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

11级自动化专业《微机原理及接口技术课程设计》任务书及指导书一、设计任务设计、调试一个具有温度检测、串行A/D和液晶显示温度值得一个温度检测系统二、设计目的1.通过实践进一步理解和掌握微机接口技术;2.掌握使用汇编及C语言开发单片机系统的方法;3.复习使用Protel制作电路板的技能;4.学会通过阅读相关器件的英文资料设计产品;5.进一步提高设计、调试单片机系统的能力。三、设计内容本设计在Lab8000通用微控制器实验系统及由北京建筑大学研制的温度测量及控制扩展板上做。要求手动控制加热,然后将温度检测产生的模拟量送入串行A/D转换器TLC549,转换得到的数字量送入CPU,经适当转换送液晶显示器显示温度值。在设计和调试过程中要将设计中涉及的各部分逐个调试通过,然后再整体调试。在逐个调试时,可使用一些模拟信号,例如在调试串行A/D时,可先将模拟量输入接一个电位器,由电位器模拟温度量输入。1.温度测量与控制电路系统使用集成电路温度传感器AD590作为测温器,AD590是AD公司生产的一种精度和线性度较好的双端集成温度传感器,其输出电流与绝对温度有关,对于电源电压从5-10V变化只引起1A最大电流的变化或1摄氏度等效误差。图1温度传感部分图1给出了用于获得正比于绝对温度的输出电流的基本温度敏感电路,当温度有了10℃的变化时输出电压变化为20mV,即该电路运放1脚电压随温度变化为2mV/℃。AD590将温度变化量转换成电压值变化量,经过LM324一级跟随后输入到电压放大电路,放大后的信号输入到A/D转换器将模拟信号转换成数字信号,利用CPU采集并存储采集到的数据。将温度传感器输出的小信号跟随放大45倍左右后,送至8位A/D转换器换成数字量。设定温度为0摄氏度时变换放大电路送出的模拟量为0V,此时A/D输出的数字量为00H;温度为67摄氏度时变换放大电路送出4.98V电压,此时A/D输出的数字量为FFH,即每0.3摄氏度对应1LSB变化量。当温度超过报警温度报警67摄氏度,此时,输出电压约为5.0V左右。通过电压比较器接通硬件报警电路报警。输入A/D的模拟信号有过压保护,不会损坏A/D转换器。在实验扩展板硬件中,已有安全设计,即加热温度不会超过80℃。扩展板已依据标准调整好了放大器的增益和零位。应注意:由于热惯性的影响及温度计显示的滞后因素,若要精确观察某温度点的测量值,在加热到观察温度点后,应停止加热,等待温度计示值稳定后,再观察记录结果。若观察点温度较高,还应相应延长等待时间。需要说明的是,由于温度计和温度采样芯片AD590的采样点不同,理论计算值同显示略有偏差。温度测量电路原理参见图2。图2温度测量电路在上图中,可变电阻R7为测温系统零点调节,可以调节系统零点。调节电位器R7,用万用表测量如图R4、R5、R6三个电阻相接的公共点,将该点电压调到-2.74V(注:该点电压已调到-2.74V,学生不要随意调节,可以直接做实验)。用导线连接“温度测量”到“TLC549模拟量输入”;加热模块的“温度控制”手动接VCC(+5V)或GND,以手动控制是否加热。2.串行A/D转换器TLC549是一种采用8位逐次逼近式工作的A/D转换器。内部包含系统时钟、采样和保持、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.2NOP;等待1.4μs,NOP数根据晶振情况选择NXT:SETBP1.0MOVC,P1.1RLCACLRP1.0INCR0CJNER0,#8,NXTMOVR0,#00SETBP1.2MOVDTSVRM,A;DTSVRM:DATASAVERAM.RET3.Protel设计4.温度检测器实物调试将各个元器件在电路板上焊接好,然后进行温度检测调试。因为是初学者,又有老师的指导,所以实物调试与仿真结果基本相似。但焊接时,要注意排列好各个元器件的位置,以免元器件过于紧凑,或是电线接错位置,或混联。七、设计成果1.Protel原理图2.Protel印制板图3.Proteus仿真图4.程序编辑(1)汇编程序LCD_RSEQUP3.0LCD_RWEQUP3.1LCD_ENEQUP3.2LCD_DATAEQUP1DATBITP2.4CLKBITP2.5CSBITP2.3LCDDBufEQU40H;显示数据缓冲SetTempEQU50H;设定温度缓冲CurTempEQU51H;测得温度缓冲ORG0LJMPSTARTORG0030HSTART:LCALLSET_LCDSTART1:LCALLTLC549_ADCLCALLCONVMOVA,#80HLCALLWCOM;写入命令mova,LCDDBUF+1ORLA,#30HLCALLWDATAMOVA,#81HLCALLWCOM;写入命令mova,LCDDBUFORLA,#30HLCALLWDATALJMPSTART1CONV:MOVB,#67;ADHEX*67/256MULABMOVA,BMOVCurTemp,Amovb,#10;拆开显示divabmovLCDDBUF+1,Amova,bmovLCDDBUF,ARETWCOM:;以8位控制方式将命令写至LCDMOVLCD_DATA,A;写入命令CLRLCD_RS;RS=L,RW=L,D0-D7=指令码,E=高脉冲CLRLCD_RWSETBLCD_ENLCALLDECLRLCD_ENRETWDATA:;以8位控制方式将数据写至LCDMOVLCD_DATA,A;写入数据SETBLCD_RSCLRLCD_RWSETBLCD_ENLCALLDECLRLCD_ENLCALLDERETSET_LCD:;8位I/O控制LCD接口初始化MOVA,#38H;双列显示,字形5*7点阵LCALLWCOMLcalldelay1MOVA,#38HLCALLWCOMLcalldelay1MOVA,#38HLCALLWCOMLcalldelay1MOVA,#0CH;开显示,显示光标,光标不闪烁LCALLWCOMLcalldelay1MOVA,#01H;清除LCD显示屏LCALLWCOMLcalldelay1RETDELAY1:;延时5MSMOVR6,#25DL2:MOVR7,#100DJNZR7,$DJNZR6,DL2RETDE:MOVR7,#250DJNZR7,$RETTLC549_ADC:CLRACLRCLKCLRCSMOVR6,#8ADLOOP:SETBCLKNOPNOPMOVC,DATRLCACLRCLKNOPDJNZR6,ADLOOPSETBCSSETBCLKRETEND(2)C程序#includereg51.h#includeintrins.h#defineucharunsignedchar#defineuintunsignedintsbitrs=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};de

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功