上位机与下位机通讯.docx
- 文档编号:23268488
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:17
- 大小:174.78KB
上位机与下位机通讯.docx
《上位机与下位机通讯.docx》由会员分享,可在线阅读,更多相关《上位机与下位机通讯.docx(17页珍藏版)》请在冰豆网上搜索。
上位机与下位机通讯
单片机课程设计
——上位机与下位机通讯
3.3.4硬件原理图.............................................................................................................6
3.4.3部分程序................................................................................................................9
1.引言
近年来,计算机在各个领域的应用越来越深入,单片机凭借它的体积小、功耗低、控制功能强,扩展灵活,微型化和使用方便等优点,广泛应用于各种仪器仪表和工业当中。
单片机是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。
在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。
例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
本设计就是利用单片机实现了一个温度报警系统。
由于实验设备等原因的限制,本实验利用另外一台单片机代替计算机与实时采集数据的单片机构成了二级控制系统。
由下位机采集温度数据并处理成二进制数后传送到上位机。
如果温度过高,超过一定限定值就会产生报警。
本次课程设计的主要内容是通过单片机C51语言进行编程设计。
同时在上位机还加了附加功能能够产生实时时钟,使系统用起来更加的方便。
本次课程设计的目的是培养理论联系实际的学习方法以及独立解决工程实际问题的能力。
能够熟练运用C51语言进行单片机编程,同时了解一些单片机外围设备及其应用。
主要内容是利用89C51单片机及其他一些器件来构成串行通信温度报警器。
关键词:
单片机,温度,89c51。
1.1实习目的
通过实习,使学生进一步弄懂所学到的课本知识,巩固和深化对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、定时/控制、程序设计、应用开发、等基本理论知识的理解,提高单片机应用于技术的实践操作技能,掌握单片机应用系统设计、研制的方法,培养利用单片机进行科技革新、开发和创新的基本能力,为毕业后从事与单片机相关的工作打下一定的基础。
1.2实习要求:
1)用Protel画出硬件原理图。
2)采用单片机C语言或汇编语言进行编程。
3)完成硬件与软件调试综合调试,实现预定功能,并写出课程设计报告
1.1实习内容
(1)参观辽宁省广播电视厅033台广播信号发送站。
(2)自选一个设计题目,在软件和硬件方面分别利用高级程序语言及实验室所提供的单片机来实现。
(3)在完成以上工作后进行相关总结。
2.企业参观
单位:
辽宁省广播电视传播发射中心
时间:
2010年7月6日
内容:
(1)室内设备参观学习
(2)室外设备参观学习
概况:
1958年5月8日建台,座落在辽宁省沈阳市苏家屯区八一镇北。
目前负责国家及省的部分发射广播信号工作。
分别是中央新闻、中央经济、辽宁新闻、辽宁经济、辽宁乡村和辽宁故事。
站内芳草萋萋,瓜果俱全。
主建筑是一个二层的建筑物。
发射塔有三个,最高两百余米。
体会:
7月6日上午8时许,我们在东北大学南门集合,准备出发进行企业参观。
根据学院的相关安排,我们今天将前往坐落于沈阳市南郊苏家屯区的零三三台广播发送站进行参观访问。
作为新中国首批设立的广播信号发送站,从1958年建台之初迄今,零三三台已然在风霜的洗礼中跨越了半个世纪的沧桑岁月,先进的技术设备以及传统的企业文化是我们此行考察的重点目的。
在经历了四十分钟的短途行程之后,我们终于到达了目的地——辽宁省广播电视厅零三三台广播信号发送站。
参观伊始,在站长的热情引导和介绍下,我们来到了全台的中心枢纽——广播信号测控大厅。
整个大厅大体分为內厅和外厅两个部分,内厅呈狭长通道状,嵌于外厅之中,前者主要负责广播信号的监测工作,而后者则主要负责其处理工作。
外厅一侧并排伫立着7台大型信号处理设备,其中不乏HARRIS3DX-50全固态中波调幅发射机这样世界尖端的技术产品。
但若非随行陈副工程师的一番生动讲解,我们也很难想象,就是这7台机器承载了6个重量级电台(中央新闻、中央经济、辽宁新闻、辽宁经济、辽宁乡村和辽宁故事)在全省范围内大部分信号的发送工作。
随着讲解的逐步深入,我们了解到广播信号发送站的主要职能在于将电台发送过来的相对较弱的节目信号,通过一系列有效的处理和调制,转换成适合远距离传输的大功率信号,并借助天线将其发送出去。
其中主要的信号接收设备包括微波机、卫星接收机和光纤信号解调机,而信号发送设备则以中波发射机为主。
在测控大厅中,我们还见到了一套犹在使用的基于电子管技术的信号处理设备,由工程师的讲解中,我们得知,这是零三三台现存的年代最为久远的机器,回首凝视身旁的工程师,他总是在沉思片刻后热情地回答同学们提出的各式各样的问题,语重心长而面带微笑。
在工作楼前的露天平台下,张工程师精彩的演说也随之拉开了帷幕。
如果说信号处理是广播工作灵魂所在的话,那么信号发送就是其外在的躯壳,没有后者,前者所完成的一切就都无法演变为实质性的内容。
广播信号的发送硬件由两部分组成,分别是传输线和射频高塔,广播站通过传输线将广播信号测控大厅中经过处理的信号传至射频高塔顶部,并将其发射出去。
其中,传输线根据信号传输量的不同划分为两类直径不一的线路(38mm和80mm),但其传输介质皆为同轴电缆。
射频高塔共有四座,高度在138m至147m之间不等,每座高塔根据频道的不同而承载相异的传输任务。
由于所有的信号皆为调幅信号,因此其覆盖面极广,近至沈阳周边地区,远至朝韩日本,皆可接收到由此地发出的信号。
不知不觉我们的参观接近尾声,通过参观和学习,我充分了解了课程所学的理论知识在工程上是如何应用的,让我有信心在以后的工作和学习中使用自己掌握的知识和技术来解决各种问题,同时也认识到自己在很多理论知识方面的欠缺。
感谢老师给我们在这样的机会,使我们能够认识理解到自己的不足。
3.C51单片机开发设计
3.1设计意义
温度采集器应用很广,平时比较常见,但作为实验内容的较少,适合作为编程联系的例子。
在设计中能够更加透彻的理解和较为全面的考虑各种情况。
通过这次的练习,可以加深对单片机应用了解,更能灵活的使用51系列单片机的资源解决实际问题。
3.2系统功能设计
3.2.1功能特点
温度采集是由单片机上的温度采集模块直接采集的数据,但采集的是模拟的电压。
需要通过下位机上的AD转换模块进行处理得到数字信息。
但是得到的数据并不是真正的温度值,还需要进一步的处理换算才能得到真正的温度值。
然后下位机会通过串行口与上位机进行通信,将采集得到的数据送到上位机。
上位机进行分析以后,与原先设定好的温度值进行比较,如果大于设定值,则会启动报警程序,进行报警。
这一过程是通过中断产生的。
如果监控人员发现后通过按按钮,可以关闭警报。
同时为了使系统使用起来更加方便,增添了数字时钟的功能。
在上位机的LCD上显示时钟,并且把下位机采集的温度值也在这里显示。
实时时钟是利用单片机实验箱上的DS12877实现。
它可以计秒,分,时,日,星期,月,年等补偿功能。
将其产生的数据通过并行口送到单片机。
同时可以通过按键调节时钟的时间,如果时间不对的话可以调节。
这些是通过中断实现的。
LCD的液晶显示器单元通过点阵形式显示汉字和图形。
监控人员关断报警的过程也是通过中断实现的。
温度报警器的基本硬件电路有以下几部分组成:
上位机、下位机、选择按键输入电路、LCD显示电路,实时时钟电路,温度采集电路和扬声器等。
串行通信温度报警器的硬件电路设计框图如图2.1所示。
图3.1温度报警器硬件电路设计框图
3.2.2负责工作
主要负责LCD显示模块和时钟模块的设计及编写。
使用protel制作原理图,首先我分析了以前的实验程序,包括LCD显示程序和串口程序,对试验箱上的部分模块进行了调试,在确定硬件和软件都没有错误的前提下,根据自己的想法,对实验程序做了改动,并在编写的程序中进行调用,用以完成要求。
3.3硬件设计及描述
3.3.1时钟与复位模块
由电容,电位器,按键组成复位电路部分,该电路接于单片机的RESET端可以通过按键达到手动复位的效果,也可以通过电位器和电容组成上电复位电路。
通过复位电路使单片机回到初始状态。
图3.2复位电路图3.3晶振时钟电路
3.3.2按键选择模块
利用P1.0到P1.2与8279芯片构成键盘扫描电路,可以扫描十六个按键,但本次设计只用到十个按键。
用来进行对实时时间的更改和校准。
温度采集模块
这一过程是将试验箱上的温度传感器采集到的模拟电压值经过ADC0809芯片的转换得到数字电压值传送到单片机上,然后再经过换算得到准确的温度值。
3.3.3LCD显示模块
由RT12864,按键和保护电阻组成的外部扩展电路。
其工作过程是通过单片机P3.6/WR和P3.7/RD接于RT12864,使其接收单片机由使用者通过按键发来的信息,显示实时时间和温度值,当有按键按下时,LCD会暂停显示,等待改变完要进行的操作后再继续计时显示。
3.3.4电路原理图
综合以上功能模块,连接于单片机,绘制原理图如图3.4所示。
图3.4音乐播放器电路原理图
3.4软件设计流程及描述
3.4.1编程思路简述
要实现对温度的实时采样必须有温度传感器,而试验箱上的温度模块正好完成了我们对温度的采样。
我们需要做的是对温度进行AD转换,然后再进行换算成实际的温度。
由于对芯片的不熟悉,我们只能用实际观察的方法来实现。
先用温度计对室内温度有一个测量然后与采集到的AD电压进行比较得出他们的数学线性关系,然后进行换算。
然后需要做的是进行实现实时计时的功能,我们用的是DS1302进行计时。
用专用的芯片会更加方便,也会使编程很方便,并且节省CPU的资源。
实时时钟的校时操作时通过按键完成的,而键盘的扫描时通过对可编程芯片8279的编程实现的。
共完成了十个按键的操作,这些操作都是通过中断传送的程序中的。
这些校时操作中包括了对年,月,天,周,小时,分钟,和秒的加一减一的操作,当使用者按下1时表示要对时间进行校时,然后按下2,3,4,5,6,7,8分别表示对年,月,天,周,小时,分钟,和秒进行操作。
然后再按下9表示加一,若是按下A表示减一的操作。
按几下表示加或者减几下。
如果操作结束按下B,则结束,时钟又开始重新计时。
3.4.2程序流程图
N
Y
(操作1)
Y
主机的程序流程图
图3.5程序流程图
3.4.3主要程序
LCD程序:
voidlcdxian(unsignedchartempreture)
{
unsignedchards_temp;
unsignedchartemp1;
ds_temp=tempreture;
if(rflag==0)
{
w_c_add=0x80;/*写命令字:
设定DDRAM地址到地址计数器(AC)*/
delay();
temp1=ds_y&0xf0;/*年保留高四位*/
ds_t=_cror_(temp1,4);/*将变量temp1循环右移4位*/
lcd_busy();
w_d_add=num[ds_t];/*写数据*/
ds_t=ds_y&0x0f;/*年保留低四位,将小时的十位和个位分离*/
lcd_busy();
w_d_add=num[ds_t];/*写数据*/
lcd_busy();
w_d_add=0xC4;/*年*/
lcd_busy();
w_d_add=0xEA;
temp1=ds_mon&0xf0;/*月保留高四位*/
ds_t=_cror_(temp1,4);/*将变量temp1循环右移4位*/
lcd_busy();
w_d_add=num[ds_t];/*写数据*/
ds_t=ds_mon&0x0f;/*月保留低四位,将小时的十位和个位分离*/
lcd_busy();
w_d_add=num[ds_t];/*写数据*/
lcd_busy();
w_d_add=0xD4;/*月*/
lcd_busy();
w_d_add=0xC2;
temp1=ds_d&0xf0;/*天保留高四位*/
ds_t=_cror_(temp1,4);/*将变量temp1循环右移4位*/
lcd_busy();
w_d_add=num[ds_t];/*写数据*/
ds_t=ds_d&0x0f;/*天保留低四位,将小时的十位和个位分离*/
lcd_busy();
w_d_add=num[ds_t];/*写数据*/
lcd_busy();
w_d_add=0xC8;/*日*/
lcd_busy();
w_d_add=0xD5;
lcd_busy();
w_d_add=0xD6;/*周*/
lcd_busy();
w_d_add=0xDC;
ds_t=ds_week&0x0f;/*天保留低四位,将小时的十位和个位分离*/
lcd_busy();
w_d_add=num[ds_t];/*写数据*/
lcd_busy();
w_c_add=0x90;/*换行显示*/
lcd_busy();
w_d_add=0x20;/*写数据*/
lcd_busy();
w_d_add=0x20;/*写数据*/
lcd_busy();
temp1=ds_h&0xf0;/*小时保留高四位*/
ds_t=_cror_(temp1,4);/*将变量temp1循环右移4位*/
lcd_busy();
w_d_add=num[ds_t];/*写数据*/
ds_t=ds_h&0x0f;/*小时保留低四位,将小时的十位和个位分离*/
lcd_busy();
w_d_add=num[ds_t];/*写数据*/
lcd_busy();
w_d_add=0x3a;/*:
冒号*/
temp1=ds_m&0xf0;/*分保留高四位,将分的十位和个位分离*/
ds_t=_cror_(temp1,4);
lcd_busy();
w_d_add=num[ds_t];
ds_t=ds_m&0x0f;/*分保留低四位,将分的十位和个位分离*/
lcd_busy();
w_d_add=num[ds_t];
lcd_busy();
w_d_add=0x3a;/*:
冒号*/
temp1=ds_s&0xf0;/*秒保留高四位,将秒的十位和个位分离*/
ds_t=_cror_(temp1,4);
lcd_busy();
w_d_add=num[ds_t];
ds_t=ds_s&0x0f;/*秒保留低四位将,秒的十位和个位分离*/
lcd_busy();
w_d_add=num[ds_t];
lcd_busy();
w_c_add=0x88;/*换行显示*/
lcd_busy();
w_d_add=0x20;/*写数据空格*/
lcd_busy();
w_d_add=0x20;/*写数据空格*/
lcd_busy();
w_d_add=0xCE;/*温*/
lcd_busy();
w_d_add=0xC2;
lcd_busy();
w_d_add=0xB6;/*度*/
lcd_busy();
w_d_add=0xC8;
lcd_busy();
w_d_add=0x3a;/*:
冒号*/
lcd_busy();
w_d_add=0x20;/*写数据空格*/
lcd_busy();
temp1=ds_temp&0xf0;/*温度保留高四位*/
ds_t=_cror_(temp1,4);
lcd_busy();
w_d_add=num[ds_t];
ds_t=ds_temp&0x0f;/*温度保留低四位*/
lcd_busy();
w_d_add=num[ds_t];
lcd_busy();
w_d_add=0x20;/*写数据空格*/
lcd_busy();
lcd_busy();
w_d_add=0x20;/*写数据空格*/
lcd_busy();
lcd_busy();
w_d_add=0x20;/*写数据空格*/
lcd_busy();
w_d_add=0x20;/*写数据空格*/
lcd_busy();
w_d_add=0x20;/*写数据空格*/
lcd_busy();
w_d_add=0x20;/*写数据空格*/
lcd_busy();
}
}
时钟程序:
voidcheck_ds12887(void)
{
unsignedchartemp;
rega=0x2f;/*开启晶振,允许计时,输出频率为500ms*/
delay();
regb=0x80;/*芯片停止工作,可初始化时间和日历*/
temp=regc;/*IRQF:
中断申请标志位。
置1,IRQ引脚输出低,*/
/*所有标志位在读寄存器C以后复位清零*/
temp=regd;/*BIT7=1,锂电池状态为有电*/
second=hs_s;/*写秒*/
minute=hs_m;/*写分*/
hour=hs_h;/*写小时*/
week=hs_week;
year=hs_y;
month=hs_mon;
date=hs_d;
regb=0x42;/*允许中断周期输出到IRQ引脚,24/12制,1表明24h*/
EX1=1;
}
4.心得体会
其实写心得是件闹心的事情,你要把这个过程回想一遍,追溯到开学的第一堂课,把所有的点滴细节,愉快不愉快的都记起来,却不得不写。
上了十周的课,听了一半扔一半,每一次小考都是一次总结,经历了一次考试,虽说是开卷,可是毕竟是考试,像是把以前学过的都洗礼了一遍,算是一次最基本的复习,每一次才让我真的明白,哪些会,那些不会。
可是即使知道了,也未必真的去学习。
除非,再给你一次统一学习的机会。
这也许就是期末的课程设计,或者说是生产实习。
于是生产实习就真的来了,信息楼349,我们要在那里经历相当于六天每天八个小时的时间。
这个要真的好好做了,我们选了个新的题目,没有参考,没有讨论。
苦苦思考,苦苦研究,仍不得其要领。
我们只得在其他的时间也过来,不对就多尝试,失败是成功之母。
后来,明明感觉理论都对了,可是还是出不来相关的现象。
经过老师的亲自试验和指导,现象终于出来了。
原来实验室的机器是成对的,跟别的机器搭档就没有现象。
搞笑搞怪的机器。
做完了是件值得高兴的事情,这才好像把在考试中发现的新东西,巩固了,体会了,充实了。
也体验到了亲自动手的快感。
我真心希望每门课程都有生产实习,这样就能多学点东西了。
总之,这一次,终究是学了些东西。
5.参考文献
[1]参考马忠梅,籍顺心.单片机的C语言应用程序设计[M],北京:
北京航空航天大学出版社,2005.
[2]张志,高大志,杨为名等.微控制器原理及接口技术实验教程[M],沈阳:
东北大学出
版社,2004.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上位 下位 通讯