第三章——独立按键及矩阵键盘控制LED灯(2).讲述
- 格式:ppt
- 大小:687.51 KB
- 文档页数:37
独立按键控制led课程设计一、课程目标知识目标:1. 学生能理解独立按键的工作原理,掌握其电路连接方式。
2. 学生能掌握LED的基本特性,了解其在电路中的应用。
3. 学生能理解独立按键控制LED的原理,掌握相关编程方法。
技能目标:1. 学生能独立完成独立按键与LED的电路连接,并进行功能测试。
2. 学生能编写简单的程序,实现独立按键控制LED的亮灭、闪烁等功能。
3. 学生能运用所学知识解决实际问题,具备一定的创新意识和动手能力。
情感态度价值观目标:1. 学生通过课程学习,培养对电子技术的兴趣,提高学习积极性。
2. 学生在团队合作中,学会沟通、协作,培养团队精神。
3. 学生在实践过程中,树立正确的价值观,认识到科技对生活的影响。
课程性质:本课程为实践性课程,结合理论教学,注重培养学生的动手能力、创新意识和实际应用能力。
学生特点:学生处于初中阶段,具有一定的物理知识和动手能力,对电子技术有一定的好奇心和兴趣。
教学要求:教师应注重理论与实践相结合,引导学生主动参与实践,鼓励学生创新思维,提高解决问题的能力。
同时,关注学生的情感态度价值观培养,使学生在掌握知识技能的同时,形成良好的综合素质。
通过分解课程目标为具体的学习成果,为后续教学设计和评估提供依据。
二、教学内容1. 理论知识:- 介绍独立按键的原理、功能及其在电路中的应用。
- 讲解LED的基本结构、特性以及在电路中的作用。
- 分析独立按键控制LED的电路原理及编程方法。
2. 实践操作:- 指导学生进行独立按键与LED的电路连接,确保正确无误。
- 帮助学生编写程序,实现独立按键控制LED的亮灭、闪烁等功能。
- 引导学生进行功能测试,分析并解决可能出现的故障。
3. 教学大纲:- 第一课时:介绍独立按键和LED的基本概念、原理及应用。
- 第二课时:讲解独立按键控制LED的电路原理及编程方法。
- 第三课时:指导学生进行电路连接和程序编写,实现功能。
- 第四课时:进行功能测试,总结问题,提高实践能力。
实验20:键盘控制LED发光二级管(模拟声控电子琴)设计报告学院土木工程班级交通021 设计人吴宁学号 021192 成绩一、设计题目:键盘控制LED发光二极管(模拟声控电子琴)二、总体设计:1、题目的功能:当按下一个键时对应的发光二极管点亮,按下另一个键时,该键对应的发光二极管点亮,同时前一个发光二极管熄灭。
2、总体方案设计:首先检索按键信息,判断被按下的时哪个键,判断出键以后利用该键的列扫描码判断点灯信息。
实验开发系统中只有16个发光二极管,用8255作输出口,利用PA口控制中音7个音符对应的7个发光二极管,PB口控制高音的7个发光二极管,PC口控制两个低音的6、7的发光二极管,剩下5个音可重复使用发光二极管。
3、受音乐声控喷水注的启发,可以设计一个音乐键控发光二极管的模拟电子琴(无声)。
将实验开发系统上的键盘自定义成中音、低音和高音的1~7键,任一个键按下后对应一个发光二极管被点亮;当按下一个键时,使该键对应的发光二极管被点亮,同时使前一个发光二极管0;随着乐谱的弹奏,相应的发光二极管随着亮灭。
三、硬件设计:1四、软件设计:1、2ORG 0000HSTART: MOV SP,#60HMOV DPTR,#0FF20HMOV A,#03HMOVX @DPTR,AMOV 70H,#00MOV DPTR ,#0FF2BHMOV A,#80HMOVX @DPTR,AKEY1: LCALL KS1 ;调用判断有无键闭合子程序JNZ LK1N1: LCALL DIR ;调用显示子程序LJMP KEY1LK1: LCALL DIR ;延时12msLCALL DIRLCALL KS1JNZ LK2LCALL DIRLJMP KEY1LK2: MOV R2,#0FEH ;列扫描码送R2 MOV R4,#0 ;R4时列计数单元LK4: MOV DPTR,#0FF21H ;列扫描码送PA口MOV A,R2MOVX @DPTR,AINC DPTRINC DPTRMOVX A,@DPTR ;读C口JB ACC.0,LONE ;0行为高电平,转判1行MOV A,#0 ;0行首键号送ALJMP LKPLONE: JB ACC.1,LTWO ;转判2行MOV A,#08H ;1行首键号送ALJMP LKPLTWO: JB ACC.2,LTHR ;转判3行MOV A,#10H ;2行首键号送ALJMP LKPLTHR: JB ACC.3,LFORMOV A,#18HLJMP LKPLFOR: JB ACC.4,AMMMOV 70H,#19HLJMP KEY1LKP: ADD A,R4 ;行首键号+列号=键号MOV 70H,APUSH ACCAMM: LJMP NEXT ;转判下一列LK3: LCALL DIR ;判断键释放否LCALL KS1JNZ LK3POP ACCCJNE A,#09H ,NX1 ;键值不等,跳转下一键值,MOV A,#0FEH 若相等则向下执行,控制灯的亮灭,MOV DPTR,#0FF28H NX1-----NX20分别控制16个灯的亮灭MOVX @DPTR,ALJMP KEY1NX1: CJNE A,#0BH ,NX2MOV A,#0FDHMOV DPTR,#0FF28HMOVX @DPTR,ALJMP KEY1NX2: CJNE A,#0DH ,NX3MOV A,#0FBHMOV DPTR,#0FF28HMOVX @DPTR,ALJMP KEY1NX3: CJNE A,#0FH ,NX4 MOV A,#0F7HMOV DPTR,#0FF28HMOVX @DPTR,ALJMP KEY1NX4: CJNE A,#19H ,NX5 MOV A,#0EFHMOV DPTR,#0FF28HMOVX @DPTR,ALJMP KEY1NX5: CJNE A,#1BH ,NX6 MOV A,#0DFHMOV DPTR,#0FF28HMOVX @DPTR,ALJMP KEY1NX6: CJNE A,#1DH ,NX7 MOV A,#0BFHMOV DPTR,#0FF28HMOVX @DPTR,ALJMP KEY1NX7: CJNE A,#08H ,NX8 MOV A,#0FEHMOV DPTR,#0FF29HMOVX @DPTR,ALJMP KEY1NX8: CJNE A,#0AH ,NX9 MOV A,#0FDHMOV DPTR,#0FF29HMOVX @DPTR,ALJMP KEY1NX9: CJNE A,#0CH ,NX10 MOV A,#0FBHMOV DPTR,#0FF29HMOVX @DPTR,ALJMP KEY1NX10: CJNE A,#0EH ,NX11 MOV A,#0F7HMOV DPTR,#0FF29HMOVX @DPTR,ALJMP KEY1NX11: CJNE A,#18H ,NX12 MOV A,#0EFHMOV DPTR,#0FF29HMOVX @DPTR,ALJMP KEY1NX12: CJNE A,#1AH ,NX13 MOV A,#0DFHMOV DPTR,#0FF29HMOVX @DPTR,ALJMP KEY1NX13: CJNE A,#1CH ,NX14 MOV A,#0BFHMOV DPTR,#0FF29HMOVX @DPTR,ALJMP KEY1NX14: CJNE A,#01H ,NX15 MOV A,#0FEHMOV DPTR,#0FF2AHMOVX @DPTR,ALJMP KEY1NX15: CJNE A,#03H ,NX16 MOV A,#0FDHMOV DPTR,#0FF2AHMOVX @DPTR,ALJMP KEY1NX16: CJNE A,#05H ,NX17 MOV A,#0FBHMOV DPTR,#0FF2AHMOVX @DPTR,ALJMP KEY1NX17: CJNE A,#07H ,NX18 MOV A,#0F7HMOV DPTR,#0FF2AHMOVX @DPTR,ALJMP KEY1NX18: CJNE A,#11H ,NX19 MOV A,#0EFHMOV DPTR,#0FF2AHMOVX @DPTR,ALJMP KEY1NX19: CJNE A,#13H ,NX20 MOV A,#0DFHMOV DPTR,#0FF2AHMOVX @DPTR,ALJMP KEY1NX20: CJNE A,#15H ,NX21 MOV A,#0BFHMOV DPTR,#0FF2AHMOVX @DPTR,ALJMP KEY1NX21: CJNE A,#17H ,NX22MOV A,#07FHMOV DPTR,#0FF2AHMOVX @DPTR,ALJMP KEY1NX22: NOPNEXT: INC R4 ;列扫描计数器加1 MOV A, R2 ;判断是否已扫到最后一列JNB ACC.7,KND ;扫到则转移RL A ;列扫描码左移一位MOV R2,ALJMP LK4KND: LJMP KEY1KS1: MOV DPTR,#0FF21HMOV A,#0 ;全0送PA口MOVX @DPTR,AINC DPTRINC DPTRMOVX A, @DPTR ;读键入状态CPL AANL A,#1FH ;屏蔽高位RETDIR: MOV R0, #70HMOV A,@R0ANL A,#0FHMOV 30H,AMOV A,@R0SWAP AANL A,#0FHMOV 31H,AMOV R0, #30HMOV R3, #01HDO1: MOV A,R3MOV DPTR,#0FF21HMOVX @DPTR, AINC DPTRMOV A,@R0ADD A,#0DHMOVC A,@A+PCDIR1: MOVX @DPTR,ALCALL DL1MOV A, R3RL AJB ACC.2,LD1MOV R3,AINC R0LJMP DO1LD1: RETDSEH: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H 赋值语句DB 80H,90H,88H,83H,0C6H,0A1H,086H,08EH,0FFH,0C0HDL1: MOV R7,#2DL: MOV R6,#0FFHDL6: DJNZ R6,DL6DJNZ R7,DLRETEND五、调试:把关于键盘的程序输入调试,观察哪个键起什么作用,它的输出信号是什么输出到哪,这一段程序是逐步运行的,所以对各个键的信号输入输出有了一定的认识,然后调控LED灯的输入程序,发现LED灯是低电平输入的时候亮。
单片机独立按键和矩阵键盘概念及原理一、基本知识 1.按键分类与输入原理 按键按照结构原理科分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关灯;另一类是无触点式开关按键,如电气式按键,磁感应按键等。
前者造价低,后者寿命长。
目前,微机系统中最常见的是触点式开关按键。
在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其他按键都是以开关状态来设置控制功能或输入数据的。
当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入时与软件结构密切相关的过程。
对于一组键或一个键盘,总有一个接口电路与CPU相连。
CPU可以采用查询或中断方式了解有无将按键输入,并检查是哪一个按键按下,将该键号送人累加器,然后通过跳转指令转入执行该键的功能程序,执行完成后再返回主程序。
2.按键结构与特点 微机键盘通常使用机械触点式按键开关,其主要功能式把机械上的通断转换为电气上的逻辑关系。
也就是说,它能提供标准的TTL逻辑电平,以便于通用数字系统的逻辑电平相容。
机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定的时间触点机械抖动,然后其触点才稳定下来。
其抖动过程如下图1所示,抖动时间的长短与开关的机械特性有关,一般为5-10ms。
在触点抖动期间检测按键的通与断,可能导致判断出错,即按键一次按下或释放错误的被认为是多次操作,这种情况是不允许出现的。
为了克服你、按键触点机械抖动所致的检测误判,必须采取消抖措施。
按键较少时,可采用硬件消抖;按键较多式,采用软件消抖。
图1 按键触点机械抖动 (1)按键编码 一组按键或键盘都要通过I/O口线查询按键的开关状态。
根据键盘结构的不同,采用不同的编码。
无论有无编码,以及采用什幺编码,最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的跳转。
(2)键盘程序 一个完整的键盘控制程序应具备以下功能: a.检测有无按键按下,并采取硬件或软件措施消抖。
键盘控制器(KEYBOARD CONTROLLER)使用说明书Operation InstructionCopyright 2003-2009. All Rights Reserved.温馨提示:感谢您使用本公司产品。
为了让您能够尽快熟练的操作本机,请您仔细阅读我们为您配备内容详细的使用说明书,从中您可以获取有关产品安全注意事项、产品介绍以及产品使用方法等方面的知识。
当您阅读完说明书后,请将它妥善保存好,以备日后参考。
如果您在产品的使用过程中发现什么问题,请联系产品技术服务人员。
谢谢您的合作!申明:在编写此说明书时我们非常小心谨慎,并认为此说明书中所提供的信息是正确可靠的,然而难免会有错误和疏漏之处,请您多加包涵并热切欢迎您的指正。
但是我们将不对本手册可能出现的问题和疏漏负责。
同时,由于我们无法控制用户对本手册可能造成的误解,因此,将不负责在使用本手册的过程中出现的事故或由此引起的损坏。
对于因使用本产品所造成的任何损坏第三方的索赔不负责任。
对于因软件的误操作、产品维修、或其它意外情况等引起资料的删改或丢失不负任何责任,也不对由此造成的其它间接损失负责。
本产品的发行和销售由原始购买者在许可协议条款下使用。
未经允许,任何单位和个人不得将本说明书全部或部分复制、再生或翻译成其它机器可读形式的电子媒介。
本说明书若有任何修改恕不另行通知。
因软件版本升级而造成的与本说明书不符,以软件为准。
注:本设备在出厂前已经过严格的质量测试,符合国家电磁辐射标准。
目录第一部分键盘操作 (4)1.1 设备概述 (4)1.2 开机运行 (6)1.3 键盘登录 (6)1.4 键盘注销 (6)第二部分控制监控主机 (6)2.1 选择监视器 (6)2.2 选择图像 (7)2.3 向前、向后切换图像 (7)2.4 图像保持 (7)2.5 主机自由切换 (7)2.6 主机程序切换 (8)2.7 主机同步切换 (9)2.8 主机群组切换 (10)2.9 屏幕分割控制 (10)2.10 屏幕拼接控制 (10)2.11 保存主机当前设置 (11)2.12 网络主机控制 (11)2.13 监控主机菜单设置 (11)第三部分控制摄像机 (12)3.1 选择摄像机 (12)3.2 控制摄像机方向 (12)3.3 控制摄像机镜头 (13)3.4 预置位操作 (13)3.5 图像返回 (14)3.6 自动巡视 (14)3.7 轨迹扫描 (14)3.8 区域扫描 (15)3.9 云台自动扫描 (15)3.10 操作辅助功能 (16)3.11 智能摄像机菜单设置 (16)第四部分控制报警主机 (16)4.1 选择警点 (16)4.2 防区警点设防、撤防 (16)4.3 报警应答 (17)4.4 警点状态查询 (17)4.5 报警联动开、关 (17)4.6 报警联动时间 (17)第五部分控制数字录像机 (17)5.1 选择数字录像机 (17)5.2 图像监控 (18)5.3 多画面监控 (18)5.4 图像浏览 (18)5.5 图像抓拍 (18)5.6 图像播放、暂停 (18)5.7 图像快退、快进 (18)5.8 图像段首、段末 (18)5.9 图像帧退、帧进 (18)5.10 图像录制 (19)5.11 图像停止 (19)5.12 信息显示 (19)5.13 录像机菜单设置 (19)5.14 退出控制数字录像机 (19)第六部分宏指令功能 (19)6.1 宏指令在单级系统的应用 (19)6.2 宏指令在多级系统的应用 (19)6.3 宏指令操作 (20)第七部分键盘设置 (21)7.1 通讯速率设置 (21)7.2 控制协议设置 (21)7.3 操作员设置 (22)7.4 常规设置 (22)7.5 语言选择 (24)7.6 版本信息 (24)7.7 退出 (24)第八部分键盘连接 (25)8.1 键盘与智能摄像机、解码器连接示意图 (25)8.2 键盘与监控主机连接示意图 (26)8.3 键盘与报警主机连接示意图 (27)8.4 键盘与数字录像机连接示意图 (28)安全事项 (29)主键盘控制器KEYBOARD CONTROLLER第一部分键盘操作1.1 设备概述:主键盘控制器是以操作控制安防监控主机、智能摄像机、数字录像机、报警主机为特色的操作设备。
键盘控制器( KEYBOARD CONTROLLER )使用说明书Operation InstructionCopyright 2003-2009. All Rights Reserved.温馨提示:感谢您使用本公司产品。
为了让您能够尽快熟练的操作本机,请您仔细阅读我们为您配备内容详细的使用说明书,从中您可以获取有关产品安全注意事项、产品介绍以及产品使用方法等方面的知识。
当您阅读完说明书后,请将它妥善保存好,以备日后参考。
如果您在产品的使用过程中发现什么问题,请联系产品技术服务人员。
谢谢您的合作!申明:在编写此说明书时我们非常小心谨慎,并认为此说明书中所提供的信息是正确可靠的,然而难免会有错误和疏漏之处,请您多加包涵并热切欢迎您的指正。
但是我们将不对本手册可能岀现的问题和疏漏负责。
同时,由于我们无法控制用户对本手册可能造成的误解,因此,将不负责在使用本手册的过程中岀现的事故或由此引起的损坏。
对于因使用本产品所造成的任何损坏第三方的索赔不负责任。
对于因软件的误操作、产品维修、或其它意外情况等引起资料的删改或丢失不负任何责任,也不对由此造成的其它间接损失负责。
本产品的发行和销售由原始购买者在许可协议条款下使用。
未经允许,任何单位和个人不得将本说明书全部或部分复制、再生或翻译成其它机器可读形式的电子媒介。
本说明书若有任何修改恕不另行通知。
因软件版本升级而造成的与本说明书不符,以软件为准。
注:本设备在岀厂前已经过严格的质量测试,符合国家电磁辐射标准。
第一部刀键盘操作,,,,,,,,,,,,,,,,,,,,J4 1.1设备概述,,,,,,,,,,,,,,,,,,,,,,,4 1.2开机运行X I Iz U I -J )))5 JJJJJJJJJJJJJJJJJJJ6 1.3乍键盘登^录,,,,,,,,,,,,,,,,,,,,,,,6 1.4键盘注销,,,,,,,,,,,,,,,,,,,,,,,6第二部分控制监控主机6 2.1选择监视器,,,,,,,,,,,,,,,,,,,,,,6 2.2选择图像,,,,,,,,,,,,,,,,,,,,,,,7 2.3向前、向后切换图像,,,,,,,,,,,,,,,,,,7 2.4图像保持,,,,,,,,,,,,,,,,,,,,,,,7 2.5主机自由切换,,,,,,,,,,,,,,,,,,,M7 2.6主机程序切换,,,,,,,,,,,,,,,,,,,,,8 2.7主机同步切换,,,,,,,,,,,,,,,,,,,,,9 2.8主机群组切换,,,,,,,,,,,,,,,,,,,,,10 2.9屏幕分割控制,,,,,,,,,,,,,,,,,,,,,10 2.10屏幕拼接控制,,,,,,,,,,,,,,,,,,,,,10 2.11保存主机当前设置,,,,,,,,,,,,,,,,,,,11 2.12网络主机控制,,,,,,,,,,,,,,,,,,,,,11 2.13监控主机菜单设置,,,,,,,,,,,,,,,,,,,11第三部分控制摄像机12 3.1选择摄像机,,,,,,,,,,,,,,,,,,,,,,12 3.2控制摄像机方向,,,,,,,,,,,,,,,,,,,,12 3.3控制摄像机镜头,,,,,,,,,,,,,,,,,,M13 3.4预置位操作,,,,,,,,,,,,,,,,,,,,,,13 3.5图像返回,,,,,,,,,,,,,,,,,,,,,,,14 3.6自动巡^视,,,,,,,,,,,,,,,,,,,,,,,14 3.7轨迹扫描,,,,,,,,,,,,,,,,,,,,,,,14 3.8域扫扌田,,,,,,,,,,,,,,,,,,,,,,,15 3.9厶台自动扫描,,,,,,,,,,,,,,,,,,,,,15 3.10操作辅助功能,,,,,,,,,,,,,,,,,,,,,16 3.11智能摄像机菜单设置,,,,,,,,,,,,,,,,,,16第四部分控制报警主机164.1选择警占八、、164.2防区警点设防、撤防,,,,,,,,,,,,,,,,,,164.3报警应答-J 1×>- I==T Z—1- I_I ))))5 JJJJJJJJJJJJJJJJJJ17 4.4警点状态查询17 4.5报警联动开、关17 4.6报警联动时间17第五部分控制数字录像机17 5.1选择数字录像机17 5.2图像监控,,,,,,,,,,,,,,,,,,,,,,,18 5.3多画面监控,,,,,,,,,,,,,,,,,,,,,,18 5.4图像浏览,,,,,,,,,,,,,,,,,,,,,,,18 5.5图像抓拍,,,,,,,,,,,,,,,,,,,,,,,18 5.6图像播放、暂停18 5.7图像快退、快进18 5.8图像段首、段末18 5.9图像帧退、帧进18 5.10图像录制19 5.11图像停止,,,,,,,,,,,,,,,,,,,,,,,19 5.12彳口息显,,,,,,,,,,,,,,,,,,,,,,J19 5.13录像机菜单设置19 5.14退岀控制数字录像机,,,,,,,,,,,,,,,,M19第八部分宏指令功冃匕”””””””””19 6.1宏指令在单级系统的应用,,,,,,,,,,,,,,,,19 6.2宏指令在多级系统的应用,,,,,,,,,,,,,,,,196.3宏指令操作/∕~∖ J H y J/卜 I \ ))JJJJJJJJJJJJJJJJJJJJ 20第七部分键盘设置,,,,,,,,,,,,,,,,,,,21 7.1通讯速率设置,,,,,,,,,,,,,,,,,,,,,21 7.2控制协议设置,,,,,,,,,,,,,,,,,,,,,21 7.3操作员设置,,,,,,,,,,,,,,,,,,,,,,22 7.4吊规设置,,,,,,,,,,,,,,,,,,,,,,,22 7.5!口言选,,,,,,,,,,,,,,,,,,,,,,,24 7.6版本信口丿,,,,,,,,,,,,,,,,,,,,,,J24 7.7退岀∕*i<--1 ' I )5 JJJJJJJJJJJJJJJJJJJJJJJ24第八部分键盘连接,,,,,,,,,,,,,,,,,,,25 8.1键盘与智能摄像机、解码器连接示意图,,,,,,,,,,25 8.2键盘与监控主机连接示意图,,,,,,,,,,,,,,,26 8.3键盘与报警主机连接示意图,,,,,,,,,,,,,,,27 8.4键盘与数字录像机连接示意图,,,,,,,,,,,,,,28安全事项―I_*- √丿、)5 JJJJJJJJJJJJJJJJJJJJJJ29主键盘控制器KEYBoARD CoNTRoLLER第一部分键盘操作1.1设备概述:主键盘控制器是以操作控制安防监控主机、智能摄像机、数字录像机、报警主机为特色的操作设备。
实验5 独立键盘和矩阵键盘一、实验目的1、学会用C语言进行独立按键应用程序的设计。
2、学会用C语言进行矩阵按键应用程序的设计。
二、实验内容1、独立按键:对四个独立按键编写程序:当按k1时,8个LED同时100ms闪烁;当按k2时,8个LED从左到右流水灯显示;当按k3时,8个LED从右到左流水灯显示;当按k4时,8各LED同时从两侧向中间逐步点亮,之后再从中间向两侧逐渐熄灭;2、矩阵按键:采用键盘扫描方式,顺序按下矩阵键盘后,在一个数码管上顺序显示0~F,采用静态显示即可。
3、提高部分(独立按键、定时器、数码管动态扫描):编写程序,实现下面的功能。
用数码管的两位显示一个十进制数,变化范围为00~59,开始时显示00,每按一次k1,数值加1;每按一次k2,数值减1;每按一次k3,数值归零;按下k4,利用定时器功能使数值开始自动每秒加1;再按一次k4,数值停止自动加1,保持显示原数。
三、实验步骤1、硬件连接(1)使用MicroUSB数据线,将实验开发板与微型计算机连接起来;(2)在实验开发板上,用数据线将相应接口连接起来;2、程序烧入软件的使用使用普中ISP软件将HEX文件下载至单片机芯片内。
查看结果是否正确。
四、实验结果——源代码1. #include "reg52.h"typedef unsigned char u8;typedef unsigned int u16;#define LED P2sbit key1=P3^1;sbit key2=P3^0;sbit key3=P3^2;sbit key4=P3^3;const char tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; u8 code begMid[]={0x7e, 0xbd,0xdb,0xe7, 0xdb, 0xbd, 0x7e}; void Delay(u16 i){ while(i--);}void KeyDown(){u8 i;if(key2==0){Delay(1000);if(key2==0){for(i=0;i<8;i++){LED=tab[i];Delay(50000);}while(!key2);}LED=0xff;}else if(key1==0){Delay(1000);if(key1==0)for(i=0;i<3;i++){LED=0x00;Delay(10000);LED=0xff;Delay(10000);}}}}void Int0Init(){IT0=1;EX0=1;EA=1;}void Int1Init(){IT1=1;EX1=1;EA=1;} void main(){Int0Init();Int1Init();while(1){KeyDown();}}void Int0() interrupt 0{u8 i;if(key3==0){Delay(1000);if(key3==0)for(i=7;i>=0;i--){LED=tab[i];Delay(50000);}}}}void Int1() interrupt 2{u8 i;if(key4==0){Delay(1000);if(key4==0){for(i=0;i<=6;i++){LED=begMid[i];Delay(50000);}}}}2.#include "reg52.h"typedef unsigned int u16;typedef unsigned char u8;#define GPIO_DIG P0#define GPIO_KEY P1sbit LSA=P2^2;sbit LSB=P2^3;sbit LSC=P2^4;u8 KeyValue;u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//??0~F?? void delay(u16 i){while(i--);}void KeyDown(void){char a=0;GPIO_KEY=0x0f;if(GPIO_KEY!=0x0f){delay(1000);if(GPIO_KEY!=0x0f){GPIO_KEY=0X0F;switch(GPIO_KEY){case(0X07): KeyValue=0;break;case(0X0b): KeyValue=1;break;case(0X0d): KeyValue=2;break;case(0X0e): KeyValue=3;break;}GPIO_KEY=0XF0;switch(GPIO_KEY){case(0X70): KeyValue=KeyValue;break;case(0Xb0): KeyValue=KeyValue+4;break;case(0Xd0): KeyValue=KeyValue+8;break;case(0Xe0): KeyValue=KeyValue+12;break;}while((a<50)&&(GPIO_KEY!=0xf0)){delay(1000);a++;}}}}void main(){LSA=0;LSB=0;LSC=0;while(1){KeyDown();GPIO_DIG=smgduan[KeyValue];}}3.#include <reg52.h>typedef unsigned int u16;typedef unsigned char u8;#define KEYPORT P3sbit LSA=P2^2;sbit LSB=P2^3;sbit LSC=P2^4;sbit key1=P3^1;sbit key2=P3^0;sbit key3=P3^2;sbit key4=P3^3;u16 t;u8 sec;u8 DisplayData[2];u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void Time1Init(){TMOD |= 0x10;TH1=0Xd8;TL1=0Xf0;EA=1;ET1=1;}void delay(u16 i){while(i--); }void DigDisplay(){u8 i;for(i=0;i<2;i++){switch(i){case 0:LSA=0;LSB=0;LSC=0;break;case 1:LSA=1;LSB=0;LSC=0;break;}P0=DisplayData[i];delay(100);P0=0x00;}}void datapros(){DisplayData[0]=smgduan[sec%10];DisplayData[1]=smgduan[sec/10];}void main(){Time1Init();while(1){if(key4==0){delay(1000);if(key4==0){TR1=!TR1;while(key4==0);}}if(key3==0){delay(1000);if(key3==0){sec=0;while(key3==0);}}if(key2==0){delay(1000);if(key2==0){sec--;while(key2==0);}}if(key1==0){delay(1000);if(key1==0){sec++;while(key1==0);}}}}void Time1() interrupt 2{TH1=0Xd8;TL1=0Xf0;t++;if(t==100){t=0;sec++;if(sec>=60){sec=0;}}datapros();DigDisplay();}五、实验体会——结果分析1、独立按键:位定义四个按键key1、key2、key3、key4,宏定义LED为P2口,tab数组保存流水灯D0-D7依次点亮的数值,begMid数组保存流水灯同时从两侧向中间逐步点亮,之后再从中间向两侧逐渐熄灭的赋值方式。
矩阵控制键盘操作说明键盘概述控制器是智能电视监控系统中的控制键盘,也是个监控系统中人机对话的主要设备。
可作为主控键盘,也可作为分控键盘使用。
对整个监控系统中的每个单机进行控制。
键盘功能1.中文/英文液晶屏显示2.比例操纵杆(二维、三维可选)可全方位控制云台,三维比例操纵杆可控制摄像机的变倍3.摄像机可控制光圈开光、聚集远近、变倍大小4.室外云台的防护罩可除尘和除霜5.控制矩阵的切换、序切、群组切换、菜单操作等6.控制高速球的各种功能,如预置点参数、巡视组、看守卫设置、菜单操作等7.对报警设备进行布/撤防及报警联动控制8.控制各种协议的云台、解码器、辅助开头设置、自动扫描、自动面扫及角度设定9.在菜单中设置各项功能10.键盘锁定可避免各种误操作,安全性高11.内置蜂鸣器桌面上直接听到声音,可判断操作是否有效技术参数1.控制模式主控、分控2.可接入分控数16个3.可接入报警模块数239个4.最大报警器地址1024个5.最大可控制摄像机数量1024个6.最大可控制监视器数量 64个7.最大可控制解码器数量 1024个8.电源 AC/DC9V(最低500mA的电源)9.功率 5W10.通讯协议Matri、PEL-D、PEL-P、VinPD11.通讯波特率1200 Bit/S,2400 Bit/S,4800 Bit/S ,9600Bit/S,Start bit1,Data bit8,Stop bit1键盘按键说明Focus Far 聚焦远FocusNear 聚焦近ZoomTele 变倍大Zoom Wide 变倍小DVR 设备操作DVR功能键Shift 用户登入Login退出键Exit报警记录查询List进入键盘主菜单MENU启动功能F1/ON关闭功能F2/OFF液晶显示区1.蜂鸣声提示说明2.1 “嘀”一声,表示有按键操作。
2.2 “嘀,嘀,嘀”三声,表示本次操作错误或无效。
2.3 “嘀嘀嘀…”连续发声,表示有报警发生。
《独立按键控制霓虹灯》讲课稿今天我们学习第四个项目,用LED装饰你的生活。
很有启发性的一个课题,教材上题目是按键控制霓虹灯。
我们先看背景图,塔上面有一个人正在观看着日出,这是很有希望的一个情境。
希望通过项目四的学习,同学们想用单片机控制LED制作霓虹灯,去装饰美化你们的生活环境。
就像这张图的情境一样对生活充满希望。
(生活情趣培养)下面我们从项目任务、项目分析、项目实施、项目评估四个方面入手,剖析按键控制LED灯实验项目。
同学们把项目任务齐读一遍,讨论完成本项目我们需要做那些具体的工作……请同学回答讨论结果,总结一下:完成本项目我们需要分三步去完成:第一步:设计独立按键输入电路和LED的输出硬件电路第二步:编写程序分别实现按下按键1和按键2,LED灯闪烁方式不同,按键3复位第三步:下载程序到单片机中,运行程序观察结果并进行软硬件的联合调试对于单片机任何一个项目我们都可以通过硬件设计、程序设计和运行调试这三个步骤去完成。
本项目输出电路我们接的是LED,这是便于电路设计和观察结果,如果改接接口电路、继电器等就可以实现智能控制。
(创新思维培养)本项目的电路设计和程序设计我们分解为硬件电路消除抖动、软件延时程序消除抖动、单片机I/O口电路连接方式、程序设计四个子任务去探讨研究。
其中,单片机I/O接口电路连接方式我们已经在项目二和项目三有所接触。
根据项目要求,应该设计的电路有单片机最小电路、显示电路和键盘输入电路。
I/O口电压理论上是方波,实际上得到的是b图这样的波形,有按键抖动和释放抖动,这就需要消除抖动。
消除抖动的方法有硬件电路消除和软件延时消除。
硬件电路可以彻底消除抖动,只是会增加成本、增大键盘体积,性价比低;软件延时消除抖动是通过延时的方式躲开抖动,这样可以降低成本,减小体积,性价比高。
下面我们通过这段视频了解一下机械键盘。
键盘是实现人机交互的重要计算机输入设备,其中按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。
51单⽚机:独⽴按键与矩阵按键控制数码管⼀,独⽴按键注意⼀下⼏点>按下的时候,电压被拉低,所以IO⼝要传低电平( 0x0 )>按下的时候要消除抖动 ( 延时10ms ),在判断,是否还是低电平,再做业务处理下⾯这段程序,就是通过⼀个独⽴按键连接到p1⼝,控制静态数码管的⼀段进⾏亮和灭的切换。
#include <reg52.h>sbit key_control = P1^0;sbit led = P0^0;typedef unsigned char u8;typedef unsigned int u16;void delay( u16 i ){while( i-- );}void key_press(){if( key_control == 0x0 ) {delay( 1110 );if( key_control == 0x0 ){led = ~led;}while( !key_control );}}void main (){/*while( 1 ){if( key_control == 0x0 ) {delay( 1110 ); //⼤概10msif ( key_control == 0x0 ) {led = 1;}}else if( key_control == 0x1 ) {delay( 1110 );if ( key_control == 0x1 ) {led = 0;}}}*/led = 0;while( 1 ) {key_press();}}⼆,当按键⽐较多的时候,⽤矩阵按钮,因为如果不⽤矩阵按钮,⼀个独⽴按键需要⼀个IO⼝,浪费资源。
如: 16个独⽴按键需要16个io⼝,⽽16个矩阵按键(4x4,⼀共8个管脚)需要8个IO⼝下⾯的程序,通过16个矩阵按钮,控制静态数码管,显⽰0~F#include <reg52.h>#define GPIO_DIG P0 //段选数码管#define GPIO_KEY P1 //矩阵按键typedef unsigned char u8;typedef unsigned int u16;void delay( u16 i ){while( i-- );}u8 key_value;//静态数码管段码u8 character [16] = { 0xC0, 0xF9 , 0xA4 , 0xB0 , 0x99 , 0x92,0x82 , 0xF8 , 0x80 , 0x90 , 0x88 , 0x83,0xC6 , 0xA1 , 0x86 , 0x8E};void key_down(){u8 count = 0;//⾏列扫描判断哪个键被按下GPIO_KEY = 0x0F; //⾼四位全部输出低电平,低四位输出⾼电平-->判断被按下的按钮所在的列if( GPIO_KEY != 0x0F ) { //有按键按下delay( 1110 ); //消除抖动if( GPIO_KEY != 0x0F ){switch( GPIO_KEY ){case0x07:key_value = 0; //矩阵第1列的按钮被按下break;case0x0B:key_value = 1; //矩阵第2列的按钮被按下break;case0x0D:key_value = 2; //矩阵第3列的按钮被按下break;case0x0E:key_value = 3; //矩阵第4列的按钮被按下break;}GPIO_KEY = 0xF0; //⾼四位输出⾼电平,低四位输出低电平-->判断被按下的按钮所在的⾏switch( GPIO_KEY ){case0x70:key_value = key_value; //矩阵第1⾏的按钮被按下break;case0xB0:key_value = key_value + 4; //矩阵第2⾏的按钮被按下break;case0xD0:key_value = key_value + 8; //矩阵第3⾏的按钮被按下break;case0xE0:key_value = key_value + 12; //矩阵第4⾏的按钮被按下break;}GPIO_DIG = character[key_value];//如果⼀直按下按键,等待500ms,强制退出while( ( count < 50 ) && ( GPIO_KEY != 0xF0 ) ) {count++;}}}}void main (){while( 1 ) {key_down();}}。
基于单片机的键盘和LED数码管工作原理单片机是一种集成电路芯片,它包含了中央处理器、存储器和各种输入输出接口等核心功能。
而键盘和LED数码管则是单片机中常用的输入和输出设备之一键盘通常由多个按键组成,每个按键对应一个电路开关。
当按键按下时,电路闭合,形成通路,使电流流过。
按键抬起时,电路断开,通路被切断。
在单片机的键盘应用中,常用的键盘有矩阵键盘和独立按键两种。
矩阵键盘是将多个按键排列成矩阵的形式,通过行和列两个方向上的电极连接到单片机的输入输出引脚上。
当一些按键按下时,对应的行和列的电极会形成电路,单片机通过扫描行和列的方式,来检测按键的状态。
具体的工作原理如下:1.单片机通过输出行电平信号,将每行的引脚设置为输出模式,并将行的电平拉低;2.单片机通过输入列电平信号,将每列的引脚设置为输入模式,并开启输入状态;3.单片机依次扫描每行,检测是否有按键按下;4.如果有按键按下,则表示该行对应的列电平会被单片机检测到;5.单片机根据行和列的组合,确定按下的按键。
独立按键则是将每个按键对应的引脚直接连接到单片机的输入引脚上,按键按下时,直接检测到引脚的电平信号。
LED数码管是一种显示设备,它由多个LED组成,可以用于显示数字、字母和符号等信息。
在单片机的LED数码管应用中,常见的数码管有共阳和共阴两种类型,在工作时,需要通过单片机的输出引脚来控制数码管的亮灭。
共阳数码管的工作原理如下:1.单片机通过输出引脚产生一个高电平信号,与数码管的相应位相连接;2.当输出引脚电平为高时,该位的LED被通电,发出光亮;3.当输出引脚电平为低时,该位的LED断电,熄灭。
共阴数码管的工作原理与共阳相反:1.单片机通过输出引脚产生一个低电平信号,与数码管的相应位相连接;2.当输出引脚电平为低时,该位的LED被通电,发出光亮;3.当输出引脚电平为高时,该位的LED断电,熄灭。
通常,为了达到流水灯效果或同时显示多位数字,需要使用多个输出引脚来控制多个LED数码管。