- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机课程设计报告--远程温度采集系统
单片机原理及应用
课程设计
学院:
班级:
学号:
姓名:
指导老师:
日期:
单片机应用技术课程设计任务书
远程温度采集系统 设计任务及步骤 使用proteus作为开发工具,完成双机通讯的温度采集功能:
使用LM20温度传感器、AD1674模数转换器、AT89C51单片机、4位拨码开关组成温度采集模块(从机),拨码开关用于设定模块的地址(00-15),从机在采集完温度信号后通过串口发送到主机;
使用AT89C51单片机、4位拨码开关、LED显示组成温度接收模块(主机),4位拨码开关用于设定通讯波特率(1200,2400,4800,9600)当主机波特率改变后,从机波特率也自动改变,上电运行显示波特率信息(停3S),之后显示接收地址与温度信息;
论文要求 ① 画出整个系统的电路原理图;
② 叙述各功能模块的工作原理;
③ 编写各模块程序;
④ 论文中应附上程序流程图;
⑤ 书写论文时注意结构合理,层次分明,在分析时注意语言的流畅。 工作计划 布置任务,查找资料
电路和程序设计
③ 设计程序调试结果验收
④ 论文答辩 指导教师
签 名 年 月 日 系 意 见
系主任签名: 年 月 日
课程设计内容及步骤
使用proteus作为开发工具,完成双机通讯的温度采集功能:
使用LM20温度传感器、AD1674模数转换器、AT89C51单片机、4位拨码开关组成温度采集模块(从机),拨码开关用于设定模块的地址(00-15),从机在采集完温度信号(间隔5S)后通过串口发送到主机;
使用AT89C51单片机、4位拨码开关、LED显示组成温度接收模块(主机),4位拨码开关用于设定通讯波特率(1200,2400,4800,9600)当主机波特率改变后,从机波特率也自动改变,上电运行显示波特率信息(停3S),之后显示接收地址与温度信息。
扩展要求:
将其设计成:当定时器达到一定时间时,从机没有收到来自主机的信号,则从机“发光报警”。当遇到故障时,也会发光报警,即将从机上的RXD或TXD接按键开关,接地或是接电源作为模拟信号。收到主机的信号后,又能恢复正常。
整个系统的电路原理图:
各功能模块的工作原理:
温度采集模块
使用LM20温度传感器、AD1674模数转换器、AT89C51单片机、4位拨码开关组成温度采集模块(从机),拨码开关用于设定模块的地址(00-15),从机在采集完温度信号(间隔5S)后通过串口发送到主机;
(1)LM20经AD1674转换为12位数据给从机
LM20温度传感器经过电压跟随器后输入到AD1674的10VIN口,AD1674组成双峰。STS、CS、A0、CE、RC分别接到从机的P0-P4口实现AD1674的控制作用。一开始CE=1,CS=0,RC=0,A0=0启动12位温度转换,然后等待数据采集结束while(STS==1); 接着CE=1,CS=0,RC=1,12/8=1,A0=0允许高八位数据并行输出,最后CE=1,CS=0,RC=1,12/8=0,A0=1允许低四位数据并行输出。读出的12位数据存放在变量temp中。经过AD1674转换后输出的结果精确到(10.0/4095.0)。若LM20温度转换为电压值是1.13598v时,经过AD1674转换后输出的12位数为1.13598*4095/10=465转换为2进制为1。12位数据经过公式转换T = (1.8525-temp*10/4095.0)*10000/11.79.然后把低位小数位给temp1,temp就为整数部分,接着就是等待发送给主机。
/*读取AD1674转换结果*/
uint AD1674_Read(void)
{
uint temp;
CS = 1;
CE = 0; //初始化,关闭数据采集
CS = 0;
A0 = 1;
RC = 0;
CE = 1; //CE=1,CS1=0,RC=0,A0=0启动8位温度转换
_nop_();
while(STS==1);//等待数据采集结束
CE = 0; //芯片使能关闭
RC = 1;
A0 = 0;
CE = 1; //CE=1,CS1=0,RC=1,12/8=1,A0=0允许高八位数据并行输出
_nop_();
temp = P1;//读取转换
文档评论(0)