《微控制器技术与应用》学习情景六 键控记分器的制作与调试_第1页
《微控制器技术与应用》学习情景六 键控记分器的制作与调试_第2页
《微控制器技术与应用》学习情景六 键控记分器的制作与调试_第3页
《微控制器技术与应用》学习情景六 键控记分器的制作与调试_第4页
《微控制器技术与应用》学习情景六 键控记分器的制作与调试_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习情景六键控记分器的制作与调试6.1任务1实用键控开关灯的制作与调试6.2任务2静态显示数码管显示器6.3任务3动态显示数码管显示器6.4任务4记分器的制作与调试6.5情景评价6.6情景总结返回6.1任务1实用键控开关灯的制作与调试

6.1.1任务内容利用C51语言编程,实现微控制器89C51对按键的控制。采用防抖动处理,按下S1使D1亮,按下S2使D1灭;按下S3使36V的灯亮,按下S4使36V的灯灭。6.1.2任务实施1.硬件电路设计根据任务要求,首先要按照如图6.1所示硬件电路,在微控制器最小系统基础上焊接继电器控制电路。下一页返回6.1任务1实用键控开关灯的制作与调试

2.软件设计(1)键盘消抖技术作为一个按键,从没有按下到按下以及释放是一个完整的过程,也就是说,当按下一个按键时,总希望某个命令只执行一次,不要有干扰进来,因为在按下的过程中,一旦有干扰过来,可能造成误触发过程。一般情况下,一个按键按下的时候,总是在按下的时刻存在一定的干扰信号,按下之后就基本上进入了稳定的状态。具体的一个按键从按下到释放的全过程的信号图如图6.2所示。上一页下一页返回6.1任务1实用键控开关灯的制作与调试在进行程序设计时,从按键被识别按下之后,延时5ms以上,避开干扰信号区域,再来检测一次,看按键是否真的已经按下。若真的已经按下,这时肯定相应端口为低电平;若这时检测到的是高电平,证明刚才是由于干扰信号引起的误触发,CPU就认为是误触发信号而舍弃这次的按键识别过程。从而提高了系统的可靠性。根据上面的分析,防抖动过程为先判断按键状态,当检测到P口按键状态发生变化以后,先不处理,延时10ms左右,然后再次采集按键状态。如果两次按键状态不同就表示是抖动,不需动作;如果两次按键状态相同那就表示是真的有按键按下。一般采用if语句嵌套来完成。上一页下一页返回6.1任务1实用键控开关灯的制作与调试

if语句处理两个分支,处理多个分支时需使用if-else-if结构,但如果分支较多,则嵌套的if语句层就越多,程序不但庞大而且理解也比较困难。因此,C语言又提供了一个专门用于处理多分支结构的条件选择语句,称为switch语句,又称开关语句,使用switch语句直接处理多个分支(当然包括两个分支)。其一般形式如下所示。上一页下一页返回6.1任务1实用键控开关灯的制作与调试

(2)硬件分析流程和示例程序先判断是否有键按下,再判断是哪一个键按下来确定下一步的动作,即是D3亮还是D3灭。程序中P3IOxc3主要是将P3.0,P3.1,P3.民P3.7屏蔽掉,如果没有键按下则P3IOxc3等于Oxff,即没有键按下,中间四个端口都是高电平;如果有键按下则P3中间四个端口将有低电平,也就是P3IOxc3不等于Oxff。按键控制开关灯的电原理图中,接有四个按钮开关S1~S4,组成简单的一组独立键盘,分别接在P3.氏P3.卜P3.之P3.3引脚上,当按键未按下时,相应端口为高电平,按下按键时,相应端口为低电平。微控制器利用查询指令S1的状态进行判断,当按下S1即P3.2为低电平时,P1.2输出低电平,D3亮并且PNP三极管Q10导通,继电器线圈得电,常开触点与静触点接触从而使灯泡亮。上一页下一页返回6.1任务1实用键控开关灯的制作与调试

3.调试与仿真①运行KeilNVersion2软件,新建工程文件“rw61.μv2”。②对基本的工作参数进行设置。③在该工程文件下,新建C源程序文件“rw61.c”。④输入编制好的程序,并进行编译、调试,注意使用复位、全速运行、停止、单步运行等工具。⑤处理和解决调试过程中出现的问题。⑥最后通过编译并生成“rw61.hex”文件。⑦运行Proteus软件进行仿真并观察仿真结果,必要时要对程序进行修改。上一页下一页返回6.1任务1实用键控开关灯的制作与调试4.结果测试在仿真正确的情况下,在Proteus软件中,利用模拟测量工具对二极管端电压U、流过二极管的电流I等参数进行测量,注意选用方法,并与理论值进行对比并分析其原因。6.1.3任务扩展①绘制流程图,编写程序,实现继电器控制36V(220V)灯泡,按S1灯亮,2秒闪一次,按S2灯灭②测量吸合电压和吸合电流。找来可调稳压电源和电流表,给继电器输入一组电压,且在供电回路中串入电流表进行监测。慢慢调高电源电压,听到继电器吸合声时,记下该吸合电压和吸合电流。为求准确,可以多试几次而求平均值。上一页下一页返回6.1任务1实用键控开关灯的制作与调试③测量释放电压和释放电流。也是像上述那样连接测试,当继电器发生吸合后,再逐渐降低供电电压,当听到继电器再次发生释放声音时,记下此时的电压和电流,亦可多尝试几次而取得平均的释放电压和释放电流。一般情况下,继电器的释放电压约在吸合电压的10%一50%,如果释放电压太小(小于1/10的吸合电压),则不能正常使用了,这样会影响电路的稳定性,工作不可靠。释放电压=___________V释放电流=_________mA上一页下一页返回6.1任务1实用键控开关灯的制作与调试④4x4键盘硬件电路原理。每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需变成数字量“0”和“1",开关的一端(列线)通过电阻接从、:,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么,还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。4x4键盘硬件电路如图6.3所示。上一页返回6.2任务2静态显示数码管显示器6.2.1任务内容利用C51语言编程,实现对微控制器89C51控制数码管静态显示:分别按下按键S1~S4,第1~4个数码管分别显示1,2,3,4。在KeilC51软件环境下进行编译并调试,并利用Proteus软件进行仿真,验证其功能。6.2.2任务实施1.硬件电路设计根据任务要求,设计硬件电路,电路原理如图6.4所示。元器件清单如表6一1所示。下一页返回6.2任务2静态显示数码管显示器2.软件设计(1)知识巩固与提高数码管是常用的显示器件,根据其位数的多少可以分为单位、双位和四位一体的数码管;根据内部结构可以分为共阴极数码管,共阳极数码管;根据尺寸可以分为1寸,2寸,5寸等数码管。不同的数码管封装不同。无论哪种数码管,其显示原理都是一样的,内部由7到8个发光二极管构成数码管发光的各管段。另外还有“米”字形等数码管。普通的“8"字共阳极数码管的外形和内部结构如图6.5所示。通常使用万用表来检测数码管的管脚排列和好坏。使用数字万用表,红表笔连接表内电池正极,黑表笔连接表内电池负极,当把数字万用表置于二极管档位时,两个表笔之间开路电压约1.5V,把表笔加通发光二极管的两端可以点亮发光二极管。上一页下一页返回6.2任务2静态显示数码管显示器对于1位数码管,有两个引脚为公共引脚,其内部是连通的。测量时先找出其公共引脚,用数字万用表的二极管档位,分别接触数码管的各引脚,判断出2个公共引脚(数字万用表蜂鸣提醒)。使用数字万用表的红表笔接公共端,黑表笔接其他引脚,观察数码管管段有没有微亮,数字万用表能不能读出内阻。如果有这样的现象,则红表笔所接为公共阳极,黑表笔所接为各管段对应引脚;如果没有这样的现象,则黑表笔所接为公共阴极,红表笔所接为其他管段对应引脚。当使用指针式万用表测量数码管时,原理相同。指针表应选用Rx1K档位,但其红表笔连接表内电池负极,黑表笔连接表内正极,通过测量各管段的发光二极管是正偏微通还是反偏截止来判断各引脚。对于尺寸较大的数码管测量可使用Rx10K档位。上一页下一页返回6.2任务2静态显示数码管显示器(2)流程图和参考程序程序流程图如图6.6所示。3.调试与仿真①运行KeilNVersion3软件,新建工程文件“rw62.μv2"②对该项目工程文件的基本工作参数进行设置。③在该工程文件下,新建C源程序文件“rw62.c"④输入编制好的程序,并进行编译、调试,注意使用复位、全速运行、停止、单步运行等工具。⑤处理和解决调试过程中出现的问题。⑥最后通过编译并生成“rw62.hex”文件。⑦运行Proteus软件进行仿真并观察仿真结果,必要时要对程序进行修改。上一页下一页返回6.2任务2静态显示数码管显示器4.结果测试在正确实现其功能的前提下,测试数码管静态显示的数值是否稳定,图像是否清晰,看是否准确并思考如何调整。注意选用的工具和测量方法。6.2.3任务扩展①试编写程序使得指定第4个数码管依次显示0到F,间隔时间1s②试编写程序使得8个数码管依次显示。到7,间隔0.5s思考:将间隔时间逐渐改小,看看出现什么效果,是什么原因。③编写数码管测试程序,要求:使8个数码管包括小数点都点亮3s,测试数码管是否都能点亮。使8个数码管的8个段分别显示一次,测试每一个数码管的每一个段是否能单独点亮。上一页返回6.3任务3动态显示数码管显示器6.3.1任务内容要实现两位数码管显示2位的十进制数,首先把个位数送第一个数码管显示,延时,然后把十位数送第二个数码管显示,延时,再循环。当延时的时间长,频率低时,能看到数字的变换或者闪烁;当延时时间短,频率高时,人眼看起来两位数是同时显示的。在KeilC51软件环境下进行编译并调试,利用Proteus软件进行仿真,验证结果的正确性。6.3.2任务实施1.硬件电路设计根据任务要求,微控制器驱动数码管动态显示与静态显示电路原理图一致。硬件电路图如学习情景七中的图7.3所示下一页返回6.3任务3动态显示数码管显示器2.软件设计(1)知识巩固与提高①要使接在PO和P2上的两个以上的数码管同时显示不同的数字,需要使用数码管的动态扫描显示技术。即轮流向各位数码管送出段码和相应的位码,利用发光二极管的余光和人眼睛的视觉暂留效应,使人感觉各位数码管同时在显示。实际上,多位数码管是一位一位轮流显示的,只是轮流的速度非常快,人眼已经无法分辨。②数码管扫描的频率必须大于42Hz,才不会感觉到闪烁。③i=k/10表示k除以10取整,i等于k的十位数;j=k%10表示k对10取余,j等于k的个位数。(2)流程图和程序源代码程序流程图如图6.7所示。上一页下一页返回6.3任务3动态显示数码管显示器3.调试与仿真①运行KeilNVersion3软件,新建工程文件“rw63.μv2"②对基本的工作参数进行设置。③在该工程文件下,新建C源程序文件“rw63.c"④输入编制好的程序,并进行编译、调试。⑤注意处理和解决调试过程中易出现的逻辑和嵌套问题。⑥最后通过编译并生成“rw63.hex”文件。⑦运行Proteus软件进行仿真并观察仿真结果,必要时要对程序进行修改。4.结果测试在Proteus软件中仿真,验证结果的正确性,观察数码管亮度变化,必要时可实际搭接电路进行观察,体会并分析其工作原理,思考在其他领域的应用。上一页下一页返回6.3任务3动态显示数码管显示器6.3.3任务扩展①日历显示,使数码管显示201301080分析:可以把要显示的年月日等8个数放到一个数组中去,每次显示数组中的一个数,循环显示。②将2位数码管显示0~99,秒计时,每秒加1。使用示波器或者计时器计量提高精度。分析:通过计算2位数码管显示一次所占用的时间,计算出1s到时数码管显示的次数得到1s的时刻,然后对要显示的数进行加1.③编程使微控制器通过动态扫描控制8位数码管显示数88888888,测试:第2位数码管b段电压:Ub=__________流过所有数码管b段的电流:Ib=________上一页返回6.4任务4记分器的制作与调试6.4.1任务内容用C51语言编程,实现对微控制器AT89C51及外部电路电平变化的控制。在主程序中判断按键是否按下,并对某一位数码管扫描输出,如此循环,实现动态扫描显示和实时接收按键指令。两位数码管显示分值,通过按键S2和S3可以改变分值。6.4.2任务实施1.硬件电路设计根据任务要求,设计硬件电路,电路原理同图6.4所示,元器件清单同表6一1所示。下一页返回6.4任务4记分器的制作与调试2.软件设计(1)知识巩固与提高程序设计分析:定义一个缓冲数组,把每一个数码管要显示的数放到这个数组中去,在动态扫描显示输出时,每次显示其中的一个,起到简化程序的作用。(2)程序流程图和源程序程序流程图如图6.8所示。上一页下一页返回6.4任务4记分器的制作与调试

3.调试与仿真①运行KeilNVersion2软件,新建工程文件“rw64.μv2"②对该项目工程文件的基本工作参数进行设置。③在该工程文件下,新建C源程序文件“rw64.c"④输入编制好的程序,并进行编译、调试,注意使用复位、全速运行、停止、单步运行等工具。⑤处理和解决调试过程中出现的问题。⑥最后通过编译并生成“rw64.hex”文件。⑦运行Proteus软件进行仿真并观察仿真结果,必要时要对程序进行修改。4.结果测试:在正确实现其功能的前提下,测试按键及数码管显示,看是否准确并思考如何调整。上一页下一页返回6.4任务4记分器的制作与调试6.4.3任务扩展①利用微控制器进行日历显示,使数码管显示20130208,按键S1年加1,按键S2月加1,按键S3日加1,S4则复位恢复到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论