单片机课设报告_第1页
单片机课设报告_第2页
单片机课设报告_第3页
单片机课设报告_第4页
单片机课设报告_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、扬州大学能源与动力工程学院课程设计报告题 目: 定时闹钟 课 程: 单片机原理及应用课程设计 专 业: 电气工程及其自动化 班 级: 电气1201 姓 名: 周科宇 学 号: 121704139 第 一 部 分任务书单片机原理及应用课程设计任务书一、课题名称详见单片机课程设计题目(一):主要是软件仿真,利用Proteus软件进行仿真设计并调试;单片机课程设计题目(二):主要是硬件设计,利用单片机周立功实验箱进行设计并调试。二、课程设计目的课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力

2、、提高学生全面素质具有很重要的意义。单片机原理及应用是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。单片机原理及应用课程设计的目的是让学生在理论学习的基础上,通过完成一个涉及MCS-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能将课堂上学到的理论知识与实际应用结合起来,而且能进一步加深对电子电路、电子元器件等知识的认识与理解,同时在软件编程、排错调试、相关软件和仪器设备的使用技能等方面得到较全面的锻炼和提高。为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。通过单片机硬件和软件设计、调试、整理资料等环节的培训,使学生

3、初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。三、课程设计内容设计以89C51单片机和外围元器件构成的单片机应用系统,并完成相应的软硬件调试。1. 系统方案设计:综合运用单片机课程中所学到的理论知识,学生根据所选课题的任务、要求和条件进行总体方案的设计。2. 硬件电路设计:对方案中以单片机为核心的电路进行设计计算,包括元器件的选择和电路参数的计算,并画出总体电路图。3. 软件设计:根据已设计出的软件系统框图,用汇编语言或C51编制出各功能模块的子程序和整机软件系统的主程序。4. 调试:在单片机EDA仿真软件环境Proteus下进行仿真设计并调试;或在单片机周立功实

4、验箱上进行相关设计并调试。四、课程设计要求详见单片机课程设计题目(一) 单片机课程设计题目(二)五、进度安排序号内容天数1布置任务,熟悉课题要求0.52总体方案确定,硬件电路设计1.53软件编程1.54Proteus仿真,或在周立功实验箱上调试25总结,撰写课程设计报告1.5七、课程设计报告内容:总结设计过程,写出设计报告,设计报告具体内容要求如下:1课程设计的目和设计的内容。2课程设计的要求。3控制系统总框图及系统工作原理。4控制系统的硬件电路连接图,电路的原理。 5软件设计流程图及其说明。6电路设计,软件编程、调试中遇到的问题及分析解决方法。7实验结果及其分析。8体会。第 二 部 分课程设

5、计报告目 录1课题简介71.1本次课程设计的目的71.2课程设计的要求72定时闹钟的方案设计82.1系统总体框图82.2工作原理及过程分析83定时闹钟的硬件电路设计93.1主控芯片AT89C51的介绍93.2时钟电路的介绍93.3LCD液晶显示器的介绍93.4电磁继电器的介绍104软件编程设计114.1系统流程图114.2LCD初始化编程114.3闹钟的实现124.4 LCD显示125实验与结果分析135.1Pretues仿真总电路图135.2实验过程135.3实验结果分析146小结与体会157参考文献168附录171 课题简介1.1 本次课程设计的目的(1)综合运用本课程中所学到的理论知识去

6、独立完成某一设计课题;(2)通过查阅手册和相关文献资料,培养学生独立分析和解决问题的能力;(3)进一步熟悉单片机和常用接口电路,加深对专业知识和理论知识学习的认识和理解;(4)学会电路的安装与调试;(5)进一步熟悉电子仪器的正确使用;(6)学会撰写课程设计的总结报告;(7)培养严肃认真的工作作风和严谨的科学态度。1.2 课程设计要求使用AT89C51单片机结合字符型LCD显示器设计一个简易的定时LCD闹钟,若LCD选择有背光显示的模块,在夜晚或黑暗的场合中也可使用。定时闹钟的基本功能如下:显示格式“时时:分分”。由LED闪动来做秒计数表示。一旦时间到则发动声响,同时继电器启动,可以扩充控制家电

7、开启和关闭。程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00:00”,按下操作键K1-K4动作如下:(1)K1设置现在的时间。(2)K2显示闹钟设置的时间。(3)K3设置闹铃的时间。(4)K4闹铃ON/OFF的状态设置,设置ON时发出三声“哒-哒”声,设置为OFF发出一声“哒-哒”声。设置当前时间或闹铃时间如下:(1)K1时的调整。(2)K2分的调整。(3)K3设置完成。(4)K4闹铃时间到时,发出一阵声响,按下本键可以停止声响。本项目的难点在于4个按键每个都具有两个功能,以最终实现菜单化的输入功能。采用通过逐层嵌套的循环扫描,实现嵌套式的键盘输入。除了显示当前时间的功能外,

8、我扩充了如下功能:增加秒表计数并显示。闹铃响时继电器启动点亮灯泡。2 定时闹钟方案设计2.1系统总体框图AT89C51震荡电路调时电路喇叭LCD片选代码2.2工作原理及过程介绍本LCD定时闹钟,是以单片机及外围接口电路为核心硬件,辅以其他外围硬件电路,用C语言设计的程序来实现的。由于采用集成芯片性的单片机来制作电子钟,这样设计制作简单而且功能多、精确度高,也可方便扩充其他功能,实现也十分简单。本设计是利用AT89C51单片机为主控芯片,由LCD、晶振、电阻、电容、发光二极管、开关、喇叭等元件组成硬件电路,通过编写软件程序来实现和控制的数字定时闹钟。(1)定时闹钟的基本功能如下:(a)启动仿真软

9、件,使用LCD液晶显示器来显示时间。(b)程序执行之后LCD第一行显示“NOW TIME:”,第二行显示“00:00:00”; 时间显示的秒开始变化,并且LED闪烁,表示已经开始计时。(c)由LED闪动来做秒计数表示。(d)当设定的闹钟时间到达后,闹铃开始发出“哒哒哒”的声音。(2)按键功能如下:按键K1设置现在的时间和时调整,按键K1设置时钟,按键K2设置分钟;按键K2显示闹钟设置的时间和分调整;按键K3设置闹铃的时间和设置完成;按键K4闹铃ON/OFF的状态设置,设置为ON时连续三次发出“哒-哒”的声音,设置为OFF发出一声“哒-哒”和闹钟时间到时,发出一阵“哒哒哒”声,按下本键可以停止声

10、响。(3)调整计时器时间如下:按下K1键,LCD第一行显示“SET NOW TIME:”然后按K1调整小时,K2调整分钟,按下K3表示时间设置完成。(4)调整闹钟时间设置如下:按下K3开始闹钟设置,LCD第一行显示“SET ALARM TIME:”按下K1设置小时,按一下K2设置分钟,再次按下K3设置完成,并且设置时间消失,显示当前时间,当按一下K2时LCD第一行显示“ALARM TIME:”,第二行显示设置的闹钟时间,再按一下K2时LCD第一行显示“NOW TIME:”,第二行显示现在时间。按一下K4关闭闹钟并发出一声“哒-哒”,再次按下打开闹钟并发出三声“哒-哒”。3 定时闹钟硬件电路设计

11、3.1主控芯片AT89C51的介绍:在本LCD电子闹钟设计中就是采用利用我们熟悉的AT89C51单片机为主控芯片。AT89C51单片机由微处理器,存储器,I/O口以及特殊功能寄存器SFR等部分构成。其存储器在物理上设计成程序存储器和数据存储器两个独立的空间,片内程序存储器的容量为4KB,片内数据存储器为128个字节。89C51单片机有4个8位的并行I/O口:P0口,P1口,P2口和P3口。各个接口均由接口锁存器,输出驱动器,和输入缓冲器组成。P1口是唯一的单功能口,仅能用作通用的数据输入/输出口。P3口是双功能口除了具有数据输入/输出功能外,每条接口还具有不同的第二功能,如P3.0是串行输入口

12、线,P3.1口是串行输出口线。在需要外部程序存储器和数据存储器扩展时,P0可作为分时复用的低8位地址/数据总线,P2口可作为高8位的地址总线。P3口也可作为AT89C51的一些特殊功能口,同时为闪烁编程和编程校验接收一些控制信号.3.2时钟电路的介绍:AT89C51系列的单片机的时钟方式分为内部方式和外部方式。内部方式就是在单片机的XTAL1和XTAL2的两引脚外接晶振,就够成了自激振荡器在单片机内部产生时钟脉冲信号。外部时钟方式是把外部已经有的时钟信号引入到单片机内部。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障

13、系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率决定了单片机系统工作的速度;二是指系统的标准定时时钟,即定时时间。本LCD电子闹钟设计是采用内部时钟方式,用一个12MHz晶振和两个30Pf瓷片电容组成,为单片机提供标准时钟,其中两个瓷片电容起微调作用。其电路图如上图。之所以采用高性能的振荡电路,因为:(1)单片机电子钟的计时脉冲基准是由外部晶振的频率经过12分频后提供,采用内部的定时/计数器来实现计时功能。所以外接晶振频率精确度直接影响电子钟计时的准确性。 (2)单片机电子钟利用内部定时/计数器溢出产生中断(12M晶振一般为50ms)再乘以相应的倍率来实现秒、分、时的转换。大

14、家都知道从定时/计数器产生中断请求到响应中断需要3-8个机器周期,定时中断子程序中的数据入栈和重装定时/计数器的初值还需要占用数个机器周期,还有从中断入口转到中断子程序也要占用一定的机器周期。3.3 LCD液晶显示器的介绍:为了获得更好的效果本设计并没有采用常见的LED,而是采用了型号为1602的 LCD。LCD有LED数码显示更好的更的直观效果,也更加经久耐用。液晶显示模块体积小功耗低、显示内容丰富,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件之一了。本LCD是2行16列液晶 可显示2行16列英文字符,有8位数据总线D0-D7,RS,R/W,EN三个控制端口(共14线),

15、工作电压为5V。没背光,和常用的1602B功能和引脚一样(除了调背光的二个线脚). 该模块也可只用D4-D7作为四位数据分两次传送。这样的话可以节省MCU的I/O口资源。表3.1 LCD显示屏引脚说明编号符号引脚说明编号符号引脚说明1VCC电源地9D2双向数据口2VDD电源正极10D3双向数据口3VL对比度调节11D4双向数据口4RS数据/命令选择12D5双向数据口5R/W读/写选择13D6双向数据口6E模块使能端14D7双向数据口7D0双向数据口15BLK背光源地3.4 电磁继电器的介绍:电磁继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电

16、流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合,触点通过外接白炽灯,从而控制白炽灯的亮与暗。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。具有动作快、工作稳定、使用寿命长、体积小等优点。广泛应用于电力保护、自动化、运动、遥控、测量和通信等装置中。4 定时闹钟软件编程设计4.1系统流程图U初始化定时器初始化定时器初始化串口初始化显示待机指示符设定闹铃时间判设置闹铃时间否?显示刷新启动走时有关变量初始

17、化刷新显示判断日期是否变化化否?秒指示判断时间是否变化闹铃判是否到闹铃时间?延时YYYY4.2 LCD初始化编程在系统开始上电时,需要首先初始化液晶:void TimeInit()write_com(0x01); /初始化1602液晶write_com(0x80); /设置现实初始坐标for(num=0;num<9;num+) /显示年月日write_data(tablenum); delay(5);write_com(0x80+0x40+6); /写出时间显示部分的两个冒号write_data(':');delay(5);write_com(0x80+0x40+9);w

18、rite_data(':');delay(5);write_sfm(4,shi); /分别送去液晶显示write_com(0x80+0x40+4);write_sfm(7,fen);write_com(0x80+0x40+7);write_sfm(10,miao);write_com(0x80+0x40+10)4.3 闹钟的实现闹钟功能的实现涉及到两个方面:闹铃时间设定和是否闹铃判别与相应处理。闹铃时间设定模块的设计可参照时间设定模块,这里着重阐述闹铃判别与处理模块的设计问题。闹铃判别与闹铃处理的关键在于判别何时要进行闹铃。当时十位、时个位、分十位、分个位中任一位发生改变(进位

19、)时,就必须进行闹铃判别。程序设计思想如图4.3。时十位、个位,分十位、个位改变了设置闹铃标志是否设置了闹铃清除闹铃标志判当前时间是设定时间中断返回中断返回闹铃判别处理4.4 LCD显示显示程序包括时钟显示和定时显示程序。具体程序见附录。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表4.1是TC1602EL液晶模块的内部显示地址。表4.1 内部显示地址12345678910111213141516000102030405060708090A0B0C0D0E0F404

20、142434445464748494A4B4C4D4E4F5 实验与结果分析5.1 Proteus仿真总电路图5.2 实验过程(1)设置现在时间,假设为08:08:08;(2)设置闹钟时间,假设为08:10;(3)查看闹铃时间;(4)启动闹铃,闹铃时间到后。5.3 实验结果分析在仿真电路时,通过给AT89C51单片机加载.hex文件使电路运作,发光二极管发光频率与LCD上秒表一致,当闹钟设定时间与现在时间一致时,发出响声,此时给P2.3引脚一个低电平,使继电器工作,开关翻转,外围扩展电路接通,灯泡发光,当按键K4按下时,打断闹铃,此时P2.3引脚一个高电平,继电器不工作,外围扩展电路断开,灯泡

21、熄灭。6 小结与体会经过为期一周半的单片机课设,通进对仿真软件的学习和完成一个定时闹钟设计并进行简单调试,我学到了很多东西!课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学生来说掌握单片机的开发技术是十分重要的。虽然课设时遇到过这样或那样的问题,但是在自己的的不断努力下,我最终顺利的完成了实验。在整个的课设的过程中我学习了很多的东西,使我眼界大开,感受颇深。简单的软件与硬件学习使我了

22、解到了人生学习的真谛,课设虽然结束了,但学习还没结束,电子的世界将为我打开,只有继续以从中获得感受作为指导思想走下去,在不断前进中去提升自己,才能真正提升自己的能力。参 考 文 献1 张毅刚主编,单片机原理及应用,北京:高等教育出版社,20042 陈涛编著,单片机应用及C51程序设计,北京:机械工业出版社,20083 周润景主编,PROTEUS入门实用教程,北京:机械工业出版社,20074 皮大能主编,单片机课程设计指导书,北京:北京理工大学出版社,20105 楼然苗主编, 单片机实验与课程设计(Proteus仿真版),浙江:浙江大学出版社, 2010 附录#include <reg52

23、.h>#include "intrins.h"#include "24C08.h"#define uint unsigned int#define uchar unsigned charuchar code table="NOW TIME:"uchar code table1="SET NOW TIME:"uchar code table2="SET ALARM TIME:"uchar code alarm="ALARM TIME:"sbit lcden=P22;sbi

24、t lcdrs=P20;sbit lcdrw=P21;sbit K1=P10;sbit K2=P11;sbit K3=P12;sbit K4=P13;sbit beep=P27;sbit led=P24;sbit relay=P23;uchar flag,num,num1,count,k1num,k2num,k3num,k4num=0;char miao,shi,fen,ashi,afen,i=0;/延时1ms函数void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);/蜂鸣器子程序void di()beep=0;de

25、lay(100);beep=1;/写命令函数void write_com(uchar com)lcdrs=0;lcdrw=0;lcden=0;P3=com;delay(5);lcden=1;delay(5);lcden=0;/写数据函数void write_data(uchar date)lcdrs=1;lcdrw=0;lcden=0;P3=date;delay(5);lcden=1;delay(5);lcden=0;/写时间函数void write_sfm(uchar add,uchar date)uchar shi,ge;shi=date/10;ge=date%10;write_com(0

26、x80+0x40+add);write_data(0x30+shi);write_data(0x30+ge);/显示时间初始化void TimeInit()write_com(0x01);write_com(0x80);for(num=0;num<9;num+)write_data(tablenum);delay(5);write_com(0x80+0x40+6);write_data(':');delay(5);write_com(0x80+0x40+9);write_data(':');delay(5);write_sfm(4,shi);write_c

27、om(0x80+0x40+4);write_sfm(7,fen);write_com(0x80+0x40+7);write_sfm(10,miao);write_com(0x80+0x40+10);/设置当前时间void SetNowTime()if(K1=0)delay(5);if(K1=0)while(!K1);di();shi+;if(shi=24)shi=0;write_sfm(4,shi);write_com(0x80+0x40+4);write_byte(3,shi);if(K2=0)delay(5);if(K2=0)while(!K2);di();fen+;if(fen=60)f

28、en=0;write_sfm(7,fen);write_com(0x80+0x40+7);write_byte(2,fen);if(K3=0)delay(5);if(K3=0)while(!K3);di();k1num=0;TR0=1;TimeInit();/设置闹钟时间void SetAlarmTime()flag=0;if(K1=0)delay(5);if(K1=0)while(!K1);di();ashi+;if(ashi=24)ashi=0;write_sfm(4,ashi);write_com(0x80+0x40+4);write_byte(4,ashi);if(K2=0)delay

29、(5);if(K2=0)while(!K2);di();afen+;if(afen=60)afen=0;write_sfm(7,afen);write_com(0x80+0x40+7);write_byte(5,afen);if(K3=0)delay(5);if(K3=0)while(!K3);di();k3num=0;EA=1;flag=1;TimeInit();/显示闹钟函数void DisplayAlarmTime()write_com(0x01);write_com(0x80);for(num=0;num<11;num+)write_data(alarmnum);delay(5)

30、;write_com(0x80+0x40+6);write_data(':');delay(5);write_sfm(4,ashi);write_com(0x80+0x40+4);write_sfm(7,afen);write_com(0x80+0x40+7);/键盘扫描函数void keyscan()if(K1=0)delay(5);if(K1=0)TR0=0;while(!K1);di();k1num+;if(k1num!=0)write_com(0x80);for(num=0;num<13;num+)write_data(table1num);delay(5);Se

31、tNowTime();elseif(K2=0)delay(5);if(K2=0)while(!K2);di();k2num+;if(k2num=1)EA=0;DisplayAlarmTime();k2num=2;if(k2num=3)k2num=0;EA=1;TimeInit();elseif(K3=0)delay(5);if(K3=0)while(!K3);di();k3num+;write_com(0x01);if(k3num=1)EA=0;write_com(0x80);for(num=0;num<15;num+)write_data(table2num);delay(5);write_com(0x80+0x40+6);write_data(':');delay(5);write_sfm(4,ashi);write_com(0x80+0x40+4);write_sfm(7,afen);write_com(0x80+0x40+7);SetAlarmTime();elseif(K4=0)delay(5);if(K4=0)while(!K4);di();k4num+; if(k4num=1)di();k4num=2;flag=0;if(k

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论