网站大量收购独家精品文档,联系QQ:2885784924

 键盘、数码及串口间的通信实验报告.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《本科实验报告》填写说明 1.学员完成人才培养方案和课程标准要所要求的每个实验后,均须提交实验报告。 2.实验报告封面必须打印,报告内容可以手写或打印。 3.实验报告打印以下要求: 采用A4(21cm×29.7cm)白色复印纸,单面黑字打印。上下左右各侧的页边距均为3cm;缺省文档网格:字号为小4号,中文为宋体,英文和阿拉伯数字为Times New Roman,每页30行,每行36字;页脚距边界为2.5cm,页码置于页脚、居中,采用小5号阿拉伯数字连续编排。最多可设四标题,序号第一“一、”、“二、”……,第二用“一”、“二” ……,第三用“1.”、“2.” ……,第四用“1)”、“2)” ……,分别按序编排 一、实验目的和要求 1、熟悉定时器、键盘、数码管及串口的工作原理; 2、熟悉查询或者中断的概念和工作原理; 3、能够用汇编语言/C语言编写相关程序。 二、实验内容和原理 1.键盘输入+串口发送实验,串口发送内容为键盘输入键值,键值自行定义; 2.串口接收+数码管显示实验,把串口接收的内容通过数码管显示出来。 (二)依据的原理: 1. 根据实验箱的硬件环境,单片机选为NXP公司的P89V51RD2(与80C51兼容),时钟频率为6.144MHz,串口处于工作方式1,波特率为2400bps。 2. 按照要求编写相应程序,采用Keil C51进行编译,首先在集成开发环境上进行仿真,确保程序正确,然后下载到实验箱上进行检查。 3. 单片机和微机都带有符合RC232C的串口,利用实验箱上的键盘、数码管和串口进行通信实验,进一步熟悉单片机的硬件、程序设计以及单片机系统开发流程。 三、实验项目 四实验器材 五操作方法与实验步骤 写出实验操作的总体思路、操作规范和主要注意事项;按顺序记录实验中每一个环节和实验现象。画出必要的实验装置结构示意图,并配以相应文字说明; 3.准备实验箱运行环境,将实验箱连接到PC机上,调试参数; 4.将hex文件下载到实验箱上,复位后,可以开始在键盘或PC机上操作。 六实验数据 七实验结果与分析 八问题与建议 九 #includereg51.h unsigned char rec_buff; //接收缓存 unsigned char key_ptr; //按键状态标识 unsigned char x,y; //键盘扫描横纵坐标值 unsigned char key; //识别的键值 unsigned char send_ptr; //发送标识 unsigned char code key_to_char[]=0123456789ABCDEF; unsigned char code LedTable[] = { 0X3F, 0X06, 0X5B, 0X4F, 0X66, 0X6D, 0X7D, 0X07, 0X7F,0X6F,0xF7,0xFF,0xB9,0xB F,0xF9,0xF1}; //0-9,a-f 的字型码 unsigned char A; //键盘比较临时变量 unsigned char LED_buff[6]; //LED 缓存内容 unsigned char LED_ptr; //LED 更新时指针位置 int i; void Timer_Init(void); //定时器初始化 void Uart_Init(void); //串口初始化 void init_main(void); //主函数初始化 void push_LED(unsigned char a); //数码管内容向左更新 unsigned char convert(unsigned char a); //返回扫描线横向纵向的位权 unsigned char LED_loc_convert(unsigned char loc); //数码管位选输入转换 unsigned char char_to_LED(unsigned char b); //接收的ASCII字符转换 void key_scan(void); //定时器0中断处理 void Uart_ISR(void); //串口中断处理 void Timer_Init(void)////////定时器初始化 { /////////////定时器0 TL0=0x00; //定时10ms TH0=0xFC; ET0 = 1; //开T0中断 TR0=1; //启动T0定时 /////////////定时器1 */ TL1 =

文档评论(0)

qintuod + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档