当前位置: 首页 > 其他范文 > 其他范文

实验13报告

作者:yin287998 | 发布时间:2020-12-22 12:28:12 收藏本文 下载本文

广州大学学生实验报告 :

开课学院及实验室:

计算机科学与教育软件学院软件工程室 2015 5 年 年 11 月 25 日 学院 计算机科学与教育软件学院 年级/专 专业 业/ 班 姓名 学号 实验课程名称 单片机原理与接口技术实验 成绩 实验项目名称 实验十 三:

:8251A 串行通讯实验(88)指导老师 一、实验目的 1、掌握 8088/86 实验串行口通信的方法。

2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。

3、学习串行口通讯程序编写方法。

二、实验 设备 1、Lab6000 通用微控制器实验系统。

2、计算机,WAVE 集成调试软件。

3、仿真器,导线若干。

三、实验 说明 1、8088/86CPU 通过外接的 8251 可编程串行控制器实现串口通信。通过 8251 的控制口写入其工作方式或读入当前状态,通过数据口发送或接收串行口数据。本实验是通过查询方式读写状态和输入输出串行数据。

2、通讯双方的 RXD、TXD 信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的 RXD、TXD 直接交叉连接。也可以将本机的 TXD 接到 RXD,这样按下的键就会在本机的 LED 上显示。

3、若想与标准的 RS232 设备通信,就要做电平转换,输出时要将 TTL 电平换成 RS232 电平,输入时要将 RS232 电平换成 TTL 电平。可以将仿真板上的 RXD、TXD 信号接到实验板上的“用户串口接线”的相应 RXD 和 TXD 端,经过电平转换,通过“用户串口”接到外部的 RS232 设备。

4、将分频器的 Fin 接到 4MHz 脉冲发生器,就可以得到 1MHz 和 250KHz 脉冲。

四、实验步骤 步骤 1:连接系统,设置好仿真器和编译选项。

步骤 2:建立新程序和新项目,编译程序。

步骤 3:编译成功后进行调试,观察 LED 的闪烁。

五、实验 框图 图

六、实验代码:

#define LEDLen 6 #define IN_KEY 0x8001 #define OUTBIT 0x8002 #define OUTSEG 0x8004 #define CS8251D 0xd000 #define CS8251C 0xd001 extern unsigned char IN(unsigned int port);extern void OUT(unsigned int port, unsigned char v);unsigned char LEDBuf[LEDLen];unsigned char const LEDMAP[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 };unsigned char const KeyTable[] = { 0x16, 0x15, 0x14, 0xff, 0x13, 0x12, 0x11, 0x10, 0x0d, 0x0c, 0x0b, 0x0a, 0x0e, 0x03, 0x06, 0x09,0x0f, 0x02, 0x05, 0x08, 0x00, 0x01, 0x04, 0x07 };void Delay(unsigned char CNT){ unsigned char i;while(CNT--!=0)for(i=100;i!=0;i--);} void DisplayLED(){ unsigned char i, j, k;unsigned char Pos;unsigned char LED;Pos = 0x20;for(i = 0;i < LEDLen;i++){ OUT(OUTBIT,0);LED = LEDBuf[i];OUT(OUTSEG,LED);OUT(OUTBIT, Pos);Delay(65535);Pos >>= 1;} } unsigned char TestKey(){ OUT(OUTBIT, 0);return(~IN(IN_KEY)& 0x0f);} unsigned char GetKey(){ unsigned char Pos;unsigned char i;unsigned char j;unsigned char k;i = 6;Pos = 0x20;do { OUT(OUTBIT, ~ Pos);Pos >>= 1;k = ~IN(IN_KEY)& 0x0f;} while((--i!= 0)&&(k == 0));if(k!= 0){ i *= 4;

if(k & 2)i += 1;else if(k & 4)i += 2;else if(k & 8)i += 3;OUT(OUTBIT, 0);do Delay(10);while(TestKey());return(KeyTable[i]);} else return(0xff);} void IInit(){ OUT(CS8251C,0x4f);OUT(CS8251C,0x15);} void Send(unsigned char TBuf){ unsigned ss;OUT(CS8251C,0x15);while(!(IN(CS8251C)& 0x1));OUT(CS8251D,TBuf);} unsigned char Receive(){ while(!(IN(CS8251C)& 0x2));return(IN(CS8251D));} void main(){ unsigned char RCVBUF;IInit();LEDBuf[0] = 0xff;LEDBuf[1] = 0xff;LEDBuf[2] = 0xff;LEDBuf[3] = 0xff;LEDBuf[4] = 0x00;LEDBuf[5] = 0x00;while(1){ DisplayLED();if(!(IN(CS8251C)& 0x2)){ if(TestKey())Send(GetKey());

} else{ RCVBUF = Receive();LEDBuf[5] = LEDMAP[RCVBUF & 0x0f];LEDBuf[4] = LEDMAP[RCVBUF / 0x10];} } } 七、实验电路及连线 显示电路和键盘电路见硬件实验十六和硬件实验十七。

八、实验 结果 相片 1:

相片 2:

实验现象是从左到右依次显示 8。

九、实验心得 通过本次试验,本人了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议,也进一步掌握了 8088/86 实验串行口通信的方法。

实验报告模板

J2EE实验报告

实验报告模版

实验报告四

《网络技术》,实验报告

本文标题: 实验13报告
链接地址:https://www.dawendou.com/fanwen/qitafanwen/329248.html

版权声明:
1.大文斗范文网的资料来自互联网以及用户的投稿,用于非商业性学习目的免费阅览。
2.《实验13报告》一文的著作权归原作者所有,仅供学习参考,转载或引用时请保留版权信息。
3.如果本网所转载内容不慎侵犯了您的权益,请联系我们,我们将会及时删除。

重点推荐栏目

关于大文斗范文网 | 在线投稿 | 网站声明 | 联系我们 | 网站帮助 | 投诉与建议 | 人才招聘 | 网站大事记
Copyright © 2004-2025 dawendou.com Inc. All Rights Reserved.大文斗范文网 版权所有