欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:13808391       资源大小:215.06KB        全文页数:13页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、键盘数码管及串口间的通信实验报告本科实验报告填写说明1学员完成人才培养方案和课程标准要所要求的每个实验后,均须提交实验报告。2实验报告封面必须打印,报告内容可以手写或打印。3实验报告内容编排及打印应符合以下要求:(1)采用A4(21cm29.7cm)白色复印纸,单面黑字打印。上下左右各侧的页边距均为3cm;缺省文档网格:字号为小4号,中文为宋体,英文和阿拉伯数字为Times New Roman,每页30行,每行36字;页脚距边界为2.5cm,页码置于页脚、居中,采用小5号阿拉伯数字从1开始连续编排,封面不编页码。(2)报告正文最多可设四级标题,字体均为黑体,第一级标题字号为4号,其余各级标题为

    2、小4号;标题序号第一级用“一、”、“二、”,第二级用“(一)”、“(二)” ,第三级用“1.”、“2.” ,第四级用“(1)”、“(2)” ,分别按序连续编排。(3)正文插图、表格中的文字字号均为5号。一、实验目的和要求1、熟悉定时器、键盘、数码管及串口的工作原理;2、熟悉查询或者中断的概念和工作原理;3、能够用汇编语言/C语言编写相关程序。二、实验内容和原理(一)实验内容为: 1键盘输入+串口发送实验,串口发送内容为键盘输入键值,键值自行定义; 2串口接收+数码管显示实验,把串口接收的内容通过数码管显示出来。 (二)依据的原理:1. 根据实验箱的硬件环境,单片机选为NXP公司的P89V51R

    3、D2(与80C51兼容),时钟频率为6.144MHz,串口处于工作方式1,波特率为2400bps。2. 按照要求编写相应程序,采用Keil C51进行编译,首先在集成开发环境上进行仿真,确保程序正确,然后下载到实验箱上进行检查。3. 单片机和微机都带有符合RC232C的串口,利用实验箱上的键盘、数码管和串口进行通信实验,进一步熟悉单片机的硬件、程序设计以及单片机系统开发流程。三、实验项目(一) 实验项目:键盘、数码管及串口间的通信(二) 实验原理:1 初始化:启动定时器0(用于更新数码管的显示与键盘扫描)、定时器1(用于串口与实验箱通信),串口初始化,置各种值为0,中断置1,开中断2 键盘 数

    4、码管:当键盘按下后,与键盘相连的P0口发生变化,当检测到这种变化时,将行、列的变化值用x,y记录下来,经过转换,可以得到键盘上的数字值,再通过与数码管相连的P1、P2口显示到数码管上,这里,用P2控制位选,P1控制字形3 键盘 PC机:自初始化置TI为1后,出发串口中断循环执行,当发生按键时,不仅会在数码管上显示出来,而且会将send_ptr(发送标志位)设为1,此时,会将键值变换成ASCII码后送给串口的SBUF,然后即可在串口调试助手的窗口中显示出来4 PC机 数码管:在串口调试助手的输入窗口中输入一串十六进制数字,串口串行地将数字送给SBUF,SBUF通过P1和P2口显示到数码管上四、实

    5、验器材(一) 清华科教TMC-2实验箱、USB转串口电缆;(二) 华硕 F80c PC机及Win 7操作系统、Keil C51集成开发环境、FlashMagic、串口调试助手。五、操作方法与实验步骤写出实验操作的总体思路、操作规范和主要注意事项;按顺序记录实验中每一个环节和实验现象。画出必要的实验装置结构示意图,并配以相应文字说明;(一) 总体思路:已在“实验项目”中说明;(二) 操作规范和主要注意事项:我认为有这么几点,一是芯片一定要放对位置;二是要分清阴极和阳极;三是线要接对;四是要正确配置好各种参数;五是要走正确的步骤。(三) 实验环节及现象:1.编写键盘、数码管及串口通信程序,代码在文

    6、档的后面章节中;2.采用Keil C51集成开发环境进行编译、仿真,生成hex文件;3.准备实验箱运行环境,将实验箱连接到PC机上,调试参数;4.将hex文件下载到实验箱上,复位后,可以开始在键盘或PC机上操作。六、实验数据七、实验结果与分析发送123456877后,数码管上出现456877六个数字,这说明串口是串行地将数字发送过去,并且会一位位向左移动,最后只留下6位数字。八、问题与建议这次实验感觉比较难,要理解各种操作的原理、细节,而且实验箱不同,做出来的效果不同,然后我觉得要多向教员、小教员或者同学请教,通过交流,能更深地理解原理之类的。我认为老师应该多给些辅助性的文档,让我们个人能钻研

    7、地更深。九、源程序#includeunsigned 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,0xF

    8、7,0xFF,0xB9,0xB F,0xF9,0xF1; /0-9,a-f 的字型码unsigned char A; /键盘比较临时变量unsigned char LED_buff6; /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(unsig

    9、ned 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

    10、 */ TL1 = 0xF3; / 波特率为2400bps TH1 = 0xF3; ET1 = 0; / 关闭T1中断 TR1 = 1; / 启动T1定时 TMOD = 0x21; /T0处于方式1, T1处于方式2-8位自动重装void Uart_Init(void) /串口初始化 PCON = 0x80; / 波特率加倍 SCON = 0x50; / 方式1,波特率可编程T1,允许接收 ES = 1; / 使能串口中断void init_main(void) /主函数初始化 x=0; y=0; /键盘扫描的横纵坐标值 key=0; /识别的键值 key_ptr=0; /按键状态标识 sen

    11、d_ptr=0; /发送标识 LED_ptr=0x01; /LED更新时指针位置 EA=1; /全局中断开; TI=1;void push_LED(unsigned char a) /数码管内容向左更新 for(i=5;i0;i-)LED_buffi=LED_buffi-1; LED_buff0=a;unsigned char convert(unsigned char a) / 返回扫描线横向纵向的位权 switch(a) case 0x0E:return 0x00; case 0x0D:return 0x04; case 0x0B:return 0x08; case 0x07:return

    12、 0x0C; case 0xE0:return 0x00; case 0xD0:return 0x01; case 0xB0:return 0x02; case 0x70:return 0x03; return 0x00;unsigned char LED_loc_convert(unsigned char loc) /数码管位选输入转换 switch(loc) case 0x00:return 0x01; case 0x01:return 0x02; case 0x02:return 0x04; case 0x03:return 0x08; case 0x04:return 0x10; ca

    13、se 0x05:return 0x20; default:return 0x00; unsigned char char_to_LED(unsigned char b) /接收的ASCII字符转换 if(b=0x30&b=0x41&b=0x46)return b-0x37; return 0;void key_scan(void) interrupt 1 /定时器0中断处理 TL0=0x00; /定时10ms TH0=0xFC; if(LED_ptr=0x05)LED_ptr=0x00; else LED_ptr+; P2=LED_loc_convert(LED_ptr); /由LED_ptr

    14、获得位选 P1=LED_buffLED_ptr; /从数码管BUFF得到显示内容/ printf(timer0n); switch(key_ptr) /键盘扫描状态机 case 0x03: P0=0x0F; A=(P0&0x0F); if(A=0x0F) key_ptr=0x00; else key_ptr=0x02; break; case 0x02: P0=0x0F; A=(P0&0x0F); if(A=0x0F) key_ptr=0x03; break; case 0x01 : P0=0x0F; A=(P0&0x0F); if(A!=0x0F)/这就是有键盘按下,检测到有某列发生变化 x

    15、=A;/得到列的数值, P0=0xF0; A=(P0&0xF0); y=A; /得到行的数值 key=convert(x)+convert(y); /得到键值 send_ptr=0x01; /发送标识设为1 push_LED(LedTablekey);/数码管内容向左更新,然后最右边那位设为a,放到缓存中 key_ptr=0x02; else key_ptr=0x00; break; case 0x00: P0=0x0F; A=(P0&0x0F); if(A!=0x0F) key_ptr=0x01; break; default :key_ptr=0x00; void Uart_ISR(voi

    16、d) interrupt 4 /串口中断处理 if(RI) / 接收中断 RI = 0; / 清除接收中断标志 rec_buff=SBUF; /这里拿到的是ASCII码 push_LED(LedTablechar_to_LED(rec_buff);/ 先变成16进制的数字,放入LED缓存的是字形码 else if(TI&(send_ptr!=0x00)/有发送中断并且发送标识不为0 TI = 0; / 清除发送中断标志 SBUF=key_to_charkey; send_ptr=0x00; /发送标识清零 void main() /初始化 Timer_Init(); Uart_Init(); init_main(); while(1) / 死循环,等待中断


    注意事项

    本文(键盘数码管及串口间的通信实验报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开