首页

毕业论文

首页 毕业论文 问题

具有整点报时时钟毕业论文

发布时间:

具有整点报时时钟毕业论文

数字电子技术课程设计报告题 目: 数字钟的设计与制作 学 年学 期: 专 业 班 级:学 号: 姓 名: 指导教师及职称:讲师时 间: 地点:设计目的熟悉集成电路的引脚安排.掌握各芯片的逻辑功能及使用方法.了解面包板结构及其接线方法.了解数字钟的组成及工作原理.熟悉数字钟的设计与制作.设计要求1.设计指标时间以24小时为一个周期;显示时,分,秒;有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间;计时过程具有报时功能,当时间到达整点前5秒进行蜂鸣报时;为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号.2.设计要求画出电路原理图(或仿真电路图);元器件及参数选择;电路仿真与调试;PCB文件生成与打印输出.3.制作要求 自行装配和调试,并能发现问题和解决问题.4.编写设计报告 写出设计与制作的全过程,附上有关资料和图纸,有心得体会.设计原理及其框图1.数字钟的构成数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路.由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定.通常使用石英晶体振荡器电路构成数字钟.图 3-1所示为数字钟的一般构成框图.图3-1 数字钟的组成框图⑴晶体振荡器电路 晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定.不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路.⑵分频器电路 分频器电路将32768Hz的高频方波信号经32768()次分频后得到1Hz的方波信号供秒计数器进行计数.分频器实际上也就是计数器.⑶时间计数器电路 时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器,而根据设计要求,时个位和时十位计数器为12进制计数器.⑷译码驱动电路 译码驱动电路将计数器输出的8421BCD码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流.⑸数码管 数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管,本设计提供的为LED数码管.2.数字钟的工作原理1)晶体振荡器电路晶体振荡器是构成数字式时钟的核心,它保证了时钟的走时准确及稳定.图3-2所示电路通过CMOS非门构成的输出为方波的数字式晶体振荡电路,这个电路中,CMOS非门U1与晶体,电容和电阻构成晶体振荡器电路,U2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波.输出反馈电 阻R1为非门提供偏置,使电路工作于放大区域,即非门的功能近似于一个高增益的反相放大器.电容C1,C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能.由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确.晶体XTAL的频率选为32768HZ.该元件专为数字钟电路而设计,其频率较低,有利于减少分频器级数.从有关手册中,可查得C1,C2均为30pF.当要求频率准确度和稳定度更高时,还可接入校正电容并采取温度补偿措施.由于CMOS电路的输入阻抗极高,因此反馈电阻R1可选为10MΩ.较高的反馈电阻有利于提高振荡频率的稳定性.非门电路可选74HC00.图3-2 COMS晶体振荡器2)分频器电路通常,数字钟的晶体振荡器输出频率较高,为了得到1Hz的秒信号输入,需要对振荡器的输出信号进行分频.通常实现分频器的电路是计数器电路,一般采用多级2进制计数器来实现.例如,将32768Hz的振荡信号分频为1HZ的分频倍数为32768(215),即实现该分频功能的计数器相当于15极2进制计数器.常用的2进制计数器有74HC393等.本实验中采用CD4060来构成分频电路.CD4060在数字集成电路中可实现的分频次数最高,而且CD4060还包含振荡电路所需的非门,使用更为方便.CD4060计数为14级2进制计数器,可以将32768HZ的信号分频为2HZ,其内部框图如图3-3所示,从图中可以看出,CD4060的时钟输入端两个串接的非门,因此可以直接实现振荡和分频的功能.图3-3 CD4046内部框图3)时间计数单元时间计数单元有时计数,分计数和秒计数等几个部分.时计数单元一般为12进制计数器计数器,其输出为两位8421BCD码形式;分计数和秒计数单元为60进制计数器,其输出也为8421BCD码.一般采用10进制计数器74HC390来实现时间计数单元的计数功能.为减少器件使用数量,可选74HC390,其内部逻辑框图如图 所示.该器件为双2—5-10异步计数器,并且每一计数器均提供一个异步清零端(高电平有效).图3-4 74HC390(1/2)内部逻辑框图秒个位计数单元为10进制计数器,无需进制转换,只需将QA与CPB(下降沿有效)相连即可.CPA(下降没效)与1HZ秒输入信号相连,Q3可作为向上的进位信号与十位计数单元的CPA相连.秒十位计数单元为6进制计数器,需要进制转换.将10进制计数器转换为6进制计数器的电路连接方法如图3-5所示,其中Q2可作为向上的进位信号与分个位的计数单元的CPA相连.图3-5 10进制——6进制计数器转换电路分个位和分十位计数单元电路结构分别与秒个位和秒十位计数单元完全相同,只不过分个位计数单元的Q3作为向上的进位信号应与分十位计数单元的CPA相连,分十位计数单元的Q2作为向上的进位信号应与时个位计数单元的CPA相连.时个位计数单元电路结构仍与秒或个位计数单元相同,但是要求,整个时计数单元应为12进制计数器,不是10的整数倍,因此需将个位和十位计数单元合并为一个整体才能进行12进制转换.利用1片74HC390实现12进制计数功能的电路如图3-6所示.另外,图3-6所示电路中,尚余-2进制计数单元,正好可作为分频器2HZ输出信号转化为1HZ信号之用.图3-6 12进制计数器电路4)译码驱动及显示单元计数器实现了对时间的累计以8421BCD码形式输出,选用显示译码电路将计数器的输出数码转换为数码显示器件所需要的输出逻辑和一定的电流,选用CD4511作为显示译码电路,选用LED数码管作为显示单元电路.5)校时电源电路当重新接通电源或走时出现误差时都需要对时间进行校正.通常,校正时间的方法是:首先截断正常的计数通路,然后再进行人工出触发计数或将频率较高的方波信号加到需要校正的计数单元的输入端,校正好后,再转入正常计时状态即可.根据要求,数字钟应具有分校正和时校正功能,因此,应截断分个位和时个位的直接计数通路,并采用正常计时信号与校正信号可以随时切换的电路接入其中.图3-7所示即为带有基本RS触发器的校时电路,图3-7 带有消抖动电路的校正电路6)整点报时电路一般时钟都应具备整点报时电路功能,即在时间出现整点前数秒内,数字钟会自动报时,以示提醒.其作用方式是发出连续的或有节奏的音频声波,较复杂的也可以是实时语音提示.根据要求,电路应在整点前10秒钟内开始整点报时,即当时间在59分50秒到59分59秒期间时,报时电路报时控制信号.报时电路选74HC30,选蜂鸣器为电声器件.元器件1.实验中所需的器材5V电源.面包板1块.示波器.万用表.镊子1把.剪刀1把.网络线2米/人.共阴八段数码管6个.CD4511集成块6块.CD4060集成块1块.74HC390集成块3块.74HC51集成块1块.74HC00集成块5块.74HC30集成块1块.10MΩ电阻5个.500Ω电阻14个.30p电容2个.时钟晶体1个.蜂鸣器.2.芯片内部结构图及引脚图图4-1 7400 四2输入与非门 图4-2 CD4511BCD七段译码/驱动器图4-3 CD4060BD 图4-4 74HC390D 图4-5 74HC51D 图4-6 74HC303.面包板内部结构图面包板右边一列上五组竖的相通,下五组竖的相通,面包板的左边上下分四组,每组中X,Y列(0-15相通,16-40相通,41-55相通,ABCDE相通,FGHIJ相通,E和F之间不相通.个功能块电路图一个CD4511和一个LED数码管连接成一个CD4511驱动电路,数码管可从0---9显示,以次来检查数码管的好坏,见附图5-1.图5-1 4511驱动电路利用一个LED数码管,一块CD4511,一块74HC390,一块74HC00连接成一个十进制计数器,电路在晶振的作用下数码管从0—9显示,见附图5-2.图5-2 74390十进制计数器利用一个LED数码管,一块CD4511,一块74HC390,一块74HC00和一个晶振连接成一个六进制计数器,数码管从0—6显示,见附图5-3.图5-3 74390六进制计数器利用一个六进制电路和一个十进制连接成一个六十进制电路,电路可从0—59显示,见附图5-4.图5-4 六十进制电路利用两个六十进制的电路合成一个双六十进制电路,两个六十进制之间有进位,见附图5-5.图5-5 双六十进制电路利用CD4060,电阻及晶振连接成一个分频——晶振电路,见附图5-6.图5-6 分频—晶振电路利用74HC51D和74HC00及电阻连接成一个校时电路,见附图5-7.图5-7 校时电路利用74HC30和蜂鸣器连接成整点报时电路.见附图5-8.图5-8 整点报时电路利用两个六十进制和一个十二进制连接成一个时,分,秒都会进位的电路总图,见附图5-9.图5-9 时,分,秒的进位连接图总接线元件布局简图,见附图6-1芯片连接图见附图7-1八,总结设计过程中遇到的问题及其解决方法.在检测面包板状况的过程中,出现本该相通的地方却未通的状况,后经检验发现是由于万用表笔尖未与面包板内部垂直接触所至.在检测CD4511驱动电路的过程中发现数码管不能正常显示的状况,经检验发现主要是由于接触不良的问题,其中包括线的接触不良和芯片的接触不良,在实验过程中,数码管有几段二极管时隐时现,有时会消失.用5V电源对数码管进行检测,一端接地,另一端接触每一段二极管,发现二极管能正常显示的,再用万用表欧姆档检测每一根线是否接触良好,在检测过程中发现有几根线有时能接通,有时不能接通,把接触不好的线重新接过后发现能正常显示了.其次是由于芯片接触不良的问题,用万用表欧姆档检测有几个引脚本该相通的地方却未通,而检测的导线状况良好,其解决方法为把CD4511的芯片拔出,根据面包板孔的的状况重新调整其引脚,使其正对于孔,再用力均匀地将芯片插入面包板中,此后发现能正常显示,本次实验中还发现一块坏的LED数码管和两块坏的CD4511,经更换后均能正常显示.在连接晶振的过程中,晶振无法起振.在排除线与芯片的接触不良问题后重新对照电路图,发现是由于12脚未接地所至.在连接六进制的过程中,发现电路只能4,5的跳动,后经发现是由于接到与非门的引脚接错一根所至,经纠正后能正常显示.在连接校正电路的过程中,出现时和分都能正常校正时,但秒却受到影响,特别时一较分钟的时候秒乱跳,而不校时的时候,秒从40跳到59,然后又跳回40,分和秒之间无进位,电路在时,分,秒进位过程中能正常显示,故可排除芯片和连线的接触不良的问题.经检查,校正电路的连线没有错误,后用万用表的直流电压档带电检测秒十位的QA,QB,QC和QD脚,发现QA脚时有电压时而无电压,再检测秒到分和分到时的进位端,发现是由于秒到分的进位未拔掉所至.在制作报时电路的过程中,发现蜂鸣器在57分59秒的时候就开始报时,后经检测电路发现是由于把74HC30芯片当16引脚的芯片来接,以至接线都错位,重新接线后能正常报时.连接分频电路时,把时个位的QD和时十位的1脚断开,然后时十位的1脚接到晶振的3脚,时十位的3脚接到秒个位的1脚,所连接的电路图无法正常工作,时十位从0-9的跳,时个位只能显示一个0,在这个电路中3脚的分频用到两次,故无法正常显示,因此要把12进制接到74HC390的一个逻辑电路空出来用于分频即可,因此把时十位的CD4511的12,6脚接地,7脚改为接74HC390的5脚,74HC390的3,4脚断开,然后4脚接9脚即可,其中空出的74HC390的3脚就可用于2Hz的分频,分频后变为1Hz,整个电路也到此为正常的数字钟计数.2.设计体会在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法.在连接六进制,十进制,六十进制的进位及十二进制的接法中,要求熟悉逻辑电路及其芯片各引脚的功能,那么在电路出错时便能准确地找出错误所在并及时纠正了.在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的,例如仿真的连接示意图中,往往没有接高电平的16脚或14脚以及接低电平的7脚或8脚,因此在实际的电路连接中往往容易遗漏.又例如74HC390芯片,其本身就是一个十进制计数器,在仿真电路中必须连接反馈线才能正常显示,而在实际电路中无需再连接,因此仿真图和电路连接图还是有一定区别的.在设计电路的连接图中出错的主要原因都是接线和芯片的接触不良以及接线的错误所引起的.3.对该设计的建议此次的数字钟设计重在于仿真和接线,虽然能把电路图接出来,并能正常显示,但对于电路本身的原理并不是十分熟悉.总的来说,通过这次的设计实验更进一步地增强了实验的动手能力.

推荐你去淘宝的:翰林书店,店主应该能下载到这类论文。我去下过,很及时的

题 目: 数字钟的设计心得学 年: 学 期: 专 业: 班 级: 学 号: 姓 名: 指导教师及职称: 时 间: 一、设计目的1. 熟悉集成电路的引脚安排。2. 掌握各芯片的逻辑功能及使用方法。3. 了解面包板结构及其接线方法。4. 了解数字钟的组成及工作原理。5. 熟悉数字钟的设计与制作。二、设计要求1.设计指标时间以24小时为一个周期;显示时、分、秒;有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间;计时过程具有报时功能,当时间到达整点前5秒进行蜂鸣报时;为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号。2.设计要求画出电路原理图(或仿真电路图);元器件及参数选择;电路仿真与调试;PCB文件生成与打印输出。3.制作要求 自行装配和调试,并能发现问题和解决问题。4.编写设计报告 写出设计与制作的全过程,附上有关资料和图纸,有心得体会。三、设计原理及其框图1.数字钟的构成数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。图 3-1所示为数字钟的一般构成框图。图3-1 数字钟的组成框图⑴晶体振荡器电路晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。⑵分频器电路分频器电路将32768Hz的高频方波信号经32768()次分频后得到1Hz的方波信号供秒计数器进行计数。分频器实际上也就是计数器。⑶时间计数器电路时间计数电路由秒个位和秒十位计数器、分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器、分个位和分十位计数器为60进制计数器,而根据设计要求,时个位和时十位计数器为12进制计数器。⑷译码驱动电路译码驱动电路将计数器输出的8421BCD码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。⑸数码管数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管,本设计提供的为LED数码管。2.数字钟的工作原理1)晶体振荡器电路晶体振荡器是构成数字式时钟的核心,它保证了时钟的走时准确及稳定。图3-2所示电路通过CMOS非门构成的输出为方波的数字式晶体振荡电路,这个电路中,CMOS非门U1与晶体、电容和电阻构成晶体振荡器电路,U2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波。输出反馈电 阻R1为非门提供偏置,使电路工作于放大区域,即非门的功能近似于一个高增益的反相放大器。电容C1、C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能。由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。晶体XTAL的频率选为32768HZ。该元件专为数字钟电路而设计,其频率较低,有利于减少分频器级数。从有关手册中,可查得C1、C2均为30pF。当要求频率准确度和稳定度更高时,还可接入校正电容并采取温度补偿措施。由于CMOS电路的输入阻抗极高,因此反馈电阻R1可选为10MΩ。较高的反馈电阻有利于提高振荡频率的稳定性。非门电路可选74HC00。图3-2 COMS晶体振荡器2)分频器电路通常,数字钟的晶体振荡器输出频率较高,为了得到1Hz的秒信号输入,需要对振荡器的输出信号进行分频。通常实现分频器的电路是计数器电路,一般采用多级2进制计数器来实现。例如,将32768Hz的振荡信号分频为1HZ的分频倍数为32768(215),即实现该分频功能的计数器相当于15极2进制计数器。常用的2进制计数器有74HC393等。本实验中采用CD4060来构成分频电路。CD4060在数字集成电路中可实现的分频次数最高,而且CD4060还包含振荡电路所需的非门,使用更为方便。CD4060计数为14级2进制计数器,可以将32768HZ的信号分频为2HZ,其内部框图如图3-3所示,从图中可以看出,CD4060的时钟输入端两个串接的非门,因此可以直接实现振荡和分频的功能。图3-3 CD4046内部框图3)时间计数单元时间计数单元有时计数、分计数和秒计数等几个部分。时计数单元一般为12进制计数器计数器,其输出为两位8421BCD码形式;分计数和秒计数单元为60进制计数器,其输出也为8421BCD码。一般采用10进制计数器74HC390来实现时间计数单元的计数功能。为减少器件使用数量,可选74HC390,其内部逻辑框图如图2.3所示。该器件为双2—5-10异步计数器,并且每一计数器均提供一个异步清零端(高电平有效)。图3-4 74HC390(1/2)内部逻辑框图秒个位计数单元为10进制计数器,无需进制转换,只需将QA与CPB(下降沿有效)相连即可。CPA(下降没效)与1HZ秒输入信号相连,Q3可作为向上的进位信号与十位计数单元的CPA相连。秒十位计数单元为6进制计数器,需要进制转换。将10进制计数器转换为6进制计数器的电路连接方法如图3-5所示,其中Q2可作为向上的进位信号与分个位的计数单元的CPA相连。图3-5 10进制——6进制计数器转换电路分个位和分十位计数单元电路结构分别与秒个位和秒十位计数单元完全相同,只不过分个位计数单元的Q3作为向上的进位信号应与分十位计数单元的CPA相连,分十位计数单元的Q2作为向上的进位信号应与时个位计数单元的CPA相连。时个位计数单元电路结构仍与秒或个位计数单元相同,但是要求,整个时计数单元应为12进制计数器,不是10的整数倍,因此需将个位和十位计数单元合并为一个整体才能进行12进制转换。利用1片74HC390实现12进制计数功能的电路如图3-6所示。另外,图3-6所示电路中,尚余-2进制计数单元,正好可作为分频器2HZ输出信号转化为1HZ信号之用。图3-6 12进制计数器电路4)译码驱动及显示单元计数器实现了对时间的累计以8421BCD码形式输出,选用显示译码电路将计数器的输出数码转换为数码显示器件所需要的输出逻辑和一定的电流,选用CD4511作为显示译码电路,选用LED数码管作为显示单元电路。5)校时电源电路当重新接通电源或走时出现误差时都需要对时间进行校正。通常,校正时间的方法是:首先截断正常的计数通路,然后再进行人工出触发计数或将频率较高的方波信号加到需要校正的计数单元的输入端,校正好后,再转入正常计时状态即可。根据要求,数字钟应具有分校正和时校正功能,因此,应截断分个位和时个位的直接计数通路,并采用正常计时信号与校正信号可以随时切换的电路接入其中。图3-7所示即为带有基本RS触发器的校时电路,图3-7 带有消抖动电路的校正电路6)整点报时电路一般时钟都应具备整点报时电路功能,即在时间出现整点前数秒内,数字钟会自动报时,以示提醒。其作用方式是发出连续的或有节奏的音频声波,较复杂的也可以是实时语音提示。根据要求,电路应在整点前10秒钟内开始整点报时,即当时间在59分50秒到59分59秒期间时,报时电路报时控制信号。报时电路选74HC30,选蜂鸣器为电声器件。四、元器件1.实验中所需的器材5V电源。面包板1块。示波器。万用表。镊子1把。剪刀1把。网络线2米/人。共阴八段数码管6个。CD4511集成块6块。CD4060集成块1块。74HC390集成块3块。74HC51集成块1块。74HC00集成块5块。74HC30集成块1块。10MΩ电阻5个。500Ω电阻14个。30p电容2个。时钟晶体1个。蜂鸣器。2.芯片内部结构图及引脚图图4-1 7400 四2输入与非门 图4-2 CD4511BCD七段译码/驱动器图4-3 CD4060BD 图4-4 74HC390D 图4-5 74HC51D 图4-6 74HC303.面包板内部结构图面包板右边一列上五组竖的相通,下五组竖的相通,面包板的左边上下分四组,每组中X、Y列(0-15相通,16-40相通,41-55相通,ABCDE相通,FGHIJ相通,E和F之间不相通。五、个功能块电路图1. 一个CD4511和一个LED数码管连接成一个CD4511驱动电路,数码管可从0---9显示,以次来检查数码管的好坏,见附图5-1。图5-1 4511驱动电路2. 利用一个LED数码管,一块CD4511,一块74HC390,一块74HC00连接成一个十进制计数器,电路在晶振的作用下数码管从0—9显示,见附图5-2。图5-2 74390十进制计数器3. 利用一个LED数码管,一块CD4511,一块74HC390,一块74HC00和一个晶振连接成一个六进制计数器,数码管从0—6显示,见附图5-3。图5-3 74390六进制计数器4. 利用一个六进制电路和一个十进制连接成一个六十进制电路,电路可从0—59显示,见附图5-4。图5-4 六十进制电路5. 利用两个六十进制的电路合成一个双六十进制电路,两个六十进制之间有进位,见附图5-5。图5-5 双六十进制电路6. 利用CD4060、电阻及晶振连接成一个分频——晶振电路,见附图5-6。图5-6 分频—晶振电路7. 利用74HC51D和74HC00及电阻连接成一个校时电路,见附图5-7。图5-7 校时电路8. 利用74HC30和蜂鸣器连接成整点报时电路。见附图5-8。图5-8 整点报时电路9. 利用两个六十进制和一个十二进制连接成一个时、分、秒都会进位的电路总图,见附图5-9。图5-9 时、分、秒的进位连接图六、总接线元件布局简图,见附图6-1七、芯片连接图见附图7-1八、总结1. 设计过程中遇到的问题及其解决方法。1) 在检测面包板状况的过程中,出现本该相通的地方却未通的状况,后经检验发现是由于万用表笔尖未与面包板内部垂直接触所至。2) 在检测CD4511驱动电路的过程中发现数码管不能正常显示的状况,经检验发现主要是由于接触不良的问题,其中包括线的接触不良和芯片的接触不良,在实验过程中,数码管有几段二极管时隐时现,有时会消失。用5V电源对数码管进行检测,一端接地,另一端接触每一段二极管,发现二极管能正常显示的,再用万用表欧姆档检测每一根线是否接触良好,在检测过程中发现有几根线有时能接通,有时不能接通,把接触不好的线重新接过后发现能正常显示了。其次是由于芯片接触不良的问题,用万用表欧姆档检测有几个引脚本该相通的地方却未通,而检测的导线状况良好,其解决方法为把CD4511的芯片拔出,根据面包板孔的的状况重新调整其引脚,使其正对于孔,再用力均匀地将芯片插入面包板中,此后发现能正常显示,本次实验中还发现一块坏的LED数码管和两块坏的CD4511,经更换后均能正常显示。3) 在连接晶振的过程中,晶振无法起振。在排除线与芯片的接触不良问题后重新对照电路图,发现是由于12脚未接地所至。4) 在连接六进制的过程中,发现电路只能4、5的跳动,后经发现是由于接到与非门的引脚接错一根所至,经纠正后能正常显示。5) 在连接校正电路的过程中,出现时和分都能正常校正时,但秒却受到影响,特别时一较分钟的时候秒乱跳,而不校时的时候,秒从40跳到59,然后又跳回40,分和秒之间无进位,电路在时、分、秒进位过程中能正常显示,故可排除芯片和连线的接触不良的问题。经检查,校正电路的连线没有错误,后用万用表的直流电压档带电检测秒十位的QA、QB、QC和QD脚,发现QA脚时有电压时而无电压,再检测秒到分和分到时的进位端,发现是由于秒到分的进位未拔掉所至。6) 在制作报时电路的过程中,发现蜂鸣器在57分59秒的时候就开始报时,后经检测电路发现是由于把74HC30芯片当16引脚的芯片来接,以至接线都错位,重新接线后能正常报时。7) 连接分频电路时,把时个位的QD和时十位的1脚断开,然后时十位的1脚接到晶振的3脚,时十位的3脚接到秒个位的1脚,所连接的电路图无法正常工作,时十位从0-9的跳,时个位只能显示一个0,在这个电路中3脚的分频用到两次,故无法正常显示,因此要把12进制接到74HC390的一个逻辑电路空出来用于分频即可,因此把时十位的CD4511的12、6脚接地,7脚改为接74HC390的5脚,74HC390的3、4脚断开,然后4脚接9脚即可,其中空出的74HC390的3脚就可用于2Hz的分频,分频后变为1Hz,整个电路也到此为正常的数字钟计数。2.设计体会在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。在连接六进制、十进制、六十进制的进位及十二进制的接法中,要求熟悉逻辑电路及其芯片各引脚的功能,那么在电路出错时便能准确地找出错误所在并及时纠正了。在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的,例如仿真的连接示意图中,往往没有接高电平的16脚或14脚以及接低电平的7脚或8脚,因此在实际的电路连接中往往容易遗漏。又例如74HC390芯片,其本身就是一个十进制计数器,在仿真电路中必须连接反馈线才能正常显示,而在实际电路中无需再连接,因此仿真图和电路连接图还是有一定区别的。在设计电路的连接图中出错的主要原因都是接线和芯片的接触不良以及接线的错误所引起的。3.对该设计的建议此次的数字钟设计重在于仿真和接线,虽然能把电路图接出来,并能正常显示,但对于电路本身的原理并不是十分熟悉。总的来说,通过这次的设计实验更进一步地增强了实验的动手能力。

我这有用vhdl语言编的 还是我当年上学的时候自己编的 ,用的maxplus 2软件仿真的,我看了一下要12M大小 如果分多的话我会发给你先给你一点 library ieee;use ;entity six is port(din:in std_logic_vector(2 downto 0); q0:out std_logic_vector(0 to 15));end ;architecture my of six isbeginprocessbegin case din is when"000"=>q0<="0000000000000000"; when"001"=>q0<="0000011111110000"; when"010"=>q0<="0000100010001000"; when"011"=>q0<="0001000100000100"; when"100"=>q0<="0001000100000100"; when"101"=>q0<="0001100010001000"; when"110"=>q0<="0000000001110000"; when"111"=>q0<="0000000000000000"; when others=>null;end case;end process;end;

创意时钟毕业论文

MAX+PLUS开发系统本文详细介绍了一个 EDA教学实验的设计实例——电子秒表电路的设计。作者采用顶层图形设计的思想 ,对电子秒表电路的核心芯片——计时控制芯片进行设计 ,并介绍了在设计中所解决的各个关键问题。本文使用目前流行的一种 EDA软件平台——美国 Altera公司的 M ... 2. EDA教学实验设计实例——电子秒表电路的设计 艾明晶 金惠华 文献来自:中国仪器仪表学会第三届青年学术会议论文集(下) 2001年 第总第期 北京 100083本文详细介绍了一个EDA教学实验的设计实例——电子秒表电路的设计。作者采用顶层图形设计的思想,对电子秒表电路的核心芯片——计时控制芯片进行设计,并介绍了在设计中所解决的各个关键问题。本文使用目前流行的一种EDA软件平台——美国Altera公司的MAX+PL ... 3. 风扇电子定时器设计一例 仇德明 潘裕明 文献来自:家电科技 1987年 第03期 秒表:金雀电子秒表,上海手 表五厂产 现将以上5个样机试验结果进行分析,以便对本电路按理论计算式所得的定时时间T的置信度作一讨论:由于影响T的因素较多,如电容漏电流的离散性、不稳定性、门电路闭值电平vT。的差异 ... 本文介绍一种以数字电路为主兼顾成本与质量两者关系的三小时电子定时电路,具有一定的实用性。 ... 4. 实用多功能电子时钟设计 被引次数:1次 翟玉文 徐宏亮 艾学忠 王庆伟 赵岩 文献来自:吉林化工学院学报 2001年 第01期 通过按键可进行电子时钟与电子秒表功能的切换 ,可对电子时钟的显示内容、时间对时、闹钟定时等功能进行设定和对电子秒表开始计时、暂?... 动态显示介绍一种以AT89C5 1单片机为核心的实用多功能电子时钟设计 .该时钟具有年、月、日、星期、时、分、秒显示和整点音乐报时及定时闹钟等功能 ,也可作电子秒表使?... 5. 数字秒表的实验设计 邹华 文献来自:潍坊教育学院学报 1997年 第01期 、(图二J这样整个数字秒表就设计出来了。从电路图上可以看出,所用器件都比较简单,除有一定实用价值外,作为一个学生实验来做,既可系统地巩固所学知识,又有利于理论联系实际,实践证明,效果很好。39数字秒表的实验设计@邹华<正>秒表是一种 ... 6. 简易电子钟的设计 王韧 俞斌 文献来自:电子世界 2005年 第07期 仅通过程序设计,即可为电子钟增加年、月、日、星期以及闹铃、秒表等功能。简易电子钟的设计@王韧$湖南工学院电气与信息工程系 @俞斌$湖南工学院电气与信息工程?7. 用电子秒表取代打点计时器 朱成标 文献来自:物理实验 1995年 第03期 连接外接微动开关的引线aa'与bb'和电子秒表的连接方法如图2所示.aa'与相连的开关ANI、KZ相当于电子秒表按钮M,对电子秒表有复位/中间计时的控制作用 ... 电子秒表即可获得相应的计时控制信号.二、电子秒表的实验计时方法电子秒表用于实验计时有三种计时方法,即同步计时、中途一次计时、中途二物理实验第15卷第8期次计时8. 语音智能电子体温计设计 支长义 程志平 焦留成 文献来自:微计算机信息 2007年 第07期 450002河南郑州$郑州大学电气工程学院根据设计要求,以SPCE061A新型单片机为基础,通过对温度采样信号分析研究,给出了语音智能电子体温计设计电路,测试结果表明,该电路较为理想。SPCE061A单片机 9. 电子秒表自动计时的研究 谢志堃 文献来自:绍兴文理学院学报 2004年 第10期 并用这个信号去控制电子秒表的触发端,以实现电子秒表自动起、停的计时功能.1电子秒表的自动计时研究 电子秒表具有分段计时的功能,因此可以用来测量运动物体经过某段距离的时间间隔 通过对电子秒表的研究发现,从电子秒表的触发方式来看,只需对计时触发端提供一个电压就可以对电子秒表加以控制,实现自动计时的功能希望以上资料对你有帮助.

电子钟相关毕业设计 ·数字电子钟的电路设计 (字数:9242,页数:22 )·数字电子钟的设计与制作 (字数:8017,页数:22 )·数字钟的设计 (字数:6208,页数:21 )·基于8051单片机的数字钟 (字数:21638,页数:50)·基于单片机的电子时钟控制系统 (字数:7935,页数:42 )·数字电路数字钟设计 (字数:4846,页数:21 )·电子闹钟设计 (字数:4094,页数:19 )·定时闹钟设计 (字数:5714,页数:24 )·智能定时闹钟设计 (字数:3826,页数:18 )·下棋定时钟设计 (字数:5290,页数:24 )·多功能数字钟设计与制作 (字数:13129,页数:34)·基于单片机的电子钟设计 (字数:7710,页数:24 )·基于单片机的数字电子钟设计 (字数:10301,页数:42)·基于Labview的虚拟数字钟设计 (字数:17457,页数:32)·电子日历钟 (字数:10677,页数:33)·数字钟的设计与制作 (字数:4922,页数:23 )·单片机数字钟设计 (字数:15355,页数:47)·基于单片机的数字钟设计 (字数:12541,页数:27)·单片机定时闹钟设计 (字数:8450,页数:24 )·万年历可编程电子钟控电铃 (字数:14371.页数:41)·数字定时闹钟设计 (字数:7770,页数:28 )·基于EDA技术的数字电子钟设计 (字数:12247,页数:32)·多功能时钟打点系统设计 (字数:8353,页数:31 )·智能音乐闹钟设计 (字数:10002,页数:37)·基于AT89S51单片机的数字电子钟设计 (字数:14560,页数:39)

1. EDA教学实验设计实例——电子秒表电路的设计 被引次数:1次 艾明晶 金惠华 文献来自:仪器仪表学报 2001年 第S2期 MAX+PLUS开发系统本文详细介绍了一个 EDA教学实验的设计实例——电子秒表电路的设计。作者采用顶层图形设计的思想 ,对电子秒表电路的核心芯片——计时控制芯片进行设计 ,并介绍了在设计中所解决的各个关键问题。本文使用目前流行的一种 EDA软件平台——美国 Altera公司的 M ... 2. EDA教学实验设计实例——电子秒表电路的设计 艾明晶 金惠华 文献来自:中国仪器仪表学会第三届青年学术会议论文集(下) 2001年 第总第期 北京 100083本文详细介绍了一个EDA教学实验的设计实例——电子秒表电路的设计。作者采用顶层图形设计的思想,对电子秒表电路的核心芯片——计时控制芯片进行设计,并介绍了在设计中所解决的各个关键问题。本文使用目前流行的一种EDA软件平台——美国Altera公司的MAX+PL ... 3. 风扇电子定时器设计一例 仇德明 潘裕明 文献来自:家电科技 1987年 第03期 秒表:金雀电子秒表,上海手 表五厂产 现将以上5个样机试验结果进行分析,以便对本电路按理论计算式所得的定时时间T的置信度作一讨论:由于影响T的因素较多,如电容漏电流的离散性、不稳定性、门电路闭值电平vT。的差异 ... 本文介绍一种以数字电路为主兼顾成本与质量两者关系的三小时电子定时电路,具有一定的实用性。 ... 4. 实用多功能电子时钟设计 被引次数:1次 翟玉文 徐宏亮 艾学忠 王庆伟 赵岩 文献来自:吉林化工学院学报 2001年 第01期 通过按键可进行电子时钟与电子秒表功能的切换 ,可对电子时钟的显示内容、时间对时、闹钟定时等功能进行设定和对电子秒表开始计时、暂?... 动态显示介绍一种以AT89C5 1单片机为核心的实用多功能电子时钟设计 .该时钟具有年、月、日、星期、时、分、秒显示和整点音乐报时及定时闹钟等功能 ,也可作电子秒表使?... 5. 数字秒表的实验设计 邹华 文献来自:潍坊教育学院学报 1997年 第01期 、(图二J这样整个数字秒表就设计出来了。从电路图上可以看出,所用器件都比较简单,除有一定实用价值外,作为一个学生实验来做,既可系统地巩固所学知识,又有利于理论联系实际,实践证明,效果很好。39数字秒表的实验设计@邹华<正>秒表是一种 ... 6. 简易电子钟的设计 王韧 俞斌 文献来自:电子世界 2005年 第07期 仅通过程序设计,即可为电子钟增加年、月、日、星期以及闹铃、秒表等功能。◆图4图5图6图7简易电子钟的设计@王韧$湖南工学院电气与信息工程系 @俞斌$湖南工学院电气与信息工程?... 7. 用电子秒表取代打点计时器 朱成标 文献来自:物理实验 1995年 第03期 连接外接微动开关的引线aa'与bb'和电子秒表的连接方法如图2所示.aa'与相连的开关ANI、KZ相当于电子秒表按钮M,对电子秒表有复位/中间计时的控制作用 ... 电子秒表即可获得相应的计时控制信号.二、电子秒表的实验计时方法电子秒表用于实验计时有三种计时方法,即同步计时、中途一次计时、中途二物理实验第15卷第8期次计时 ... 8. 语音智能电子体温计设计 支长义 程志平 焦留成 文献来自:微计算机信息 2007年 第07期 450002河南郑州$郑州大学电气工程学院根据设计要求,以SPCE061A新型单片机为基础,通过对温度采样信号分析研究,给出了语音智能电子体温计设计电路,测试结果表明,该电路较为理想。SPCE061A单片机 ... 9. 电子秒表自动计时的研究 谢志堃 文献来自:绍兴文理学院学报 2004年 第10期 并用这个信号去控制电子秒表的触发端,以实现电子秒表自动起、停的计时功能.1电子秒表的自动计时研究 电子秒表具有分段计时的功能,因此可以用来测量运动物体经过某段距离的时间间隔 ... 通过对电子秒表的研究发现,从电子秒表的触发方式来看,只需对计时触发端提供一个电压就可以对电子秒表加以控制,实现自动计时的功能 ... 希望以上资料对你有帮助!

ds1302数字时钟毕业论文

论文怎么写 一、标题 标题是文章的眉目。各类文章的标题,样式繁多,但无论是何种形式,总要以全部或不同的侧面体现作者的写作意图、文章的主旨。毕业论文的标题一般分为总标题、副标题、分标题几种。 (一)总标题 总标题是文章总体内容的体现。常见的写法有: ①揭示课题的实质。这种形式的标题,高度概括全文内容,往往就是文章的中心论点。它具有高度的明确性,便于读者把握全文内容的核心。诸如此类的标题很多,也很普遍。如《关于经济体制的模式问题》、《经济中心论》、《县级行政机构改革之我见》等。 ②提问式。这类标题用设问句的方式,隐去要回答的内容,实际上作者的观点是十分明确的,只不过语意婉转,需要读者加以思考罢了。这种形式的标题因其观点含蓄,容易激起读者的注意。如《家庭联产承包制就是单干吗?》、《商品经济等同于资本主义经济吗?》等。 ②交代内容范围。这种形式的标题,从其本身的角度看,看不出作者所指的观点,只是对文章内容的范围做出限定。拟定这种标题,一方面是文章的主要论点难以用一句简短的话加以归纳;另一方面,交代文章内容的范围,可引起同仁读者的注意,以求引起共鸣。这种形式的标题也较普遍。如《试论我国农村的双层经营体制》、《正确处理中央和地方、条条与块块的关系》、《战后西方贸易自由化剖析》等。 ④用判断句式。这种形式的标题给予全文内容的限定,可伸可缩,具有很大的灵活性。文章研究对象是具体的,面较小,但引申的思想又须有很强的概括性,面较宽。这种从小处着眼,大处着手的标题,有利于科学思维和科学研究的拓展。如《从乡镇企业的兴起看中国农村的希望之光》、《科技进步与农业经济》、《从“劳动创造了美”看美的本质》等。 ⑤用形象化的语句。如《激励人心的管理体制》、《科技史上的曙光》、《普照之光的理论》等。 标题的样式还有多种,作者可以在实践中大胆创新。 (二)副标题和分标题 为了点明论文的研究对象、研究内容、研究目的,对总标题加以补充、解说,有的论文还可以加副标题。特别是一些商榷性的论文,一般都有一个副标题,如在总标题下方,添上“与××商榷”之类的副标题。 另外,为了强调论文所研究的某个侧重面,也可以加副标题。如《如何看待现阶段劳动报酬的差别——也谈按劳分配中的资产阶级权利》、《开发蛋白质资源,提高蛋白质利用效率——探讨解决吃饭问题的一种发展战略》等。 设置分标题的主要目的是为了清晰地显示文章的层次。有的用文字,一般都把本层次的中心内容昭然其上;也有的用数码,仅标明“一、二、三”等的顺序,起承上启下的作用。需要注意的是:无论采用哪种形式,都要紧扣所属层次的内容,以及上文与下文的联系紧密性。 对于标题的要求,概括起来有三点:一要明确。要能够揭示论题范围或论点,使人看了标题便知晓文章的大体轮廓、所论述的主要内容以及作者的写作意图,而不能似是而非,藏头露尾,与读者捉迷藏。二要简炼。.论文的标题不宜过长,过长了容易使人产生烦琐和累赘的感觉,得不到鲜明的印象,从而影响对文章的总体评价。标题也不能过于抽象、空洞,标题中不能采用非常用的或生造的词汇,以免使读者一见标题就如堕烟海,百思不得其解,待看完全文后才知标题的哗众取宠之意。三要新颖。标题和文章的内容、形式一样,应有自己的独特之处。做到既不标新立异,又不落案臼,使之引人入胜,赏心悦目,从而激起读者的阅读兴趣。 二、目录 一般说来,篇幅较长的毕业论文,都没有分标题。设置分标题的论文,因其内容的层次较多,整个理论体系较庞大、复杂,故通常设目录。 设置目录的目的主要是: 1.使读者能够在阅读该论文之前对全文的内容、结构有一个大致的了解,以便读者决定是读还是不读,是精读还是略读等。 2.为读者选读论文中的某个分论点时提供方便。长篇论文,除中心论点外,还有许多分论点。当读者需要进一步了解某个分论点时,就可以依靠目录而节省时间。 目录一般放置在论文正文的前面,因而是论文的导读图。要使目录真正起到导读图的作用,必须注意: 1.准确。目录必须与全文的纲目相一致。也就是说,本文的标题、分标题与目录存在着一一对应的关系。 2.清楚无误。目录应逐一标注该行目录在正文中的页码。标注页码必须清楚无误。 3.完整。目录既然是论文的导读图,因而必然要求具有完整性。也就是要求文章的各项内容,都应在目录中反映出来,不得遗漏。 目录有两种基本类型: 1.用文字表示的目录。 2.用数码表示的目录。这种目录较少见。但长篇大论,便于读者阅读,也有采用这种方式的。 三、内容提要 内容提要是全文内容的缩影。在这里,作者以极经济的笔墨,勾画出全文的整体面目;提出主要论点、揭示论文的研究成果、简要叙述全文的框架结构。 内容提要是正文的附属部分,一般放置在论文的篇首。 写作内容提要的目的在于: 1.为了使指导老师在未审阅论文全文时,先对文章的主要内容有个大体上的了解,知道研究所取得的主要成果,研究的主要逻辑顺序。 2.为了使其他读者通过阅读内容提要,就能大略了解作者所研究的问题,如果产生共鸣,则再进一步阅读全文。在这里,内容提要成了把论文推荐给众多读者的“广告”。 因此,内容提要应把论文的主要观点提示出来,便于读者一看就能了解论文内容的要点。论文提要要求写得简明而又全面,不要罗哩罗嗦抓不住要点或者只是干巴巴的几条筋,缺乏说明观点的材料。 内容提要可分为报道性提要和指示性提要。 报道性提要,主要介绍研究的主要方法与成果以及成果分析等,对文章内容的提示较全面。 指示性提要,只简要地叙述研究的成果(数据、看法、意见、结论等),对研究手段、方法、过程等均不涉及。毕业论文一般使用指示性提要。举例如下: ●市场经济条件下的政府,固然应服从上级规划部署的全局,但主要的着眼点应放在对下负责,对本地的经济发展,对本地的人民生活水平提高负责,这才是发展全局经济的前提,从而也自然在根本上符合对上负责。 ●变部门“齐抓共管”企业为共同服务于企业,应成为部门工作的主要重点。(摘自《政府在市场经济中 如何定位》一文的内容提要) 内容提要的写作要求可以概括为“全、精、简、实、活”。具体说来: 1.内容提要要求具有完整性。即不能把论文中所阐述的主要内容(或观点)遗漏。提要应写成一篇完整的短文,可以独立使用。 2.重点要突出。内容提要须突出论文的研究成果(或中心论点)和结论性意义的内容,其他各项可写得简明扼要。 3.文字要简炼。内容提要的写作必须字斟句酌,用精练、概括的语言表述,每项内容不宜展开论证说明。 4.陈述要客观。内容提要一般只写课题研究的客观情况,对工作过程、工作方法以及研究成果等,不宜作主观评价,也不宜与别人的研究作对比说明。一项研究成果的价值,自有公论,大可不必自我宣扬。因而,实事求是也是写作内容提要的基本原则。 5.语言要生动。提要既要写得简明扼要,又要生动活泼,引人入胜,在词语润色、表达方法和章法结构上要尽可能体现文彩,以求唤起读者阅读正文的欲望。 四、正文 正文包括绪论、本论、结论三部分。这是毕业论文最重要的组成部分,其它章节有专门详细论述,这里不再重复。 五、参考文献 参考文献又叫参考书目,它是指作者在撰写毕业论文过程中所查阅参考过的著作和报刊杂志,它应列在毕业论文的末尾。列出参考文献有三个好处:一是当作者本人发现引文有差错时,便于查找校正。二是可以使毕业论文答辩委员会的教师了解学生阅读资料的广度,作为审查毕业论文的一种参考依据。三是便于研究同类问题的读者查阅相关的观点和材料。 当然,论文所列的参考文献必须是主要的,与本论文密切相关的,对自己写成毕业论文起过重要参考作用的专著、论文及其它资料。不要轻重不分,开列过多。 列出的参考文献一般要写清书名或篇名、作者、出版者和出版年份。 参考资料: (论文荟萃) 另外,站长团上有产品团购,便宜有保证

基于单片机的智能热水器控制系统摘要伴随人类的科技发展,人们的物质享受提升到了一个新的档次,现在的家居都在朝着智能化的方向研究发展,热水系统作为人群生活中的不可缺少的家里面使用电器之一,它的使用决定着一个人的生活质量。早在几年前,智能家居便走进了人们的生活,如小爱同学和天猫精灵,它们都走在了智能的前沿。智能系统乃是集机械、电气工程、材料化学、运筹学、数学、哲学之大成的产物。智能化家居也随之逐渐进入我们的生活,而本设计正是应时代需求应运而生的智能化控制的家居的衍生品。本设计的内容为可以不使用长长的视频信号传输线的情况下利用WIFI进行无线传输信号的智能热水器,它经过改进后可以让人们告别单一的加热功能,加载多个模块使得它可以进行音乐播放,加热定时,恒定温度锁定,闪烁灯光等功能。它使用最近比较热门的单片机作为控制单元,并且配合各种传感器以及各种不同功能的模块相互配合进行工作,以实现其功能。硬件的这个方向,本次做完控制模块、定时模块,恒温模块等一系列硬件设备的安装调整;软件方面,本文以52单片机为平台实现了传感器信号的采集和处理,根据传感器信息设计了热水器的基本运行模式,利用单片机接口与Python语言相互配合进行程序设计,实现了无线智能热水器的基本设计要求。 关键词:52单片机,智能,热水器,DS18B20Design of Intelligent Water Heater Control SystemAbstract The content of this design to do not use the long video signal transmission line using WIFI wireless transmission signal under the condition of the intelligent water heater, it passes through the improved can let people bid farewell to the single heating function, and makes it possible to load multiple modules for music playback, heating time, constant temperature locking, flashing lights, and other functions. It USES the recently popular single chip microcomputer as the control unit, and with a variety of sensors and a variety of different functions of the module work with each other, in order to achieve its functions. In this direction of hardware, the installation and adjustment of a series of hardware devices such as control module, timing module and constant temperature module have been completed. In terms of software, this paper takes 52 single-chip microcomputer as the platform to realize the acquisition and processing of sensor signals. According to the sensor information, the basic operation mode of water heater is designed. The interface of single-chip microcomputer and Python language are used to carry out program design, and the basic design requirements of wireless intelligent water heater are realized. Key words: 52 SCM, intelligence, water heater, DS18B201绪论 智能热水器在我们的生活中,热水器慢慢成为城市居民必不可少的电气设备.这么多年的进步和技术沉淀,这个热水器行业也源源不断推出不同功能的产品种类,热水器的种类各种各样,从最开始的燃气热水器,一直到至今的天然气热水器、烧电热水器、太阳光能热水器等。各类的水器都有他自己的市场地位。就以热水器的使用感受来看,产品样式多的真是琳琅满目,当然用着也很舒服。即便智能的家居和物联网的最新概念,智能程度也会大大提高,给人类的生活带来很大的满足感。现在的热水器正向着安全的,节能的,稳定的,高效率的,人性化的方面猛速前进。 单片机MCU是具有编程和外部电路设计,体型不大,功耗特别低的小型计算机,能完成各种智能控制任务。由于单片机技术的飞速发展,那么多的消费电子产品开始使用各种类型的单片机作为控制核心,用完成人类和机器之间沟通互动。并用自己程序和里面操作获取想要知道的内容。更加符合人群和智能化的家用电器操作控制。 热水器之中,单片机被广泛用作控制的中心。 用类似的温度传感器对热水器进行温度控制,可以实现高精度,并且做完了了从最开始旋钮调整到数调整方向的慢慢变化,同样,单片机用不一样的传感器控制和呈示热水器的各类运行状况,并在缺水,过热等的情况以下向用户人群呈示声音光亮以警报防止发生意外事故并阻止人群使用。为了安全所提出的智能热水器操控系统以52系列地单片机为操控核心,可通过温度传感器和水的位置传感器检测热水器的状态,并通过对按钮和显示影像屏与用户进行交互。准时加热和自动恒温特性。同样,也有设置过热和缺水的警报,为了人群提供方便。这个装配成本低,实用感在生活中较好,调控热度高低较好。1 智能热水器控制系统的总体设计方案 此次制作所提到的智能热水器控制系统主要是实现对温度的自行操控、按时加热操控和智能警报的作用,所以智能热水器操控系统主要分为控制、显示、信息输入、加热、声光报警等这部分模块组成。 方案的分析与选择 对于主控制芯片,此解决方案选择了最简单的8位52系列单片机,该单片机可以完全满足该系统的要求,并且性能可靠且成本低廉。此外,由于52系列单片机在电子学领域的基本状况,因此它们在使用和编程方面相对熟练,极大地缩短了开发周期并更有效地完成了设计工作。对于显示模块,LED液晶显示器,LCD1602字符液晶和LCD12864点矩阵液晶都是可以完成显示操作的简单紧凑型显示设备。 LED液晶显示器的里面的构造非常简易,LCD1284更喜欢被用在呈示图片和影像方面,LCD1602特别喜欢被用于呈示较少的图案字样。因此选择LCD1602字符液晶。往内输入的模块一般情况下有用户消息从外部送到内部也有传感器消息从外部送到内部。在输入用户信息方面,使用键盘比使用旋钮更易于控制,并且用户更容易接受。用配置相对映的调整按钮,可很好的正确地做到想要的热度。当然,有各种类型的按钮,例如机械按钮和电容按钮,并且该系统处于试验调试阶段,因此选择了最简单的按钮。传感器信息平时输入通常分两个地方,第一个地方是温度信息输入,热度传感器平时用于通告MCU眼下的水的热度以进行自动温度控制,第二个地方就是水的位置信息输入。是为了告知微控制器缺水警报的目的。由于热度传感器,通常情况能在热敏R和数字热度传感器DS18B20之间来进行选配。由于热敏R可靠性低且输出为模拟量,因此只能在进行相应的A/D转换后才能转换,这很麻烦,因为数字温度传感器的温度测量范围宽广,并且单片机节省了通信。直接输出资源,数字量和外围电路非常简单,并且与此概述一致。同样的时候,引进来专门用的的时钟芯片DS18B20以完成正确的定时加温时,将为微操控器用来给它们俩作参照。为了确保用户安全,增加了声音和视觉警报提示模块,以在加热和供水不足时发出提示。同样的,为完成正确的定时加温,引入了一般专们用的构造时刻芯片DS18B20,为微小控制器呈示日子和时刻基本提示。为了确保用户的安全,增加了声光报警提示模块,在缺水,缺水的情况下显示提示信息。 系统总体设计概述 系统以52这个系列MCU为操控中心,一般用DS18B20单数线数字样式热度传感器得到热度讯息,用DS18B20时钟芯片为单片机呈现数作为参照对象,呈示这部分用LCD1602,用机械钮键的方法供给用戸输入,配置眼下系统时刻、要一些热度定时、水的热度配置等方面,做完对所有控制器的管理。系统所有的构造框图如图 所示。 图 系统整体框图 各功能模块介绍 为了顺顺利利的完成整个单片机系统的设计,有必要对所使用的各个模块的组件举行具体的选择,并对组件的数据手册、操作纲要、认认真真领会各个组件的机能、操作要领、硬件的连接基本情况等。 控制模块本设计使用处理器STC89C52RC,主控制核心是52系列单片机,采用CMOS技术构建的8位处理器,CPU可以正常运行,具有相当稳定的运行性能和低功耗。该命令系统与现有的8052微控制器内核完全兼容,并具有2K + EEPROM存储。要创建主导模块,您需要将最小系统的最外部电路配置为单芯片计算机(主要具有晶体振荡和恢复电路),以使单芯片计算机正常工作。 显示模块 本设计采取LCD1602液晶屏幕上,是一个袖珍和高度集成的液晶显示器,可以显示的字母,数字,符号,等,其特点是低功耗,体积小,光模块,并将自己的字符库,必须根据需要初始化开发显示的实现,设置相关的显示位置和显示内容,并且操作简单。集成显示模块可以参考用户手册中引脚的特定定义,“硬件设计”部分详细介绍了与单个芯片的特定连接。当LCD初始化时,5V电源模块1602显示MCU及其最小系统和电源接口,温度传感器模块,声光报警模块,水位传感器模块,按键输入,时钟电路。在与读写操作有关的编程中,您需要参考时序图并进行必要的调整以选择单晶振荡。LCD1602有属于本身的数字符号库,这样的话简易了人群的开创,平时也节约了MCU程序的存储空间,不用在程序中数字符号呈示。如下方图所呈视 LED1602液晶显示流程图 输入模块对于单片机,用户必须通过执行相关的命令输入进行配置。单片机必须对热水器的热水温度进行测试,观察热水是否少水,并在传感器连接的情况下输入信号。输入模块为客户订单输入、热量输入、缺水信号输入。命令向内输入时,由四个单独的按钮完成,热度输入由DS18B20完成,电子水位开关通知是否有水。命令输入模块由四个独立的键组成。单个按钮的触摸模式对于低级很有用。在正常的系统开放状态下,单片机上相应的端口保持高电平。这个时候触碰键钮,单个键钮的两端连接并接收。这个水平下降到地面,所以微控制器可以捕获主要任务。这四个独立的键是配置功能、键值增加、键值减少和这四个功能定义的确认。这里的四个按钮使用软件算法编程ghost程序来扫描按钮的状态。之后,利用行中相应数量的按钮构造对的应答逻辑,为用户提供完整的参考号配置功能。大多数热输入模块都是单导线数字热传感器。型号是DS18B20。在DS18B20的核心中,序列要求的单线传输协议。在水位置信号传输中,选择装有bz2401电子的水位置传导按钮。电源的电压范围为5v-24v,一般有三根线,即电源线、地线和信号线。这种产品通常在内部装有检测水的位置信号的芯片,并由芯片在内部进行处理。当判断有水存在时,芯片会发射出与电压源电压类似的高电平。如果确定没有水,芯片可以发射零伏。将数字ghost数据线连接到地线。 警报模块在实现设定时间功能时,该系统使用专用的DS1302时钟芯片来准确提供详细的日期和时间概念。同时,配置3个LED灯和一个蜂鸣器以形成声光信号和警报模块。DS1302是DALLAS公司生产的一种慢速充电时钟保持芯片,它可以通过一个简单的串行端口与单个芯片通信,该芯片具有自己的独立时钟电路和31个静态RAM。字节,可以提供单片机的详细时钟信息,例如日期,年,月和日,时,分和秒,可以自动处理每个月的天数和and年,以确保精度日期记录。在硬件中,它使用三根数据线连接到微控制器的相应端口,分别是复位,数据和串行时钟。芯片的平时正常工作功率特别低,并在保存起来和记载日子和时刻数据期间消代的功率根本不到一兆瓦。其封存装形式和管脚定义看下图片 所呈示。图 DS18B20 的封装和管脚定义使用时,必须将芯片连接到 KHz晶体振荡器,这需要简单的外围电路。如下图所示,它是一个经典的用来应用电线路。图 一种典型的 DS1302 应用电路图一般声音和光亮警报模块中用的LED灯和微型蜂鸣器,结构简单且好理解电路的特性。用LED灯的时候,要当心选择的颜色,并要来根据最大地电流限制,再加上能相配的限流R,以用来保护LED灯在平时正常电压电流。蜂鸣器不能由单片机端口直接供电。您需要通过三极管激活蜂鸣器来放大三极管的相应模型,例如9012、8550和其他模型,通常它可能会发出声音。图所示 蜂鸣器2 硬件电路的设计与实现 单片机最小系统硬件电路设计 很小的单个芯片系统包含一个晶体振荡器,一个恢复位电路等。MCU中已经存在时钟振荡电路。我们需要在引脚XTAL1和XTAL2之间添加一个反馈环路,以构建最小的MCU系统,以MCU可以获取时钟信号。通常用反馈环路是一个石英晶体振荡器和2个30μF 并联电容器。电容值根据晶体的频率进行调整。在较小的MCU系统电路中,石英晶体振荡器的频率越高,MCU 内部时钟信号的周期短,速度更快从MCU贯行命令。在此构造中,微控制器的时钟速率设置为12MHz,并且相应的重置按钮设置为微控制器的重置引脚,以便用户可以重置微控制器。必要时。对于系统的每一个传感器接触口,还必须为每个传感器,电源和数据线接口标明。最不大的系统可以构造在所有都有可以用的板子上,也可以用焊接在PCB板子上的完成品模块,其硬件原理图片如下面图片 所呈示。 图 MCU 最小系统和接口电路 显示模块硬件电路设计 在这次实验中,选择字符LCD1602作为呈示设备,将LCD1602的数据引脚一起连到MCU的P0端口。即,至分别对应于以1602展示的8个数据线(DB0至DB0)。 DB7用连上。如图 所示,特殊功能端子RS,RW和E通过网络标签分别连接到,和。模块的VEE地端可以调整呈示模块呈示的数字符号的光亮度和对比度。在现实电线路中,用了十千Ω的蓝白R102。当用手转动,就可以更改字符的样式。 图 显示模块和接口电路 温度传感器 DS18B20 电路设计 DS18B20温度传感器和MCU中间的连接较简。将数据线直接连接到MCU的端口(网络签标DQ),电源和地线也连到MCU主板上,这个时候,数据线所用电源电压通过四点七千电阻上拉。 图 温度传感器和接口电路 电子式水位置开关硬件电路设计 用电子水位置导通按钮做成是否缺水的指示判定,这个电按钮在如果有水的时候输出的高电平,在没有液体情况的时候出口是低微电平。高的电平就是电压源,因此电压源要用为5V,传递数具线和迪线连接到单芯片计算电脑的主电路板上(看下面图)。网络签标水对映MCU的端口。 图电子式水位开关接口电路 时钟芯片电路设计 在时钟芯片DS18B20 的3个端口 RST,SCLK和I/O连到用数据互换的MCU上,看图片呈示 所示,收集标签分开是RST,,分开是连接到微控制器的,和 ,实现与单片机的通讯。请看一看DS18B20 The clock chip的传统电路设计方式来构造该整个的基本电路形态。 图 时钟芯片电路 声光报警电路设计 警报电路分为光警报和声警报,用于响应系统的各种警报,并通过声和光提醒用户。如 声响警报模块的电路的构造,峰鸣器一般用与MCU一样的正5伏电压源,由晶体管9013管控,集电极连接到MCU端口,网络标签为BEEP,与MCU的端口相对应。 图蜂鸣器电路高亮度和长寿命的LED灯用于照明警报和提示,常见的阳极连接方法,单片机提供低水平照明。装配3LED光泡,串联接51ΩR ,D1用于指示增加热度状况,D2用来看水位状况,D3用来看热度状况。这3灯连到MCU的,和端口,实现联代功能。 图 指示灯电路 按键设置模块电路设计 本系统的时钟设置、 其中温度中的设计都是要用按钮来进行的,基本用 四个独立的按钮的设计,将一个端子接地并按下后,降低单片机的端口级别,并完成主动作捕捉。此功能由装配按钮,确认按钮,增值按钮和减值按钮界说,网标签为SELT,ENTER,UP和DOWN,对应接单片机的 、、和 四个端口。 图 键钮模块电路 电源和开关模块设计 这个系统一般在外部接上正五伏电源来进行工作。如果想方便控制,需加一个电源总的开关,并且使用LED指示灯来指示电源。在电源和地线中间并联2个滤波C,过滤出电源纹波。 图 电压源模块电路3 热水器控制系统的软件设计与算法实现 软件设计是整个系统的核心。好的软件设计能使硬件更加出色。软件系统的主要设计思想是:1开系统电源后,将呈示目前系统时刻的讯息和水的热度讯息;当水温低于设定值时,开始加热。当水热度大于预期值或水量不足时会触发声音和视觉警报。2、响应按键操作。如果有一些人群碰到下配置灯按钮时,您可以执行3个选项,第一个是设置运行时间,第二个是配置计时器预热的开始和结束时间,第三个是配置温度。范围内的上升和下降极限。软件程序的设计中,它完全结合了模块化设计的思路。完整的软件系统圈主要包括通用初始化功能,LCD1602基本功能,DS18B20基本功能,DS18B20基本功能,按键扫描配置策略基本功能,然后在主程序中调用相关模块的功能,例如读取传感器状态,智能温度判定,警报处理决策,键盘扫一扫,以完成系统预期的操作功效。 系统总体流程图 图系统总体流程图 显示模块程序设计 呈示模块程序主要包括初始化、命令子函数和写数据子函数,是系统软件编程的基本库里,是系统软件编程的最关键基本函数:图所示 图显示模块程序设计 写命令子函数1602作业要命令输入并具有自己的命令库。要编写这个命令,您更需要编写一个特殊设定的的写命令子功能。 写数据子函数 图子函数流程图另外,必须将在时钟装配流程和热度装配流程呈示的情况与人员输入一起编写,以配置适当的光指示呈示管理。 温度传感器模块程序设计 温度传感器流程图。图所示 图温度传感器模块程序设计 在Temperature sensor的基本功能装配中,它用于热度采集并管理。热度写入功能包含写入成数和不成数那部分,分析DS18B20的数据格局,写下正确的热度和因变量。基本功能开发包含模的块开始化的功能、单独线串行的传递信息延迟功效 、所有线信息的装配、byte数传递、byte数收到等很多局部。从主程序中调用这些功能,并与LCD display功能的配合用来以完成各种各样的效果,例如温度显示和判断。 按键设置程序设计 按钮设置程序主要是按钮扫秒的方法。由于键子的扫秒的逻及更加繁琐,因此不仅需要辨认碰下的键数,哪个键,还需共同LCD呈视功能来展示不一样的按钮数和当时的情况,并控制光标位置和打开和关闭LCD1602 ,提示用户进行设置。按钮扫一扫配置过程里分别成为一个子功效,在主要软件中巡回挪用。在行使按键编排动手活动中,因为用了的是呆板按键,出现在癫动的征像,形成测验不却准或碰下的数的误会,正常来用癫动方法,把过去的时间,确保按钮的数正确。按钮正常是四,配置按下面的按钮、确定正确的按碰键子、键子数增多和键子值变少。用来变化量SELT 表达配置按钮的状况,并设计全面变Select记载的装配按钮被按下的次数,将不同的时间与不同的装配功能进行比较,具有按钮功能的效果。当装配按钮所触摸的按钮的频率为1时,请沿光标方向调整时间功能,并记住要进入调整模式。当按按钮的数为二时,光标指引向调好定时作用.当击按钮数量为三时,光标指引向配置热度作用。当按数为四时,请勿标记调整形式并返回正常模式.当使用更改量ENTER显示确认按钮的状态时,请使用Enter记录按钮被按下的次数。Enter的每次访问,都要先开始检验Select的改动数量,确准Select处于功能设置模式,然后显示不同的内容,并控制光标的移动根据不一样功能模下按动确认按钮的数,判定系统在当前要修正的数据是哪个,要不要不调试了,返回平常良好状态。通过设置按钮和确认按钮按动次数,构造系统在调试模式下的每个固定调试的状态,Select与Enter数并在一起就判定了眼下修正地数。看对于这个按钮数量增大和按钮对的数变的少的按键,两个按钮按动的时候,用假设条件去判Select_nu和 Enter_nu 的数的配合状况,贯行相对照的数增加 一 或是数据减少一 的做法。由于键子盘检测巡回进行,连着按增加或减小按键可以实现连起来调配的作用。同时,要看每个数的范围,位置不超出设置范围内。图所示图按键设置程序设计 时钟芯片相关程序设计 图时钟芯片相关程序设计在DS1302相关的编程中,主要写芯片的写数据和读数据作用,然后相对照的日子配置作用。用write_DS18B20_by函数进行数,根据准备,用write_DS11302函数运行数据写进来,用read_DS1302函数进行时刻数,根据读取,用set_rt函数进行时间配置。 主程序和中断服务程序设计 主要程序要包括每个函数的调度用。在软件的开头,开始的每个模块,端口和计时器的开始作业,之后进到循环不止的结构。在循环结构中,指示器位用于确定系统是不是处于调整模式还是正常模式,并且键盘扫描功能会连续运行。在良好模式内贯行温度显示和时间显示,调用警报模块子功效以检查和判定温度和水位状态啥样。在程序中设置适当的判断指标,判断这些变量的值能否到达警报状况。当这时水热度要低于事先设定好热度时候,增加热度提示灯亮起来;如果水温高于设定温度,则会发出警报。如果缺水,也会触发警报。断了劳动程序主要用了The timer断开,用了The timer T0 计算 50ms,它会计入您的中断服务程序,为系统的正常良好模式下的显出数更替给了时间标准。

#include<>#include""#define uint unsigned int#define uchar unsigned charuchar a,miao,shi,fen,ri,yue,nian,week,flag,key1n,temp;//flag用于读取头文件中的温度值,和显示温度值#define yh 0x80 //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)#define er 0x80+0x40 //LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)//液晶屏的与C51之间的引脚连接定义(显示数据线接C51的P0口)sbit rs=P1^0;sbit en=P1^2;sbit rw=P1^1; //如果硬件上rw接地,就不用写这句和后面的rw=0了sbit led=P3^7; //LCD背光开关//DS1302时钟芯片与C51之间的引脚连接定义sbit IO=P2^2;sbit SCLK=P2^1;sbit RST=P2^2;sbit ACC0=ACC^0;sbit ACC7=ACC^7;/************************************************************ACC累加器= 就是ACC的第0位。Acc可以位寻址。累加器ACC是一个8位的存储单元,是用来放数据的。但是,这个存储单元有其特殊的地位,是单片机中一个非常关键的单元,很多运算都要通过ACC来进行。以后在学习指令时,常用A来表示累加器。但有一些地方例外,比如在PUSH指令中,就必须用ACC这样的名字。一般的说法,A代表了累加器中的内容、而ACC代表的是累加器的地址。 ***************************************************************///校时按键与C51的引脚连接定义sbit key1=P2^4; //设置键sbit key2=P2^5; //加键sbit key3=P2^6; //减键sbit buzzer=P2^0;//蜂鸣器,通过三极管9012驱动,端口低电平响/**************************************************************/uchar code tab1[]={"20 - - "}; //年显示的固定字符uchar code tab2[]={" : : "};//时间显示的固定字符//延时函数,后面经常调用void delay(uint xms)//延时函数,有参函数{ uint x,y; for(x=xms;x>0;x--) for(y=120;y>0;y--);}/********液晶写入指令函数与写入数据函数,以后可调用**************//*在这个程序中,液晶写入有关函数会在DS1302的函数中调用,所以液晶程序要放在前面*/write_1602com(uchar com)//****液晶写入指令函数****{ rs=0;//数据/指令选择置为指令 rw=0; //读写选择置为写 P0=com;//送入数据 delay(1); en=1;//拉高使能端,为制造有效的下降沿做准备 delay(1); en=0;//en由高变低,产生下降沿,液晶执行命令}write_1602dat(uchar dat)//***液晶写入数据函数****{ rs=1;//数据/指令选择置为数据 rw=0; //读写选择置为写 P0=dat;//送入数据 delay(1); en=1; //en置高电平,为制造下降沿做准备 delay(1); en=0; //en由高变低,产生下降沿,液晶执行命令}lcd_init()//***液晶初始化函数****{ write_1602com(0x38);//设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据 write_1602com(0x0c);//开显示不显示光标 write_1602com(0x06);//整屏不移动,光标自动右移 write_1602com(0x01);//清显示 write_1602com(yh+1);//日历显示固定符号从第一行第1个位置之后开始显示 for(a=0;a<14;a++) { write_1602dat(tab1[a]);//向液晶屏写日历显示的固定符号部分 //delay(3); } write_1602com(er+2);//时间显示固定符号写入位置,从第2个位置后开始显示 for(a=0;a<8;a++) { write_1602dat(tab2[a]);//写显示时间固定符号,两个冒号 //delay(3); }}/*********************over***********************//***************DS1302有关子函数********************/void write_byte(uchar dat)//写一个字节{ ACC=dat; RST=1; for(a=8;a>0;a--) { IO=ACC0; SCLK=0; SCLK=1; ACC=ACC>>1; }}uchar read_byte()//读一个字节{ RST=1; for(a=8;a>0;a--) { ACC7=IO; SCLK=1; SCLK=0; ACC=ACC>>1; } return (ACC);}//----------------------------------------void write_1302(uchar add,uchar dat)//向1302芯片写函数,指定写入地址,数据{ RST=0; SCLK=0; RST=1; write_byte(add); write_byte(dat); SCLK=1; RST=0;}uchar read_1302(uchar add)//从1302读数据函数,指定读取数据来源地址{ uchar temp; RST=0; SCLK=0; RST=1; write_byte(add); temp=read_byte(); SCLK=1; RST=0; return(temp);}uchar BCD_Decimal(uchar bcd)//BCD码转十进制函数,输入BCD,返回十进制{ uchar Decimal; Decimal=bcd>>4; return(Decimal=Decimal*10+(bcd&=0x0F));}//--------------------------------------void ds1302_init() //1302芯片初始化子函数(2010-01-07,12:00:00,week4){RST=0;SCLK=0;write_1302(0x8e,0x00); //允许写,禁止写保护 write_1302(0x80,0x00); //向DS1302内写秒寄存器80H写入初始秒数据00write_1302(0x82,0x00);//向DS1302内写分寄存器82H写入初始分数据00write_1302(0x84,0x12);//向DS1302内写小时寄存器84H写入初始小时数据12write_1302(0x8a,0x04);//向DS1302内写周寄存器8aH写入初始周数据4write_1302(0x86,0x07);//向DS1302内写日期寄存器86H写入初始日期数据07write_1302(0x88,0x01);//向DS1302内写月份寄存器88H写入初始月份数据01write_1302(0x8c,0x10);//向DS1302内写年份寄存器8cH写入初始年份数据10write_1302(0x8e,0x80); //打开写保护}//------------------------------------//温度显示子函数void write_temp(uchar add,uchar dat)//向LCD写温度数据,并指定显示位置{ uchar gw,sw; gw=dat%10;//取得个位数字 sw=dat/10;//取得十位数字 write_1602com(er+add);//er是头文件规定的值0x80+0x40 write_1602dat(0x30+sw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0x30+gw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0xdf);//显示温度的小圆圈符号,0xdf是液晶屏字符库的该符号地址码 write_1602dat(0x43); //显示"C"符号,0x43是液晶屏字符库里大写C的地址码 }//------------------------------------//时分秒显示子函数void write_sfm(uchar add,uchar dat)//向LCD写时分秒,有显示位置加、现示数据,两个参数{ uchar gw,sw; gw=dat%10;//取得个位数字 sw=dat/10;//取得十位数字 write_1602com(er+add);//er是头文件规定的值0x80+0x40 write_1602dat(0x30+sw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0x30+gw);//数字+30得到该数字的LCD1602显示码 }//-------------------------------------//年月日显示子函数void write_nyr(uchar add,uchar dat)//向LCD写年月日,有显示位置加数、显示数据,两个参数{ uchar gw,sw; gw=dat%10;//取得个位数字 sw=dat/10;//取得十位数字 write_1602com(yh+add);//设定显示位置为第一个位置+add write_1602dat(0x30+sw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0x30+gw);//数字+30得到该数字的LCD1602显示码 }//-------------------------------------------void write_week(uchar week)//写星期函数{ write_1602com(yh+0x0c);//星期字符的显示位置 switch(week) { case 1:write_1602dat('M');//星期数为1时,显示 write_1602dat('O'); write_1602dat('N'); break; case 2:write_1602dat('T');//星期数据为2时显示 write_1602dat('U'); write_1602dat('E'); break; case 3:write_1602dat('W');//星期数据为3时显示 write_1602dat('E'); write_1602dat('D'); break; case 4:write_1602dat('T');//星期数据为4是显示 write_1602dat('H'); write_1602dat('U'); break; case 5:write_1602dat('F');//星期数据为5时显示 write_1602dat('R'); write_1602dat('I'); break; case 6:write_1602dat('S');//星期数据为6时显示 write_1602dat('T'); write_1602dat('A'); break; case 7:write_1602dat('S');//星期数据为7时显示 write_1602dat('U'); write_1602dat('N'); break;}}//****************键盘扫描有关函数**********************void keyscan(){ if(key1==0)//---------------key1为功能键(设置键)-------------------- { delay(9);//延时,用于消抖动 if(key1==0)//延时后再次确认按键按下 { buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1; while(!key1); key1n++; if(key1n==9) key1n=1;//设置按键共有秒、分、时、星期、日、月、年、返回,8个功能循环 switch(key1n) { case 1: TR0=0;//关闭定时器 //TR1=0; write_1602com(er+0x09);//设置按键按动一次,秒位置显示光标 write_1602com(0x0f);//设置光标为闪烁 temp=(miao)/10*16+(miao)%10;//秒数据写入DS1302 write_1302(0x8e,0x00); write_1302(0x80,0x80|temp);//miao write_1302(0x8e,0x80); break; case 2: write_1602com(er+6);//按2次fen位置显示光标 //write_1602com(0x0f); break; case 3: write_1602com(er+3);//按动3次,shi //write_1602com(0x0f); break; case 4: write_1602com(yh+0x0e);//按动4次,week //write_1602com(0x0f); break; case 5: write_1602com(yh+0x0a);//按动5次,ri //write_1602com(0x0f); break; case 6: write_1602com(yh+0x07);//按动6次,yue //write_1602com(0x0f); break; case 7: write_1602com(yh+0x04);//按动7次,nian //write_1602com(0x0f); break; case 8: write_1602com(0x0c);//按动到第8次,设置光标不闪烁 TR0=1;//打开定时器 temp=(miao)/10*16+(miao)%10; write_1302(0x8e,0x00); write_1302(0x80,0x00|temp);//miao数据写入DS1302 write_1302(0x8e,0x80); break; }} }//------------------------------加键key2---------------------------- if(key1n!=0)//当key1按下以下。再按以下键才有效(按键次数不等于零) { if(key2==0) //上调键 { delay(10); if(key2==0) { buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1; while(!key2); switch(key1n) { case 1:miao++;//设置键按动1次,调秒 if(miao==60) miao=0;//秒超过59,再加1,就归零 write_sfm(0x08,miao);//令LCD在正确位置显示"加"设定好的秒数 temp=(miao)/10*16+(miao)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00); //允许写,禁止写保护 write_1302(0x80,temp); //向DS1302内写秒寄存器80H写入调整后的秒数据BCD码 write_1302(0x8e,0x80); //打开写保护 write_1602com(er+0x09);//因为设置液晶的模式是写入数据后,光标自动右移,所以要指定返回 //write_1602com(0x0b); break; case 2:fen++; if(fen==60) fen=0; write_sfm(0x05,fen);//令LCD在正确位置显示"加"设定好的分数据 temp=(fen)/10*16+(fen)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x82,temp);//向DS1302内写分寄存器82H写入调整后的分数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+6);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置 break; case 3:shi++; if(shi==24) shi=0; write_sfm(2,shi);//令LCD在正确的位置显示"加"设定好的小时数据 temp=(shi)/10*16+(shi)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x84,temp);//向DS1302内写小时寄存器84H写入调整后的小时数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+3);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 4:week++; if(week==8) week=1; write_1602com(yh+0x0C);//指定'加'后的周数据显示位置 write_week(week);//指定周数据显示内容 temp=(week)/10*16+(week)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8a,temp);//向DS1302内写周寄存器8aH写入调整后的周数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+0x0e);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 5:ri++; if(ri==32) ri=1; write_nyr(9,ri);//令LCD在正确的位置显示"加"设定好的日期数据 temp=(ri)/10*16+(ri)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x86,temp);//向DS1302内写日期寄存器86H写入调整后的日期数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+10);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 6:yue++; if(yue==13) yue=1; write_nyr(6,yue);//令LCD在正确的位置显示"加"设定好的月份数据 temp=(yue)/10*16+(yue)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x88,temp);//向DS1302内写月份寄存器88H写入调整后的月份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+7);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 7:nian++; if(nian==100) nian=0; write_nyr(3,nian);//令LCD在正确的位置显示"加"设定好的年份数据 temp=(nian)/10*16+(nian)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8c,temp);//向DS1302内写年份寄存器8cH写入调整后的年份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+4);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break;} } } //------------------减键key3,各句功能参照'加键'注释--------------- if(key3==0) { delay(10);//调延时,消抖动 if(key3==0) { buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1; while(!key3); switch(key1n) { case 1:miao--; if(miao==-1) miao=59;//秒数据减到-1时自动变成59 write_sfm(0x08,miao);//在LCD的正确位置显示改变后新的秒数 temp=(miao)/10*16+(miao)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00); //允许写,禁止写保护 write_1302(0x80,temp); //向DS1302内写秒寄存器80H写入调整后的秒数据BCD码 write_1302(0x8e,0x80); //打开写保护 write_1602com(er+0x09);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置 //write_1602com(0x0b); break; case 2:fen--; if(fen==-1) fen=59; write_sfm(5,fen); temp=(fen)/10*16+(fen)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x82,temp);//向DS1302内写分寄存器82H写入调整后的分数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+6);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置 break; case 3:shi--; if(shi==-1) shi=23; write_sfm(2,shi); temp=(shi)/10*16+(shi)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x84,temp);//向DS1302内写小时寄存器84H写入调整后的小时数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+3);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 4:week--; if(week==0) week=7; write_1602com(yh+0x0C);//指定'加'后的周数据显示位置 write_week(week);//指定周数据显示内容 temp=(week)/10*16+(week)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8a,temp);//向DS1302内写周寄存器8aH写入调整后的周数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+0x0e);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 5:ri--; if(ri==0) ri=31; write_nyr(9,ri); temp=(ri)/10*16+(ri)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x86,temp);//向DS1302内写日期寄存器86H写入调整后的日期数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+10);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 6:yue--; if(yue==0) yue=12; write_nyr(6,yue); temp=(yue)/10*16+(yue)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x88,temp);//向DS1302内写月份寄存器88H写入调整后的月份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+7);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 7:nian--; if(nian==-1) nian=99; write_nyr(3,nian); temp=(nian)/10*16+(nian)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8c,temp);//向DS1302内写年份寄存器8cH写入调整后的年份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+4);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break;} } } }}//-------------------------------void init() //定时器、计数器设置函数{ TMOD=0x11; //指定定时/计数器的工作方式为3 TH0=0; //定时器T0的高四位=0 TL0=0; //定时器T0的低四位=0 EA=1; //系统允许有开放的中断 ET0=1; //允许T0中断 TR0=1; //开启中断,启动定时器}//*******************主函数**************************//***************************************************void main(){ lcd_init(); //调用液晶屏初始化子函数 ds1302_init(); //调用DS1302时钟的初始化子函数 init(); //调用定时计数器的设置子函数 led=0; //打开LCD的背光电源 buzzer=0;//蜂鸣器长响一次 delay(80); buzzer=1; while(1) //无限循环下面的语句: { keyscan(); //调用键盘扫描子函数 }}void timer0() interrupt 1 //取得并显示日历和时间{ //Init_DS18B20();//温度传感器DS18b2初始化子函数,在头文件中 flag=ReadTemperature();//将18b2头文件运行返回的函数结果送到变量FLAG中,用于显示 //读取秒时分周日月年七个数据(DS1302的读寄存器与写寄存器不一样):miao = BCD_Decimal(read_1302(0x81)); fen = BCD_Decimal(read_1302(0x83)); shi = BCD_Decimal(read_1302(0x85)); ri = BCD_Decimal(read_1302(0x87)); yue = BCD_Decimal(read_1302(0x89)); nian=BCD_Decimal(read_1302(0x8d)); week=BCD_Decimal(read_1302(0x8b)); //显示温度、秒、时、分数据: write_temp(12,flag);//显示温度,从第二行第12个字符后开始显示 write_sfm(8,miao);//秒,从第二行第8个字后开始显示(调用时分秒显示子函数) write_sfm(5,fen);//分,从第二行第5个字符后开始显示 write_sfm(2,shi);//小时,从第二行第2个字符后开始显示 //显示日、月、年数据: write_nyr(9,ri);//日期,从第二行第9个字符后开始显示 write_nyr(6,yue);//月份,从第二行第6个字符后开始显示 write_nyr(3,nian);//年,从第二行第3个字符后开始显示 write_week(week);}

唉,又一个写毕业论文的。。。

毕业论文设计时钟要求

摘 要本次的硬件综合设计是对我们所学知识的综合运用,独立完成具有一定实用价值的小型系统——数字时钟。数字时钟是一种用数字技术实现是、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,具有更长的使用寿命,能被更好的广泛运用。数字时钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。数字时钟系统的主要功能:(1)通过液晶显示器显示时分秒,具有时分校准、整点报时和加点自检功能;(2)整点报时通过光和声音两种情况报警;(3)时钟信号有主用时钟电路提供;(4)时钟校准由键盘完成;(5)系统在丢电的情况下不影响时钟的运行。系统运用到的硬件资源:单片机核心系统(AT89S52)、实时时钟(DS1307)、TD0273D01七段LCD(HT1621B驱动)、NTC测量电路(NE555)、USB通信和供电电路( CH372)、LED指示灯、键盘、蜂鸣器等。首先,我们通过基本的焊接技能训练,掌握LCD Exam实验板的硬件原理,进行PCB线路板的设计,将运用到的硬件进行组装和焊接,通过硬件调试。接着,根据所设计数字时钟的功能要求进行软件的总体结构设计、软件的具体实现并仿真调试。最后,进行程序固化、系统的调试和维护,最终完成整个系统的设计,提交课程设计报告。 此系统的设计是我们了解采用控制产品开发的全部过程,掌握专用计算机系统的软硬件设计过程、方法及实现,为以后设计和工作打下良好基础。关键词:数字时钟 DS1307 单片机 目 录 摘要一、总体结构二、硬件设计原理1、时钟模块2.核心模块3.显示及驱动模块4.其他电路(1)蜂鸣器(2)POWER LED指示灯(3)键盘(4键)(4)电阻(5)电容三、软件总体结构四、软件具体实现1.系统初始化2.报警部分3.显示程序4.CPU读流程5.HT1621的一个字节的写过程6.DS1307的一个字节写的过程7.DS1307的一个字节读的过程五、调试和故障排除1.焊接测试2.程序调试六、结束语七、参考文献八、附录

电子工程学院毕业设计(论文)任务书学生姓名 专业 班级学号指导教师姓名 学历 大学本科 职称 讲师 一、毕业设计(论文)题目:基于单片机数字时钟设计 二、毕业设计(论文)课题来源、意义与主要内容三、毕业设计(论文)课题目的要求和主要技术指标基本要求1、设计制作一个包含简单按键的单片机系统,用MAX7219驱动8位数码管,来显示时间。发挥部分1、可对时间误差进行调整。2、可定时。 四、进度计划:1、 查找相关资料。2、 按需求设计单片机电路和外围电路。3、 组装电路。4、 设计调试程序。5、 完成发挥部分6、 写出论文 五、主要文献、资料和参考书: 胡乾斌等 单片微型计算机原理及应用 华中科技大学出版社 1997 廖先云等 电子技术实践与训练 高等教育出版社 2003

目录摘 要 IAbstract II目录 III第一章 绪 论 - 1 课题的背景 - 1 课题意义 - 2 本章小结 - 3 -第二章 总体设计方案与论证 - 4 电源模块方案的选择与论证 - 4 时钟电路方案的选择与论证 - 4 显示电路方案的选择与论证 - 5 闹钟电路方案的选择与论证 - 5 键扫描电路方案的选择与论证 - 6 本章小结 - 6 -第三章 系统硬件设计 - 7 主控芯片STC89C52的介绍 - 7 STC89C52的主要性能参数 - 7 STC89C52单片机的功能特性概述: - 8 时钟部分功能介绍及电路设计 - 11 显示模块功能介绍及电路设计 - 14 闹钟电路模块介绍及电路设计 - 16 功能按键模块介绍及电路设计 - 17 电源模块介绍及电路设计 - 17 本章小结 - 18 -第四章 系统软件设计 - 19 日历程序设计 - 19 时间调整程序设计 - 20 闹钟设置程序设计 - 22 闹钟蜂鸣程序设计 - 23 本章小结 - 23 -第五章 系统调试 - 24 系统的调试 - 24 系统的调试出现的问题及解决 - 24 本章小结 - 24 -第六章 结 论 - 25 -参考文献 - 26 -致 谢 - 27 -附录 - 28 -附录一 :本设计电路原理图 - 28 -附录二:数字日历钟电路设计的C程序 - 29 -

具体的先写HDL,写好了EDA工具给综合可以参考百度文库资料数字电子时钟工作原理(参考百度百科)单片机通过了 3只 74HC164串行-并行转换芯片后,驱动时钟屏幕,因为时钟屏幕的极性是共阴极,数字电路钟点所以必须使用“74HC”电路而不能使用“74LS”电路,后者的高电平驱动能力很差!这里的 3 只 74HC164芯片,自身属于串行输入,而从单片机一则看过去,3 只芯片驱动方式则是并行驱动,这样可以避免每次传送新的显示数据时,都需要从头到尾传送 24 个笔段数据。目前的传送方式可以只是传送已经变化了的显示数据。晶体频率使用的是 32768HZ,这种低频率时基,对掉电保护的电池耗电关系极大,HT48R10A单片机具有的“RTC”实时时钟的功能,大大方便了电路设计。按照常规,在如此低的频率下,对单片机的指令执行速度会有矛盾,但是,这种单片机却能够让程序运行时使用“内部 RC ”振荡频率而仅仅是时钟部分使用 32768HZ频率,这样,就可以选择“内部 RC”高达数 MHZ 的指令运行频率而不用理会时钟走时频率,两者依靠这种特有的“RTC”功能获得了很理想的配合。当进入电池掉电保护的时候,可以令电池耗电维持在仅仅数十 uA 的水平,一只 60mAh的掉电保护电池,就可以让掉电保护时间长达几个月之久!进入掉电保护后,屏幕不显示,所有按钮和控制功能暂时失效,仅仅实时时钟仍然继续走时。当外部主电源恢复供电后,所有功能自动恢复,实时时钟无需调整。单片机的 15P是复位引脚,当上电时或者程序运行发生异常时,可以通过此引脚让程序重新运行。但是,一般地,单片机本身具有“看门狗”自动复位功能,可以快速地自动对程序运行异常进行复位,人们几乎觉察不到它的复位影响。单片机的 10P 引脚安排为专门检测外部供电是否正常,当外部 5V供电掉电后,单片机将立即进入掉电保护状态,而在电路中电源能量还没有完全消耗尽之前,程序也必须抢先对各个端口进行配置,以便进入低电源消耗状态。电路图中有两个输出端口,一个是“睡眠”控制输出端口,它只有在开始倒计时的时候才会输出高电平;另一个时“定时”输出端口,它只有在到达定时时间的时候才会输出高电平。合理地利用这两个输出,就能够安排一些简单的自动控制,例如,可以利用“睡眠”的倒计时功能来给电孵化行业的“自动翻蛋”使用,利用“定时”功能来作为一只“电子闹钟”等等。电路中,屏幕的公共引脚接有一只 NPN小功率三极管,这主要是在单片机对 74HC164 传送数据时,临时关闭显示屏幕的供电以免产生“鬼影”,同时,在掉电保护时则可以完全关闭屏幕的供电。单片机预留了两个端口没有使用,这里可以在将来安排外接电存储器,以便派生例如电子打铃仪或者多次定时数据存储,成为功能更加丰富的时钟品种。各个按钮的使用说明:(请参考印刷板图)。各按键在印刷板上的编号与单片机芯片引脚和功能关系,请参考下面表格。其中,标注“G”的焊盘是电路供电的参考点,即 5V电源的负极,俗称“地线”。所有按键都是需要与这个“G”接通的时候(需要串入 1K 左右电阻),该按键才算是“被按下”。当这个“G”引出到按键板时,需要在它上面串接一只 1K左右的电阻,不要直接让其与各按键引脚直接“短接”,以防止芯片内部引脚损坏。是以一种元器件做为振动源,而这种振动源在一定条件下,具有很高的恒定频率,把恒频率的振动转化为电脉冲,再按1秒多少次,用电子器件进行计数,达到次数为1秒,计数60秒为1分钟.....,并用相应的显示机构进行显示,这种机构可以是机械的、也可以是电子液晶、二极管等方式。

lcd时钟温度计毕业论文

可以联系我的,有作好的防真,去我的百度空间看看。然后联系我,空间有我的联系方式

#include<>#include""#define uint unsigned int#define uchar unsigned charuchar a,miao,shi,fen,ri,yue,nian,week,flag,key1n,temp;//flag用于读取头文件中的温度值,和显示温度值#define yh 0x80 //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)#define er 0x80+0x40 //LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)//液晶屏的与C51之间的引脚连接定义(显示数据线接C51的P0口)sbit rs=P1^0;sbit en=P1^2;sbit rw=P1^1; //如果硬件上rw接地,就不用写这句和后面的rw=0了sbit led=P3^7; //LCD背光开关//DS1302时钟芯片与C51之间的引脚连接定义sbit IO=P2^2;sbit SCLK=P2^1;sbit RST=P2^2;sbit ACC0=ACC^0;sbit ACC7=ACC^7;/************************************************************ACC累加器= 就是ACC的第0位。Acc可以位寻址。累加器ACC是一个8位的存储单元,是用来放数据的。但是,这个存储单元有其特殊的地位,是单片机中一个非常关键的单元,很多运算都要通过ACC来进行。以后在学习指令时,常用A来表示累加器。但有一些地方例外,比如在PUSH指令中,就必须用ACC这样的名字。一般的说法,A代表了累加器中的内容、而ACC代表的是累加器的地址。 ***************************************************************///校时按键与C51的引脚连接定义sbit key1=P2^4; //设置键sbit key2=P2^5; //加键sbit key3=P2^6; //减键sbit buzzer=P2^0;//蜂鸣器,通过三极管9012驱动,端口低电平响/**************************************************************/uchar code tab1[]={"20 - - "}; //年显示的固定字符uchar code tab2[]={" : : "};//时间显示的固定字符//延时函数,后面经常调用void delay(uint xms)//延时函数,有参函数{ uint x,y; for(x=xms;x>0;x--) for(y=120;y>0;y--);}/********液晶写入指令函数与写入数据函数,以后可调用**************//*在这个程序中,液晶写入有关函数会在DS1302的函数中调用,所以液晶程序要放在前面*/write_1602com(uchar com)//****液晶写入指令函数****{ rs=0;//数据/指令选择置为指令 rw=0; //读写选择置为写 P0=com;//送入数据 delay(1); en=1;//拉高使能端,为制造有效的下降沿做准备 delay(1); en=0;//en由高变低,产生下降沿,液晶执行命令}write_1602dat(uchar dat)//***液晶写入数据函数****{ rs=1;//数据/指令选择置为数据 rw=0; //读写选择置为写 P0=dat;//送入数据 delay(1); en=1; //en置高电平,为制造下降沿做准备 delay(1); en=0; //en由高变低,产生下降沿,液晶执行命令}lcd_init()//***液晶初始化函数****{ write_1602com(0x38);//设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据 write_1602com(0x0c);//开显示不显示光标 write_1602com(0x06);//整屏不移动,光标自动右移 write_1602com(0x01);//清显示 write_1602com(yh+1);//日历显示固定符号从第一行第1个位置之后开始显示 for(a=0;a<14;a++) { write_1602dat(tab1[a]);//向液晶屏写日历显示的固定符号部分 //delay(3); } write_1602com(er+2);//时间显示固定符号写入位置,从第2个位置后开始显示 for(a=0;a<8;a++) { write_1602dat(tab2[a]);//写显示时间固定符号,两个冒号 //delay(3); }}/*********************over***********************//***************DS1302有关子函数********************/void write_byte(uchar dat)//写一个字节{ ACC=dat; RST=1; for(a=8;a>0;a--) { IO=ACC0; SCLK=0; SCLK=1; ACC=ACC>>1; }}uchar read_byte()//读一个字节{ RST=1; for(a=8;a>0;a--) { ACC7=IO; SCLK=1; SCLK=0; ACC=ACC>>1; } return (ACC);}//----------------------------------------void write_1302(uchar add,uchar dat)//向1302芯片写函数,指定写入地址,数据{ RST=0; SCLK=0; RST=1; write_byte(add); write_byte(dat); SCLK=1; RST=0;}uchar read_1302(uchar add)//从1302读数据函数,指定读取数据来源地址{ uchar temp; RST=0; SCLK=0; RST=1; write_byte(add); temp=read_byte(); SCLK=1; RST=0; return(temp);}uchar BCD_Decimal(uchar bcd)//BCD码转十进制函数,输入BCD,返回十进制{ uchar Decimal; Decimal=bcd>>4; return(Decimal=Decimal*10+(bcd&=0x0F));}//--------------------------------------void ds1302_init() //1302芯片初始化子函数(2010-01-07,12:00:00,week4){RST=0;SCLK=0;write_1302(0x8e,0x00); //允许写,禁止写保护 write_1302(0x80,0x00); //向DS1302内写秒寄存器80H写入初始秒数据00write_1302(0x82,0x00);//向DS1302内写分寄存器82H写入初始分数据00write_1302(0x84,0x12);//向DS1302内写小时寄存器84H写入初始小时数据12write_1302(0x8a,0x04);//向DS1302内写周寄存器8aH写入初始周数据4write_1302(0x86,0x07);//向DS1302内写日期寄存器86H写入初始日期数据07write_1302(0x88,0x01);//向DS1302内写月份寄存器88H写入初始月份数据01write_1302(0x8c,0x10);//向DS1302内写年份寄存器8cH写入初始年份数据10write_1302(0x8e,0x80); //打开写保护}//------------------------------------//温度显示子函数void write_temp(uchar add,uchar dat)//向LCD写温度数据,并指定显示位置{ uchar gw,sw; gw=dat%10;//取得个位数字 sw=dat/10;//取得十位数字 write_1602com(er+add);//er是头文件规定的值0x80+0x40 write_1602dat(0x30+sw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0x30+gw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0xdf);//显示温度的小圆圈符号,0xdf是液晶屏字符库的该符号地址码 write_1602dat(0x43); //显示"C"符号,0x43是液晶屏字符库里大写C的地址码 }//------------------------------------//时分秒显示子函数void write_sfm(uchar add,uchar dat)//向LCD写时分秒,有显示位置加、现示数据,两个参数{ uchar gw,sw; gw=dat%10;//取得个位数字 sw=dat/10;//取得十位数字 write_1602com(er+add);//er是头文件规定的值0x80+0x40 write_1602dat(0x30+sw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0x30+gw);//数字+30得到该数字的LCD1602显示码 }//-------------------------------------//年月日显示子函数void write_nyr(uchar add,uchar dat)//向LCD写年月日,有显示位置加数、显示数据,两个参数{ uchar gw,sw; gw=dat%10;//取得个位数字 sw=dat/10;//取得十位数字 write_1602com(yh+add);//设定显示位置为第一个位置+add write_1602dat(0x30+sw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0x30+gw);//数字+30得到该数字的LCD1602显示码 }//-------------------------------------------void write_week(uchar week)//写星期函数{ write_1602com(yh+0x0c);//星期字符的显示位置 switch(week) { case 1:write_1602dat('M');//星期数为1时,显示 write_1602dat('O'); write_1602dat('N'); break; case 2:write_1602dat('T');//星期数据为2时显示 write_1602dat('U'); write_1602dat('E'); break; case 3:write_1602dat('W');//星期数据为3时显示 write_1602dat('E'); write_1602dat('D'); break; case 4:write_1602dat('T');//星期数据为4是显示 write_1602dat('H'); write_1602dat('U'); break; case 5:write_1602dat('F');//星期数据为5时显示 write_1602dat('R'); write_1602dat('I'); break; case 6:write_1602dat('S');//星期数据为6时显示 write_1602dat('T'); write_1602dat('A'); break; case 7:write_1602dat('S');//星期数据为7时显示 write_1602dat('U'); write_1602dat('N'); break;}}//****************键盘扫描有关函数**********************void keyscan(){ if(key1==0)//---------------key1为功能键(设置键)-------------------- { delay(9);//延时,用于消抖动 if(key1==0)//延时后再次确认按键按下 { buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1; while(!key1); key1n++; if(key1n==9) key1n=1;//设置按键共有秒、分、时、星期、日、月、年、返回,8个功能循环 switch(key1n) { case 1: TR0=0;//关闭定时器 //TR1=0; write_1602com(er+0x09);//设置按键按动一次,秒位置显示光标 write_1602com(0x0f);//设置光标为闪烁 temp=(miao)/10*16+(miao)%10;//秒数据写入DS1302 write_1302(0x8e,0x00); write_1302(0x80,0x80|temp);//miao write_1302(0x8e,0x80); break; case 2: write_1602com(er+6);//按2次fen位置显示光标 //write_1602com(0x0f); break; case 3: write_1602com(er+3);//按动3次,shi //write_1602com(0x0f); break; case 4: write_1602com(yh+0x0e);//按动4次,week //write_1602com(0x0f); break; case 5: write_1602com(yh+0x0a);//按动5次,ri //write_1602com(0x0f); break; case 6: write_1602com(yh+0x07);//按动6次,yue //write_1602com(0x0f); break; case 7: write_1602com(yh+0x04);//按动7次,nian //write_1602com(0x0f); break; case 8: write_1602com(0x0c);//按动到第8次,设置光标不闪烁 TR0=1;//打开定时器 temp=(miao)/10*16+(miao)%10; write_1302(0x8e,0x00); write_1302(0x80,0x00|temp);//miao数据写入DS1302 write_1302(0x8e,0x80); break; }} }//------------------------------加键key2---------------------------- if(key1n!=0)//当key1按下以下。再按以下键才有效(按键次数不等于零) { if(key2==0) //上调键 { delay(10); if(key2==0) { buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1; while(!key2); switch(key1n) { case 1:miao++;//设置键按动1次,调秒 if(miao==60) miao=0;//秒超过59,再加1,就归零 write_sfm(0x08,miao);//令LCD在正确位置显示"加"设定好的秒数 temp=(miao)/10*16+(miao)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00); //允许写,禁止写保护 write_1302(0x80,temp); //向DS1302内写秒寄存器80H写入调整后的秒数据BCD码 write_1302(0x8e,0x80); //打开写保护 write_1602com(er+0x09);//因为设置液晶的模式是写入数据后,光标自动右移,所以要指定返回 //write_1602com(0x0b); break; case 2:fen++; if(fen==60) fen=0; write_sfm(0x05,fen);//令LCD在正确位置显示"加"设定好的分数据 temp=(fen)/10*16+(fen)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x82,temp);//向DS1302内写分寄存器82H写入调整后的分数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+6);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置 break; case 3:shi++; if(shi==24) shi=0; write_sfm(2,shi);//令LCD在正确的位置显示"加"设定好的小时数据 temp=(shi)/10*16+(shi)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x84,temp);//向DS1302内写小时寄存器84H写入调整后的小时数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+3);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 4:week++; if(week==8) week=1; write_1602com(yh+0x0C);//指定'加'后的周数据显示位置 write_week(week);//指定周数据显示内容 temp=(week)/10*16+(week)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8a,temp);//向DS1302内写周寄存器8aH写入调整后的周数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+0x0e);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 5:ri++; if(ri==32) ri=1; write_nyr(9,ri);//令LCD在正确的位置显示"加"设定好的日期数据 temp=(ri)/10*16+(ri)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x86,temp);//向DS1302内写日期寄存器86H写入调整后的日期数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+10);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 6:yue++; if(yue==13) yue=1; write_nyr(6,yue);//令LCD在正确的位置显示"加"设定好的月份数据 temp=(yue)/10*16+(yue)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x88,temp);//向DS1302内写月份寄存器88H写入调整后的月份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+7);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 7:nian++; if(nian==100) nian=0; write_nyr(3,nian);//令LCD在正确的位置显示"加"设定好的年份数据 temp=(nian)/10*16+(nian)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8c,temp);//向DS1302内写年份寄存器8cH写入调整后的年份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+4);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break;} } } //------------------减键key3,各句功能参照'加键'注释--------------- if(key3==0) { delay(10);//调延时,消抖动 if(key3==0) { buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1; while(!key3); switch(key1n) { case 1:miao--; if(miao==-1) miao=59;//秒数据减到-1时自动变成59 write_sfm(0x08,miao);//在LCD的正确位置显示改变后新的秒数 temp=(miao)/10*16+(miao)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00); //允许写,禁止写保护 write_1302(0x80,temp); //向DS1302内写秒寄存器80H写入调整后的秒数据BCD码 write_1302(0x8e,0x80); //打开写保护 write_1602com(er+0x09);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置 //write_1602com(0x0b); break; case 2:fen--; if(fen==-1) fen=59; write_sfm(5,fen); temp=(fen)/10*16+(fen)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x82,temp);//向DS1302内写分寄存器82H写入调整后的分数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+6);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置 break; case 3:shi--; if(shi==-1) shi=23; write_sfm(2,shi); temp=(shi)/10*16+(shi)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x84,temp);//向DS1302内写小时寄存器84H写入调整后的小时数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+3);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 4:week--; if(week==0) week=7; write_1602com(yh+0x0C);//指定'加'后的周数据显示位置 write_week(week);//指定周数据显示内容 temp=(week)/10*16+(week)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8a,temp);//向DS1302内写周寄存器8aH写入调整后的周数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+0x0e);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 5:ri--; if(ri==0) ri=31; write_nyr(9,ri); temp=(ri)/10*16+(ri)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x86,temp);//向DS1302内写日期寄存器86H写入调整后的日期数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+10);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 6:yue--; if(yue==0) yue=12; write_nyr(6,yue); temp=(yue)/10*16+(yue)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x88,temp);//向DS1302内写月份寄存器88H写入调整后的月份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+7);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 7:nian--; if(nian==-1) nian=99; write_nyr(3,nian); temp=(nian)/10*16+(nian)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8c,temp);//向DS1302内写年份寄存器8cH写入调整后的年份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+4);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break;} } } }}//-------------------------------void init() //定时器、计数器设置函数{ TMOD=0x11; //指定定时/计数器的工作方式为3 TH0=0; //定时器T0的高四位=0 TL0=0; //定时器T0的低四位=0 EA=1; //系统允许有开放的中断 ET0=1; //允许T0中断 TR0=1; //开启中断,启动定时器}//*******************主函数**************************//***************************************************void main(){ lcd_init(); //调用液晶屏初始化子函数 ds1302_init(); //调用DS1302时钟的初始化子函数 init(); //调用定时计数器的设置子函数 led=0; //打开LCD的背光电源 buzzer=0;//蜂鸣器长响一次 delay(80); buzzer=1; while(1) //无限循环下面的语句: { keyscan(); //调用键盘扫描子函数 }}void timer0() interrupt 1 //取得并显示日历和时间{ //Init_DS18B20();//温度传感器DS18b2初始化子函数,在头文件中 flag=ReadTemperature();//将18b2头文件运行返回的函数结果送到变量FLAG中,用于显示 //读取秒时分周日月年七个数据(DS1302的读寄存器与写寄存器不一样):miao = BCD_Decimal(read_1302(0x81)); fen = BCD_Decimal(read_1302(0x83)); shi = BCD_Decimal(read_1302(0x85)); ri = BCD_Decimal(read_1302(0x87)); yue = BCD_Decimal(read_1302(0x89)); nian=BCD_Decimal(read_1302(0x8d)); week=BCD_Decimal(read_1302(0x8b)); //显示温度、秒、时、分数据: write_temp(12,flag);//显示温度,从第二行第12个字符后开始显示 write_sfm(8,miao);//秒,从第二行第8个字后开始显示(调用时分秒显示子函数) write_sfm(5,fen);//分,从第二行第5个字符后开始显示 write_sfm(2,shi);//小时,从第二行第2个字符后开始显示 //显示日、月、年数据: write_nyr(9,ri);//日期,从第二行第9个字符后开始显示 write_nyr(6,yue);//月份,从第二行第6个字符后开始显示 write_nyr(3,nian);//年,从第二行第3个字符后开始显示 write_week(week);}

昨天才把我的毕业论文删掉。。

你看下这些对你是否有些帮助,1.基于labVIEW虚拟滤波器的设计与实现 2.双闭环直流调速系统设计 3.单片机脉搏测量仪 4.单片机控制的全自动洗衣机毕业设计论文 电梯控制的设计与实现 6.恒温箱单片机控制 7.基于单片机的数字电压表 8.单片机控制步进电机毕业设计论文 9.函数信号发生器设计论文 变电所一次系统设计 11.报警门铃设计论文 单片机交通灯控制 13.单片机温度控制系统 通信系统中的接入信道部分进行仿真与分析 15.仓库温湿度的监测系统 16.基于单片机的电子密码锁 17.单片机控制交通灯系统设计 18.基于DSP的IIR数字低通滤波器的设计与实现 19.智能抢答器设计 20.基于LabVIEW的PC机与单片机串口通信 设计的IIR数字高通滤波器 22.单片机数字钟设计 23.自动起闭光控窗帘毕业设计论文 24.三容液位远程测控系统毕业论文 25.基于Matlab的PWM波形仿真与分析 26.集成功率放大电路的设计 27.波形发生器、频率计和数字电压表设计 28.水位遥测自控系统 毕业论文 29.宽带视频放大电路的设计 毕业设计 30.简易数字存储示波器设计毕业论文 31.球赛计时计分器 毕业设计论文 数字滤波器的设计毕业论文 机与单片机串行通信毕业论文 34.基于CPLD的低频信号发生器设计毕业论文 变电站电气主接线设计 序列在扩频通信中的应用 37.正弦信号发生器 38.红外报警器设计与实现 39.开关稳压电源设计 40.基于MCS51单片机温度控制毕业设计论文 41.步进电动机竹竿舞健身娱乐器材 42.单片机控制步进电机 毕业设计论文 43.单片机汽车倒车测距仪 44.基于单片机的自行车测速系统设计 45.水电站电气一次及发电机保护 46.基于单片机的数字显示温度系统毕业设计论文 47.语音电子门锁设计与实现 48.工厂总降压变电所设计-毕业论文 49.单片机无线抢答器设计 50.基于单片机控制直流电机调速系统毕业设计论文 51.单片机串行通信发射部分毕业设计论文 52.基于VHDL语言PLD设计的出租车计费系统毕业设计论文 53.超声波测距仪毕业设计论文 54.单片机控制的数控电流源毕业设计论文 55.声控报警器毕业设计论文 56.基于单片机的锁相频率合成器毕业设计论文 57.基于Multism/protel的数字抢答器 58.单片机智能火灾报警器毕业设计论 59.无线多路遥控发射接收系统设计毕业论文 60.单片机对玩具小车的智能控制毕业设计论文 61.数字频率计毕业设计论文 62.基于单片机控制的电机交流调速毕业设计论文 63.楼宇自动化--毕业设计论文 64.车辆牌照图像识别算法的实现--毕业设计 65.超声波测距仪--毕业设计 66.工厂变电所一次侧电气设计 67.电子测频仪--毕业设计 68.点阵电子显示屏--毕业设计 69.电子电路的电子仿真实验研究 70.基于51单片机的多路温度采集控制系统 71.基于单片机的数字钟设计 72.小功率不间断电源(UPS)中变换器的原理与设计 73.自动存包柜的设计 74.空调器微电脑控制系统 75.全自动洗衣机控制器 76.电力线载波调制解调器毕业设计论文 77.图书馆照明控制系统设计 78.基于AC3的虚拟环绕声实现 79.电视伴音红外转发器的设计 80.多传感器障碍物检测系统的软件设计 81.基于单片机的电器遥控器设计 82.基于单片机的数码录音与播放系统 83.单片机控制的霓虹灯控制器 84.电阻炉温度控制系统 85.智能温度巡检仪的研制 86.保险箱遥控密码锁 毕业设计 变电所的电气部分及继电保护 88.年产26000吨乙醇精馏装置设计 89.卷扬机自动控制限位控制系统 90.铁矿综合自动化调度系统 91.磁敏传感器水位控制系统 92.继电器控制两段传输带机电系统 93.广告灯自动控制系统 94.基于CFA的二阶滤波器设计 95.霍尔传感器水位控制系统 96.全自动车载饮水机 97.浮球液位传感器水位控制系统 98.干簧继电器水位控制系统 99.电接点压力表水位控制系统 100.低成本智能住宅监控系统的设计 101.大型发电厂的继电保护配置 102.直流操作电源监控系统的研究 103.悬挂运动控制系统 104.气体泄漏超声检测系统的设计 105.电压无功补偿综合控制装置 型无功补偿装置控制器的设计 电机调速 频段窄带调频无线接收机 109.电子体温计 110.基于单片机的病床呼叫控制系统 111.红外测温仪 112.基于单片微型计算机的测距仪正文 113.智能数字频率计 114.基于单片微型计算机的多路室内火灾报警器 115.信号发生器 116.基于单片微型计算机的语音播出的作息时间控制器 117.交通信号灯控制电路的设计 118.基于单片机步进电机控制系统设计 119.多路数据采集系统的设计 120.电子万年历 121.遥控式数控电源设计 降压变电所一次系统设计 变电站一次系统设计 124.智能数字频率计 125.信号发生器 126.基于虚拟仪器的电网主要电气参数测试设计 127.基于FPGA的电网基本电量数字测量系统的设计 128.风力发电电能变换装置的研究与设计 129.电流继电器设计 130.大功率电器智能识别与用电安全控制器的设计 131.交流电机型式试验及计算机软件的研究 132.单片机交通灯控制系统的设计 133.智能立体仓库系统的设计 134.智能火灾报警监测系统 135.基于单片机的多点温度检测系统 136.单片机定时闹钟设计 137.湿度传感器单片机检测电路制作 138.智能小车自动寻址设计--小车悬挂运动控制系统 139.探讨未来通信技术的发展趋势 140.音频多重混响设计 141.单片机呼叫系统的设计 142.基于FPGA和锁相环4046实现波形发生器 143.基于FPGA的数字通信系统 144.基于单片机的带智能自动化的红外遥控小车 145.基于单片机AT89C51的语音温度计的设计 146.智能楼宇设计 147.移动电话接收机功能电路 148.单片机演奏音乐歌曲装置的设计 149.单片机电铃系统设计 150.智能电子密码锁设计 151.八路智能抢答器设计 152.组态控制抢答器系统设计 153.组态控制皮带运输机系统设计 154..基于单片机控制音乐门铃 155.基于单片机控制文字的显示 156.基于单片机控制发生的数字音乐盒 157.基于单片机控制动态扫描文字显示系统的设计 158.基于LMS自适应滤波器的MATLAB实现 功率放大器毕业论文 160.无线射频识别系统发射接收硬件电路的设计 161.基于单片机PIC16F877的环境监测系统的设计 162.基于ADE7758的电能监测系统的设计 163.智能电话报警器 164.数字频率计 课程设计 165.多功能数字钟电路设计 课程设计 166.基于VHDL数字频率计的设计与仿真 167.基于单片机控制的电子秤 168.基于单片机的智能电子负载系统设计 169.电压比较器的模拟与仿真 170.脉冲变压器设计 仿真技术及应用 172.基于单片机的水温控制系统 173.基于FPGA和单片机的多功能等精度频率计 174.发电机-变压器组中微型机保护系统 175.基于单片机的鸡雏恒温孵化器的设计 176.数字温度计的设计 177.生产流水线产品产量统计显示系统 178.水位报警显时控制系统的设计 179.红外遥控电子密码锁的设计 180.基于MCU温控智能风扇控制系统的设计 181.数字电容测量仪的设计 182.基于单片机的遥控器的设计 电话卡代拨器的设计 184.数字式心电信号发生器硬件设计及波形输出实现 185.电压稳定毕业设计论文 186.基于DSP的短波通信系统设计(IIR设计) 187.一氧化碳报警器 188.网络视频监控系统的设计 189.全氢罩式退火炉温度控制系统 190.通用串行总线数据采集卡的设计 191.单片机控制单闭环直流电动机的调速控制系统 192.单片机电加热炉温度控制系统 193.单片机大型建筑火灾监控系统 接口设备驱动程序的框架设计 195.基于Matlab的多频率FMICW的信号分离及时延信息提取 196.正弦信号发生器 197.小功率UPS系统设计 198.全数字控制SPWM单相变频器 199.点阵式汉字电子显示屏的设计与制作 200.基于AT89C51的路灯控制系统设计 201.基于AT89C51的宽范围高精度的电机转速测量系统 202.开关电源设计 203.基于PDIUSBD12和K9F2808简易USB闪存设计 204.微型机控制一体化监控系统 205.直流电机试验自动采集与控制系统的设计 206.新型自动装弹机控制系统的研究与开发 207.交流异步电机试验自动采集与控制系统的设计 208.转速闭环控制的直流调速系统的仿真与设计 209.基于单片机的数字直流调速系统设计 210.多功能频率计的设计 信息移频信号的频谱分析和识别 212.集散管理系统—终端设计 213.基于MATLAB的数字滤波器优化设计 214.基于AT89C51SND1C的MP3播放器 215.基于光纤的汽车CAN总线研究 216.汽车倒车雷达 217.基于DSP的电机控制 218.红外恒温控制器的设计与制作 219.串联稳压电源的设计 220.智能编码电控锁设计 221.多用定时器的电路设计与制作 222.基于单片机的数字电压表设计 223.智能饮水机控制系统 224.自行车 车速 报警系统 225.大棚仓库温湿度自动控制系统 226.浮点数运算FPGA实现 227.自行车里程,速度计的设计 228.等精度频率计的设计 229.人体健康监测系统设计 230.基于单片机的音乐喷泉控制系统设计 231.基于嵌入式系统的原油含水分析仪的硬件与人机界面设 232.基于LabVIEW环境下虚拟调幅波解调器的设计 233.虚拟示波器的设计 234.红外线遥控器系统设计 235.基于LabVIEW的虚拟频谱分析仪的研究与设计 236.低频功率放大器设计 237.银行自动报警系统 238.超媒体技术 239.数字电子钟的设计与制作 240.温度报警器的电路设计与制作 241.数字电子钟的电路设计 242.鸡舍电子智能补光器的设计 243.高精度超声波传感器信号调理电路的设计 245.电子密码锁的电路设计与制作 246.单片机控制电梯系统的设计 247.常用电器维修方法综述 248.控制式智能计热表的设计 249.电子指南针设计 250.汽车防撞主控系统设计 251.单片机的智能电源管理系统 252.电力电子技术在绿色照明电路中的应用 253.电气火灾自动保护型断路器的设计 254.基于单片机的多功能智能小车设计 255.对漏电保护器安全性能的剖析 256.解析民用建筑的应急照明 257.电力拖动控制系统设计 区域降压变电所电气系统的设计 AT89系列通用单片机编程器的设计 260.基于单片机的金属探测器设计 261.双闭环三相异步电动机串级调速系统 262.基于单片机技术的自动停车器的设计 263.自动剪板机单片机控制系统设计 264.单片机电器遥控器的设计 265.试论供电系统中的导体和电器的选择 266.浅论10KV供电系统的继电保护的设计方案 267.论无线通信技术热点及发展趋势 268.论工厂的电气照明 269.论供电系统中短路电流及其计算 270.电气设备的选择与校验 271.电气控制线路的设计原则 272.蓄电池性能测试仪设计 273.红外恒温控制器的设计与制作 274.串联稳压电源的设计 275.智能编码电控锁设计 276.多用定时器的电路设计与制作 277.基于单片机的数字电压表设计 278.智能饮水机控制系统 279.自行车 车速 报警系统 280.大棚仓库温湿度自动控制系统 281.浮点数运算FPGA实现 282.自行车里程,速度计的设计 283.等精度频率计的设计 284.声纳式高度计系统设计和研究 285.集约型无绳多元心脉传感器研究与设计 286.电气电子信息工程,通信工程,课程设计 交流接触器的工艺与工装 288.六路抢答器设计 双闭环不可逆直流调速系统设计 290.机床润滑系统的设计 291.塑壳式低压断路器设计 292.直流接触器设计 工艺流程及各流程分析介绍 294.大棚温湿自动控制系统 295.基于单片机的短信收发系统设计 ――硬件设计 296.三层电梯的单片机控制电路 297.交通灯89C51控制电路设计 298.基于D类放大器的可调开关电源的设计 299.直流电动机的脉冲调速 300.红外快速检测人体温度装置的设计与研制 301.基于8051单片机的数字钟 直流高频开关电源设计 303.继电器保护毕业设计 304.电力系统电压频率紧急控制装置研究 305.用单片机控制的多功能门铃 306.全氢煤气罩式炉的温度控制系统的研究与改造 307.基于ATmega16单片机的高炉透气性监测仪表的设计 308.基于MSP430的智能网络热量表 309.火电厂石灰石湿法烟气脱硫的控制 310.家用豆浆机全自动控制装置 311.新型起倒靶控制系统的设计与实现 312.软开关技术在变频器中的应用 313.中频感应加热电源的设计 314.智能小区无线防盗系统的设计 315.智能脉搏记录仪系统 316.直流开关稳压电源设计 317.用单片机实现电话远程控制家用电器 318.无线话筒制作 319.温度检测与控制系统 320.数字钟的设计 321.汽车尾灯电路设计 322.篮球比赛计时器的硬件设计 323.节能型电冰箱研究 324.交流异步电动机变频调速设计 325.基于单片机控制的PWM调速系统 326.基于单片机的数字温度计的电路设计 327.基于Atmel89系列芯片串行编程器设计 328.基于单片机的实时时钟 329.基于MCS-51通用开发平台设计 330.基于MP3格式的单片机音乐播放系统 331.基于单片机的IC卡智能水表控制系统设计 332.基于MATLAB的FIR数字滤波器设计 333.单片机水温控制系统 334.基于PIC16F74单片机串行通信中继控制器 335.火灾自动报警系统336.基于单片机的电子时钟控制系统337.基于单片机mega16L的煤气报警器的设计338.微机型高压电网继电保护系统的设计 339.智能毫伏表的设计 340.基于单片机的波形发生器设计341.国产化PLC的研制 342.串行显示的步进电机单片机控制系统 343.编码发射与接收报警系统设计:看护机 345.编码发射接收报警设计:爱情鸟346.基于IC卡的楼宇门禁系统的设计 347.基于DirectShow的视频监控系统 348.智能机器人的研究与设计 ——自动循轨和语音控制的349.基于CPLD的出租车计价器设计——软件设计 电子商务在线信任模型实证研究

相关百科

热门百科

首页
发表服务