欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    硬件课程设计报告_通讯设备人机接口设计.doc

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

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

    硬件课程设计报告_通讯设备人机接口设计.doc

    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个多小时才查找到错误的地方。 这次课程设计历时两周,在我们小组成员的分工合作下最终完成了设计任务。通过这次课程设计我学到了不少东西。不仅让我们复习了以前学过的知识,更然我们深刻体会到程序模块化设计的便利性以及自身思维严谨的重要性。相信这些在我今后的学习工作生活中将有很大的帮助。在这次短暂的两个星期的学习和设计中,我和我的队友们一起合作完成了通讯设备人机接口设计的任务。通讯设备这个系统设计的难点主要在于其设计过程中功能的复杂性。经过讨论,考虑到按键并不充足,我们把这次查询号码的任务单

    18、独拿出使用一个界面,这样在使用的时候用户按相应的功能键进入所需的界面进行操作。在这次课程设计中,我负责的主要是查询功能的实现。在这次合作设计里,我学到了很多东西。在最初的讨论设计中,组长提出了共用内存的方法,这是我以前没有意识到的。这样做的好处多多,很好的解决了各模块之间的连接问题并让各个模块之间相互独立。这样有效的保证了各个组员独立设计的程序能够组合和为一个可行的大程序。 设计完了程序则该轮到调试了,各个模块进行独立的调试。调试是一件很需要耐心的工作,同时也需要相当的仔细。也许只是稍微写漏了一句语句也会耽搁相当大的时间。尤其是当设计者被调试扰乱了思维的时候更应该静下心来仔细阅读程序,检验自己

    19、的逻辑是否有误。这些都是需要慢慢学习的。 当问题被一个个解决之后,我们终于看到了希望。初步的功能已经可以实现,虽然还有不足,但我们已经向成功迈进。接下来则是对程序进行优化,对整体功能进行更合理的调整,使其更偏向于使用者的习惯。最后我们添加了一些更便利的功能,让整个系统更完善。 总之,在这次的课程设计中,我学习到了很多的东西。这是第一次合作做出一个比较贴近现实生活和实际的系统,感觉自己终于能够将所学的知识跟实际应用联系到了一起。深刻认识到了自己的动手能力以及知识的熟悉程度等方面的欠缺。这还需要进行大量的练习才行。汇编语言与物理硬件靠得很近,这就需要我们对物理硬件有深刻的了解。如何掌控好一个硬件的

    20、特点,则可以更好的进行汇编语言的编程。作为一个团队各个组员之间的相互沟通是完成好一项工作的前提,也是大家进步的条件。 五、程序清单.486CODE SEGMENT USE16 ORG2000HCTRL_8254 EQU 30CHCOUNT0 EQU 300HCOUNT1 EQU 304HCTRL_8255 EQU 20FHPORTA EQU 203HPORTB EQU 207HPORTC EQU 20BHADDR0 EQU 320HADDR1 EQU 328HINTQ EQU 40HKEY_FLAG DB ? ;按键标识SEC_VAR DB ? ;秒钟存储SEC_VAR1 DB ?MIN_VA

    21、R DB ? ;分钟存储MIN_VAR1 DB ?HOUR_VAR DB ? ;时钟存储HOUR_VAR1 DB ?DISP_VAR DB ? ;显存指针DIAL_FLAG DB ? ;拨号位数存储标识SI_ADDR DW ? ;SI地址存储JINWEI DB ? ;进位标识SWIT_FLAG DB ? ;开关标识CMP_FLAG DB ? ;比较标识KEY_S_FLAG DB ? ;是否有按键按下标识SWIT_S_FLAG DB ? ;是否有开关按下标识CMP_FLAG_N_P DB ? ;来电号码个数标志;-;- ASSUME CS:CODE DIV_NUM DB 10MUL_NUM DB

    22、 6 ;乘法间隔ERROR DB 88H,0C0H,88H,88H,86H,0FFH ;错误 BUSY DB 0FFH,91H,92H,0C1H,83H,0FFH;占线NECTED DB 0A1H,84H,87H,0C6H,84H,0C8H;接通信息HANGUP DB 8CH,0C1H,90H,0C8H,0A0H,8BH;挂断NOANS DB 92H,0C8H,0A0H,0FFH,0C0H,0C8H;无人接听AUTOHP DB 8CH,8BH,0C0H,87H,0C1H,0A0H ;自动挂断DIE_OUT DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;熄灭STANDBY D

    23、B 0BFH,0BFH,0BFH,0BFH,0BFH,0BFH;待机NUM1 DB 06H,06H,08H,04H,06H,07H ;显示764866NUM2 DB 06H,05H,03H,03H,04H,08H ;显示843356NUM3 DB 06H,05H,01H,00H,01H,03H ;显示310156SEC_CODE DB 01H,02H,03H,04H,05H,06H ;密码123456SEC_CODE1 DB 6 DUP(0)DISP_MEM DB 6 DUP(0)DISP_MEM1 DB 6 DUP(0) ;显存备用DISP_NUM DB 18 DUP(?)DISP_TAB

    24、DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8H,80H,90H ORG 2100H;-;-主程序START: CALL INITIAL_8254 CALL INITIAL_8255 CALL INITIAL_8259;初始化8254,8255,8259L0: LEA SI,STANDBY MOV SI_ADDR,SI CALL DISP_CODE CALL SWIT_SCAN ;判断是否有来电,开关扫描 CMP SWIT_S_FLAG,01H JNE L1 CMP SWIT_FLAG,2 JG L1 CALL ANSW ;接听子程序L1: MOV SWIT

    25、_S_FLAG,00H MOV SWIT_FLAG,00H CALL KEY_SCAN ;按键扫描,判断是否拨号 CMP KEY_FLAG,01H JNE L2 CALL DIAL_P ;拨号程序L2: CMP KEY_FLAG,2 JNE L0 CALL REFER_P ;查询子程序 JMP L0;-;-显示代码模块 DISP_CODE PROC NEAR PUSHA MOV SI,SI_ADDR LEA DI,DISP_MEM MOV CX,6ERR_AGN:MOV AL,SI MOV DI,AL INC DI INC SI LOOP ERR_AGN CALL DISP MOV ECX,0

    26、1FFFH ;加入了显示延时 LOOP $ POPA RETDISP_CODE ENDP;-;- 初始化模块INITIAL_8254 PROC NEAR; 8254初始化 PUSHA MOV DX,CTRL_8254 MOV AL,30H ;工作方式0,0号通道,先写低后写高字节 OUT DX,AL MOV DX,COUNT0 MOV AX,47000 OUT DX,AL MOV AL,AH OUT DX,AL POPA RETINITIAL_8254 ENDPINITIAL_8255 PROC NEAR;8255初始化,键盘扫描初始 PUSHA MOV DX,CTRL_8255 MOV AL

    27、,83H ;C口高四位输出,低四位输入,b口输入,a口输出 OUT DX,AL MOV DX,PORTA MOV AL,0FFH OUT DX,AL CALL DELAY_05S POPA RETINITIAL_8255 ENDPINITIAL_8259 PROC NEAR ;8259初始化 PUSHA MOV DX,ADDR0 MOV AL,13H OUT DX,AL MOV DX,ADDR1 MOV AL,40H OUT DX,AL MOV DX,ADDR1 MOV AL,01H OUT DX,AL MOV DX,ADDR1 IN AL,DX AND AL,0FEH ;IR0开放 OUT

    28、DX,AL CLI ;关中断,并且填写中断向量表 MOV AX,0 MOV DS,AX LEA AX,INT_P MOV DS:INTQ*4,AX MOV AX,SEG INT_P MOV DS:INTQ*4+2,AX POPA RETINITIAL_8259 ENDP;- ;- 拨号模块DIAL_P PROC NEAR ;拨号程序 PUSHA LD5: LEA DI,DISP_MEM1 ;为了重拨时能显示号码 LEA SI,DIE_OUT ;清屏 MOV SI_ADDR,SI CALL DISP_CODE MOV DIAL_FLAG,00H ;拨号位数存储标识LD0: MOV CX,20 ;

    29、延时5秒不按任何按键推出,有任何按键按下都要重新赋值 LD: CALL KEY_SCAN CMP KEY_S_FLAG,01H JNE LD1 ;没有按键按下,跳到循环10次程序 MOV AL,KEY_FLAG CMP KEY_FLAG,0BH ;判断是否为挂机键 JE OVER_D CMP KEY_FLAG,0AH ;判断是否为接听键 JE JUDGE_6 ;判断是否为6位数 CMP KEY_FLAG,0AH JL NUM_D ;为数字LD1: CALL DELAY_05S ;延时0.5s LOOP LD JMP OVER_DJUDGE_6:CMP DIAL_FLAG,6 JNE ERROR

    30、_D ;显示错误信息 CALL SUB_DIAL ;拨号子程序;-显示所拨号码,挂机键反回主程序 LEA SI,DISP_MEM1 LEA DI,DISP_MEM MOV CX,6LD2: MOV AL,SI MOV DI,AL INC SI INC DI LOOP LD2 CALL DISPLD3: CALL KEY_SCAN CMP KEY_S_FLAG,01H JNE LD3 CMP KEY_FLAG,0BH JE OVER_D CMP KEY_FLAG,0AH JE JUDGE_6 JMP LD3 ;- ERROR_D: LEA SI,ERROR MOV SI_ADDR,SI CALL

    31、 DISP_CODE MOV CX,20ERROR_D1:CALL DELAY_05S ;显示错误信息时间 LOOP ERROR_D1 JMP OVER_DNUM_D: LEA SI,DISP_MEM INC DIAL_FLAG ;拨号位数+1 LEA BX,DISP_TAB MOV AL,KEY_FLAG XLAT ;所拨号码译码 MOV SI,AL MOV DI+5,AL CMP KEY_S_FLAG,01H JNE LD CALL DISP DEC DI MOV AL,SI+5 ;显存数据左移一位 MOV SI+6,AL MOV AL,SI+4 MOV SI+5,AL MOV AL,SI

    32、+3 MOV SI+4,AL MOV AL,SI+2 MOV SI+3,AL MOV AL,SI+1 MOV SI+2,AL MOV AL,SI MOV SI+1,AL JMP LD0 ;跳转到键盘扫描程序OVER_D: POPA RETDIAL_P ENDPSUB_DIAL PROC NEAR ;拨号子程序 PUSHA LS: CALL SWIT_SCAN CMP SWIT_S_FLAG,01H JNE LS4 ;没有按开关跳转到循环 CMP SWIT_FLAG,3 ;判断是否占线 JE DISP_B ;显示占线信息LS4: CMP KEY_FLAG,0AH JNE LS7 LEA SI,N

    33、ECTED ;显示接通信息 MOV SI_ADDR,SI CALL DISP_CODE CALL INITIAL_8255LS7: MOV CX,30 ;调试完后改为30LS3: CALL SWIT_SCAN CMP SWIT_S_FLAG,01H JNE LS5 CMP SWIT_FLAG,4 ;等于表示接通 JE INI_L_8254 ;初始LED,8254(显示000000) CMP SWIT_FLAG,5 JE HANGUP_MES ;显示挂断信息LS5: ;-连接过程中可以挂机 CALL KEY_SCAN CMP KEY_S_FLAG,01H JNE LS8 ;没有按键按下,跳到循环

    34、10次程序 MOV AL,KEY_FLAG CMP KEY_FLAG,0BH ;判断是否为挂机键 JE SUB_D_OVER ;-LS8: MOV DX,203H MOV AL,0FEH OUT DX,AL CALL DELAY_05S LOOP LS3 LEA SI,NOANS ;显示无人接听信息 MOV SI_ADDR,SI CALL DISP_CODE MOV ECX,0FFFFFHWT1: LOOPD WT1 ;显示0.5s JMP SUB_D_OVER ;返回HANGUP_MES:LEA SI,HANGUP MOV SI_ADDR,SI CALL DISP_CODE MOV ECX,

    35、0FFFFFHWT4: LOOPD WT4 JMP SUB_D_OVER ;跳转到子程序结束INI_L_8254:CALL INITIAL_LED00 ;初始化led让其显示6个0 CALL INITIAL_8254 ;8254装入初值1s STI ;开中断LS0: CALL KEY_SCAN MOV DX,203H MOV AL,0FEH OUT DX,AL CMP KEY_FLAG,11 JNE LS0 ;不挂断继续扫描键盘 CLI ;按下挂机键关中断 LEA SI,DIE_OUT MOV SI_ADDR,SI CALL DISP_CODE ;LED熄灭 CALL DELAY_05S JMP SUB_D_OVER DISP_B:MOV CX,10 LEA SI,BUSY MOV SI_ADDR,SI CALL DISP_CODE ;显示占线BUSYLS1: CALL KEY_SCAN CMP KEY_S_FLAG,01H JNE LS6 CMP KEY_FLAG,0AH JE DIAL_CONT ;继续拨号,显示号码跳转


    注意事项

    本文(硬件课程设计报告_通讯设备人机接口设计.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922