单片机闹钟实训.doc
文本预览下载声明
湖南******职业技术学院
单片机闹钟课程实训报告
课题名称 单片机闹钟 姓 名 *** 学 号 ****** 院、系、部 ****** 专 业 电子信息工程 指导教师 ***
2010年 6 月 10 日
【单片机闹钟设计】
一.实验目的及要求
实验目的:
1、加强使用单片机的编程控制一些较复杂一点电路的能力。
2、掌握单片机闹钟的原理
3、学会使用程序驱动数码管显示
4、学习复杂电路的设计、分析
5、按设计电路和工艺要求制作调试样机,并编写测试报告。
6、强化自己的焊工技能和专业素养。
7、强化综合运用模拟、数字电子技术和单片机原理与应用技术的能力。
实验要求:
1、设计一个闹钟电路,最大能显示到小时
2、要示具有使能端、复位端、启动、停止按钮
3、要求用数码管显示
二.电路工作原理及分析
(1)硬件原理图:
(2)工作原理:
三.实验程序设计
整个实验的所有原理程序
#includereg52.h
#define uchar unsigned char
#define uint unsigned int
uchar shi,fen,miao;
sbit rs=P2^5;
sbit rw=P2^6;
sbit en=P2^7;
sbit buy=P0^7;
uchar code a1[]=2007-7-30 MON;
uchar code a2[]=00:00:00;
void delay(uchar z)
{
uchar x,y;
for(x=100;x0;x--)
for(y=z;y0;y--);
}
void cbuy()
{
P0 = 0xff;
rs = 0;
rw = 1;
en = 1;
while(buy == 1);
en = 0;
}
void write_com(uchar com)
{
cbuy();
P0=0xff;
rs=0;
rw=0;
P0=com;
en=1;
;
en=0;
}
void write_date(uchar date)
{
cbuy();
rs=1;
rw=0;
P0=date;
en=1;
;
en=0;
}
void init()
{
write_com(0x30);
write_com(0x01);
write_com(0x06);
write_com(0x0c);
}
void clr()
{
write_com(0x30);
write_com(0x01);
}
void dis_ch(uchar x0,uchar y0,uchar xx,uchar *p)
{
uchar i,j;
write_com(0x30);
write_com(xx);
for(i=0;ix0;i++)
{
for(j=0;jy0;j++)
{
write_date(p[i*16+j]);
}
}
}
void main()
{
init();
clr();
while(1)
{
dis_ch(1,16,0x80,a1);
dis_ch(1,16,0x90,a2);
}
}
四、安装调试与结果
1、安装元件时,首先检查一下元器件的好坏,用万用表测试电源脚与接地脚是否短路。
2、测试出数码管的公共接地端对应的管脚。
4、调试时,接通电源前,先用万用表检查电路电源正负极是否短路,确认没短路时才通电。以前我有一次粗心就吃亏了,差点把电源烧坏。
5、先按要求电路是否按电路原理图焊接,然后再通电检查。
6、编译程序
7、如果程序没错误,就下载到单片机进行综合调试
8要是没理想效果也不要急,先分析问题出在哪里,导致问题发生的原因。然后一个一个去排除。一定要有耐心
8、经过这一步步检查和改正后终于达到理想的效果。
五、参考文献
《C语言与单片机》 *88**********************
《单片机应用技术》 *** 主编 高等教育出版社
《电子技术基础》 康华光 主编 高等教育出版社
《电子产品工艺》 卢庆林 主编 西安电子科技大学出版社
《电子元器件检测与应用技术》 韩广兴 主编 电子工业出版社
六.实训总结
通过这次实训还使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从实践中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在此次综合实训的过程中,不仅让我比较全面的温习了大学所学的知识,体会到了很多的乐趣,而且激发了我对电子行业及其产品的兴趣。
这次实训,使我的动手操作能
显示全部