厨房提醒器课程设计.docx
- 文档编号:8458653
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:18
- 大小:110.28KB
厨房提醒器课程设计.docx
《厨房提醒器课程设计.docx》由会员分享,可在线阅读,更多相关《厨房提醒器课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
厨房提醒器课程设计
课程设计说明书
(2014/2015学年第2学期)
单片机课程设计课程名称:
题目:
厨房提醒器
机制:
专业班级4班
:
学生姓名
学号:
:
指导教师苗敬丽、韩昱、岑毅南、王立国
设计周数:
周2
:
设计成绩
日266年2015月
1
一、课程设计的题目---------------------------------------------------1
二、课程设计的目的---------------------------------------------------2
三、课程设计的任务---------------------------------------------------3
四、设计原理器件说明-----------------------------------------------4
五、设计方案------------------------------------------------------------13
1、硬件部分----------------------------------------------------------14
2、软件分析----------------------------------------------------------14
3、程序设计---------------------------------------------------------16
4、系统调试-----------------------------------------------------------22
六、课程设计心得------------------------------------------------------23
七、参考文献------------------------------------------------------------23
1、课程设计目的
1、通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一2
步的了解。
知道单片机的各个引脚的功能,以及如何通过编写的程序让它实现我们所需要的功能,期间要进行电路的焊接和程序调试,最后实现我们所需要的功能。
2、掌握定时器、外部中断的设置和编程原理。
3、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
4、提高综合以及灵活应用所学知识,并且从中培养了针对课题需要,选择和查阅有关手册和图表以及文献资料的自学能力,提高组成系统和变成以及调试的动手能力。
、课程设计正文22.1设计所需器材
电阻:
1K(6个)300(8个)4.7K(5个)
开关:
5个
电容:
30ρF(2个)22μF(1个)
晶振:
12MHZ(1个)
集成芯片:
AT89C51(1片)
三极管:
PNP(5个)
共阳极数码管:
4个
蜂鸣器:
1个
底座:
DIP40(1个)
万能电路板:
1个
2.2设计任务和要求
本次课程设计,我们这一组要求做的是厨房提醒器设计。
提醒器在家庭中很实用,能够帮助提醒人做饭或者做菜的时间等,市面上卖的成品提醒器一般都比较贵,我们可以利用已经学过的知识自制简易的提醒器。
设计的主要内容是采用AT89S52作为控制单元,实现提醒器的设计。
(1)设计键盘输入电路;
(2)设计显示电路;(3)合理分配地址,编写写程序;(4)利用PROTEL设计硬件电路原理图和PCB图;(5)软硬件联机调试;(6)书写实验报告。
主要技术要求:
(1)设置提醒器的“开始”键,“清除”键,“分十位加一”键,“分个位加一”键和“秒十位加一”键。
刚通电时和按下“清除”键时,均可使显示器显示—00:
00—。
按下开始键,则按照设定的时间减一定时。
当显示器再次显示为00:
00时则蜂鸣器提醒定时到。
(2)4个数码管分别显示分十位,分个位,秒十位。
2.2.1设计基本原理
3
,编写程序,实现软硬结合,实现提醒功能。
采T89S52厨房提醒器设计,主要的部分是A用中断的方式,先清除按钮,然后设置分十位,分个位,秒十位,然后按开始按钮开始倒计时蜂鸣器提醒则目的实现00。
时,当时间变为00:
器件说明2.2.2
AT89C51单片机2.2.2.2
的引脚图图1AT89C51
的引说明和功能说明如下:
AT89S51AT89S51电源正极输入,接+5V电压。
VCC:
:
电源接地端。
GND:
接外部晶振的一个引脚。
在单片机内部,它是一反相放大器输入端,这个放大器XTAL1
构成了片内振荡器。
它采用外部振荡器时,些引脚应接地。
在片内接至振荡器的反相放大器输出端和内部时钟发生接外部晶振的一个引脚。
XTAL2:
器输入端。
当采用外部振荡器时,则此引脚接外部振荡信号的输入。
高电位工作,当要对芯片又时,只要将此引脚电位提AT89C51:
的复位信号输入引脚,RST
使得并持续两个机器周期以上的时间,升到高电位,AT89C51便能完成系统复位的各项工作,内部特殊功能寄存器的内容均被设成已知状态。
4PROG的缩写,表示允许地址锁存允许信号。
是英文?
?
?
卓?
呁?
?
?
?
居:
ALE/ALE的P0如74LS373),将端口当访问外部存储器时,ALE信号负跳变来触发外部的8位锁存器(引脚的输出频率是系(A0-A7)锁存进入锁存器中。
在非访问外部存储器期间,ALE地址总线,因此可以用来驱动其他外围芯片的时钟输入。
当问外部存储器期间,统工作频率的1/16振荡频率输出。
将以1/12EA/VPP
来执行程序。
因此EPROM中)该引脚为低电平时,则读取外部的程序代码(存于外部AT89C51引脚必须接低电位,因为其内部无程序存储器空间。
如果是使用8031中,EA在或其它内部有程序空间的单片机时,此引脚接成高电平使程序运行时访问内部程序存储器,时,将自超过0FFFH)(如8051/8751/89C51的PC当程序指针PC值超过片内程序存储器地址动转向外部程序存储器继续运行。
时,可以利用此引内部FALSH内部EPROM、89C51此外,在将程序代码烧录至8751。
、8051是由生产厂方一次性加工好)8751脚来输入提供编程电压(为2lV、AT89C51为12VPSEN的缩写。
访问外部程序存储器选通信号,低电平有效。
:
此为停潲牧浡匠潴敲?
慮汢履
信号。
在执行片内程序在访问外部程序存储器读取指令码时,每个机器周期产生二次PSEN信号。
PSEN信号,在访问外部数据时,亦不产生PSEN存储器指令时,不产生它是地址总当访问外部数据时,是一个8位漏极开路双向输入输出端口,P0口(P0.0~P0.7)口P0/O口用。
线(低8位)和数据总线复用。
外部不扩展而单片应用时,则作一般双向ILSTTL负载。
每一个引脚可以推动8个,当访问外部程口)(I/0端口准双向并行I/OP2口(P2.0~P2.7)是具有内部提升电路的双向口用。
每一个/O序存储器时,它是高8位地址。
外部不扩展而单片应用时,则作一般双向ILSTL4个负载。
引脚可以推动,其输出可以推)I/O口I/0(P1.0~P1.7)是具有内部提升电路的双向端口(准双向并行P1口负载。
仅供用户作为输入输出用的端口。
动4个LSTTL,它还提供特殊口I/O)端口口P3(P3.0~P3.7)是具有内部提升电路的双向I/0(准双向并行功能,包括串行通信、外部中断控制、计时计数控制及外部随机存储器内容的读取或写入控制等功能。
其特殊功能引脚分配如下:
串行通信输入P3.0RXD
串行通信输出P3.1TXD
5
0INT输入,低电平有效外部中断0P3.2
1INT输入,低电平有效外部中断P3.31计数器0外部事件计数输入端P3.4T0计数器1外部事件计数输入端P3.5T1
WRP3.6外部随机存储器的写选通,低电平有效
RD外部随机存储器的读选通,低电平有效P3.7
2、内存空间字节。
、内部程序存储器(FLASH)4K1ROM)64K字节。
2、外部程序存储器()256字节。
3、内部数据存储器(RAM64K字节。
4、外部数据存储器(RAM)只读程序存储器和外部数据存储器分别如下图所示:
图图2只读程序存储器3外部数据存储器
6
图5内部高128个字节地址空间的特殊功能寄存器区
3.复位后寄存器状态
4、中断入口
7
5、PSW程序状态字
CY(PSW.7):
高位进位标志位。
常用“C”表示。
AC(PSW.6):
辅助进位标志。
F0(PSW.5):
用户标志位。
RS1(PSW.4):
寄存器组选择位1。
RS0(PSW.3):
寄存器组选择位0。
OV(PSW.2):
溢出标志位。
-(PSW.1):
保留位,无定义。
P(PSW.0):
奇偶校验位,在每一个指令周期中,若累加器(A)中的“1”的位个数是奇数个则P=1,偶数个则P=0。
TMOD定时/计数器工作方式控制寄存器
GATE:
当GATE=1时,INT0或INT1引脚且为高电平,同时TCON中的TR0或TR1控制位如为1时,定时/计数器0或1才会工作。
若GATE=0,同时只要TCON中的TR0或TR1控制位如为1时,定时/计数器0或1即可工作。
C/T:
选择定时或计数器模式。
当C/T=1为计数器,由外部引脚T0或T1输入计数脉冲。
C/T=0时为计时器,由内部系统时钟提供计时工作脉冲。
M1:
方式选择位1。
M0:
方式选择位0。
M1、M2的操作方式选择定义如下:
8
TCON定时/计数器工作方式控制寄存器
TF1(TCON.7):
计时器1溢出标志,当计时溢出时,由硬件设定为1,在执行相对的中断服务程序后则自动清0。
TR1(TCON.6):
计时器1启动控制位,可以由软件来设定或清除。
TR1时启动计时器工作,TRl=0时关闭。
TF0(TCON.5):
计时器0溢出标志,当计时溢出时,由硬件设定为1,在执行相对的中断服务程序后则自动清0。
TR0(TCON.4):
计时器0启动控制位,可以由软件来设定或清除。
TR0=1时,启动计时器工作,TR0=时关闭。
IE1(TCON.3):
外部中断1工作标志,当外部中断被检查出来时,硬件自动设定此位,在执行中断服务程序后,则清0。
IT1(TCON.2):
外部中断1工作形式选择,IT1=1时,由下降缘产生外部中断,IT1=0时,则为低电位产生中断。
IE0(TCON.1):
外部中断0工作标志,当外部中断被检查出来时,硬件自动设定此位,在执行中断服务程序后,则清0。
IT0(TCON.0):
外部中断0工作形式选择,IT1=1时,由下降沿产生外部中断IT1=0时,则为低电位产生中断。
SCON定时/计数器工作方式控制寄存器
SM0(SCON.7):
串行通讯工作方式设定位0。
SM1(SCON.6):
串行通讯工作方式设定位1。
SM2(SCON.5):
允许方式2或方式3多机通讯控制位。
在方式2或方式3时,如SM2=1,REN=1,则从机处于只有接收到RB8=1(地址帧)才激发中断请求标志位RI=1,向主机请求中断处理。
被确认为寻址的从机复位SM2=0,才能接收RB8=0的数据帧;在方式1时,如SM2=l,则只有在接收到有效停止位时才置位中断请求标志位RI=1;在方式0时,SM2应为0。
9
REN(SCON.4):
REN,允许/禁止串行接收控制位。
由软件置位REN=1为允许串行接收状态,可启动串行接收器RXD,开始接收信息。
软件复位REN=0,则禁止接收。
TB8(SCON.3):
在方式2或方式3,它为要发送的第9位数据,按需要由软件置位或清0。
例如,可用作数据的校验位或多机通讯中表示地址帧/数据帧的标志位。
RB8(SCON.2):
在方式2或方式3,是接收到的第9位数据。
在方式l,若SM2=0,则RB8是接收到的停止位。
方式0不用RB8。
TI(SCON.1):
发送中断请求标志位。
在方式0,当串行发送数据第8位结束时,由内部硬件自动置位TI=l,向主机请求中断,响应中断后必须用软件复位TI=0。
在其他方式中,则在停止位开始发送时由内部硬件置位,必须用软件复位。
RI(SCON.0):
接收中断请求标志位。
在方式0,当串行接收到第8位结束时由内部硬件自动置位RI=1,向主机请求申断,响应中断后必须用软件复位RI=0。
在其他方式中,串行接收到停止位的中间时刻由内部硬件置位RI=1(例外情况见SM2说明),必须由软件复位RI=0。
其中SM0、SM1按下列组合确定串行通讯的工作方式:
电源控制寄存器PCON
SMOD:
双倍波特率控制位。
-:
保留。
GF1:
通用标志。
GF0:
通用标志。
PD:
PD=1时,进入掉电方式。
时,进入冻结方式。
IDL:
=1IDL
6、常用波特率与定时/计数器1各参数关系
10
三、数码管
数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点)。
图9共阳极内部接线图
11
此设计采用的是共阳极数码管,共阳极的LED显示管的发光二极管的阳极连在一块,通常此公共阳极接+5v,当某个发光二极管的阴极为低电平的时候,发光二极管点亮,相应的段被显示出来,为了使LED显示器不同的符号和数字,就要把不同段的发光二极管点亮,这样就要为LED显示器提供代码,因为这些代码可以使LED相应的段发光,从而显示不同的字型,因而该代码称之为段码。
2.3设计方案
根据设计的任务和要求,需要进行硬件和软件的结合。
2.3.1硬件设计
具体的电路原理图如下图10所示:
图10厨房提醒器原理图
2.3.1.1按钮电路的分析
12
按钮电路中五个按钮分别代表开始键、清除键、秒个位键、秒十位键、分个位键、分十位键,他们分别于单片机的P0.0、P0.1、P0.2、P0.3、P0.4相连,并接10K的上拉电阻,按钮的另一端接地,当相应的按钮按下时,单片机根据程序会检测到相应P0口电气变化,从而执行相应的子程序。
2.3.1.2位选电路分析
13
位选电路由四个三极管与电阻串联而成,电阻的主要作用是保护单片机上的并行口,四个三极管的b极分别接单片机的P2.0,P2.1,P2.2,P2.3,e端接+5v电压,c端接数码管的位选端,当P2中相应的并行口为低电平时,则三极管导通,并会选择相应的数码管。
2.3.1.3数码管段码电路
14
数码管的七个段码分别由P1口控制,限流电阻为330,当单片机相应P1口为高电平时,会点亮数码管的相应段码。
2.3.2软件的分析
“开始”键,“清除”键,此厨房提醒器采用的是提醒的方式,有五个按键,分别是“分十位加一”键,“分个位加一”键和“秒十位加一”键,程序需要设置各个按键的时间,然后按开始键倒计时,当再次显示00:
00时则蜂鸣器提醒到时。
具体的程序流程图如下图11所示:
15
开
N
是否按下初始化设置(清零Y
秒十位设N
分十位位加是否按下N
是否Y
Y
秒十位加
N
清零分十是否扫描开始Y
N
清零秒十是否按Y
分个位设
N
定时初始化设是否按下显Y
分个位位加设置值按秒减N
N
1是否0
是否Y
Y
清零分个蜂鸣器报警分十位设置
16
流程图11图
2.3.2.1程序如下:
#include
//数码管
sbitLED1=P2^3;
sbitLED2=P2^2;
sbitLED3=P2^1;
sbitLED4=P2^0;
sbitspeaker=P2^7;//蜂鸣器
intfen,miao;
unsignedintm1=0;//分十位
unsignedintm2=0;//分个位
unsignedints1=0;//秒十位
unsignedints2=0;//秒个位
unsignedinttab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管编码
//延时函数
voiddelay(unsignedinti)
{
for(;i>0;i--);
}
//显示函数
voiddisplay()
{
17
m1=fen/10;//取出分的十位
m2=fen_x0010_;//取出分的个位
s1=miao/10;//取出秒的十位
s2=miao_x0010_;//取出秒的个位
P1=tab[m1];//将要显示的数字传给p1口
LED1=0;//位选选分十位
delay(30);
LED1=1;
P1=tab[m2];
LED2=0;//位选选分个位
delay(30);
LED2=1;
P1=tab[s1];
LED3=0;//位选选秒十位
delay(30);
LED3=1;
P1=tab[s2];
LED4=0;//位选选秒个位
delay(30);
LED4=1;
}
//一秒计时
voidtimer()
18
{
intj;
for(j=0;j<300;j++)
{
delay(30);
display();
}
}
voidstart()
{
while(fen>-1)//分的减一循环,减到-1时跳出
{
while(miao>-1)//秒的减一循环,减到-1时跳出
{
timer();
miao--;
}
fen--;//秒经行完一次“59~0”的循环(即一分钟)分减一
miao=59;//重新给秒置位59,进入下一次循环
}
fen=0;
miao=0;//使最后显示停留在00:
00
speaker=0;//计时完成,蜂鸣报警
}
19
voidmain()
{
inttemp;//零食存放p0变量
P0=0x7f;//初始化p0端口
while
(1)
{
display();
if((P0|0xe0)!
=0xff)//判断是否有键按下
{
delay(1000);//消抖延时
temp=P0;
switch(temp|0xe0)
{
case0xfe:
start();//开始键操作
break;
case0xfd:
fen=0;miao=0;//请零件操作
break;
case0xfb:
fen=fen+10;//分十位加一
if((fen/10)>9)fen=0;
break;
case0xf7:
fen+=1;//分个位加一
if((fen/10)>9)fen=0;
break;
case0xef:
miao+=10;//秒十位加一
20
if((miao/10)>5)
break;
default:
break;//若以上键码都不符,则认为是一次抖动,跳出
}
while(temp==P0)display();//等按键松开后再经行下一次操作
}
}
}
2.3软件与硬件结合调试
硬件调试:
硬件调试是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。
硬件调试可分为静态调试与动态调试两步进行。
静态调试是在用户系统未工作时的一种硬件检测。
第一步:
目测。
检查外部的各种元件或者是电路是否有断点。
第二步:
用万用表测试。
先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。
第三步:
加电检测。
给板加电,检测所有插座或是器件的电源端是否符合要求的值
第四步:
联机检查。
因为只有用单片机开发系统才能完成对用户系统的调试。
动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。
动态调试的一般方法是由近及远、由分到合。
由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。
当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。
由分到合的调试既告完成。
由近及远是将信号流经的各器件按照距离单片机的逻辑距21
离进行由近及远的分层,然后分层调试。
调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。
软件调试:
软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。
3设计心得
两个星期的课程设计结束了,从中我学到了很多东西且感悟良多,体会到了课本联系实际,学以至用,设计思想,实际动手能力都有所提高.
初学单片机时觉得它深奥难懂,枯燥无味,通过课程设计我体会到了编程的灵活性并对它产生了浓厚的兴趣.以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
课程设计从设计电路到调试结束,我们失败很多次也修改很多次,可谓是屡败屡战,可我们并未气馁,我们坚持到了最后,虽然最后做出的电路板不太让人满意,但总算完成了,总算看到我们的成果了,总算可以激动,高兴一番了.
在焊接每个元件的时候一定要注意各个输入、输出引脚,因为每个引脚都是不一样的,只要让各个引脚互相对应,才能得出正确的结果,否则,出现任何一点小的误差就会对整个系统造成毁灭性的打击。
由于在设计及制作是没有太大的困难。
虽然在有了第一次课程设计时对于焊接的经验,我们也很小心的制作着这次的电路板,并最终通过了验收,那一刻看着自己的劳动获得了肯定真的很开心,而那种开心是在课本中无法获得的。
在老师的辛勤的指导下,最后我们顺利地完成了这次的课程设计.看见到课本所学知识得以应用,心中满是欢喜,满是激动.这次课程设计让我的实际动手能力得到了大大的锻炼,让我解决实际问题的能力得到了大大的提高,并对本专业的课程充满了浓厚的兴趣,及对以后的学习充满了信心,决定在以后的学习生活中加强练习,端正心态,迎接新的挑战.
(参考以下格式写)、参考文献4.[1]周明德.微型计算机系统原理及应用.清华大学出版社,2007
[2]求是科技.单片机典型模块设计实例导航.人民邮电出版
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 厨房 提醒 课程设计