




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机课程作息时间控制设计报告课程设计目的 1设计要求 22.1总体要求 22.2具体要求 2设计内容及方法 33.1设计预备 33.2功能设计及系统总体设计 3硬件电路总体设计 34.1硬件总框图 34.1.1 主控电路 44.1.2 按键操纵扫描模块 54.1.3 DS1302实时时钟模块 64.1.4数码管显示模块 84.1.5LED显示模块 94.1.6扬声器模块 104.2硬件原理图 12软件流程框图及源程序 125.1流程框图 125.1.1主程序流程图 125.1.2蜂鸣器流程图 145.1.3 流水灯程序流程图 155.1.4 时钟显示流程图 165.1.5 作息时刻操纵流程图
2、 175.2源程序代码及注释 18调试情形及小结 33课程设计体会 34参考文献 35一、课程设计目的单片机原理及应用课程设计是一项重要的实践性教育环节,是学生在校期间必须同意的一项工程训练。在课程设计过程中,在教师指 导下,运用工程的方法,通过一个简单课题的设计练习,可使学生初步体 验单片机应用系统的设计过程、设计要求、完成工作内容和具体的设计方 法,了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知 识解决实际咨询题的目的。通过课程设计,应能加大学生如下能力的培训: 独立工作能力和制造力; 查阅图书资料,产品手册和各种工具书的能力; 工程绘图的能力;编写技术报告和编制技术资料的能
3、力综合运用专业及基础知识,解决实际工程技术咨询题的能力;二、设计要求2.1 总体要求(1) 独立完成设计任务(2) 绘制系统硬件总框图(3) 绘制系统原理电路图(4) 制定编写设计方案,编制软件框图,完成详细完整的程序清单和 注释;(5) 制定编写调试方案,编写用户操作使用讲明书(6) 写出设计工作小结。 对在完成以上文件过程所进行的有关步骤如设 计思想、指标论证、方案确定、参数运算、元器件选择、原理分析等作出 讲明,并对所完成的设计作出评判,对自己整个设计工作中体会教训,总 结收成和今后研修方向。2.2 具体要求此次工程实践的校内部分要紧以单片机为基础,进行单片机软件编程, 目的是为了提升学
4、生的软件编程和系统设计能力,整个设计系统包括两个 部分,硬件及软件部分,硬件部分差不多制作成功,学生只需要把握其原 理和焊接相应的元器件,把握元器件的辨别和元器件的作用以及应用场所 即可,另外对所焊接的电路还需要进行认确实检查,判定是否有焊接错误 的地点或者短路的地点,对显现的专门情形要能够按照现象判别缘故,并 具备解决咨询题的能力,从而切实提升学生的硬件电子电路的分析、判定 能力。软件编程是此次工程实践的重要环节。在为期两周的工程实践中, 将占据要紧时刻,学生要完成的软件编程任务要紧包括以下几点:1)、熟悉 Keil C51 编程平台及有关编程软件2)、编写、调试蜂鸣器、继电器动作、方波程序
5、并进行软硬件联 调3)、编写、调试 LED 流水灯(循环显示)程序并进行软硬件联调4)、编写、调试键盘扫描子程序并进行软硬件联调5)、编写、调试数码管动态扫描程序并进行软硬件联调6)、电子钟设计(包括键盘、时钟、显示等)7)、温度测量操纵系统设计(包括键盘、显示、时钟、报警等)8)、作息时刻操纵设计9)、交通灯操纵设计10)、汉字输入设计三、设计内容及方法 单片机原理及其应用课程设计通常选择一样常见、常用的简单应 用装置或对象进行微机操纵。所涉及的系统能够实际制作,也能够实验室 模拟,具体步骤和内容如下:3.1 设计预备认真研究设计任务书,明确设计要求、条件、内容、和步骤;通过阅 读有关资料,
6、了解设计对象;复习课程有关内容,熟悉有关单元电路的设 计方法和设计步骤;搜集、分析、消化有关资料、软件等,把握微型运算 机应用系统软件的设计方法;预备好设计需要的图书、资料和工具;拟定 设计打算等。3.2 功能设计及系统总体设计要求学生有创新精神和创新意识,分析所把握的资料,了解设计对象 的功能。在充分考虑功能设计后,进行总体设计,以功能、结构为标,制定总体方案,规划硬、软件功能分配等;初步确定关键元器件地选择。此次设计任务本人所作工作是协助组长和组员查阅资料文献,在代码编写?完成键操主负责调试程序 一样)四、硬件电路总体设计4 Ds硬件丿总柜汽时时钟模块 %完成产品后编辑报。数码管个示模块己
7、编 不要写模块主控电路LED显示模块扬声器模块原理讲明:本电路以单片机AT89C52为主控电路,分别连接按键操纵扫描模 块、时钟模块、数码显示模块、LED显示模块、扬声器模块。第一,按键 扫描模块的四个按键分别用来操纵数码显示、LED显示和扬声器工作,P1口作为输出口,用来操纵LED的亮灭,要使其亮只需要让P1.0-P1.7口保持低电平就能够使8个灯亮起来。同时通过P2.3端操纵蜂鸣器发生,当 P2.3 输出VCC曰,按VCC来操纵数码管段选和位选,I以显示相应012型的三极管,数码管DBT10了(选的息时刻操纵的功能Pl 2PC 1要求当对应端口输出低电平常,亮譲码管显示时分通过按键1时使蜂
8、鸣器发声 玉位选操纵部分,采纳位选。P0 口用P3 04.1.1主控电路11CSDA 12此次课稈设计中CSDA 12PlP0.5P17P0.6RTSP0P5 C RXD P3 l/TXD ALE是设计一个使得该位建/3操纵。最后通过按按键4实现作.要紧系统。该设计中我们主控电路部分采纳,AT89C52 是一个 反复擦写的 FiaSh 其引脚如下图所示:控电路D5丸 ALE29成功,功能的可VCC :供电电压。喝电压,高性XTAL P只读程序储备GNDP2.0乂作息时刻操纵为主的多功能操纵片来实现这些片内含8KBZ7 DULA了单片机;AT89C52总gcMOS的8位单片机,B器和 256B的
9、随机存取数据储备器(RA图1.AT89C52引脚图GND :接地。P0 口( P0.0-P0.7 : P0 口来输出数码管位选及段选数据,以操纵相应数 码管显示相应数值。P1 口 (P1.0-P1.7): P1 口来操纵 LED 的亮灭。P2 口(P2.0-P2.7):使能相应的模块功能;wela( P2.7):操纵数码管位 选;dula( P2.6):操纵数码管段选。P3 口(P3.0-P3.7): P3.0 为 RXD (串行输入口),P3.1 为 TXD (串行 输出口),P3.2为/INTO (外部中断0),P3.3为/INT1 (外部中断1),P3.4 为T0 (记时器0外部输入),
10、P3.5为T1 (记时器1外部输入),P3.6为/WR(外部数据储备器写选通),P3.7为/RD (外部数据储备器读选通)。用I/O脚,其功能用途由软件定义。OOSiXTAL1 (19脚)和XTAL2 (18脚)为振荡器输入输出端口,外接 12MHz晶振。RST/Vpd (9脚)为复位输入端口,外接电阻电容组成的复 位电路。VCC (40脚)禾尸SS(20脚尸为供电端口,分别接+5V电源正 负端。P0P3为可编程通,4.1.2按键操纵扫描模块,属于较为简单VCCUS图2.按键输入电路分别与单片机的P3.器发声、按键2操纵LED流水5 D1按键用于操纵数/师示、IED显示、扬声器等模块的工作。通
11、过 扫描按键是否按下,来设定各模块的工作情形,使各模块能够在按键的操 纵下,有序地进行工作。设计中使用单个按键实现单个功能 的操纵方式.弓汕占魁舟1g4、P3.5 P36 P3.7灯、按键3操纵数码管显 来处理相应的程序。在多功能系统设计的实验中中我们使用四个按键连仝键=1操纵蜂鸣,按弩4操纵作息时刻。通过按下相应的按键4.1.3 DS1302实时时钟模块:图3.DS1302模块电路图DS1302是美国DALLAS公司推出的一种高性能、低功耗、带 RA M的实时时钟电路,它能够对年、月、日、周日、时、分、秒进行计时, 具有闰年补偿功能,工作电压为 2.5V5.5V。采纳三线接口与CPU进行同
12、步通信,并可采纳突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31X 8的用于临时性存放数据的 RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源 引脚,同时提供了对后备电源进行涓细电流充电的能力。、,在调试程序时能够不加电容器,只2 I/O2 CEDS1302与CPU的连接/实际上,在调试程序时能够不加电容器,只 加一个32.768kHzX的晶振即可。只是选择晶振时,不同的晶振,误差也较 大。X2CGND匸图4. DS1302引脚图其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情形下,也 能保持时钟的连续运
13、行。DS1302由Vcc1或Vcc2两者中的较大者供电。当 Vcc2 大于 Vcc1 + 0.2V 时,Vcc2 给 DS1302供电。当 Vcc2 小于 Vcc1 时, DS1302由Vcc1供电。X1和X2是振荡源,外接 32.768kHz晶振。RST是 复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:第一,RST接通操纵逻辑,承诺地址/命令序列送入移位 寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平常,所有的数据传送被初始化,承诺对DS1302进行操作。如果在传 送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变
14、为高阻态。 上电运行时,在Vcc 2.5V之前,RST必须保持低电平。只有在 SCLK为 低电平常,才能将RST置为高电平。I/O 为串行数据输入输出端(双向),S始终是输I入端。A4A3A2A1RD如图2所示DS1302 操纵字节的最高有效位(位7)必须是逻辑1,如 果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低 有效位(位0)如为0表示要进行写操作,为1表示进行读操作,操纵字节总 是从最低位开始输出。在操纵字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开
15、始。同样,在紧跟 8位的操纵字指令后的下一个 SCLK脉冲的下降沿,读出DS1302的数据, 利用单片机的外部中断来处理中断系统通过数码管显示出时刻。图5数码管显示电路硬件电路中,数码管显示的小时、分、秒,通过键1选择,键2、键3调整。数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而 显示出我们要的数字,因此按照数码管的驱动方式的不同,能够分为静态 式和动态式两类。静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数 码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如 BCD 码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度 高,缺点是占用I/O端口
16、多,如驱动5个数码管静态显示则需要5X 8 = 40 根I/O端口来驱动,要明白一个89S51单片机可用的I/O端口才32个呢:), 实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一 种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通操纵电路,位选通由各自独立的I/O线操纵,当单片机输出字形码时,所有数码管都接收到相同的字形码,但怎么讲是那个数码管会显示出字形,取决于单 片机对位选通COM端电路的操纵,因此我们只要将需要显示的数码
17、管的选 通操纵打开,该位就显示出字形,没有选通的数码管就可不能亮。通过分时轮番操纵各个数码管的的 COM端,就使各个数码管轮番受控显示,这确 实是动态驱动。在轮番显示过程中,每位数码管的点亮时刻为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽 非同时点亮,但只要扫描的速度足够快, 示数据,可不能有闪耀感,动态显示的成 约大量的I/O端口,4.1.5 LED显示模块流水灯LED模块给人的印象确际上各位搭码管并 实是一稳固的显Qf D: -F器 是一样的能够节而一QjD5Q6D6Q7DCQSD74HCi7 DB6T1DB7图6. LED显示电路此次设计中通过按键2来操纵其流水显示,打开电
18、源后按下按键2流水 灯模块有效。由于电路中LED为共阳极,故操纵流水灯显示的 P1 口应为 低电平常才有效。从原理图中能够看出,如果要让接在 P1.0 口的LED1亮起来,那么只 要把P1.0 口的电平变为低电平就能够了;相反,如果要接在 P1.0 口的LE D1熄灭,就要把P1.0 口的电平变为高电平;同理,接在P1.1P1.7 口的其 他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我 们只要将发光二极管LED1LED8依次点亮、熄灭,8只LED灯便会一亮 一暗的做流水灯了。我们第一把要显示流水花样的数据建在一个以 TAB为标号的数据表 中,然后通过查表指令“MOVC A
19、, A+DPTR”把数据取到累加器A 中, 然后再送到P1 口进行显示。在此我们还应注意一点,由于人眼的视觉暂留 效应以及单片机执行每条指令的时刻专门短,我们在操纵二极管亮灭的时 候应该延时一段时刻,否则我们就看不到“流水”成效了。4.1.6扬声器模块o3C动O三极管截没声-ft作就0.2s设OY软件流Y一起能够I1 ti.咼电平常 流流过线摩鸣器来实现这些功能。三2N .N芝 Y音频信号和磁铁的,蜂鸣器器不发声;当丄用復块EFM樂扬声器模块通过按键1来实现。要求扬声器能够发出连续,断续的声图7.扬声器电路蜂鸣器是一种一体化结构的电子讯响器,米纳直流电压供电,广泛应用于运算机、打印机、复印机、
20、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器要紧分为压电式蜂鸣器和电磁式蜂鸣器两种类型。下面我们以电磁式蜂鸣器为例来讲明它的工作5.1、流程框图5.1.2蜂鸣器流程图回主程序音及音乐,我们能够选择调用作息时刻操纵程序调用数码管显示程序原理 接通I 磁场 输出 有电 器的 发出 否发萄因此,我们能够通过程序操纵 iO|口输出勺电平来操纵蜂鸣器是 謀,实现各种可能音响的产生列萼彗圈,i使电磁线圈产生 期性地振动发声,当P2.3端口输出设置P2.3 端扬声器发音原理图按下?4.2I脚间的直流电压接近号芯0V 输出低电平常,三极管导通,使蜂鸣 ZFHaiPS2舞盘 tS
21、P bSt-二 歯#的电流形成回路儿机区3命.,富4:* +:电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成 电源后,两个引脚间获得将接近0H V的直流电压,如此蜂鸣设计中是通下? P2.3口操纵其发声!用蜂鸣器发声程序2.3与0S1302是连在发些响5:、门铲代寵一需故只要rj.eri. 1调用LED显示子程序5.1.4时刻显示流程图5.1.5作息时刻操纵流程图作息时刻操纵的设计是比较简单的,其差不多思路是我们设置扬声器 的预响时刻,然后通过DS1302实时时刻的读取与预响时刻做比较, 如果两 者相同那么扬声器发声,如果两者不相同那么返回 DS1302实时时刻连续读 取,直到与扬
22、声器预响时刻相同扬声器发声,然后通过延时关闭扬声器。5.2源程序代码及注释 主程序清单:#include各寄存器等#include #define uint unsigned int#define uchar unsigned char/52 单片机头文件,声明/宏定义符号,类似于替换sbit key1=P3八4; sbit key2=P3A5; sbit key3=P3A6; sbit key4=P3A7; sbit fm=P2A3;sbit dula=P2A6;sbit wela=P2A7;sbit bear=P2A3;/宏定义位 ,也即 IO 口定义uint i;/定义各符号uchar
23、aa,bb,numdu,numwe;uchar sec1,min1,hour1,year1,mon1,day1,temp1,temp2,sec2,min2,hour2; /主功能符号定义uchar code tablew=0x71,0x6d,0x5b,0x3f,0x6d,0x5b,0x06, ;uchar code tablewe=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;uchar code table=0x3f,0x06,0x5b,0x4f,/主功能数组定义0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x7
24、1;void w1();/ 子函数声明void w2();void w3();void w4();void delayms(uint xms);void timer0();void delay(uint z);/ 主功能子函数声明void init();void display(uchar hour,uchar min,uchar sec);void keyscan();void alarm();void time1();/*主函数*/void main()key1=1;key2=1;key3=1;key4=1;while(1)while(!key1)w1();while(!key2)w2()
25、;while(!key3)w3();while(!key4)w4();/*按键操纵蜂鸣器过程*/void w1()if(!key1)delayms(300);/延时防抖,松手检测if(key1)fm=!fm;/*按键操纵流水灯过程*/void w2()loop 1:P1=0xff;if(!key2)delayms(300);if(key2)aa=0xfe;while(1)P1=aa;delayms(100); aa=_crol_(aa,1);/ 相应的 cror 是循环右移一位 if(!key2) delayms(300); if(key2) goto loop1;/赋初值 11111110/
26、大循环/延时 500 毫秒将aa循环左移1位后再赋给aa/*按键操纵数码管过程*/void w3()loop 2:wela=1;P0=0xff;if(!key3)delayms(300);if(key3)numdu=0;numwe=0;while(1)numdu+;if(numdu=7)numdu=1;dula=1;/开段锁存器P0=tablewnumdu;/ 送段码dula=0;/ 锁存段码wela=1;/开位锁存器P0=tablewenumwe;/送位码wela=0;/锁存位码numwe+;if(numwe=6) numwe=0;delayms(5);if(!key3) delayms(3
27、00); if(key3) goto loop2;/*按键操纵作息时刻过程*/ void w4()if(!key4)delayms(300);if(key4)init();/主功能主程序while(1)keyscan(); alarm();/*延时函数(用于按键,蜂鸣器,流水灯等的延时) */ void delayms(uint xms)uint i,j;for(i=xms;i0;i-)/i=xms 即延时约 xms 毫秒for(j=110;j0;j-);/*主功能有关所有子程序*/延时void delay(uint z) 程序/uint x,y;for(x=0;xz;x+) for(y=0;
28、y=sec2&sec1sec2+30)| (min1=0&sec120) /闹钟响 30 秒,正点报时 20 秒功能 for(i=0;i20;i+) bear=bear;P1=P1; switch(temp2)case 0:display(hour1,min1,sec1);break;case 1:display(year1,mon1,day1);break;case 2:display(hour2,min2,sec2);break;delay(30);bear=1;P1=0xff;/*void mainw()/ 主功能主程序 /init();while(1)keyscan();alarm()
29、;*/void time1()interrupt 1/ 定时器程序/uint m;m+;if(m=3686) /250与后面的3886相乘约为100000us=1s操纵1秒程序m=0;sec1+;if(sec1=60)sec1=0;min1+; if(min1=60)min1=0; hour1+;if(hour1=24)hour1=0;day1+;if(day1=31)day1=1;mon1+;if(mon1=13)mon1=1;year1+;if(year1=100)year1=0;六、调试情形及小结6.1 硬件调试硬件调试分为静态调试和动态调试,关于硬件调试而言,只要认真焊 接,硬件一样可不能显现什么咨询题的。没有显现什么咨询题。用所给的 调试程序,调试结果专门好,各模块都能正常工作。静态调试一样采纳的工具是万用表,其是在用户系统未工作时的一种 硬件检测。动态调试是在用户系统工作的情形下发觉和排查错误的一种硬件 检测。调试步骤是:第一把电路分成若干模块,调式过程中与该模块无关的元件能够不加考虑,如此可把故障限定在一定的范畴内;故障清除后, 把各个模块合在一起进行联调,即可完成整个硬件调试工作。6.2 软件调试 软件调试是通过对程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程安全合同协议书
- 商品混凝土买卖合同书
- 房屋建筑装修工程施工合同
- 房屋租赁合同条件
- 施工材料代购合同协议书
- 外贸杂货采购合同范本
- 境外白糖采购合同范本
- 劳务转包简易合同范本
- 遵化交通安全课件
- 2025教师资格考试高中语文标准预测试卷答案及解析1-5
- 湖南省炎德英才名校联考联合体2024-2025学年高二下学期3月月考-化学+答案
- 腾讯财经笔试题库及答案
- 昆明市官渡区卫生健康局招聘笔试真题2024
- 吉林省吉林市2024-2025学年高三下学期3月三模试题 历史 含答案
- 2024年昆明市官渡区卫生健康局招聘考试真题
- (一模)2025年广东省高三高考模拟测试 (一) 英语试卷(含官方答案)
- 办公室环境改善项目计划书
- 肛瘘的术后护理
- 畜牧兽医创新创业
- 《鸿门宴》课本剧:楚汉风云震撼开场看英雄如何对决
- 《高技术产业》课件
评论
0/150
提交评论