《单片机课程设计厨房提醒器》由会员分享,可在线阅读,更多相关《单片机课程设计厨房提醒器(20页珍藏版)》请在金锄头文库上搜索。
1、信息与电气工程学院课程设计说明书(2015/2016 学年第 二学期) 课程名称 : 单片机应用技术课程设计 题 目 : 厨房时间提醒器 专业班级 : 电气工程及其自动化1303班 学生姓名 : * 学 号: * 指导教师 : * 设计周数 : 两周 设计成绩 : 2016年 6月 24日1. 课程设计目的厨房提醒器是一个在日常生活中很常见的器件,市面上的厨房提醒器千奇百怪,但其原理基本上是统一的,我们可以利用这个原理来自己动手设计一个厨房提醒器。原始数据及主要任务:采用AT90c52作为控制单元,实现厨房提醒器的设计设计键盘输入电路;设计显示电路;合理分配地址,编写系统程序;利用protel
2、设计硬件电路原理图,使用proteus和keil4软硬件联机调试。2. 课程设计正文2.1主要技术要求:设置提醒器的“开始”键、“清除”键、“分加1”键、“分减1”键和“秒加1”键、“秒减1”键。刚通电时和按下“清除”键时,均可使显示器显示0:00。按下开始键,则按照设定的时间减1定时。当显示器再次显示为00:00时则蜂鸣器提醒定时到。3个数码管分别用于显示分位、秒十位和秒个位。2.2 软件设计 用protel99se画原理图和pcb图,用keil4编辑程序,用proteus仿真。 2.2.1系统设计Protel99se原理图设计(2)系统keil4编码程序#include #define u
3、char unsigned char uchar ds_code=0,second2=0,second1=0;char minute = 0;char second = 0;uchar time_temp = 0;sbit DS0 = P10;/位选sbit DS1 = P11;sbit DS2 = P12;sbit SPEAKER = P14;/蜂鸣器void delay(uchar x) /延时函数 unsigned int a,b; for(a=x;a0;a-) for(b=110;b0;b-);void second_div(void)/读秒函数second2 = second/10;
4、/取秒十位second1 = second%10;/取秒个位void Key(void)/按键函数P2 = 0xff;if(P2!=0xff)delay(200);if(P2!=0xff)if(P2=0xfe) /开始计时按键按下TR1 = 1;if(P2=0xfd)/清除按键按下TR1 = 0;minute = 0;second = 0;time_temp = 0;SPEAKER = 1;if(P2=0xfb)/分个位加一按键按下minute+;if(minute9) minute = 0;if(P2=0xf7)/分个位减一按键按下minute-;if(minute59) second =
5、0;second_div();if(P2=0xdf)/分个位减一按键按下second-;if(second2)ds_code = 0;TH0 = (65536-5000)/256;TL0 = (65536-5000)%256;ET0 = 1;/开中断void Timer_1(void) interrupt 3ET1 = 0;关中断time_temp+;if(time_temp=20)/计时一秒time_temp = 0;second-;if(second0)minute-;second = 59;elseminute = 0;second = 0;SPEAKER = 0;/蜂鸣器响second
6、_div();TH1 = (65536-50000)/256;/重新装载TL1 = (65536-50000)%256;ET1 = 1;(3)proteus7.8仿真图2.3 硬件设计 2.3.1 方案设计 厨房提醒器设计,主要的部分是AT89S51,编写程序,实现软硬结合,实现提醒功能。采用中断的方式,先清除按钮,然后设置分十位,分个位,秒十位,然后按开始按钮开始倒计时,当时间变为00:00时蜂鸣器提醒则目的实现 2.3.2 硬件电路材料电阻:10K (11个) 470(8个)按键开关:6个CD4511:1个三极管:9012 PNP(1个)共阴极数码管:3个 蜂鸣器:1个 单片机最小系统:1
7、个 2.3.3 设计材料说明 (1)AT90C52单片机 AT90C52外形及引脚图AT90c52的引说明和功能说明如下:VCC:AT90c52电源正极输入,接+5V电压。GND:电源接地端。XTAL1:接外部晶振的一个引脚,内部是反相放大器输入端,构成了片内振荡器,采用外部振荡器时,引脚接地。XTAL2:接外部晶振的一个引脚。在片内接至振荡器的反相放大器输出端和内部时钟发生器输入端。当采用外部振荡器时,则此引脚接外部振荡信号的输入。RST:AT90c52的复位信号输入引脚,高电位工作。将此引脚电位提升到高电位,并持续两个机器周期以上的时间,A系统复位。P0口(P0.0P0.7)是一个8位漏极
8、开路双向输入输出端口,当访问外部数据时,它是地址总线(低8位)和数据总线复用。外部不扩展而单片应用时,则作一般双向IO口用。P1口(P1.0P1.7)是具有内部提升电路的双向I/0端口(准双向并行I/O口),其输出可以推动4个LSTTL负载。仅供用户作为输入输出用的端口。P2口(P2.0P2.7)是具有内部提升电路的双向I/0端口(准双向并行I/O口),当访问外部程序存储器时,它是高8位地址。外部不扩展而单片应用时,则作一般双向IO口用。P3口(P3.0P3.7)是具有内部提升电路的双向I/0端口(准双向并行I/O口),它还提供特殊功能,包括串行通信、外部中断控制、计时计数控制及外部随机存储器
9、内容的读取或写入控制等功能。(2)CD4511译码器 CD4511是一个用于驱动共阴极 LED (数码管)显示器的 BCD 码七段码译码器,特点如下:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流,可直接驱动LED显示器。BI:4脚是消隐输入控制端,当BI=0 时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。LT:3脚是测试输入端,当BI=1,LT=0 时,译码输出全为1,不管输入 DCBA 状态如七段均发亮,显示“8”。它主要用来检测数码管是否损坏。 LE:锁定控制端,当LE=0时,允许译码输出。 LE=1时译码器是锁定保持状态,
10、译码输出被保持在LE=0时的数值。 DA、DB、DC、DD、为8421BCD码输入端。 a、b、c、d、e、f、g:为译码输出端,输出为高电平1有效。CD4511的内部有上拉电阻,在输入端与数码管笔段端接上限流电阻就可工作。(3) 七段共阴极数码管 数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及 dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点)。本次选取共阴极数码管,数码管见图 2.3.4单元电路设计1. 时钟电路采用6MHZ的晶振,产生的机器周期为2S,接在芯片的18、19引脚上。2. 显示设计 显示线路设计中数码管的7个段码分别由P0口控制,P0口设置上拉电阻,电阻阻值为10K,数码管由译码器CD-4511驱动,当单片机P0的相应口为高电平时,会点亮数码管的相应的段码。3. 报警装置