单片机实习报告.doc_第1页
单片机实习报告.doc_第2页
单片机实习报告.doc_第3页
单片机实习报告.doc_第4页
单片机实习报告.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实 习 报 告 实习名称: 嵌入式系统实习 系部名称: 信科院 专业班级: 计本085 学生姓名: 陈鹏任 学 号: 3080417907 指导教师: 陈小琴 金红 杨光杰日 期: 2010.12.18 1 引言 目前,嵌入式技术已成为通信和消费类产品的共同发展方向。嵌入式系统几乎包括了生活中的所有电器设备,如掌上、移动计算设备、电视机顶盒、手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。嵌入式系统是先进的计算机技术、半导体技术、电子技术和各个行业的具体应用相结合的产物,这就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式系统一般指非系统。它是以应用为中心、软硬件可裁减的、能适应应用系统对功能、可靠性、成本、体积、功耗等综合性要求的专用计算机系统。简单地说,嵌入式系统是集系统的应用软件与硬件于一体,类似于中的工作方式,具有软件代码小、高度自动化、响应速度快等特点,因此特别适合于要求实时和多任务的系统。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成。通过这次实训,老师让我们了解最基本的嵌入式系统设计,开发的流程,结合掌握所学的知识,做出一个单片机与上位机通信的简单嵌入式系统。二课题设计1基本原理 MCS51单片机串行口发送/接收数据时,通过2个串行缓冲器SBUF进行,这2个缓冲器采用一个地址(98H),但在物理上是独立的。其中接收缓冲器只能读出不能写入,发送缓冲器只能写入不能读出。 发送过程,由指令MOV SBUF,A启动,此时待传送的数据由A累加器传入串行发送缓冲器SBUF,由硬件自动在发送字符的始、末加上起始位(低电平)、停止位(高电子)及其它控制位(如奇偶位等),而后在移位脉冲的控制下,低位在前,高位在后,逐位从TXD端(方式0除外)发出。 接收过程,串行口的接收与否受制于允许接收位REN的状态,当REN被软件置“1”后,允许接收器接收。串口的接收器以所选波特率的16倍速对RXD线进行监视。当“1”到“0”跳变时,检测器连续采样到RXD线上低电平时。便认定RXD端出现起始位,继而接收控制器开始工作。在每位传送时间的第7、8、9三个脉冲状态采样RXD线,决定所接收的值为“0”或“1”。当接收完停止位后,控制电路使中断标志R1置为“1”,此时程序可通过MOV A,SBUF指令将接收到的字符从SBUF送入累加器A,从而完成一帧数据的接收工作。2.原理框架 单 片 机LCD显示电路复位电路时钟电路电源电路串行口通信电路 3.硬件电路原理图,对各模块进行分别介绍3.1 液晶显示模块 1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口如下所示 接口信号说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VL液晶显示偏压信号11D4Data I/O4RS数据/命令选择端(H/L)12D5Data I/O5R/W读/写选择端(H/L)13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极用LCD1602液晶显示模块显示字符或字符串之前必须对其进行初始化,LCD1602液晶显示模块的初始化流程如下: 5.0 初始化过程(复位过程) 5.1 延时15ms 5.2 写指令38H(不检测忙信号) 5.3 延时5ms 5.4 写指令38H(不检测忙信号) 5.5 延时5ms 5.6 写指令38H(不检测忙信号) 5.7(以后每次写指令、读/写数据之前均需检测忙信号) 5.8 写指令38H:显示模式设置 5.9 写指令38H:显示关闭 5.10 写指令01H:显示清屏 5.11 写指令06H:显示光标移动设置 5.12 写指令0CH:显示开关及光标位置表8 LCD1602液晶模块内部的控制器控制指令指令指令码 说明 RS R/W D0 D1 D2 D3 D4 D5 D6 D7 清屏 0000000001清显示,光标回位 光标返回 000000001*ADD=0时,回原位 输入方式 00000001I/DS决定是否移动以及移动方向 显示开关 0000001DCBD-显示,C-光标,B-光标闪烁 移位 000001S/CR/L*移动光标及整体显示 功能设置 00001DLNF*DL-数据位数,L-行数,F-字体CGRAM地址设置 0001A5 A4 A3 A2 A1 A0设置CGRAM的地址DDRAM地址设置 001A6 A5 A4 A3 A2 A1 A0设置DDRAM的地址忙标志/读地址计数器 01BFAC6 AC5 AC4 AC3 AC2 AC1 AC0读出忙标志位(BF)及AC值CGRAM/DDRAM数据写 10写数据将内容写入RAM中CGRAM/DDRAM数据读 11读数据将内容从RAM中读出 LCD1602液晶显示模块可以和单片机AT89C51直接接口,电路如下图所示。 AT89S52和LCD1602液晶模块连接电路液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表9是LCD1602的内部显示地址。即第1行的显示地址应为80H+显示位置,第2行的显示地址应为40H+显示位置。表9 LCD1602的内部显示地址3.2 串口通信模块RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(recommended standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改,在这之前,有RS232B、RS232A,它规定连接电缆和机械、电气特性、信号功能及传送过程。RS-232C适合于数据传输速率在020000b/s范围内的通信。PC机常用DB-9连接器作为提供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器,它只提供异步通信的9个信号,9针串口功能见表10,并且对电缆长度也有要求: RS-232C标准规定,若不使用MODEM,在码元畸变小于4%的情况下,DTE和DCE之间最大传输距离为15m(50英尺)。可见这个最大的距离是在码元畸变小于4%的前提下给出的,为了保证码元畸变小于4%的要求,接口标准在电气特性中规定,驱动器的负载电容应小于2500pF。 表10 9针串口功能一览表针脚功能针脚功能1载波检测6数据准备完成2接收数据7发送请求3发送数据8发送清除4数据终端准备完成9振铃指示5信号地线本方案对RS-232-C接口采用3线制(RXD、TXD、GND)软握手的零MODEM方式进行单片机和PC之间的数据通信,即PC机和单片机的发送数据线(TXD)与接收数据(RXD)交叉连接,二者的地线(GND)直接相连,其它信号线如握手信号线均不用,而采用软件握手。但由于RS-232-C的逻辑电对地是对称的,与TTL、MOS 逻辑电平完全不同,逻辑0电平规定为+5 +15V之间,逻辑1是电平为-5 -15V之间,因此利用MAX232芯片进行电平转换,电路连接如图11。图RS-232-C通信连接电路3.3 电源模块 充电电路 4.软件设计(1)流程图 (2)代码附录/接收电脑送过来的数据,并且显示16进制数,并将数据回传到电脑#include /LCD的口线sbit E=P25;sbit RW=P36;sbit RS=P26;unsigned char recdata28;/定义RS232数组unsigned char recv_p;unsigned char bdata myflag;sbit recokbit = myflag0;void Delay(unsigned int t);void SendCommandByte(unsigned char ch);/传送命令void SendDataByte(unsigned char ch);/传送数据void InitLcd(void);/LCD显示void disprec(void); /显示void rs232(void);void main(void)/主函数 InitLcd();/初始化LCDmyflag=0x00;/标志痊SendCommandByte(0x80);/调用发送命令Delay(2);SendDataByte(c); /初始化显示CPR:SendDataByte(p);SendDataByte(r);SendDataByte(:);TMOD=0x20;/定时器的设置 TH1=0xf3;/计时器TL1=0xf3;SCON=0x50;/设定串行工作方式TR1=1;REN=1;/允许中断IE=0x90;/中断允许标志while(1)if(recokbit=1)/接收数据recokbit=0;disprec(); /以下为串口中断程序void rs232(void) interrupt 4/中断串行口 if(RI=1)/控制电路使中断标志R1置为“1此时程序可通过MOV A,SBUF指令将接收到的字符从SBUF送入累加器A,从而完成一帧数据的接收工作RI=0;recdatarecv_p=SBUF;SBUF=recdatarecv_p;recv_p+; if(recv_p27) recv_p=0;/recokbit=1;/接受完成void Delay(unsigned int t) / delay 40us for(;t!=0;t-);/=void SendCommandByte(unsigned char ch)RS=0; RW=0; P0=ch; E=1;/使能端口为1,接收命令 Delay(1); E=0; Delay(100); /delay 40us/=/-void SendDataByte(unsigned char ch) TI=0;/开始发送数据SBUF=ch;while(!TI); RS=1;/输入数据 RW=0;/为0时写,1时读 P0=ch; E=1; Delay(1); E=0;/使能信号为0时,不能输入 Delay(100); /delay 40us/-void InitLcd(void)unsigned char i;for(i=0;i28;i+) recdatai=0x30;/初始化数组0recv_p=0; SendCommandByte(0x30); SendCommandByte(0x30); SendCommandByte(0x30); SendCommandByte(0x38);/设置工作方式 SendCommandByte(0x0c); /显示状态设置 SendCommandByte(0x01); /清屏 SendCommandByte(0x06); /输入方式设置void disprec(void)unsigned char i;for(i=0;i12;i+) SendCommandByte(0x84+i); SendDataByte(recdatai);for(i=0;i16;i+) SendCommandByte(0xc0+i); SendDataByte(recdatai+12); 5.调试过程(1)测试数据 采用RS232把PC机与单片机连接起来,运行上位机程序如下图所示:向单片机发送信息时,PC机显示信息重复了。(2) 数据分析 PC机发送的数据给单片机能正常显示,但单片机返回给PC机的信息重复了,经过反复检查,原来是recd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论