硬件课程设计报告_通讯设备人机接口设计.doc
《硬件课程设计报告_通讯设备人机接口设计.doc》由会员分享,可在线阅读,更多相关《硬件课程设计报告_通讯设备人机接口设计.doc(37页珍藏版)》请在沃文网上搜索。
1、计算机硬件技术基础课程设计 通讯设备人机接口设计(硬件实验系统)目录一、系统功能和设计方案31.1 基本设计目标实现31.1.1 基本设计目标31.1.2 按键说明41.2 硬件连接51.2.1 键盘扫描连接图:51.2.2 显示连接图:61.3 系统设计思路6二、程序流程图72.1 主程序流程72.2 子程序流程图82.2.1 查询子程序:82.2.2 拨号程序:92.2.3 拨号子程序:102.2.4 接听子程序:112.2.5 时间译码及中断程序:122.2.6 键盘和开关扫描程序:13三、编程与调试14四、心得体会14五、程序清单17一、系统功能和设计方案1.1 基本设计目标实现根据课
2、程设计任务书所提出的要求,我们小组通过讨论和分析后首先确定出此次电通讯设备人机接口设计中我们需要完成的几个基本功能以及操作方案:1.1.1 基本设计目标整个系统分为3个大功能模块,分别为接听、拨号和查询3个模块。接听模块:当系统运行时,首先判断有无来电,若来电,则在led上面显示来电号码,此时来电指示灯闪烁。同时,你可以通过键盘来选择是否接听、挂断或者无操作。当选择接听时,跳入接听子程序,并在led上显示当前的通话时间。如果没有任何操作,过一段时间程序会自动挂断,同时在led上面显示来电的号码。来电的号码会自动存入来电存储区,来电存储区会存放最近三次未接来电的信息。 拨号模块:若没有来电,可以
3、按1号键进入拨号功能,键入拨号功能之后,拨号指示灯会常亮,此时表面你正在输入号码,同时led会等待数字键的按下,你可以选择0-9的号码,每当键入一个数字,就会在led的最低位显示出当前按下的数字,当再次按下数字时,led上的所有数字将会左移一位,这样就始终保持当前输入号码为led的最低位。若电话号码输入完毕,此时你也可以选择挂断键,这样就会返回主程序。当你按下拨号键时,首先系统将会判断你是否键入了6个数字键。若输入正确,对方有没有占线键按下的话,此时,led上会显示连接信息;若所拨号码不足6位或者超过6位,led上会显示error的错误信息。你可以通过开关来确定是否接听或者挂断当前号码,若接听
4、,则会显示通话时长。若挂断,led上会显示hangup后,在led上仍会显示你所拨的号码,此时,你可以按挂断键返回主程序。当然你也可以选择重拨。 若一直无人接听,则会自动挂断,led上会显示autohp的自动挂断信息。若拨号时对方占线,则在led上显示busy的占线信息,一段时间后系统会自动挂断。查询模块:当没有来电时,你可以按下键盘的2号键,进入查询功能。当进入查询功能后,你可以通过选择按下上翻或下翻按键来查询最近来电的三个号码。如果你查询到了比较重要的号码,需要回拨时,你可以按下拨号键,此时,led上会显示连接信息,程序也跳入了拨号模块。 1.1.2 按键说明 实验箱34键盘从左向右,自上
5、而下分别为1,2,3,4,5,6,7,8,9,拨号键,0,挂机键。开关K1至K6分别为来电,来电2,来电3,占线键,接听键,挂断键。(1) 实验箱面板上3*4小键盘:表1.1 3*4键盘功能对照表按键功能按键功能按键1拨号功能键,数字键按键8数字键按键2查询功能键,数字键按键9数字键按键3数字键拨号键拨号按键4数字键按键0数字键按键5数字键挂断键挂断,退出按键6数字键按键7数字键(2)实验箱面板上开关功能说明:表1.2 开关功能对照表开关功能开关功能开关1来电1开关2来电2开关3来电3开关4占线开关5接听开关5挂断1.2 硬件连接 确定了基本功能软件设计方案,我们通过查阅相关资料,综合讨论后设
6、计出了硬件连接方案,下面是我们的硬件连接: 开关 K1-K6接B0-B5; 键盘 P0-P3接C0-C3 Q0-Q2接C4-C6; 8254定时器0的GATE接+5V,OUT端与8259的IRQ0连接,D0接8255的A0,8254的CS与CS1(300H)连接。 8259的SP/1接+5V,INTR接INT1,CS-1接CS2(320H)。 1.2.1 键盘扫描连接图:图1.1 1.2.2 显示连接图:图1.21.3 系统设计思路将整个系统分为许多个小的模块,各个模块之间相互独立,通过定义不同的接口来实现各个模块的连接。这样在调试程序的时候,可以分别进行调试。可以加快课程设计的进程,缩短课程
7、设计时间,简化我们的调试工作。关于通讯系统的人机接口设计,其实主要是要完成三大功能的设计。即:接听功能,拨号功能和查询功能。我们从这三个功能入手,分别对其进行了模块细化,画出了相应的程序流程。二、程序流程图2.1 主程序流程图2.12.2 子程序流程图 2.2.1 查询子程序:图2.2 2.2.2 拨号程序:图2.3 2.2.3 拨号子程序:图2.4 2.2.4 接听子程序:图2.5 2.2.5 时间译码及中断程序:图2.6 2.2.6 键盘和开关扫描程序:图2.7三、编程与调试在明确实现目的与方法后,我们画出了流程图,根据流程图,我们编制出整个设计的主程序和子程序,并且通过组员的反复调试后,
8、实现了提出的基本功能和拓展功能。再进行综合调试,测试系统的可行性。四、心得体会两周的计算机硬件课程设计终于要结束了,总算是实现了所要求的基本功能,所要完善的地方也只能再往后的时间里自 己去摸索去改善,但是打从心里觉得这两周真的受益匪浅。在课程设计刚开始阶段,由于始终感觉按键不够用,导致了前面阶段的进展很慢,但大家都还比较有团队协作精神,没 有自己一味的按着自己的思路走,然后大家就坐下来好好的讨论一下,最后是通过小组讨论确定了我们这个设计的统一方案,接着 大家就按照个人的专长,分配好每个人的具体任务,我所负责的是程序的主体流程逻辑以及实现细节。在刚开始画流程图的时候,我没有按照任务书上面的基本要
9、求来画,就是按照自己的想法来设计人机通讯接口,结果浪 费了半天的时间,到最后,当考虑到细节问题时,总觉得有些不合理,所以,都舍弃前面那些不合理的流程图,最后还是小组讨论 定下了流程方案,然后再把流程图细节化。到了编程的时候,我们接受了老师的经验,将整个程序模块化了。其实,这还是我第一 次将整个程序进行模块化,以前做的时候,都是比较小的程序,虽然也有模块化,但对于模块化时的接口并没有考虑得那么详细, 这次不同了,我得好好的考虑每个模块的接口问题了,我看了很多别人的程序,最后,总算有了一个比较明确的方案。最后我分配 给了每个组员相关的模块任务。我认为不管组员的编程能力怎么样,对于这样一个课程设计,
10、每一个组员都应该参与到其中,并且 体会一下其中的乐趣,能力强的,就分得大一点的模块。总之让每一个人都能尝试一下,这样每个人在此次课程设计中应该都会有 不少的收获。经过一个星期的努力,我们程序的基本功能都已经实现了。我们打算在原有的功能上,加上一些比较人性化的细节, 虽然这些细节可能不算是附加功能,但我觉得既然要做,就要尽善尽美。因此,我们又着手修改程序的一些细节,让整个功能更具 人性化。 最后我总结出来几点心得: 1、我们模块化时,一定要注意接口问题; 2、我们写程序时,要养成加注释的习惯; 3、不管是子程序还是跳转的入口点,最好使用能体现程序功能的英文缩写表示。最后也是最重要的一步,调试程序
11、,就比较费时费力了,因为这个不仅仅要看程序逻辑,因为有时候但看程序很难看出 其中的错误,需要用到单步调试,这个实在是太考一个人的耐心了,而且有时候程序不一定有错,而且硬件出问题了,比如接线是 断的,或者按键是坏的不灵敏的,我刚开始的时候在抱怨学校为什么不换一些好一点的硬件,但是后来想想以后的工作我们不也是 会遇到这样的情况吗,难道我们所遇到的硬件机器会一直都是可靠无错的吗?现在早点遇到这种情况,学会如何去处理也对我们是 一种锻炼啊! 我们组本次计算机硬件基础课程设计的题目是通讯设备人机接口设计,我们班采用的是抽签的方式分配题目,当我们接到这个题目的时候顿时傻眼了。不想选这个题目,原因有两个:第
12、一,功能多,繁琐;第二,不利于添加新的功能。 说实话,已经放了一学期的硬件知识,到现在我已经忘得差不多了。本来学习的时候就学得不是很好,为了不拖大家的后腿,我用了第一天整个晚上的时间把硬件的书粗略的过了一遍,把支离破碎的知识重新拾起在脑海里。 第二天,早上八点半,我们准时来到了实验室。我们几个理清了所有的功能和流程,一个上午我们把整个的流程图画出来了,再用了下午跟晚上的时间修改整理出来了主程序,和各个模块的流程图。第三天,我们把主程序和各个模块的流程图用专业工具画了出来。然后进行了任务分工,由于我编程水平一般,所以没有分配到特别复杂的模块,我负责显示模块,以及延时程序。 乍一看,我的任务太简单
13、了,我最初也这么以为,可是当我真正着手干的时候我才发现,各种各样的问题都来了。 比如,我们使用的是三色LED灯的六位显示。我要把所有需要显示的信息全部设计出来,而且显示的每一个信息都不能超过六位,最重要的是,还要使用能用八段LED显示出来的字母,像如果遇见“w”之类的字母,我想没有哪位大神能用八段LED把它显示出来吧。所以,这可真不是一件让人省心的事。遇见像挂断之类的信息还好,直接用英文“hangup”,可是当遇到像接听之类的信息的时候就比较让人头疼了,冥思苦想,最终设计出了“no ans”,我想终究还是能够传情达意。最终我用了1个小时把这些需要显示的八种信息全部用八段LED可以显示的英文或符
14、号设计出来了。设计好这个问题又来了,三色LED能显示的字形码只有0F这十六个数字,我们显示需要用到的字母或者符号全都没有,没办法,自己编呗。对于从来都很不细心的我,这又是一个不小的挑战,还好最终我把这些东西都顺利的弄出来了。(很不幸,调试的时候还是发现编错了一个码) 在设计和调试的过程中我们遇到了各种各样的问题,还好我们相互帮助,相互提醒,相互鼓励,最终完成了这次的设计。这次的设计不仅让我复习了计算机硬件基础的基本知识,还让我学会了理论与实际的结合,最重要的是我体会到了一个团队的力量。 本次课程设计我们小组抽到的是通讯设备人机接口的模拟设计,在刚分配好设计任务书后,小组4人快速选好组长,并初步
15、安排好后面两周的工作。 首先是我们每个人各自研究设计任务书的内容要求,分析好要实现的每一功能,然后复习好计算机硬件的知识并拟定好各自的设计思路以及程序流程图。再接着我们开始进行小组讨论,每个人各自说出自己的设计思路然后由其他组员提出问题,找出不足并提出修改方案并讨论可行性,在整合4个人的思想后初步拟定程序功能以及流程框架,然后一起画出程序流程图并针对细节进行讨论。最终我们设计的通讯设备人机接口总的分为3大功能模块:接听、来电以及查询。 在定好框架后我们开始分配任务,我分配到的是键盘扫描、开关扫描、 显示代码、时间译码以及LED计时初始化的子程序。接下来的一天我们通过翻查资料以及参照实验书上的参
16、考程序完成各自的编程工作。在编写键盘时通过8255C口高位依次给每列送“0”,再由8255低口读取每行的状态查找是否有按键按下,接着延时去抖,判断按下的键并根据键号赋予特定的值。开关的扫描我是通过8255B口来读取的,在判断是哪个按键按下转入相应的子程序。 在编程的过程中只要思路清晰,画好流程图,还是很好写出来的。比较痛苦的是调试的时候,历时长,错难找,让人心情烦躁。语法性的错误还有提示,逻辑推理上的错误,这需要一次次的单步调试,仔细观察以及思索才能找出。让我记忆深刻的是每个子程序调试都通过了,但在连调的时候却还是错误不断。很多地方暴露出来的是我们思维的不严谨,例如再通过8255B口读开关的状
17、态时由于只用到低6位,而高2位一直闲置的着不管,最终导致连调时该判断跳转的地方不跳转,足足让我们检查单步调试而来2个多小时才查找到错误的地方。 这次课程设计历时两周,在我们小组成员的分工合作下最终完成了设计任务。通过这次课程设计我学到了不少东西。不仅让我们复习了以前学过的知识,更然我们深刻体会到程序模块化设计的便利性以及自身思维严谨的重要性。相信这些在我今后的学习工作生活中将有很大的帮助。在这次短暂的两个星期的学习和设计中,我和我的队友们一起合作完成了通讯设备人机接口设计的任务。通讯设备这个系统设计的难点主要在于其设计过程中功能的复杂性。经过讨论,考虑到按键并不充足,我们把这次查询号码的任务单
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
15 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硬件 课程设计 报告 通讯设备 人机 接口 设计