键盘灯双跳

weixin_38087180 2019-09-19 05:49:27
启动某程序(该程序只有一些启动其它进程的操作,没有跟硬件相关的处理)的时候,键盘的numlock和caplock灯闪烁,机器彻底死机,只能断电重启。是跟系统内核有关系吗?
...全文
18 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
1.2设计电子密码锁的意义及相关技术指标 当前虽然许多智能锁(如指纹辨别、人声识别、IC卡识别等)已相继问世,但这类产 品是针对特定指纹、声音或有效卡,只能用于保密要求高且仅供个人使用的箱、柜、房 间等。另外,卡片式的IC卡易丢失和损坏,加上其成本较高,在一定程度上限制了这类 产品的普及和推广。而电子密码锁具有安全性能高、成本低、低功耗、操作简单等优点 ,经济好用,易于推广和普及。 本次单片机课程设计内容为设计一个电子密码锁,技术指标如下:输入正确密码开锁 指示灯亮,否则开锁指示灯灭;应包含0- 9和设置、输入,删除12个键的键盘;输入密码可由数码管显示;连续3次密码输入错误 ,则控制蜂鸣器发声报警。 第2章 总体设计及方案论证 为完成电子密码锁的功能设计,需要通过不同的模块来共同实现。设计思路及总体设 计如图 图2.1 主程序流程图 在电源供电下,单片机通过控制各个模块共同构成一个电子密码锁,3×4键盘作为人 机交互的界面使用,加上复位电路的作用是在程序运行出错或陷入死循环时能从头开始 执行程序。 2.3数码管显示模块 LED显示器有静态显示和动态显示两种显示方式。 2.3.1 LED静态显示方式 所谓静态显示,就是当显示器显示某一字符时,相应段的发光二极管恒定地导通或截 止,并且显示器的各位可同时显示。静态显示时,较小的驱动电流就能得到较高的显示 亮度。静态显示方式的缺点是N位静态显示器要求有N8根的I/O口线,占用I/O口线 资源较多。 2.3.2 LED动态显示方式 所谓动态显示就是一位一位地轮流点亮显示器的各个位(扫描),对于显示器的每一 位而言,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间 隔时间的比例有关。相比于静态显示方式而言,8位LED动态显示电路只需要两个8位I/O 口,充分利用了I/O口资源。 电子密码锁的显示电路设计需要用到8位数码管来显示密码,为节约I/O口资源,显示 电路应采用LED动态显示方式。 2.4电源模块 AT89C51单片机供电电压为+5V,可采用两种供电方式。 2.4.1蓄电池供电 采用+6V蓄电池经电阻分压后直接给单片机供电,电路简单。 2.4.2双路电源供电 220V交流市电经降压,整流,集成稳压芯片稳压为+5V后给直接给单片机供电,当停 电后,采用蓄电池供电。利用一个单反相器实现两种供电电路的自动切换。 本设计为电子密码锁的设计,需要用到UPS(不间断电源),故采用双路电源供电为 宜。 2.5开锁电路模块 输入密码正确时,单片机输出信号作为开关信号,控制电磁铁动作,来完成开锁功能 。输入密码错误时,则不响应。 2.7最优方案 综上,最优方案为选用AT89C51单片机作为主控元件,采用双路电源自动切换供电方 案,数码管显示采用动态显示方式,以矩阵式键盘作为人机交互的界面,加上开锁和报 警电路及相应的软件,构成一个安全可靠的电子密码锁。 第3章 硬件电路设计 3.1输入键盘 图3.1键盘电路 本设计采用矩阵式键盘,连接方式如图3.1所示: 键盘的工作过程:第一步是CPU检测键盘上是否有按键按下,具体方法是:将列线送 入全扫描字,读入行线的状态来判断,即所有的列线置成低电平,然后将行线电平的状 态读入累加器A中,如果有按键按下,总会有一根行线电平被拉至低电平,从而使行输入 状态不全为"1"。第二步是识别哪一个按键按下,如果列输入状态不全为"1"则按下的键 必在此列,而且是该列与"0"电平的交点上的那个键。为求取编码,在逐列扫描时,可用 计数器记录下当前扫描列的列号,检测到第几行有按键按下时,就用该行的首键码加列 号得到当前按键的编码。本设计采用的是查询方式,这种方式是直接在主程序中插入键 盘的子程序,主程序每执行一次则键盘子程序被执行一次,对进行检测一次,如果没有 按键按下,则过按键识别,直接执行主程序,如果有按键按下,则通过键盘扫描子程 序识别按键,得到按键的编码,然后根据编码值进行相应的处理,处理完后再回到主程 序执行。 3.2显示数码管 硬件连接电路如图所示: 图3.2显示电路 如图3.1所示为数码管的控制及显示电路,数码管为共阳极数码管,通过段选和位选 实现动态显示方式,即通过软件用分时的方法轮流控制各个显示器的COM端,使各个显示 器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间极为短暂,但由于人的视 觉暂留现象及发光二极管的余晖效应,给人的印象就是一组稳定的显示数据。 3.3开锁电路 图3.3开锁电路 如图3.3所示为开锁控制电路,当输入密码与原设置密码相同时,P3.2引脚输出高电 平,三极管UNLOCK导通,电磁铁动作开锁,同时开锁指示灯亮。输入密码不正确时,电 磁铁不动作,且开锁指示灯灭。 3.5电源电路 图3.5电源电路 采用双路电源自动
电子时钟设计 简介 该设计主要由单片机AT89C51和液晶显示器组成,实现常用的实时电子钟功能。利用 可编程芯片AT89C51强大的功能,我们了实现日历功能、时钟功能。该时钟使用液晶显示 器作为显示模块,使用3个弹性小按键作为输入模块,调节年、月、日、星期、时、分、 秒。 一.方案比较与论证 根据设计要求,该时钟系统可分输入部分、处理部分和显示数据部分。其中输入部分是 键盘输入数据调整要显示的内容,处理部分单片机接收并通过算法处理键盘输入的信息 变成显示模块所能接受的信息,显示部分是用来实时显示处理部分处理后的数据。 输入模块我们选用三个独立弹性小按键来实现,选用矩阵式键盘则太浪费资 处理模块我们选用了STC公司的STC89C52芯片来,与Atmel公司生产的AT89S52一样,也是 40脚双列直插式封装,这里芯片对刚学单片机的人来说容易入手,其功能也很强大,用 来实现一个电子钟完全足够了。 显示部分我们可有两种选择:数码管和1602液晶显示器。实现一个电子钟若用数码管则 需6个,所占空间相对大了些,而且我们还要实现日历的功能,需要更多的数码管,所点 空间翻倍,而且还会造成单片机I/O引脚滥用甚至不够用,用液晶显示器来实现则方便得 多,界面也相对友好,但液晶显示器有个缺点就是价格比较贵。因此我们最终选择了16 02液晶显示器。另处独立弹性小按键具有价格便宜、容易获得、容易控制等特点。 二.系统理论分析、计算与电路仿真 1、定时器与中断原理 电子钟主要是利用单片机的定时器/计数器和中断来实现。定时器实际是加1计数器,单 片机每运行一个机器周期定时器就自动加1,当计到所定的数N时,单片机就产生一次中 断,停下所做的工作,转而去执行中断服务程序。单片机每个机器周期等于外部晶振的 12个振荡周期,当外部晶振是12MHz时,则每个机器周期的时间是 Tcy = 12×1/12=1µm (2-1) 定数器设为N时,即每计到N时产生一次中断,而一次中断的时间为: t = N×Tcyµm (2-2) 当产生X(x根据N来设置,两者之积为1000000)次中断后我就知道过了1s,再通过液晶 显示出来,这样就达到了让液晶每隔一秒一下的目的了。 2、proteus仿真结果 3、液晶部分 图4-3 液晶1、2端口分别是工作电源的负、正极,15、16是液晶背光灯电源正负极,R4起限流 作用,避免电流过大烧坏背光灯。第3端口还可接一电位器,调节液晶显示对比度。无标 号的8个端口是数据端,通过一上拉电阻接到单片机的 P0口。 三.系统的软件设计(如必要,含有流程图) 1、程序流程图 流程图中的X表示液晶中秒、分、时、星期、年、月、日中的任一个。 图5-1 主程序流程图 图5-2 扫描键盘的子程序流程 四.系统测试及结果 测试结果总的来说很满意,比预计的还要好。但由于中断函数中代码较长,故存在 一定程度的误差,用秒表测试大约为每5分钟慢了一秒,这个问题是用单片机定时器来数 时所无法解决的,中断函数必定会较长,处理这一函数会花费一定的时间这就无法做到 让时钟走得很精确。解决方法是用一时钟芯片来实现,由于时钟芯片不好买又比较贵( 新的20几块一片),暂时就不考虑了,有机会再尝试。 1. 源程序 //主函数放在最后面 #include #define uchar unsigned char #define uint unsigned int sbit rs=P2^4;//定义液晶数据命令选择端 sbit lcden=P2^5;//液晶使能端 sbit s1=P2^0;//按键1 sbit s2=P2^1;//按键2 sbit s3=P2^2;//按键3 uchar count,s1num; char shi,fen,miao;//时、分、秒 char year,month,day,week;//年月日星期 void delay(uint x)//延时子程序 { uint j,k; for(j=x;j>0;j--) for(k=110;k>0;k--); } //----液晶写命令功能--- void write_com(uchar com) { rs=0; lcden=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; } //---液晶写数据功能----- void write_date(uchar date) { rs=1; lcden=0; P0=date; delay(5); lcden=1; delay(5); lcden=0; } //----------写入时、分、秒--------? void write_sfm(uchar add,uchar date) { uchar shi,g
德力西产品说明pdf,前   言   感谢您选用德力西(杭州)变频器有限公司生产的CDI 9600系列小功率矢量变频器。 在使用CDI9600系列小功率矢量变频器之前,请您仔细阅读本手册,以保证正确使用。不正确的使用可能会造成变频器运行不正常、发生故障或降低使用寿命,乃至发生人身伤害事故。因此使用前应认真阅读本说明书,严格按说明使用。本手册为标准附件,务必请您阅读后妥善保管,以备今后对变频器进行检修和维护时使用。 本手册除叙述操作说明外,还提供接线图供您参考。如果您对本产品的使用存在疑难或有特殊要求, 可以联系本公司各地办事处或经销商,当然您也可以直接致电我公司总部客户服务中心,我们将竭诚为您服务。 本手册包含0.75kW~5.5kW功率等级的CDI9600系列小功率矢量变频器使用说明,内容如有变动,恕不另行通知。   开箱时,请认真确认以下内容: 1、产品在运输过程中是否有破损,零部件是否有损坏、脱落,主体是否有碰伤现象。 2、本机铭牌所标注的额定值是否与您的订货要求一致,箱内是否包含您订购的机器、产品合格证、用户操作手册及保修单。   本公司在产品的制造及包装出厂方面,质量保证体系严格,但若发现有某种检验遗漏,请速与本公司或您的供货商联系解决。                     目  录   前 言 第一章  安全运行及注意事项 1 第二章 产品信息 3 2.1 铭牌数据及命名规则 3 2.2 技术规范 4 2.3 CDI9600系列小功率矢量变频器 6 2.4 外型及安装尺寸 7 2.5 日常使用的保养与维护 8 第三章 变频器的安装及接线 12 3.1 变频器前盖与数字操作键盘的安装 12 3.1.1 变频器前盖的安装 12 3.1.2 数字操作键盘的安装 12 3.2 安装地点及空间的选择 13 3.3 安装地点及空间的选择 15 3.3.1 主回路输入侧的接线注意事项 15 3.3.2 主回路输出侧的接线注意事项 16 3.3.3 主回路输出侧的接线注意事项 18 3.4 控制电路的接线 20 3.4.1控制电路端子排列及接线图 20 3.4.2 控制电路端子的功能 22 3.5 接地 24 第四章 键盘操作与运行 25 4.1 操作方式的选择 25 4.2 试运行及检查 25 4.2.1 试运行前的注意事项及检查 25 4.2.2 试运行 26 4.2.3 运行时的检查 26 4.3 键盘的操作方法 27 4.3.1 键盘按键及功能 27 4.3.2 键盘显示方式 27 4.3.3 查看/设定参数的方法(用数字键盘) 29 4.3.4 键盘设定频率的方法 30 第五章 功能参数表 31 第六章 功能参数说明 47 6.1 基本功能参数P00组 47 6.2 辅助功能参数P01组 64 6.3 输入输出端子与多段速运行功能P02组 78 6.4多段速运行功能P03组 97 6.5 其他功能参数P04组 106 6.6 显示功能参数P05组 110 第七章 故障排除 111 7.1 故障的诊断与排除措施 111 7.2 报警显示和解释 113 7.3 电机故障和排除措施 113 附录 RS-485通讯协议修正 115   第一章  安全运行及注意事项   CDI9600系列小功率矢量变频器安装、运行、维护和检查之前要认真阅读本说明书。 为了确保您的人身、设备及财产安全,在使用我公司的CDI9600系列小功率矢量变频器之前,请务必仔细阅读本章内容。说明书中有关安全运行的注意事项分类成“警告”和“注意”。       :指出潜在的危险情况,如果没有按要求操作,可能会导致人身重伤或者死亡的情况。     :指出潜在的危险情况,如果没有按要求操作,可能会导致人身轻度或中度的伤害和设备损坏。这也可对不安全操作进行警戒。     安全运行的注意事项:   1. 安装、维护作业只能由专业人员进行操作。 2. 核实变频器的额定电压必须和AC电源电压等级相一致。   3. 切勿使AC主回路电源和输出端子U,V和W相连接。连接时变频器会损坏,并且保修单失效。
基于51单片机的蓝牙模块数据传输设计(修订版) 摘要 本设计以STC89C52单片机为控制核心。经蓝牙模块实现无线连接,发送数据和接收数据 ,通过LCD1602显示接收的数据和编辑发送的数据,两个单片机通过内部程序实现实时接 收、发送和显示,从而完成相关要求。 1方案设定 1-1电路设计框图 无线信号 串口 串口 图4-1 注:由于STC89C52芯片串口寄存器的容量限制,每次收发只能一个字节。 1-2功能叙述 本作品通过HC- 05主从机一体蓝牙模块实现与带蓝牙的设备先通过OPP蓝牙协议来实现配对连接,实现连 接配对可通过电路板上的数字按键来实现输入,经STC89C52单片机处理后通过HC- 05蓝牙无线传送到另一方单片机上,通过STC89C52单片机处理后可在LCD1602液晶显示所 接受到的数据! 1-3使用说明 在接通电源前,先把蓝牙模块插到单片机上,紧接着启动电源。观察蓝牙模块的指示灯 ,等待两个单片机之间的连接匹配,待指示灯出现双闪后就匹配连接成功。接下来可根 据自己想要发送数据在单片机的按键区域(0~9)按下,按下后显示屏便出现你所要发送 的数据,确认无误之后就按下单片机上的发送按钮即马上发送到另一方单片机上(两个 单片机可以互相发送)! 2系统硬件设计 2-1主控制模块 图6-1 2-2蓝牙收发模块 图8-1 2-3液晶显示模块 图9-1 LCD1602资料: 1602采用标准的16脚接口,其中: 第1脚:GND为电源地 第2脚:VCC接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高 (对比度过高时会 产生"鬼影",使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负 变时执行指令。 第7~14脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电 源。 15脚背光正极。 16脚背光负极。 特性: 3.3V或5V工作电压,对比度可调内含复位电路提供各种控制命令,如:清屏、字符闪烁 、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM 内建有192个5X7点阵的字型的字符发生器CGROM8个可由用户自定义的5X7的字符发生器C GRAM特征应用微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗 应用系统中。操作控制 注:关于E=H脉冲——开始时初始化E为0,然后置E为1。 2-4矩阵键盘模块 图10-1 注:键盘输入部分使用矩阵键盘的设计原理。 3系统软件设计 3-1源程序 #include #define uint unsigned int #define uchar unsigned char sbit rs=P2^6; sbit en=P2^7; sbit rw=P2^5; sbit Key=P2^4; uchar code table_Receive[]={"Receive:"}; uchar code table_Send[]={" Send:"}; uchar code table[]={'0','1','2','3','4','5','6','7','8','9'}; uchar num,temp,temp2,a,flag,add; uchar n,m; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void write_lcd_com(uchar com){ rs=0; P0=com; delay(5); en=1; delay(5); en=0; } void write_data(uchar date){ rs=1; P0=date; delay(5); en=(1); delay(5); en=0; } void lcdinit(){ en=0; write_lcd_com(0x38); write_lcd_com(0x0c); write_lcd_com(0x06); write_lcd_com(0x01); for(m=0;m<8;m++) { write_data(table_Receive[m]); delay(1); } write_lcd_com(0x80+0x40); for(n=0;n<8;n++) { write_data(table_Send[n]); delay(1); } } void keyscan() { P1=0xfe; temp=P1; tem

435

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧