自制51单片机无线鼠标

自制51单片机无线鼠标
自制51单片机无线鼠标

无线鼠标的设计与实现

引言

无线鼠标器是为了适应大屏幕显示器而生产的。所谓“无线”,即没有电线连接,而是采用二节七号电池无线摇控,鼠标器有自动休眠功能,电池可用上一年,接收范围在1.8米以内。此外还有蓝牙连接的鼠标,微软终极键鼠套装的蓝牙连接速度可达2G

鼠标自1968年诞生以来,已经经历过近40年的演变和发展。近10年来,随着消费型电电脑的普及,鼠标的工作方式也有了翻天覆地的进步:从早期的机械滚轮鼠标到目前主流的光电鼠标再到中高端的激光鼠标……鼠标的每一次变革无不给用户带来使用上的快感。此外,随着人们对办公环境和操作便捷性要求日益增高,无线鼠标普及也被提到日程上来。无线技术根据不同的用途和频段被分为不同的类别,其中包括蓝牙、Wi-Fi (IEEE 802.11)、Infrared (IrDA)、ZigBee (IEEE 802.15.4)等等多个无线技术标准,但对于当前主流无线鼠标而言,仅有27Mhz、2.4G和蓝牙无线鼠标共三类。

无线电式鼠标的学名叫DRF(Digitalradiofrequency,数字无线电频率),这项技术能够对短距离通讯提供充足的带宽,非常适合鼠标和键盘这样的外围设备使用。它的原理也非常简单,鼠标部分工作与传统鼠标相同,再用无线发射器把鼠标在X或Y轴上的移动,按键按下或抬起的信息转换成无线信号并发送出去,无线接收器收到信号后经过解码传递给主机,驱动程序告诉操作系统鼠标的动作,该把鼠标指针移向哪个方向或是执行何种指令。

从原理上看,无线鼠标主要分为红外线式和无线电式。两种鼠标都需要使用干电池供电,对于红外线型的无线鼠标键盘具有较严格的方向性,尤其是水平位置的关系更为敏感,因此目前采用这种方式的产品已经不多,大多数都是采用了更为先进的无线电发射方式。

采用无线电技术的好处是,只要在限定距离以内,就可以在任何位置使用,几乎不受障碍物的影响。一般传输的距离达10~20米,已经足够用户使用。

无线电的最大特点是可以进行360度全方位无线射频遥控,而且耗电量较低,具有触发工作待机休眠。无线设备的接受端已经内置接收器,发射器装在主机的设备口上,均不会影响产品外观。

无线电接收器本身所具有的接口是USB或PS2的,可以从计算机的PS/2接口取电,不需要另加电池。它具有双或多波段,如果有多个无线设备,均可以通过这一个接收器进行管理,键盘工作频率一般占用通道1(如:27.185M和27.035M),鼠标工作频率占用通道2(如:27.085M和27.135M),工作时鼠标和键盘或多个鼠标之间干扰性较低,而且不会影响无线电话等数字无线设备。

目前有能力生产无线鼠标的厂商并不太多,大部分集中在微软、罗技、明基等知名厂商中。而其中微软与罗技成为高端市场的霸主,也是消费者心目中顶级产品。

鼠标在个人电脑浏览导航中已经是不可或缺的工具,而目前的用户通常会在多个网页、大规模数据表格、数码照片、播放列表和其他大量的数字内容之间进行不停切换,这对鼠标在快速直观浏览和导航方面的功能也提出了更高要求。

目录

引言 (1)

目录 (2)

摘要 (3)

设计任务和要求 (3)

第一章无线鼠标电路的设计与实现 (3)

1 总体方案论证 (3)

2 发射模块和接收模块的电路的实现方案 (3)

3 鼠标按键的方案 (8)

4 方波电路的设计 (8)

5 控制门电路 (9)

第二章安装与调试 (10)

1 所用的仪器,仪表 (10)

2 调试方法和步骤 (10)

3 调试中出现的故障和解决方法 (10)

第三章所用元器件列表 (11)

第四章参考文献 (11)

附图 (12)

摘要

将机械鼠标的滚动动作和左右键的操作转换成开关信号,用方波电路产生的方波信号代替原鼠标内光敏传感器的脉冲信号,用相应的开关动作可以实现鼠标光标移动和鼠标的单双击操作!而用发射和接收电路代替原来的鼠标线,实现鼠标的遥控。

设计任务和要求

用发射和接收电路模块代替原来的鼠标线,实现鼠标的无线遥控功能。其中的电路设计包括发射模块(含编码电路)、接收模块(含解码电路)、方波发生电路和开关电路等等电路的设计及它们之间的连接、匹配。将机械鼠标的滚动动作和左右键的操作转换成开关信号,用方波电路产生的方波信号代替原鼠标内光敏传感器的脉冲信号,用相应的开关动作可以实现鼠标光标移动和鼠标的单双击操作。

第一章无线鼠标电路的设计和实现

1.总体方案论证:

方案一:在鼠标与电脑接口间用发射和接收电路代替了鼠标线,本方案除了要考虑发射和接收模块外,还要考虑接口协议,如下图。考虑到时间和难度的问题,没有选择此方案。

方案二:用遥控器控制鼠标,即用遥控器的按键信号控制鼠标的上下左右移动方向和左右键。只需要考虑发射和接收电路,不需要考虑接口协议,如下图。选择此方案。

2.发射模块和接收模块的电路的实现方案:

方案一:发射模块F05和接受模块J05C的应用。F05采用声表谐振器稳频,工作频率为315MHZ,以AM方式调制,采用PT2262编码器240mm小拉杆天线发射信号;J05C由超外差电路结构IC芯片和温度补偿电路构成,具有较高的接收灵敏度及稳定性。芯片内含低噪声射频放大器、混频器、本地振荡器、中频放大器、滤波器及限幅比较器,输出为数据电平信号,直接接至PT2272解码器进行解码,接收天线约22cm。

方案二:利用红外线技术实现红外信号的发射和接收。发射部分,利用单片机AT89C2051检测坐标位移和按键动作,经过处理按一定的编码输出到发射电路。接收部分使用红外遥控用专用接收管,如IRM8608S,对红外信号接收和解调,并输出TTL电平;TTL电平的数据流送给单片机进行处理,单片机把该数据转化为符合PS/2鼠标规范的数据报告,发送给计算机。如图:

方案三:利用无线遥控方式实现鼠标的遥控。原理与上述方案二的原理一样,只是具体的发射和接收电路有所不同。无线接收电路采用的是超再生式调频解调电路,解调后的信号经过运算放大器放大、三极管整形后输出为TTL电平的信号,再由单片机处理。

方案四:也是一种红外遥控技术,但是不涉及到单片机的应用。采用编码器集成电路VD5026以及与它配对的译码器集成电路VD5027或者VD5028。接收电路采用红外遥控接收集成电路CX20106。如图:

方案五:nRF24E1芯片的应用。nRF24E1是最新开发的工作在2.4GHZ上的射频芯片,其内嵌有:一8051兼容单片机,一个9个通道的A/D转换控制器和一2.4GHZ 的无线收发模块,适合用电池供电。用于无线鼠标的原理是:鼠标移动的信号输出接到nRF24E1的I/O口上,通过nRF24E1内部的51兼容单片机控制,采集此信号,再将此信号通过射频模块发射出去。鼠标的按键操作检测也类似,其信号接在nRF24E1的I/O口上,通过其内的单片机检测按键操作(软件进行按键去抖处理),然后通过射频发射出按键信息。天线采用1/4单极天线,布在印制板上。如下图:

方案比较:方案一的收发模块价格便宜、传输距离较远,可靠性高,特别适用低成本的无线通信设备。但是调试较难,而且电路受外界温度环境影响较大,并且障碍物也会影响信号的接收,且目前在武汉市我们还没有找到该模块的出售处。

方案二红外遥控电路技术的理论比较成熟,但是,红外线遥控技术无法突破障碍物这一关,也就是,如果在发射和接收模块中间有障碍物的话,接收就会受阻。所以为了完善无线鼠标的设计放弃了方案二和方案四。

方案二、方案三还存在软件设计的过程,包括单片机程序的编写、红外传输协议、PS/2鼠标规范、寄存器、定时器、中断周期的设定等等,因为对软件方面的知识都不是很精通,所以放弃方案三。

至于方案五,因为是新技术,目前市场还没有此芯片的出售,所以只好放弃。

最后,综合上述各种方案,确定了的发射接收模块:四路无线电遥控发射和接收电路,PT2262编码和PT2272解码电路。如下图分别为发射、编码电路和接收、译码电路:

工作原理

(1) 遥控发射电路

A3为编码集成电路PT2262,和它配对的译码器集成电路PT2272。

PT2262的1~8脚为地址端A0~A7,10~13脚为数据端D0~D3。17脚为编码信号输出端,其输出信号为调制振荡器提供开关信号。信号经9018使LC振荡电路起振。振荡器中心的频率的调整,主要靠调整微调电容V2的值来实现,该电容容量可变范围为2~10VPF,振荡器频率可变范围约为260~300MHZ。由于振荡器工作频率较高,所以LC并联谐振回路中的电感很小,L1的电感量仅为纳亨级,加工和使用起来容易因外界因素引起电感量的变化,而造成振荡器频率不稳定。调制振荡器是靠编码器提供开关信号的,如果编码器的输出的信号脉冲周期太短,

将会严重影响高频振荡器的起振频率。所以要注意编码器的选择。

编码集成电路PT2262数据端D0~D3的电平决定鼠标的移动方向和左右键的工作状态,其电平受K1~K4的控制,其中A0、D0控制X轴方向的正向和反向移动,B0、C0控制Y轴方向的正向和反向移动, A0、D0同时控制鼠标的左键, B0、C0控制鼠标的右键。

(2)无线接收和译码电路

无线接收电路由超再生接受模块实现,它由超再生载波接收电路、三极管检波电路、信号放大与整形电路组成。超再生式是利用再生式收音机的工作原理,适量地引入正反馈,使接收电路处于微弱的间歇振荡状态,控制电路的间歇振荡的信号电压(也称熄火电压),熄火电压如果是间歇振荡器自行产生的。数字编码信号经LM358放大,送入解码集成电路PT2272进行解码,由解码电路将解码的数据从相应的数据端口D0—D3输出,去控制鼠标,从而完成全部遥控过程。

3.鼠标按键的方案:

鼠标的移动方向和左右键的工作状态,其电平受K1~K4的控制,其中A、D 控制X轴方向的正向和反向移动,B、C控制Y轴方向的正向和反向移动, A、D

4.方波电路的设计:

经编码电路编码后,操作鼠标的动作变成了开关信号,我们采用方波电路产生的移位信号作为驱动鼠标光标移动的信号源,相应的开关闭合就实现了鼠标左右键操作和移动鼠标光标的操作。

方波电路的频率选取是否适当决定了鼠标光标能否移动,因此应当选择适当的频率。据我们了解,在芯片为RSM84510的鼠标电路中,方波频率在1—100HZ 时,频率的大小跟鼠标的移动速度成正比。所以,方波的频率应该在1—100HZ

的范围内。

我们的方波电路采用的是六反向

器CD4096,由它构成方波信号发生器。

电路中,R1是补偿电阻,我们选取30K,

用于改善由于电源电压的变化而引起的

振荡频率不稳定。电路的振荡是通过电

容C1的充放电完成的,其振荡频率为:

f=1/2.2RC。方波产生原理图如下:

图示电路的最大频率为:

fmax=1/[2.2*(R2+MIN(VR1))*C]=1/( 2.2*2.2*1000*2.2*0.000001)=93.91Hz

最小频率为:

fmin=1/[2.2*(R2+MAX(VR1))*C]=1/( 2.2*4.3*1000*2.2*0.000001)=9.31HZ

由于元件的误差,实际值会稍有差异。但远远可以满足鼠标电路的频率范围(1~100HZ)的要求。为了避免影响其它的电路,其它多余的反向器的输入端接地。

5.控制门电路:

IC3为六“非”门集成电路,其中IC3A和IC3B与R5和C4等组成方波发生器,其脉冲频率主要由R5、C4的值决定。R6、C5、IC3D等组成移相电路,移相量由R6、C5的值决定。当脉冲频率调整时,R6、C5的值也应作相应的调整。若以IC3的⑥脚输出脉冲为基准,则⑧脚输出脉冲相位超前,⑩脚输出脉冲相位滞后。

IC4、IC5为四“非门”集成电路,两者组成控制门电路,其中IC4C、IC4D、IC5D组成光标沿X轴方向移动的控制电路,IC4A、IC4B、IC5C组成光标沿Y轴方向移动的控制电路,IC5A为左键控制电路,IC5B为右键控制电路。

P1的①、②脚接鼠标器的Y轴方向原光敏传感器两个光敏晶体管的输出端,③、④脚接鼠标器的X轴方向原光敏传感器两个光敏晶体管的输出端,⑤、⑥脚接鼠标器的左、右键的接点,连接电路如图所示:

下面分别以控制光标沿X轴正方向移动和控制鼠标器左键为例说明这一部分电路的工作原理。

当发射器按下A后,接收器IC2的D0端输出高电平,使“与非”门IC4D的13脚为高电平,而IC2的D1端为低电平,使IC5D11脚为高电平,这样就使从IC4D的脚输入的脉冲信号得以从IC5D的脚输出,这时P1的③、④脚输出给鼠标器的脉冲信号为④脚相位超前,光标向X轴正方向移动;同理,如果按下发射器D键,则接收器P1的③、④脚输出给鼠标器的脉冲信号为④脚相位滞后,光标向X轴负方向移动。当A、D均不按下时,IC2的D0、D1端均为低电平,

IC5D的脚为低电平,P1的④脚没有脉冲信号输出,虽然这时P1的③脚有脉冲信号输出,但由于没有两个脉冲信号进行相位比较,光标在X轴方向不会产生移动。

如果同时按下发射器的A、D,则接收器IC2的D0、D1同时输出高电平,IC5A的③脚输出低电平,相当于按下鼠标器的左键。需要说明的是:由于D0、D1均为高电平,IC4C的脚、IC4D的脚输出相位相反的脉冲信号,在任一时刻IC5D 的、脚均有一端为低电平,从而使IC5D的脚输出高电平,因此按A、D不会使光标产生X方向的移动。

对于控制光标沿Y轴方向移动和控制鼠标器右键,原理同上。

第二章安装与调试

1.所用的仪器、仪表:

直流稳压电源

示波器

数字式万用表

2.调试方法和步骤:

安装和调试的一个很重要的工作是用于改装的鼠标器的选择,我们用作试验的鼠标器是北斗星简易机械鼠标器。根据原理图所示电路的要求,鼠标器的集成电路必须为正电压供电(相对于地),左、右键控制信号必须为高电平有效,即不按键时控制端对地为负电压。满足以上两个条件的机械鼠标器均可使用。我们的接线方法是这样的:先拆掉X轴、Y轴方向的光敏传感器(鼠标器中光敏传感器为三个引脚,红外发光二极管为两个引脚)及左、右键按钮开关,将图5中P1⑦、⑧脚的连线和鼠标器电路板的地相连,X轴方向的光敏传感器有三个安装孔,其中一个为公共端,置空;另两个为信号输出端,这两个输出端分别接P1的③脚和④脚,Y轴方向的连线与此类似。

调试时,按下遥控器的A,如光标向相反的方向即X轴负方向移动,只要调换一下和鼠标器电路板相连接的P1的③、④脚的线即可;按下D,如光标向相反的方向Y轴负方向移动,只要调换与鼠标器电路板相连的P1的①、②脚即可。X轴、Y轴正方向正确了,负方向也就自然正确了。

3.调试中出现的故障和解决方法:

(1)方波发生电路的输出的方波波形一直是与理论值一致的,但是经过移相电路后,两者波形的相位差不是足够的大;虽然那个相位差也能够驱动鼠标的移动,但是鼠标移动速度比较慢。于是我们检查方波发生电路,调节可变电阻的值,发现当可变电阻值为零时,鼠标移动速度是最快的。这个最快的移动速度是我们可以接受的,于是我们就将可变电阻短路,使鼠标的移动保持那个最快的速度。

(2)遥控器的上下左右键单击时,鼠标会跳动,跳动的距离是一定的,所以要选择某一图标时,会很难正对准那个图标,从而选中。我们分析,这可能与遥控器的按键有一定的延时和方波脉冲的间隔有关,我们目前还没有找到有效的

解决方法。

(3)用遥控器控制鼠标的运动,所以用起来没有普通鼠标顺手,而且只能单纯的上下左右的移动。如果加上左上、左下、右上、右下控制键,或许会简单一些,但是那样的话编码方案会比较麻烦。因为时间问题,我们没有做出来!

第三章所用元器件列表

反相器CD4069(一片)、4LS08 (两片)、74LS04(一片)、与非门4011(一片)、发射模块(编码器PT2262)(一片)、接收芯片PT2272(一片)、LM358(一片);

电阻、电容、三极管、发光二极管、开关等若干。

第四章参考文献

1 郑金存邵平周善东《多媒体教室的长距离无线鼠标的设计与实现》《广西物理》第25卷第3期

2 王视听尹志宏《一种无线射频收发模块的应用》《电子技术应用》2005年第8期

3 《四路无线电遥控电路的安装与调试》《高频电路实验与仿真》

白智涛赵莉姜红梅《基于PS/2接口的无线鼠标》2000年无线电工程第30卷第6期

4邵平杨路明周善东《一种无线遥控鼠标编译码电路的设计》云南大学学报(自然科学版),2005,27(5A)

5林文峰刘书明《新型射频芯片的功能及其应用实例》世界电子元器件2003.12

附图

发射编码电路

接收译码电路

基于单片机的蓝牙传输

简易无线数据收发设计 赛项报告 小组成员: 指导老师: 日期:二〇一五年五月三十一日 摘要 本设计以STC89C52单片机为控制核心。经蓝牙模块实现无线连接,发送数据和接收数据,通过LCD1602显示接收的数据和编辑发送的数据,两个单片机通过内部程序实现实时接收、发送和显示,从而完成相关要求。????? 关键字:控制;无线连接;接收;发送;显示 目录 1方案设定 (4) 1-1电路设计框图 (4) 1-2功能描述 (4) 1-3使用说明 (5) 2系统硬件设计 (6) 2-1主控制模块 (6) 2-2蓝牙收发模块 (8) 2-3液晶显示模块 (9) 2-4矩阵键盘模块 (10) 3系统软件设计 (11) 3-1源程序 (11) 4系统性能分析 (16) 4-1优缺点 (16) 4-2改进方向 (16)

1方案设定 1-1电路设计框图 图 1-2 HC-05数据! 1-3使用说明 在接通电源前,先把蓝牙模块插到单片机上,紧接着启动电源。观察蓝牙模块的指示灯,等待两个单片机之间的连接匹配,待指示灯出现双闪后就匹配连接成功。接下来可根据自己想要发送数据在单片机的按键区域(0~9)按下,按下后显示屏便出现你所要发送的数据,确认无误之后就按下单片机上的发送按钮即马上发送到另一方单片机上(两个单片机可以互相发送)! 使用前:使用时: 2系统硬件设计 2-1主控制模块 图6-1 STC89C52资料: STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

51单片机04矩阵按键逐行扫描,行列扫描代码

矩阵键盘扫描原理 方法一: 逐行扫描:我们可以通过高四位轮流输出低电平来对矩阵键盘进行逐行扫描,当低四位接收到的数据不全为1的时候,说明有按键按下,然后通过接收到的数据是哪一位为0来判断是哪一个按键被按下。 方法二: 行列扫描:我们可以通过高四位全部输出低电平,低四位输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下,这样就能够确定是哪一个按键按下了。

//行列扫描 #include #define GPIO_KEY P0 #define GPIO_LCD P2 unsigned char code a[17]= {~0xfc,~0x60,~0xda,~0xf2,~0x66,~0xb6,~0xbe,~0xe0, ~0xfe,~0xf6,~0xee,~0x3e,~0x9c,~0x7a,~0xde,~0x8e,~0x00}; //按位取反的用法 void delay10ms(); void keydown();//要与下面的定义一致 void main() { GPIO_LCD=a[16];//初始化数码管 while(1) { keydown(); } }

void delay10ms() { unsigned char a,b; for(a=38;a>0;a--) for(b=130;b>0;b--); } void keydown() //检测按下,按下时需要消抖,检测松开,返回按键值//没有按键时保持 { unsigned char n=0,key; GPIO_KEY=0x0f; if(GPIO_KEY!=0x0f)//读取按键是否按下 { delay10ms(); //延时10ms消抖 if(GPIO_KEY!=0x0f)//再次检测按键是否按下 { GPIO_KEY=0x0f;//测试列 switch(GPIO_KEY) { case 0x07: key=0;break;

简单51单片机数字时钟设计

题目:简单51单片机数字时钟设计 院系: 物理与电气工程学院 专业:自动化专业 班级:10级自动化 姓名:苏吉振 学号:2 老师:李艾华

引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS 化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。 单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。 数字钟是采用数字电路实现对时,分,秒数字显示的计时装置,广泛用于个 人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。

基于51单片机蓝牙开关控制家电系统

单片机与嵌入式系统 基于A VR单片机的 “智能+手机蓝牙控制开关及相关电器” 专业:电子信息科学与技术 年级:2013级 姓名:王德坤 学号:2013142110

一.摘要 利用所学51单片机基础知识结合自动控制技术和蓝牙2.0通信技术设计完成一套无线遥控开关系统。整个系统以STC89C52单片机为核心,单片机实现HC-05蓝牙指令的解析与继电器开关控制指令的发出。蓝牙通信单元采用工业级的HC-05蓝牙模块来完成,蓝牙模块在整个系统中负责蓝牙指令的接收和传输;家电开关的自动控制部分采用继电器开关来实现,继电器开关是典型的弱电信号控制型开关。 二.设计原理 采用手机蓝牙终端进行遥控控制,系统通过手机蓝牙实现家用电器开关的遥控开启和关闭,采用此方案进行设计的硬件框图如图所示 三.设计过程 采用直流电源同时增加LDO电源管理芯片进行系统的稳压,由于系统单片机需要 直流5V电压供电,HC-05蓝牙模块需要3.3V直流电源供电,因而系统采用单一的电源不能同时满足单片机和蓝牙模块的电压需求,系统电源管理电路需要增加5V 和3.3V的电压管理芯片,系统采用直流9V供电,5V电压输出采用LM7805稳压芯片稳压后输出给单片机及板上的5V电压系统供电,3.3V的电压采用RT9193-3.3V 稳压输出给系统的HC-05蓝牙模块供电。系统电源电路主要包括5V稳压输出电路,5V转3.3V稳压电路,电源滤波电路和电源输出指示电路。系统9V转直流5V电压部分电路如图a所示,5V转3.3V稳压电路如图b所示。

图a 图b 采用HC-05蓝牙模块,HC-05蓝牙模块是一款高性能的蓝牙主从一体串口通信模块,它可以和多种带蓝牙功能的电脑、手机、PAD等智能终端进行配对,该模块支持非常宽的波特率范围:4800-1382400,并且可兼容5V和3.3V单片机系统,使用方便连接灵活具有较高的性价比,同时HC-05为工业级产品,性能稳定、可靠性较高。 图HC-05通信模块电路图

基于51单片机的USB键盘设计与实现

三江学院 本科生毕业设计(论文)题目基于51单片机的USB键盘设计与实现高职院院(系)电气工程及其自动化专业 学生姓名梁邱一学号 G105071013 指导教师孙传峰职称讲师 指导教师工作单位三江学院 起讫日期 2013年12月10日至2014年4月12日

摘要 随着计算机技术的不断更新和多媒体技术的快速发展,传统的计算机外设接口因为存在许多缺点已经不能适应计算机的发展需要。比起传统的AT,PS/2,串口,通用串行总线USB,具有速度快,使用方便灵活,易于扩展,支持即插即用,成本低廉等一系列优点,得到了广泛的应用。 本论文阐述了51系列单片机和USB的相关内容,详细介绍了系统的一些功能设计,包括硬件设计和软件设计。在程序调试期间用简单的串口通信电路,通过串口调试助手掌握了USB指令的传输过程,这对整个方案的设计起到了很大的指导作用。论文以单片机最小系统配合模拟键盘组成的USB键盘硬件系统,通过对D12芯片的学习与探索,在其基本命令接口的支持下,结合硬件进行相应的固件程序设计,使其在USB协议下,实现USB模块与PC的数据通信,完成USB键盘的功能模拟。 总结论文研究工作有阐述USB总线的原理、对本设计的系统要求作出了分析、根据要求选定元件和具体编程方案、针对系统所要实现的功能对相关芯片作了详细介绍以及在硬件部分设计了原理图。 关键词:USB;D12;PC

Abstract With the rapid development of computer technology and multimedia technology constantly updated, traditional computer peripheral interface because there are many shortcomings have been unable to meet the development needs of the https://www.360docs.net/doc/e01948949.html,pared to traditional AT, PS / 2, serial, Universal Serial Bus USB, with fast, flexible and easy to use, easy to expand, support Plug and Play, a series of advantages, such as low cost, has been widely used. This paper describes the 51 series and USB related content, detailing some of the features of the system design, including hardware and software design.During debugging a simple serial communication circuit, through the serial port debugging assistant master USB transfer instructions, which designed the entire program has played a significant role in guiding.Thesis smallest single-chip system consisting of analog keyboard with a USB keyboard hardware system, by learning and exploration D12 chips, with the support of its basic command interface, in conjunction with the corresponding hardware firmware design, making it in the USB protocol, USB module data communication with the PC, the USB keyboard to complete the functional simulation. This paper summarizes research work has elaborated the principle of the USB bus, the system is designed to require the analysis, components and solutions based on the specific requirements of the selected programming for the system to achieve the function of the relevant chips are described in detail in the hardware part of the design as well as the principle of Figure. Keywords:USB;D12;PC

基于51单片机的电子时钟的设计

目录 0 前言 (1) 1 总体方案设计 (2) 2 硬件电路设计 (2) 3 软件设计 (5) 4 调试分析及说明 (7) 5 结论 (9) 参考文献 (9) 课设体会 (10) 附录1 电路原理 (12) 附录2 程序清单 (13)

电子时钟的设计 许山沈阳航空航天大学自动化学院 摘要:传统的数字电子时钟采用了较多的分立元器件,不仅占用了很大的空间而且利用率也比很低,随着系统设计复杂度的不断提高,用传统时钟系统设计方法很难满足设计需求。 单片机是集CPU、RAM、ROM、定时器/计数器和多种接口于一体的微控制器。它体积小、成本低、功能强,广泛应用于智能产品和工业自动化上。而51系列的单片机是各单片机中最为典型和最有代表性的一种。,本次设计提出了系统总体设计方案,并设计了各部分硬件模块和软件流程,在用C语言设计了具体软件程序后,将各个模块完全编译通过过后,结果证明了该设计系统的可行性。该设计给出了以AT89C2051为核心,利用单片机的运算和控制功能,并采用系统化LED显示模块实时显示数字的设计方案,适当地解决了实际生产和日常生活中对计时高精确度的要求,因此该设计在现代社会中具有广泛的应用性。 关键字:AT89C2051,C语言程序,电子钟。 0前言 利用51单片机开发电子时钟,实现时间显示、调整和闹铃功能。具体要求如下: (1)按以上要求制定设计方案,并绘制出系统工作框图; (2)按要求设计部分外围电路,并与单片机仿真器、单片机实验箱、电源等正确可靠的连接,给出电路原理图; (3)用仿真器及单片机实验箱进行程序设计与调试;

(4)利用键盘输入调整秒、分和小时时刻,数码管显示时间; (5)实现闹钟功能,在设定的时间给出声音提示。 1总体方案设计 该电子时钟由89C51,BUTTON,1602 LCD液晶屏等构成,采用晶振电路作为驱动电路,利用单片机内部定时计数器0通过软件扩展产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。闹钟和时钟的时分秒的调节是由一个按键控制,而另外一个按键控制时钟和闹钟的时间的调节。 图1 系统结构框图 该电子时钟由STC89C51,BUTTON,1602 LCD液晶屏等构成,采用晶振电路作为驱动电路,晶振电路的晶振频率为12MHZ,使用的定时器/计数器工作方式0,通过软件扩展产生的一秒定时,达到时分秒的计时,60秒为一分钟,60分钟为一小时,24小时为一天,又重00:00:00开始计时。没有按键按键按下时,时钟正常运行,当按下调节时钟按键K1,就会关闭时钟,当按下闹钟按键K3时时钟就会进入设置时间界面,但是时钟不会停止工作,按K2键,,就可以对时钟和闹钟要设置的时间进行调整。 2硬件电路设计

单片机矩阵键盘扫描程序

#include #include #define uint unsigned int #define uchar unsigned char sbit E=P2^7; //1602使能引脚 sbit RW=P2^6; //1602读写引脚 sbit RS=P2^5; //1602数据/命令选择引脚 uint keyflag ; //键盘正在读取标志位,如果Keyflag为1 ,表示正在读取键盘,停止其他功能; char x,y,m,n,c; //Keyflag为0,读取键盘结束,恢复其他功能 char flag1=0; //频率范围10~1000Hz uchar Hrate = 0; //一个周期内高点平占据时间 uchar Lrate = 0; //一个周期内低电平占据时间 uint FREQ0; //定时器T0的计数变量// uint FREQ1; //定时器T1的计数变量// sbit P2_1=P2^0; //设置P2.1,作为信号输出口// uint disbuf[3]; uint figure=0; int sum2=0; int sum1=0; int flag=0; uint count=0; uint max=0; uint disbuf_temp=0; /******************************************************************** * 名称: 1602显示延时函数delay() * 功能: 延时,延时时间大概为5US。

* 输出: 无 ***********************************************************************/ void delay() { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } /******************************************************************** * 名称: bit Busy(void) * 功能: 这个是一个读状态函数,读出函数是否处在忙状态 * 输入: 输入的命令值 * 输出: 无 ***********************************************************************/ bit Busy(void) { bit busy_flag = 0; RS = 0; RW = 1; E = 1; delay(); busy_flag = (bit)(P0 & 0x80); E = 0; return busy_flag; } /******************************************************************** * 名称: wcmd(uchar del) * 功能: 1602命令函数 * 输入: 输入的命令值 * 输出: 无 ***********************************************************************/ void wcmd(uchar del) { while(Busy()); RS = 0; RW = 0; E = 0; delay(); P0 = del; delay(); E = 1;

基于51单片机的电子时钟设计源程序

#include unsigned char DispBuf[6]; //时间显示缓冲区 unsigned char Disdate[6]; //日期显示缓冲区 unsigned char DisSec[6]; //秒表缓冲区 struct //设定时间结构体 { unsigned char Hour; unsigned char Min; unsigned char Sec; }Time; struct //设定日期结构体 { unsigned char Year; unsigned char Month; unsigned char Days; }Date; struct //设定毫秒结构体 { unsigned char Minite; unsigned char Second; unsigned char MilliSec; }Millisecond; unsigned char point=0; unsigned char point1=0; unsigned char point2=0; unsigned char Daymount; unsigned char Daymount1; unsigned char T0_Int_Times=0; //中断次数计数变量 unsigned char Flash_flag=0; //闪烁标志,每半秒闪烁 unsigned char Flash_flag1=0; //闪烁标志,每半秒闪烁 unsigned char DisPlay_Back=0; //显示缓冲区更新备份,如果显示缓冲区更新则跟闪烁标志不一致 unsigned char DisPlay_Back1=0; //显示缓冲区更新备份,如果显示缓冲区更新则跟闪烁标志不一致 unsigned char i,j; unsigned char SetMillisecond; //启动秒表 code unsigned char LEDCode[]={0x01,0xd7,0x22,0x82,0xc4,0x88,0x08,0xc1,0x00,0x80}; //数码管显示代码 code unsigned char ErrorLEDCode[]={0x01,0xe7,0x12,0x82,0xc4,0x88,0x08,0xc1,0x00,0x80};//绘制错误图纸的数码管显示代码 void DisPlayBuf(); void ChangeToDispCode(); void ChangeToDispCode1(); void changedate(); // 调日期 void displaydate(); // 显示日期 void makedays(); //确定每个月的日期 void runSec();

基于51单片机的蓝牙遥控小车

单片机大作业 “基于单片机的蓝牙遥控小车” : 班级:通信工程卓越2014-1 学号: 在班编号:

基于单片机的蓝牙遥控小车 目录 第一章绪论 (1) 1.1 研究背景和意义 (1) 第二章系统框架及软硬件结构设计 (2) 2.1 系统要求 (2) 2.2 系统整体算法流程 (2) 2.3 总体任务设计 (3) 2.4 整体硬件结构设计 (4) 2.5 整体软件结构设计 (4) 第三章模块的详细设计 (5) 3.1 L293D电机驱动模块 (5) 3.1.1模块介绍 (5) 3.1.2 PWM脉冲控制原理 (6) 3.1.3 脉冲控制代码 (6) 3.2 HC05蓝牙模块 (7) 3.2.1 模块简介 (7) 3.2.2 蓝牙串口程序说明 (8)

3.2.3 模块引脚说明 (8) 3.3 USB转TTL模块 (9) 第四章系统功能设计与实现 (11) 4.1 安卓手机蓝牙遥控的设计与实现 (11) 4.1.1 设计基本思路 (11) 4.1.2 遥控任务分配 (11) 4.2.3 蓝牙遥控操作流程 (12) 第五章软硬件调试 (14) 5.1 硬件调试 (14) 5.2 软件调试 (14)

第一章绪论 1.1 研究背景和意义 智能化无处不在。各种智能化设备在不同的领域中发挥着自己的特长,而在家用方面的智能有着相当重要的意义。 本次所设计的智能小车系统包含着对周围环境的检测、舵机控制以及短距离无线遥控等的功能,它需要实现微控制器、多传感器技术、蓝牙遥控、机械结构原理、数字逻辑、自动控制等各学科技术容的渗透融合。智能小车通过其上部搭载的89C52芯片作为核心控制器,通过多种传感器来获取周围环境信息并将采集到的信息输送给CPU,然后由CPU来给各个部分下达相对应的指令。智能小车不仅价格低廉,而且甚至能够担任人类难以从事的任务,它在工业、农业以及社会生产生活等许多领域都起到了重要作用。本次课题设计中所采用到的短距离无线遥控、单片机控制原理、多传感器技术、自动避障技术等等。现在在工业制造、农业生产、国家安全、军事武器,医疗保健、太空探测等许多领域都日益发挥着其作用,在军事侦察、反恐、防暴、防核化等高危任务方面、环境污染检测方面和在恶劣环境中均有着非常好的发展前景,从这些方面可知本课题研究意义非凡。

51单片机按键控制数码管程序

#define uint unsigned int #define uchar unsigned char uchar c; sbit p10=P1^0; sbit p11=P1^1; sbit p12=P1^2; sbit p13=P1^3; sbit p14=P1^4; sbit p15=P1^5; sbit p16=P1^6; sbit p17=P1^7; void delay(uint z); int b[]={0,1,2,3,4,5,6,7};//设置每一位显示的数字 unsigned char code Tab[]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//共阳极数码管 int a[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void main() { EA=1; EX0=1; IT0=1; P1=0xff; while(1) { for(c=0;c<8;c++)//数码管扫描显示

P2=a[c]; P0=Tab[b[c]]; delay (1); } } } void delay(uint z) { uint a,b; for(a=z;a>0;a--) for(b=110;b>0;b--); } int_0()interrupt 0 { EA=0; if(p10==0) b[0]=(b[0]+1)%10; if(p11==0) b[1]=(b[1]+1)%10; if(p12==0) b[2]=(b[2]+1)%10; if(p13==0) b[3]=(b[3]+1)%10; if(p14==0) b[4]=(b[4]+1)%10; if(p15==0) b[5]=(b[5]+1)%10; if(p16==0) b[6]=(b[6]+1)%10; if(p17==0) b[7]=(b[7]+1)%10;

51单片机电子时钟设计报告

电子时钟实验报告 全部代码在文档末尾:51单片机,LCD1602液晶显示屏平台下编程实现,可直接编译运行 目录: 一,实验目的 (1) 二,实验要求 (2) 三,实验基本原理 (2) 四,实验设计分析 (2) 五,实验要求实现 (3) A.电路设计 (3) 1. 整体设计 (3) 2. 分块设计 (4) 2.1 输入部分 (4) 2.2 输出部分 (5) 2.3 晶振与复位电路 (5) B.程序设计 (6) B.1 程序总体设计 (6) B.2 程序主要模块 (6) 五.实验总结及感想 (8) 一,实验目的 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以电子钟是以其小巧,价格低廉,走时精度高,使用方便,

功能多,便于集成化而受广大消费的喜爱,得到了广泛的使用。 1. 学习8051定时器时间计时处理、按键扫描及LCD液晶显示的设计方法。 2. 设计任务及要求利用实验平台上LCD1602液晶显示屏,设计带有闹铃功能的数字时钟 二,实验要求 A.基本要求: 1. 在LCD1602液晶显示屏上显示当前日期,时间。 2. 利用按键可对时间及闹玲进行设置,并可显示设置闹玲的时间。闹玲时间到蜂鸣器发出 声响,一分钟后闹铃停止。 B.扩展部分: 1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整)实现年月日时分秒的调整,星期准确的随着日期改变而改变进行显示。 2.定时功能(设定一段时间长度,定时到后,闹铃提示) C.可扩展部分: 1.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调) 2.可进行备忘录提示,按照年月日,可在设定的某年某月进行闹铃提示。 三,实验基本原理 利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.05s中断一次并当作一个计数,设定定时1秒的中断计数初值为20,每中断一次中断计数初值加1,当减到20时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了,是否一天到了,是否一个月到了,是否一年到了。 将时间在LCD液晶屏上显示,降低了程序的编写难度。LCD的固定显示特性是我们省去了数码管的动态扫描显示。 四,实验设计分析 针对要实现的功能,采用AT89S52单片机进行设计,AT89S52 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结

基于51单片机蓝牙模块传输数据毕业设计作品

基于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的字符发生器CGRAM特征应用微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。操作控制 注:关于E=H脉冲——开始时初始化E为0,然后置E为1。 2-4矩阵键盘模块

51单片机的电子时钟设计

基于51单片机的电子时钟设计 摘要:本文介绍了基于51单片机的电子时钟的设计,从硬件和软件两个方面给出了具体实现过程。该时钟的设计采用功能分块的思想方法,将硬件电路划分为开关电路,显示驱动电路和数码管电路等若干独立模块,而软件的实现则由闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等组成。文中给出了各个模块的电路图,并用Proteus的ISIS软件对电子时钟系统的各个功能进行了仿真,并给出了相应的仿真结果图像。 关键词:单片机;电子时钟;键盘控制 Electronic Clock Design Based on 51 Single-chip *** Shandong Institute of Business and Technology , 264005 Abstract:This paper introduces the electronic clock design based on 51 single-chip microcomputer, and it provides us specific implementation process from aspects of hardware and software. This clock is designed by the method of function blocks. In hardware, it’s circuit is divided into switch block, display drive block and digital control block. However, the software consist of the program of alarm clock, time display, date display, stopwatch display, time adjust, timing adjustment, the alarm clock adjustment, time delay and so on. Circuit diagrams of each module is also given and the corresponding simulation image of this clock produced by software of Proteus is also showed in this paper. Key words:single chip microcomputer; electronic clock;Keyboard control 一,引言 1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的工具。现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,

基于51单片机的蓝牙遥控小车

基于51单片机的蓝牙遥控小车

————————————————————————————————作者:————————————————————————————————日期:

单片机大作业 “基于单片机的蓝牙遥控小车” 姓名: 班级:通信工程卓越2014-1 学号:

在班编号:

基于单片机的蓝牙遥控小车 目录 第一章绪论1? 1.1 研究背景和意义.................................................................... 1第二章系统框架及软硬件结构设计 . (2) 2.1 系统要求2? 2.2系统整体算法流程2? 2.3 总体任务设计 (3) 2.4 整体硬件结构设计 (4) 2.5整体软件结构设计4? 第三章模块的详细设计 ........................................ 错误!未定义书签。 3.1 L293D电机驱动模块 (5) 3.1.1模块介绍?5 3.1.2 PWM脉冲控制原理?6 3.1.3 脉冲控制代码6? 3.2HC05蓝牙模块 (7) 3.2.1 模块简介?7 3.2.2蓝牙串口程序说明 (8)

3.2.3 模块引脚说明8? 3.3 USB转TTL模块9? 第四章系统功能设计与实现 (11) 4.1 安卓手机蓝牙遥控的设计与实现...................................... 11 4.1.1 设计基本思路11? 4.1.2 遥控任务分配1?1 4.2.3 蓝牙遥控操作流程 ............. 错误!未定义书签。第五章软硬件调试14? 5.1 硬件调试......................................................................... 14 5.2 软件调试?14

51单片机矩阵键盘扫描程序

/*----------------------------------------------- 名称:矩阵键盘依次输入控制使用行列逐级扫描 论坛:https://www.360docs.net/doc/e01948949.html, 编写:shifang 日期:2009.5 修改:无 内容:如计算器输入数据形式相同从右至左使用行列扫描方法 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #define DataPort P0 //定义数据端口程序中遇到DataPort 则用P0 替换 #define KeyPort P1 sbit LATCH1=P2^2;//定义锁存使能端口段锁存 sbit LATCH2=P2^3;// 位锁存 unsigned char code dofly_DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71};// 显示段码值0~F unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码 unsigned char TempData[8]; //存储显示值的全局变量 void DelayUs2x(unsigned char t);//us级延时函数声明 void DelayMs(unsigned char t); //ms级延时 void Display(unsigned char FirstBit,unsigned char Num);//数码管显示函数 unsigned char KeyScan(void);//键盘扫描 unsigned char KeyPro(void); void Init_Timer0(void);//定时器初始化 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { unsigned char num,i,j; unsigned char temp[8]; Init_Timer0(); while (1) //主循环 { num=KeyPro();

51单片机按键控制花样灯

51单片机按键控制花样灯 时间:2018-09-10 13:50:11 来源:51hei 作者: /**************************************************** * 本程序实现用按键控制花样灯。 * * 当K1按下时,灯从0xfe向左跑一遍; * * 当K2按下时,LED灯从0x7f向右跑一遍到了0xfe右跑回到起始位置; * * 当K3键按下时,LED灯从0xfe开始作流水灯形式运行一次,然后再流回来。 * * 当K4键按下时,LED灯先亮前四个,接着再转向亮后四个。 * * 当K5键按下时,结束任意正在进行的程序,使LED灯全部熄灭。 * ******************************************************/ ************************************************* 连接方法:P0接独立按键JP5。P2接LED灯接口JP1 * ***********************************************************/ #include //头文件,函数声明 #include //定义按键所在位 sbit K1=P0^0。 sbit K2=P0^1。 sbit K3=P0^2。 sbit K4=P0^3。 sbit K5=P0^4。 unsigned char led。 unsigned char j。 void delayms(unsigned char ms> // 1ms标准延时 { while(ms--> { for(j=0。j<110。j++>。 //还是无法设置比较标准的延时,如1S等;所以应该用定时器延时才最准确 } } void main(> { //P2=led。 unsigned int i。

基于51单片机的数字时钟设计_毕业设计

基于51单片机的数字时钟设计 目录 摘要 (1) Abstract (2) 第一章绪论 (3) 1.1 数字时钟设计的背景 (3) 第二章AT89C51单片机简介 (3) 2.1 单片机介绍 (3) 2.2 单片机的应用特点 (4) 2.3 单片机的应用领域 (4) 2.4 单片机的中断与定时系统 (4) 2.4.1 MCS-51单片机中断系统 (4) 2.4.2 MCS-51 单片机的定时器/计数器 (6) 2.4.3 MCS-51定时器/计数器的四种工作方式 (6) 2.5 AT89C51引脚功能介绍 (7) 第三章设计方案 (8) 3.1 主程序 (8) 3.2 数码管显示模块 (9) 3.3 定时器计数器T0中断服务程序 (9) 3.4按键处理模块 (10) 第四章硬件电路设计 (10) 4.1 复位电路 (10) 4.2 时钟电路 (11) 4.3 按键电路 (12) 4.4 数码管显示电路 (13) 4.5 电源电路设计 (13) 第五章软件设计与程序代码 (14) 5.1 软件选择与介绍 (14) 5.1.1 软件介绍 (14) 5.1.2 Proteus7.8的特点 (15) 5.2 软件仿真电路全图 (15) 5.3 源程序代码 (16) 第六章结论 (20) 参考文献 (21) 致谢 (22)

摘要 近几年,单片机在各个领域得到广泛的应用。从工业到人们的日常生活,大部分的科技产品都是通过单片机来控制。在它问世之前,自动控制设备得不到广泛的应用,这是因为控制设备的体积庞大,耗电量大,价格昂贵。在第一台微处理器成功研制不久,第一个单片机就问世了。因为其小巧的体积,低功耗,以及高效的性能,单片机受到了大家的欢迎。 本设计利用Atmel公司的AT89C52单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用C语言进行软件编程,并用Proteus软件进行演示、验证。主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机80C51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机的数字电子时钟。它的计时周期为24小时,显满刻度为“23时59分59秒”,且配有4个独立键盘,可以灵活地调节时间和日期,并具有一定的扩展性。 关键词:单片机,数字时钟,动态显示,LED数码管显示,独立按键

相关文档
最新文档