单片机电子闹钟课程设计报告.docx
《单片机电子闹钟课程设计报告.docx》由会员分享,可在线阅读,更多相关《单片机电子闹钟课程设计报告.docx(17页珍藏版)》请在冰豆网上搜索。
单片机电子闹钟课程设计报告
上海电机学院课程设计任务书
课程名称
微机原理及接口技术课程设计
课程代码
013084P1
设计题目
电子闹钟
设计时间
2013年12月16日-2013年12月27日
院(系)
电气学院
专业
自动化
班级
BG1107
一、课程设计任务
:
电子闹钟
功能描述:
利用4个数码管动态显示闹钟时间(时钟和分钟都显示),并通过开关按钮设置闹钟时间,具体设置步骤如下:
(1)按下开关1进入设置状态,这时时钟值高位数字处于被修改状态,亮灭闪烁,每按一次开关1,当前被修改位右移一次。
当最后一位处于修改状态时,再按开关1则退出设置状态。
(2)开关2设置数字值,从当前值递增,每按下一次显示数字加一。
二、课程设计成果要求(包括课程设计说明书、图纸、图表、软硬件等要求)
1,课程设计报告;
2,系统方案,画出系统框图;
3,分析工作原理、画出硬件电路原理图;
4,画出程序框图,给出程序清单;
5,写出系统调试分析结果
三、课程设计工作进度计划
星期一:
设计硬件电路,焊接电路板;
星期二:
编写程序,调试并编译生成.hex文件;
星期三:
烧录程序,结合硬件调试程序;
星期四:
演示结果,撰写课程设计报告;
星期五:
修改报告,打印并答辩。
四、主要参考资料
1.《单片机原理及应用》张毅刚主编,高教出版社,2012.11
2.C51单片机有关教材和文献资料
目录
1、设计要求1
2、电子闹钟系统设计1
3、电子闹钟系统硬件电路设计1
3.1硬件结构图1
3.2晶振模块电路2
3.3复位模块电路3
3.4显示模块电路3
3.5键盘输入模块电路4
3.6闹钟模块电路4
3.7电子闹钟总电路5
4、电子闹钟系统软件设计5
4.1程序流程图6
4.2程序设计代码及原理7
5、电子闹钟系统调试与分析12
5.1硬件调试12
5.2软件调试13
6、系统结果演示14
7、课程设计小结15
参考文献15
1、设计要求
♦利用4个数码管动态显示闹钟时间(时钟和分钟都显示),并通过开关按钮设置闹钟时间,具体设置步骤如下:
*按下开关1进入设置状态,这时时钟值高位数字处于被修改状态,亮灭闪烁,每按一次开关1,当前被修改位右移一次。
当最后一位处于修改状态时,再按开关1则退出设置状态。
*开关2设置数字值,从当前值递增,每按下一次显示数字加一。
2、电子闹钟系统设计
根据要求,设计由89S51单片机控制的电子闹钟系统。
结构为五大部分:
晶振模块、复位模块、键盘输入模块、数码显示模块、闹钟模块。
硬件电路由89S51芯片,矩阵键盘,4位8段数码管,晶振(12MHz),电容,电阻,三极管,蜂鸣器等组成。
晶振模块:
驱动电路,产生脉冲。
复位模块:
作为硬件复位,复位后按照CPU硬件规定的地址开始执行程序。
键盘输入模块:
开机时,由矩阵键盘输入设定的频率值;再按确认键进行确认。
数码显示模块:
显示经过确认的频率值。
闹钟模块:
当输入的频率值在0—500MHZ时,输出方波;当超出范围时,便通过蜂鸣器进行报警。
3、电子闹钟系统硬件电路设计
3.1硬件结构图
硬件结构分为五大部分:
晶振模块、复位模块、键盘输入模块、数码显示模块、闹钟模块。
如图3-1所示:
图3-1硬件结构图
3.2晶振模块电路
图3-2晶振模块电路
晶振模块由两个30PF的电容和一个12MHz的晶振组成。
其作用是为系统提供基本的时钟信号。
如图3-2所示。
两个电容叫做晶振的负载电容,它们的大小会影响到晶振的谐振频率和输出幅度。
3.3复位模块电路
图3-3复位模块电路
复位电路由电容、电阻、复位按钮组成。
可以实现当按下复位按钮后电路还原到初始工作状态。
89S51的复位引脚是9号脚,由于采用的晶振为12MHz,机器周期为1us,即当按下复位按钮超过2us时,产生复位动作。
3.4显示模块电路
图3-4显示模块电路
显示电路由四个八段数码管组成,数码管12号脚,9号脚,8号脚,6号脚分别为com1、com2、com3,com4。
com1、com2、com3,com4表示分钟十位、分钟个位,秒钟十位,秒钟个位。
3.5键盘输入模块电路
图3-5键盘输入模块电路
键盘输入模块由矩阵键盘组成。
3.6闹钟模块电路
图3-6闹钟模块电路
闹钟模块由三极管和蜂鸣器组成。
当输入的频率值在0-500KHz时,P1.0脚输出方波,频率为设定的频率,即发光二极管以设定的频率值闪烁。
当输入频率超出范围时,蜂鸣器发出声音闹钟闹。
3.7电子闹钟总电路
图3-7频率信号发生器总电路
4、电子闹钟系统软件设计
4.1程序流程图
主程序流程图:
中断服务程序流程图:
4.2程序设计代码及原理
程序代码
#include//
#defineu8unsignedchar//
#defineu16unsignedint//
sbitL=P3^7;//闹钟系统
sbitwei4=P3^3;//分钟十位控制位
sbitwei3=P3^6;//分钟个位控制位
sbitwei2=P3^4;//秒钟十位控制位
sbitwei1=P3^5;//秒钟个位控制位
sbitp26=P2^6;
sbitp22=P2^2;
sbitp21=P2^1;
sbitp30=P3^0;
u8sec,min;//显示时间数
u8sec1,min1;//闹钟设置数
u8k;//
voiddelay(u16x)//延时函数
{//
while(x--);
}//
codeu8seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
voidshow_number1(u16x)//显示函数
{
u8shi,ge;
wei1=0;
shi=x%100/10;
wei2=1;
P0=seg[shi];
delay(5);
wei2=0;
P0=0xff;
wei2=0;
ge=x%10;
wei1=1;
P0=seg[ge];
delay(5);
wei1=0;
P0=0xff;
}
voidshow_number2(u16x)//显示函数//
{
u8shi,ge;
wei3=0;
shi=x%100/10;
wei4=1;
P0=seg[shi];
delay(5);
wei4=0;
P0=0xff;
wei4=0;
ge=x%10;
wei3=1;
P0=seg[ge];
delay(5);
wei3=0;
P0=0xff;
}
voidtimer0()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
voidtimer0_isr()interrupt1
{
staticu8i;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
i++;
if(i==20)
{//
i=0;
sec++;
if(sec>=60)
{sec=0;
min++;
if(min>=60)
min=0;
}
}
}
voidkey1()
{
P2=0xff;
p26=0;
if(p22==0)
{
if(sec1>=60)
sec1=0;
sec1++;
}
while(p22==0);
}
voidkey2()
{
P2=0xff;
p26=0;
if(p21==0)
{
if(min1>=60)
min1=0;
min1++;
}
while(p21==0);
}
voidmain()
{
L=0;
timer0();
while
(1)
{
show_number1(sec);
show_number2(min);
while(p30==0)
{
key1();
key2();
show_number1(sec1);
show_number2(min1);
}
if(min==min1&&min1>=1&&min<=min1+1)
L=1;
else
L=0;
}
}
工作原理:
利用4个数码管动态显示闹钟时间(时钟和分钟都显示),并通过开关按钮设
置闹钟时间按下开关1进入设置状态,这时时钟值高位数字处于被修改状态,
亮灭闪烁,每按一次开关1,当前被修改位右移一次。
当最后一位处于修改
状态时,再按开关1则退出设置状态,开关2设置数字值,从当前值递增,
每按下一次显示数字加一。
电子闹钟系统调试与分析与分析
5.1硬件调试
硬件调试过程:
通过按键输入闹钟定时,然后打开确认开关P3.0,通过键盘让设定时间然后听到蜂鸣器叫
5.2软件调试
软件调试过程:
通过观察P2口和频率输入u的值变化可以软件调试按键的变化情况。
然后通过不同的变量,确定不同变量的值变化过程,来达到实验目的。
6电子闹钟系统结果演示
7课程设计小结
通过这次微机原理与接口技术的课程设计,让我更加深一步了解了单片机外围电路的应用,特别是键盘扫描的运用。
还有定时器的合理运用。
在一开始虽然有种无从下手的感觉,不过慢慢的在同学的帮助下也慢慢做出来了,让我对但片子有了浓厚的兴趣,发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。
在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
参考文献
肖洪兵.跟我学用单片机.北京:
北京航空航天大学出版社,2002.8
何立民.单片机高级教程.第1版.北京:
北京航空航天大学出版社,2001
赵晓安.MCS-51单片机原理及应用.天津:
天津大学出版社,2001.3
李广第.单片机基础.第1版.北京:
北京航空航天大学出版社,1999
徐惠民、安德宁.单片微型计算机原理接口与应用.第1版.北京:
北京邮电大学出版社,1996
何立民.从Cygnal80C51F看8位单片机发展之路.单片机与嵌入式系统应用,2002年,第5期:
P5~8
夏继强.单片机实验与实践教程.北京:
北京航空航天大学出版社,2001