单片机课设报告(万年历的制作) - 图文 联系客服

发布时间 : 星期六 文章单片机课设报告(万年历的制作) - 图文更新完毕开始阅读19275e2bb4daa58da0114a0d

洛阳理工学院课程设计报告

write_add(3,hour); //数据改变立即存入24C02。} write_hms(7,min); //分钟若改变则重新写入。 write_add(2,min); //数据改变立即存入24C02。} write_hms(10,sec); //秒若改变则重新写入。 write_add(1,sec); }//定时器1中断服务程序。 void time1()interrupt 3 {beep1=~beep1;

TH1=High_LIST[index]; TL1=Low_LIST[index];} 3.2.3 24C02程序: #ifndef _24C02_H_ #define _24C02_H_

#define uchar unsigned char #define uint unsigned int bit write=0; sbit sda=P2^0; sbit scl=P2^1; //延时。

void delay() {; ;}

//启始信号。 void start() {sda=1;

delay(); scl=1; delay(); sda=0; delay();} //停止信号。 void stop() {sda=0;

delay(); scl=1; delay(); sda=1; delay();} //应答信号。 void respons() {uchar i; scl=1; delay();

//数据改变立即存入24C02.} 24

洛阳理工学院课程设计报告

while((sda==1)&&(i<255))i++; scl=0; delay();} //总线初始化。 void init_24c02() {sda=1;

delay(); scl=1; delay();} //写一个字节。

void write_byte(uchar date) {uchar i,temp; temp=date;

for(i=0;i<8;i++) {temp=temp<<1; scl=0; delay(); sda=CY; delay(); scl=1;

delay(); } scl=0; delay(); sda=1; delay();} //读一个字节。 uchar read_byte() {uchar i,k; scl=0; delay(); sda=1; delay();

for(i=0;i<8;i++) {scl=1;

delay();

k=(k<<1)|sda; scl=0; delay();} return k; }

//指定地址写一字节。

void write_add(uchar address,uchar date) {start();

write_byte(0xa0);

25

洛阳理工学院课程设计报告

respons();

write_byte(address); respons();

write_byte(date); respons(); stop();}

//指定地址读一字节。

uchar read_add(uchar address) {uchar date; start();

write_byte(0xa0); respons();

write_byte(address); respons(); start();

write_byte(0xa1); respons();

date=read_byte(); stop();

return date;} #endif

四 实物焊接

4.1 焊接的实物图及描述

通过分析仿真软件里面的电路图,以及接连几天的排线、连接、焊接操作,我们小组成功地作出了电子实物图。如下图所示:

图4-1 万年历电子实物图正面

26

洛阳理工学院课程设计报告

图 4-2 背面接线图

本设计实物图是我们小组焊接成功并且能够实现要求的功能后照的图片,大致布局就是这样子的。根据仿真软件protues里画出的电路图,我们进行了合理的器件布局,总体上感觉还比较合理。所有器件都在电路板上布局。最上面是单片机AT89C51芯片,是整个电路的核心部件,其作用上面已作了详细的分析。下面是上拉电阻,左边是一个喇叭,用于闹铃定时。下面的一个是三极管,用作音频放大。一个晶振和两个电容,还有一个电阻和电容,它们组合起来,用来构成单片机的最小系统。最下面的是一个电源底座,电源线插入,用来给该电路通电。最下面的是液晶1602,它的功能作用在前面已经介绍过了,最上面四个按键,分别是功能键、增大键、减小键、闹铃键,因为没拍全,所以就没显示完全。

4.2 焊接中遇到的问题

在做焊接前,我们小组三个人进行了明确的分工。一名同学负责看电路、排线,一名同学负责焊接电路,最后一个负责检查电路。焊接中,我们遇到了很多问题。首先,看电路图然后找准引脚将两个脚焊接起来。在焊接的过程中,会出现虚焊、漏焊或者是焊接过程中将两个引脚连接起来,造成短路现象。我们组遇到最多的问题就是不能一次焊接成功,其中造成短路现象的做多,不得不设法将焊接好的引脚拆除,重新焊接。由于引脚太多,有时由于失误就错误地焊接了两个引脚,这给我们引起了很多麻烦。其次,掌握好的焊接技术也是非常重要的。虽然,这次我没有亲自焊接,都是我们那个组员动手焊接的。但由于不小心,还是会出现烫手事故的。正是经历了不少的挫折,我们才成功地将电子万年历实物焊接好了,并且各项功都能按预期结果实现。

五 单片机程序的下载

当完成在电路仿真和焊接好实物后,还需要把在keil软件中编译链接成的十六进制文件下载到单片机的程序存储器里。单片机程序的下载有以下几种方式:用商用编程器下载;利用编程器编程;ISP编程。本次设计中,我们采用的主要是ISP编程法将.hex文件下载到AT89C51芯片中。

27