77范文网 - 专业文章范例文档资料分享平台

电子系统实验报告(2)

来源:网络收集 时间:2020-06-08 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

二. 实验设备及软件开发环境

1. 单片机平台:AVR ATmega128实验开发板;

2. 开发环境平台:AVR Studio 4.18集成开发软件;WinAVR(GCC) 2010 C语言编译器;JTAGICE mkII在线仿真器。

三. 实验的电路原理

矩阵键盘硬件电路连接如图3所示。

图6-1 8 X 2矩阵键盘硬件电路连接图 注:KPD_ROW1和KPD_ROW2分别与ATmega128芯片的PC6和PC7相连。

对于矩阵式键盘,常见的按键扫描方法为行列式扫描方法。行列式按键扫描方法对于按键的侦测过程可分为三步。

第一步:判定是否有按键被按下。对于图3所示的2*8矩阵键盘,理论上判定是否有按键的一种方法为:首先,将2条行线对应的单片机引脚配置为输出,并输出低电平;然后,将8条列线对应的单片机引脚配置为输入,并使能内部上拉电阻;最后,读取8条列线的电平值。此时,若8条列线均为高电平,则判定无按键按下,否则便认为有按键被按下。

第二步:逐行扫描,获取按键的行号。若在第一步中发现有按键被按下,则开始逐行扫描过程。逐行扫描时,被扫描的一条行线输出低电平,剩下一条行线

输出高电平,然后读取8条列线的电平值。此时,若8条列线均为高电平,则说明按键不在此行中,换其它行线继续扫描;否则,按键便位于此行中。

第三步:在有按键被按下的行中逐列扫描,获取按键的列号。当在第二步中确定了按键的行号后,8列线中必定存在一条列线为低电平,则该列线对应的列号即为按键所在的列。

四. 程序运行结果

1.实验任务:

1. 仔细阅读示例程序,了解程序的设计方法,修改示例程序的输出调用函数程序,要求自己设计改用数码管或者LCD屏幕输出结果的输出程序,并在实验系统平台编译、调试、下载验证运行结果正确。

2. 改变方式,使得可以快速读取到按键;如果按键时间超过一定时间,可以连续读取几个按键;可以读取两个同时按下的键。

2.程序运行结果:

按下按键后可以在LCD屏幕上显示所按键代表的16进制数,同时按下两个键还可以显示两个16进制数,长按某一键可以使此键代表的数字重复出现等功能。

五. 实验总结

通过这次试验,我掌握了单片机键盘电路的工作原理;我也学会了使用单片机键盘的控制程序编写;对单片机矩阵键盘扫描程序的设计有进一步的认识,也学习了键盘控制与显示部件的联合应用等知识。 实验过程大体上比较顺利,当然也时常出现各种各样的问题。通过同学和老师的多次帮助,我完成了所有试验指导书上的任务,也完成了老师布置的临时任务,虽然中途出现很多bug,也很多次调试无果,但是最终还是成功做出来结果。我的代码取材于实验指导书,也按照指导书的提示进行修改和完善,其中一定有不足之处,由于能力有限可能尚未察觉或解决。

附录1 实验操作过程记录 1. AVR Studio项目实验过程

[请概要描述一下实验操作过程,包括创建工程、创建C文件、编写代码,编译链接成功、调试代码、烧写(Program)到板子上(USB连接Jtag ICE MKII编程器/仿真器到计算机)和运行测试等。要求图文并茂。 ]

首先启动AVRStudio选择\Project\在\对话框里选择\,单击\旁的按钮,选择工程保存位置,避免路径中有中文,在\里填入工程名test01,把\的钩去除,把\钩上,单击\。在\对话框里选择\mkII\,\里选择\,单击\。菜单File –>New File,建立空白文档,复制程序代码到该文档中。菜单File ->Save,在“Save As”对话框里选择工程保存的路径下工程名命名的文件夹下,你会看到已经有一个test01.aps文件存在了,那是AVRStudio的工程文件。“文件名”里填入主程序文件名,例如“beep.c”,保存。在\工程管理窗格内的\上单击右键,右键菜单里选择\,在\里选择刚刚建立的beep.c文件。会看到工程管理窗格内的\下多了个beep.c文件。菜单Project->ConfigurationOptions,在\下(默认就是),确认\没有钩上,\填入频率“8000000”,\选择\(-O0是无优化编译选项,-O1, -O2, -O3是不同的速度优化编译选项,而-Os是空间优化编译选项),确认\已经钩上,然后单击确定启动AVR Studio集成开发环境,进入AVR的编程界面。操作部分过程如下图所示:

2. AVR Studio程序调试过程

调试需要首先点击图中的“启动调试(Starting Debugging)”按钮。点击“编程按钮”组中的第二个按钮(显示为AVR字样),或菜单Tools -> Program AVR -> Auto Connect,把“JTAGICE mkII编程”对话框显示出来,并关闭它。AVR Studio会进入调试,MCU运行在main函数的第一条语句处停住。等待程序员的调试操作。从绿色箭头按钮(开始调试)开始,蓝色方按钮是“停止调试”,其它按钮

依次是运行(F5)、暂停(Ctrl-F5)、重启(Shift-F5)、显示下一语句、单步进入(F11)、单步一语句(F10)、单步跳出函数(Shift-F11)、运行到光标所在行(Ctrl-F10)等。下一个红色的圆按钮是“设置和取消断点”(快捷键F9)。右面的按钮是显示(或取消显示)Watch、寄存器、内存和汇编代码等。单步运行(F10)。单步运行如图3-15。黄色箭头是当前MCU所在代码行(还未运行该行代码)。图中代码从“LED_Init(); ”行单步运行到了“i = 0;”行。我们还可以设置断点:在前面,我们认识了常见的调试按钮。找到那个“设置和取消断点”(快捷键F9)红色按钮。比如当前运行到了“i=0;”行,设置断点到“PORTB = ~led_sel;”,则下一步按键F5运行,MCU就会运行到断点行停住。AVR Studio在调试中可以观察ATMega128的寄存器、IO端口、内存、变量等信息。上面两个图是IO端口的信息。上左是PORTC的信息,点击PORTB时,下面会显示详细的DDRB、PINB和PORTB的内容。因为当前行还没运行,所以PORTB保持为0xFF没变。IO端口的信息对ATMega128的编程调试非常有用。下面是变量信息,可以看到led_sel的值刚刚变为1(红色),而i的值保持为0不变(黑色)。

有的时候调试中还会出现各种情况,如果指令有优化(不是-O0编译选项),有些变量会无法watch,并且实际执行指令次序和语句对应关系是“乱的”,会造成调试的困难。所以建议调试前把编译优化选项去掉重新编译。部分调试过程图解如下所示:

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库电子系统实验报告(2)在线全文阅读。

电子系统实验报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1099470.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: