版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息与电气工程学院课程设计说明书(2014 / 2015 学年第 2 学期)课程名称 : 单片机应用课程设计 题 目 : 厨房提醒器设计 专业班级 : 学生姓名 : 学 号: 指导教师 :王书强、苗敬利、王巍、赵奇设计周数 : 2周 设计成绩 : 2015 年 6 月 26 日目录1、课程设计的目的22、课程设计的正文22.1 课程设计要求22.2 系统设计分析22.3 系统硬件的设计22.3.1 硬件电路材料22.3.2 硬件线路设计32.3.2.1 设计材料说明32.3.2.2 线路设计说明82.3.3 系统软件编程102.3.3.1 流程图分析102.3.3.2 系统程序122.3.4
2、系统软硬件调试172.3.4.1 硬件调试172.3.4.2 软件调试183、课程设计总结184、参考文献1901、课程设计的目的(1)了解单片机的基础知识,掌握单片机课程设计的引脚和结构,能够正确进行单片机电路设计和画图,实现单片机的科学运用。(2)掌握如何通过编写的程序实现单片机的运行,如何进行电路的焊接和程序调试来实现我们所需要的功能。(3)掌握单片机定时器、外部中断等的设置及相应的编程。针对功能需求进行编程,将编好的程序导入到单片机中仿真编译,确定是否实现功能,完成校验。(4)动手操作焊接、校验,将单片机相关知识转变到实际动手操作过程中,通过针对性课题提升学生单片机理论应用效益,提高组
3、成系统和编程以及调试的动手能力。(5)在动手过程中鼓励学生自主学习,查阅相关资料,解决问题,灵活运用相关知识,锻炼学生能力。2、课程设计的正文2.1 课程设计要求设计厨房提醒器,具体要求主要包括原始数据及主要任务、技术要求两大部分。原始数据及主要任务:采用AT89S51作为控制单元,实现厨房提醒器的设计。设计键盘输入电路;设计显示电路;合理分配地址,编写系统程序;利用Protel设计硬件电路原理图和PCB图;软硬件联机调试。技术要求:设置提醒器的“开始”键、“清除”键、“分十位加1”键、“分个位加1”键和“秒十位加1”键。刚通电时和按下“清除”键时,均可使显示器显示00:00。按下开始键,则按
4、照设定的时间减1定时。当显示器再次显示为00:00时则蜂鸣器提醒定时到。4个数码管分别用于显示分十位、分个位、秒十位和秒个位。 2.2 系统设计分析本次厨房提醒器设计的过程中由于条件限制,设计过程中选取AT89C51代替AT89S51,其能够满足本次设计的功能需求,符合本次设计要求。本系统应包括键盘输入系统、显示系统、报警系统、控制系统四部分。键盘输入系统需要实现“开始”键、“清除”键、“分十位加1”键、“分个位加1”键和“秒十位加1”键;显示系统需实现时间的显示;报警系统需要实现倒计时为00:00后蜂鸣器报警提醒;控制系统需要实现数值设置计数、减计数和按键的响应。2.3 系统硬件的设计2.3
5、.1 硬件电路材料名称数值数量电阻()33071K510K52K1电容10f122pf2AT89C511CD45111三极管NPN4三极管PNP1蜂鸣器1共阴极数码管4按键62.3.2 硬件线路设计2.3.2.1 设计材料说明1、AT89C51是一种带4K字节FLASH存储器( FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,其外形及引脚排列见图2-1。图2-1 AT89C51外形及引脚图AT8
6、9S51的引说明和功能说明如下:VCC:AT89S51电源正极输入,接+5V电压。GND:电源接地端。XTAL1:接外部晶振的一个引脚,内部是反相放大器输入端,构成了片内振荡器,采用外部振荡器时,引脚接地。XTAL2:接外部晶振的一个引脚。在片内接至振荡器的反相放大器输出端和内部时钟发生器输入端。当采用外部振荡器时,则此引脚接外部振荡信号的输入。RST:AT89C51的复位信号输入引脚,高电位工作。将此引脚电位提升到高电位,并持续两个机器周期以上的时间,A系统复位。P0口(P0.0P0.7)是一个8位漏极开路双向输入输出端口,当访问外部数据时,它是地址总线(低8位)和数据总线复用。外部不扩展而
7、单片应用时,则作一般双向IO口用。P0口每一个引脚可以推动8个LSTTL负载。P1口(P1.0P1.7)是具有内部提升电路的双向I/0端口(准双向并行I/O口),其输出可以推动4个LSTTL负载。仅供用户作为输入输出用的端口。P2口(P2.0P2.7)是具有内部提升电路的双向I/0端口(准双向并行I/O口),当访问外部程序存储器时,它是高8位地址。外部不扩展而单片应用时,则作一般双向IO口用。每一个引脚可以推动4个LSTL负载。P3口(P3.0P3.7)是具有内部提升电路的双向I/0端口(准双向并行I/O口),它还提供特殊功能,包括串行通信、外部中断控制、计时计数控制及外部随机存储器内容的读取
8、或写入控制等功能。AT89C51内部程序存储器(FLASH)4K字节;外部程序存储器(ROM)64K字节;内部数据存储器(RAM)256字节;外部数据存储器(RAM)64K字节,只读程序存储器和外部数据存储器分别如下图。图2-2 只读程序存储器 图2-3 外部数据存储器表2-1 内部高128个字节地址空间的特殊功能寄存器区AT89C51复位后寄存器状态发生变化,其数据值见表2-2。表2-2 AT89C51复位后寄存器状态AT89C51中断入口见表2-3。表2-3 AT89C51中断入口PSW程序状态字见表2-4。表2-4 PSW程序状态字CY(PSW.7):高位进位标志位。常用“C”表示;AC
9、(PSW.6):辅助进位标志;F0(PSW.5):用户标志位;RS1(PSW.4):寄存器组选择位1;RS0(PSW.3):寄存器组选择位0;OV(PSW.2):溢出标志位;(PSW.1):保留位,无定义;P(PSW.0):奇偶校验位,在每一个指令周期中,若累加器(A)中的“1”的位个数是奇数个则P1,偶数个则P0。定时/计数器主要包括TMOD和TCON两种类型。TMOD工作方式控制寄存器中当GATE1时,INT0或INT1引脚且为高电平,同时TCON中的TR0或TR1控制位如为1时,定时/计数器0或1才会工作。若GATE0,同时只要TCON中的TR0或TR1控制位如为1时,定时/计数器0或1
10、即可工作。C/T:选择定时或计数器模式。当C/T1为计数器,由外部引脚T0或T1输入计数脉冲。C/T0时为计时器,由内部系统时钟提供计时工作脉冲。选择操作方式1为16位定时/计数器;2为8位定时/计数器。TCON定时/计数器控制寄存器中TF1/0:计时器1/0溢出标志,当计时溢出时,由硬件设定为1,在执行相对的中断服务程序后则自动清0;TR/0:计时器1/0启动控制位,可以由软件来设定或清除。TR=1时启动计时器工作,TR=0时关闭;IE1/0:外部中断1/0工作标志,当外部中断被检查出来时,硬件自动设定此位,在执行中断服务程序后,则清0;IT1/0:外部中断1/0工作形式选择,IT=1时,由
11、下降缘产生外部中断,IT=0时,则为低电位产生中断。SCON串行口控制寄存器中SM0(SCON.7)串行通讯工作方式设定位0;SM1(SCON.6)串行通讯工作方式设定位1;SM2(SCON.5)允许方式2或方式3多机通讯控制位;REN(SCON.4)允许/禁止串行接收控制位;TB8(SCON.3)在方式2或方式3为要发送的第9位数据,按需要由软件置位或清0;RB8(SCON.2)在方式2或方式3是接收到的第9位数据,在方式l若SM20,则RB8是接收到的停止位,方式0不用RB8;TI(SCON.1)发送中断请求标志位;RI(SCON.0)接收中断请求标志位。在其他方式中,串行接收到停止位的中
12、间时刻由内部硬件置位RI1必须由软件复位RI=0。其中SM0、SM1按下列组合确定串行通讯的工作方式见表2-5。表2-5 SM0、SM1按下列组合确定串行通讯的工作方式、常用波特率与定时/计数器1各参数关系见表2-6。表2-6 常用波特率与定时/计数器1参数关系2、数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及 dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点)。本次选取共阴极数码管,数码管见图2-4。图2-4 共阴极数码管
13、3、CD4511各引脚的名称:其中7、1、2、6分别表示A、B、C、D;5、4、3分别表示LE、BI、LT;13、12、11、10、9、15、14分别表示 a、b、c、d、e、f、g。左边的引脚表示输入,右边表示输出,还有两个引脚8、16分别表示的是VDD、VSS,具体见图2-5。图2-5 CD4511结构及引脚BI:4脚是消隐输入控制端,当BI=0 时,七段数码管均处于熄灭(消隐)状态,不显示数字。LT:3脚是测试输入端,当BI=1,LT=0 时,译码输出全为1,七段均发亮,显示“8”。LE:锁定控制端,LE=0允许译码输出; LE=1译码器是锁定保持,译码器输出LE=0时的数值。A1、A2
14、、A3、A4为8421BCD码输入端。a、b、c、d、e、f、g:为译码输出端,输出为高电平1有效。CD4511具有锁存、译码、消隐功能,通常以反相器作输出级,通常用以驱动LED。2.3.2.2 线路设计说明1、 时钟电路中12MHz的晶振,机器周期为1s,其线路设计见图2-6。图2-6 时钟电路图2、按键电路中P0口设置上拉电阻,电阻阻值为10K,按钮接地,具体见图2-7。2-7 按键电路图3、报警线路与P2.6口连接,选取1K电阻和PNP管构成控制线路,具体见图2-8。2-8 报警电路图4、显示线路设计中数码管的7个段码分别由P1口控制,限流电阻为300,当单片机P1的相应口为高电平时,会
15、点亮数码管的相应的段码。2-9 显示电路图5、 位选电路由四个NPN型三极管与电阻串联而成,电阻的主要作用是保护单片机的并行口,NPN型三级管的b级分别接单片机的P2.0,P2.1,P2.2,P2.3,e端接接地,c端接数码管的位选端,当P2口中相应的并行口为高电平时,则三极管导通,并会选中相应的数码管。2-10 位选电路图6、 系统图见2-11。2-11 系统电路图2.3.3 系统软件编程2.3.3.1 流程图分析此厨房提醒器采用的是提醒的方式,有五个按键,分别是“开始”键,“清除”键,“分十位加一”键,“分个位加一”键和“秒十位加一”键,程序需要设置各个按键的时间,然后按开始键倒计时,当再
16、次显示00:00时则蜂鸣器提醒到时,具体的程序流程图如下图2-12所示。NNN定时初始化设置NY是否按下?Y分十位位加一是否为6?Y清零分十位扫描开始键是否按下显示N设置值按秒减一是否为0YN蜂鸣器报警NN分个位位加一开始初始化设置(清零)秒十位设置是否按下?Y秒十位加一是否为6?Y清零秒十位分个位设置是否按下?Y是否为10?清零分个位Y分十位设置图2-12 厨房提醒器程序流程图2.3.3.2 系统程序#include"reg52.h" /AT89S52单片机头文件/*定义系统变量与引脚*/ #define uint unsigned int #define uchar u
17、nsigned char sbit Buzzer=P26; /蜂鸣器控制脚 sbit key1=P00; /按键1 sbit key2=P01; /按键2 sbit key3=P02; /按键3 sbit key4=P03; /按键4 sbit key5=P04; /按键5 sbit guan1=P20; /数码管位选控制端1 sbit guan2=P21; /数码管位选控制端2 sbit guan3=P22; /数码管位选控制端3 sbit guan4=P23; /数码管位选控制端4int fenshi=0;int fenge=0;int miaoshi=0;int miaoge=0;/*子
18、函数列表*/void delay_dis(void); /延时子程序void delay_key(void); /延时子程序uchar getkey(void); /键值获取子函数void key(void); /按键扫描子程序void xianshi(void); /显示子程序void jingbao(void); /警报声void init_dis(void); /初始化数码管/主程序void main() P1=0X00;P2=0X00;TMOD=0X01;TH0=0X99;TL0=0X2f;ET0=1;init_dis();while(1) xianshi(); getkey(); k
19、ey(); /子函数/初始化显示程序void init_dis(void)fenshi=0;fenge=0;miaoshi=0;miaoge=0;xianshi();/动态扫描延时 void delay_dis(void) uint N=4000; while(N-);/按键消抖扫描 void delay_key(void) uint N=1000; while(N-);/确认哪个键按下uchar getkey(void) uchar i=0; if(!key1) delay_key(); if (!key1) i=1; if(!key2) delay_key(); if(!key2) i=2
20、; if(!key3) delay_key(); if(!key3) i=3; if(!key4) delay_key(); if (!key4) i=4; if(!key5) delay_key(); if(!key5) i=5; return i; /按键程序void key(void) uchar keyid; keyid=getkey();if(keyid=1) fenshi+=1; if(fenshi>=6) fenshi=0; xianshi(); if(keyid=2) fenge+=1; if(fenge>=6) fenge=0; xianshi(); if(key
21、id=3) miaoshi+=1; if(miaoshi>=6) miaoshi=0; xianshi(); if(keyid=4 ) TR0=1; EA=1; if(keyid=5) fenshi=0; fenge=0; miaoshi=0; miaoge =0; xianshi(); /显示程序void xianshi(void)guan4=0;P1=miaoge;guan4=1; delay_dis();guan4=0;guan3=0;P1=miaoshi;guan3=1; delay_dis();guan3=0;guan2=0;P1=fenge;guan2=1; delay_di
22、s();guan2=0; guan1=0;P1=fenshi;guan1=1; delay_dis();guan1=0;/中断程序void timer0_int (void) interrupt 1 static unsigned char counter; TH0=0X99; TL0=0X2f; if(!(counter-) counter=40; miaoge-; if(miaoge=-1) miaoge=9;miaoshi-; if(miaoshi=-1) miaoshi=5; fenge-; if(fenge=-1) fenge=9; fenshi-; if(fenshi=-1) TR
23、0=0; EA=0; while(1) / init_dis(); guan1=0; guan2=0; guan3=0; guan4=1; P1=0; jingbao(); /报警程序void jingbao(void) /警报声 unsigned int ul,n; for(ul=0;ul<3000;ul+) /输出一个频率的声音 for(n=0;n<40;n+); /延时 Buzzer=Buzzer; /取反输出到喇叭的信号 for(ul=0;ul<2500;ul+) /输出另一个频率的声音 for(n=0;n<50;n+); /延时 Buzzer=Buzzer;
24、/取反输出到喇叭的信号 2.3.4 系统软硬件调试2.3.4.1 硬件调试 硬件调试是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。硬件调试可分为静态调试与动态调试两步进行。静态调试是在用户系统未工作时的一种硬件检测,包括:第一步:目测。检查外部的各种元件或者是电路是否有断点。第二步:用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。第三步:加电检测。给板加电,检测所有插座或是器件的电源端是否符合要求的值 第四步:联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。 动态调试是在用户系统工作的情况下
25、发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。2.3.4.2 软件调试软件调试是通过对程序的汇编、连
26、接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。3、课程设计总结单片机课程对操作应用具有非常高的要求,需要我们在实际动手过程中不断丰富理论知识,提升设计、编程及动手方便的认知,积累经验,这对我们学习效果的改善具有至关重要的意义。本次单片机课程设计希望通过我们动手设计、编程和操作深入掌握单片机的基础知识,加深对单片机功能的了解,顺利对其进行应用,将理论学习与实际操作结合在一起,是我们单片机学习过程中一次非常宝贵的机会。本次课程设计的过程中我们小组一同进行厨房提醒器的设计。课设的第一天和第二天,我们查阅了相关的书籍资料、文献资料和网络资料等,对本次课设中的材料信息进行采集。采集的过程中我们不仅加深了对AT89S51单片机、CD4511等的认识,更进一步巩固了自身课堂所学到的知识,这为我们后续的线路设计和程序设计打下了非常好的基础。课程设计第一周的后续时间我们先结合已经采集到的材料对简易厨房硬件线路图进行设计和绘画,其次开始着手准备程序设计。该阶段中使用protus软件时操作的不熟练严重影响了我们的绘画进度,从一开始的磕磕绊绊,到最后的迅速绘画,我们对protus软件应用已经非常熟练。这让我们
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 东营电动轮车租赁合同样本
- 商业活动柴油发电机租赁协议
- 建筑项目经理助理聘用协议
- 城市消防设施挡土墙施工劳务合同
- 农业企业兽药部门招聘合同
- 小公司工资纠纷处理策略
- 港口码头施工合同纠纷范本
- 医疗设备使用协议
- 网络游戏客服招聘合同
- 博物馆展览花卉装饰租用协议
- 妊娠期糖尿病-妊娠合并糖尿病课件
- 风能新能源企业废弃物管理标准
- 承德市基层诊所基本公共卫生服务医疗机构卫生院社区卫生服务中心村卫生室地址信息
- 《画出你的想象》教学课件
- 六年级上册数学课件-计算题总复习 (共30张PPT)
- 华为产品计划模板
- 儒林外史1-56回概括
- 小星星幼儿园班级教玩具统计表
- 初中地理《世界的气候》单元教学设计以及思维导图
- 急性脑卒中抢救流程培训课件
- 幼儿园优质课件-中班《稻子和麦子》
评论
0/150
提交评论