单片机课程设计

发布 2022-10-04 22:40:28 阅读 8158

学号:10034120109成绩。

万年历的设计。

学院电信学院专业网络工程。

班级网络10-1 学生。

指导教师李绍平设计时间:2013年9月23~27

电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、星期、时、分和秒进行计时,还具有闰年补偿等多种功能,而且ds1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、星期、时、分、秒等信息,还具有时间校准等功能。

图2.1所示为万年历电路原理图,系统主要由主控制器at89c51、时钟电路ds1302、显示驱动74hc154电路,显示电路及按键扫描电路组成,能实现时钟日历显示的功能,能进行年、月、日、星期、时、分、秒的显示。

其中三个按键分别接p3^2,p3^3和p3^6引脚;数码管采用共阴极接法;ds1302是一种高性能、低功耗的实时时钟电路,它可以对年、月、日、日、时、分、秒进行计时。

万年历电路图2.1

整个系统运作的程序流程图如下3.1图所示。

系统进入主循环程序之后,不断地扫描按键程序,若发现set键被按下一次,则进入年调整程序,接着系统继续扫描键盘程序,若再按下set键一次,则进入月调整程序,根据set键被按下的次数,依次进入年、月、日、时、分、秒、星期调整程序。

当进入年调整程序时,若扫描到被按下加键或者减键,则相应的年份就加1或者减1,直到再次按下set键,系统接着进入主循环程序,不断地扫描按键程序,若没按键按下,则系统显示当前时间。

同样地,当通过set键进入月调整程序时,可通过按下加键或者减键使月份加1或者减1,直到再次按下set键。

其他的都是同样的操作原理,通过set键在年、月、日、时、分、秒、星期调整程序之间切换,进而通过加键或者减键使相应的数值(年、月、日、时、分、秒、星期)加1或者减1。

图3.1 程序主流程图。

说明:根据按下set的次数,时间标志位的顺序依次为年、月、日、时、分、秒、星期。时间值的设置也由于set次数的增加依次设置的是年、月、日、时、分、秒、星期的时间值。

flag用来标识是否已按下add键或者sub键,flag=1表示已按下。

图3.2程序流程框图。

5.1、 (定义了对芯片进行各种读写操作的函数和变量)

#include ""

#include ""

sbit ds_rst=p1^0;

sbit ds_sclk=p1^1;本文。

sbit ds_io=p1^2;

#define bcd2dec(x) (x&0x70)>>4)*10+(x&0x0f))

#define dec2bcd(x) (x/10)<<4|(x%10))

/ ds1302_init(void) 初始化设置芯片的显示时间。

void ds1302_init(void

ds_rst=0;

ds_sclk=0;

ds_io=0;

write_ds1302(ds1302_year,0x9); 09年。

write_ds1302(ds1302_month,0x7); 07月。

write_ds1302(ds1302_date,0x1); 01日。

write_ds1302(ds1302_hour,21); 21时

write_ds1302(ds1302_min,15); 15分

write_ds1302(ds1302_sec,28); 28秒。

write_ds1302(ds1302_day,0x3); 星期三。

//write_byte(uchar dat) 单个字节写子函数。

void write_byte(uchar dat)

//read_byte(void) 单字节读数据子函数。

uchar read_byte(void)

//read_ds1302(uchar addr) 读取单字节的时序。

uchar read_ds1302(uchar addr)

//write_ds1302(uchar,uchar dat) 写单字节数据的完整时序。

void write_ds1302(uchar addr,uchar dat)

//system_time read_time(void) 读取芯片的时间并把它作为返回值。

system_time read_time(void)

5.4、延时函数的声明)

#ifndef _delay_h

#define _delay_h

void delay_ms(uint timer);

#endif

5.5、程序主函数)

#include ""

#include ""

#include ""

#define data p0

#define show p2

sbit key_set=p3^2;

sbit key_add=p3^3;

sbit key_sub=p3^6;

uchar code dis_code=共阳数码管显示码。

单片机课程设计

可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...

单片机课程设计

目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...

单片机课程设计

1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...