东北大学秦皇岛分校数字时钟课程设计报告PCF8563.docx

上传人:b****5 文档编号:2781624 上传时间:2022-11-15 格式:DOCX 页数:13 大小:314.23KB
下载 相关 举报
东北大学秦皇岛分校数字时钟课程设计报告PCF8563.docx_第1页
第1页 / 共13页
东北大学秦皇岛分校数字时钟课程设计报告PCF8563.docx_第2页
第2页 / 共13页
东北大学秦皇岛分校数字时钟课程设计报告PCF8563.docx_第3页
第3页 / 共13页
东北大学秦皇岛分校数字时钟课程设计报告PCF8563.docx_第4页
第4页 / 共13页
东北大学秦皇岛分校数字时钟课程设计报告PCF8563.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

东北大学秦皇岛分校数字时钟课程设计报告PCF8563.docx

《东北大学秦皇岛分校数字时钟课程设计报告PCF8563.docx》由会员分享,可在线阅读,更多相关《东北大学秦皇岛分校数字时钟课程设计报告PCF8563.docx(13页珍藏版)》请在冰豆网上搜索。

东北大学秦皇岛分校数字时钟课程设计报告PCF8563.docx

东北大学秦皇岛分校数字时钟课程设计报告PCF8563

东北大学秦皇岛分校

计算机与通信工程学院

单片机课程设计

设计题目数字钟设计

 

专业名称

电子信息工程

班级学号

4101327

学生姓名

马东慧

指导教师

哈森其其格

设计时间

2013.01.01—2013.01.07

一.前言

电子技术获得了飞速发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动啦社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间,忘记啦要做的事情,当事情不是很重要的时候,这种忘记无伤大雅。

但是,一旦重要事情,一时的耽误可能酿成大祸。

目前,单片机在朝着高性能和多品种的方向发展的同时也进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。

单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛地使用。

数字钟是采用数字电路实现对时、分、秒,数字显示的计时装置,广泛用于个人家庭,车站,码头、办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英振荡器的广泛应用,使得数字钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大地方便,而且大大地扩展了钟表原先的报时功能。

诸如定时自动报警、校时自动打铃、时间程序自动控制、定是广播、自动启闭路灯、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。

因此,研究数字钟及扩大其应用有着非常现实的意义。

二.设计任务及要求

1.能够显示时,分,秒:

完成显示由秒00-一直加一到59,再恢复为00;分加一,由00至01,一直加一至59,再恢复00;时加一,由00至01,一直加一到59,再恢复00;

2.用PCF8563实现数字钟显示;

三.总体思路

通过iic总线在pcf8563时钟芯片中获得时间信息  单片机把时钟芯片的数据进行处理 在数码管上动态显示。

四.硬件电路设计

1.主控CPU部分

2.数码管显示电路

3.PCF8563实时时钟/日历芯片实验单元

 

4.模拟仿真电路

五.软件设计部分

(1)

#include"pcf8563.h"

voidiic_start(void)

{

SDA=1;

_nop_();

SCL=1;

somenop;

SDA=0;

somenop;

SCL=0;

}

voidiic_stop(void)

{

SDA=0;

_nop_();

SCL=1;

somenop;

SDA=1;

}

voidiic_ack(bitackbit)

{

if(ackbit)

SDA=0;

else

SDA=1;

somenop;

SCL=1;

somenop;

SCL=0;

SDA=1;

somenop;

}

bitiic_waitack(void)

{

SDA=1;

somenop;

SCL=1;

somenop;

if(SDA)

{

SCL=0;

iic_stop();

return0;

}

else

{

SCL=0;

return1;

}

}

voidiic_sendbyte(ucharbyt)

{

uchari;

for(i=0;i<8;i++)

{

if(byt&0x80)

SDA=1;

else

SDA=0;

somenop;

SCL=1;

byt<<=1;

somenop;

SCL=0;

}

}

uchariic_recbyte(void)

{

ucharda;

uchari;

for(i=0;i<8;i++)

{

SCL=1;

somenop;

da<<=1;

if(SDA)

da|=0x01;

SCL=0;

somenop;

}

returnda;

}

voidwrbyte_pcf8563(ucharadd,uchardat)

{

//器件地址0xa2

iic_start();

iic_sendbyte(0xa2);

iic_waitack();

iic_sendbyte(add);

iic_waitack();

iic_sendbyte(dat);

iic_waitack();

iic_stop();

delay(10);

}

ucharrdbyte_pcf8563(ucharadd)

{

ucharda;

iic_start();

iic_sendbyte(0xa2);

iic_waitack();

iic_sendbyte(add);

iic_waitack();

iic_start();

iic_sendbyte(0xa3);//芯片读地址

iic_waitack();

da=iic_recbyte();

iic_ack(0);

iic_stop();

returnda;

}

voiddelay(uchart)

{

uchari;

while(t--)

{

for(i=0;i<112;i++);

}

}

(2)

/***************单片机课程设计**********************/

/******晶振11.0592电子时钟芯片PCF8563************/

/******电路板对应protues仿真***********************/

#include

#include"pcf8563.h"

#defineucharunsignedchar

#defineuintunsignedint

sbitwela=P2^7;

sbitdula=P2^6;

ucharcodetable[]=

{

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,

};//段选编码

voiddis_delay(uintuiz)//显示函数的延迟函数

{

uintuix,uiy;

for(uix=uiz;uix>0;uix--)

for(uiy=10;uiy>0;uiy--);

}

voiddisplay(ucharucmiao,ucharucfen,ucharucshi)//显示函数

{

ucharucmiao_shi,ucmiao_ge,ucfen_shi,ucfen_ge,ucshi_shi,ucshi_ge;

ucmiao_shi=ucmiao/10;

ucmiao_ge=ucmiao%10;

ucfen_shi=ucfen/10;

ucfen_ge=ucfen%10;

ucshi_shi=ucshi/10;

ucshi_ge=ucshi%10;

P0=0x7f;//第一个数码管亮从后面查的

wela=1;

wela=0;

P0=table[ucmiao_ge];

dula=1;

dula=0;

dis_delay(20);

P0=0xbf;//第二个数码管亮从后面查的

wela=1;

wela=0;

P0=table[ucmiao_shi];

dula=1;

dula=0;

dis_delay(20);

P0=0xdf;//第三个数码管亮从后面查的

wela=1;

wela=0;

P0=0x40;

dula=1;

dula=0;

dis_delay(20);

P0=0xef;//第四个数码管亮从后面查的

wela=1;

wela=0;

P0=table[ucfen_ge];

dula=1;

dula=0;

dis_delay(20);

P0=0xf7;//第五个数码管亮从后面查的

wela=1;

wela=0;

P0=table[ucfen_shi];

dula=1;

dula=0;

dis_delay(20);

P0=0xfb;//第六个数码管亮从后面查的

wela=1;

wela=0;

P0=0x40;;

dula=1;

dula=0;

dis_delay(20);

P0=0xfd;//第七个数码管亮从后面查的

wela=1;

wela=0;

P0=table[ucshi_ge];

dula=1;

dula=0;

dis_delay(20);

P0=0xfe;//第八个数码管亮从后面查的

wela=1;

wela=0;

P0=table[ucshi_shi];

dula=1;

dula=0;

dis_delay(20);

 

}

voidmain()

{

ucharucmiao=0;

ucharucfen=0;

ucharucshi=0;

while

(1)

{

ucmiao=rdbyte_pcf8563(0x02)&0x7f;

ucmiao=((ucmiao&0xf0)>>4&0x0f)*10+(ucmiao&0x0f);

ucfen=rdbyte_pcf8563(0x03)&0x7f;

ucfen=((ucfen&0xf0)>>4&0x0f)*10+(ucfen&0x0f);

ucshi=rdbyte_pcf8563(0x04)&0x3f;

ucshi=((ucshi&0xf0)>>4&0x0f)*10+(ucshi&0x0f);

//

//if(miao>=60){miao=0;}

display(ucmiao,ucfen,ucshi);

}

}

(3)

#ifndef_PCF8563_H

#define_PCF8563_H

#include"reg52.h"

#include"intrins.h"

#definesomenop{_nop_();_nop_();_nop_();_nop_();_nop_();}

#defineucharunsignedchar

#defineuintunsignedint

sbitSCL=P1^6;

sbitSDA=P1^7;

voidiic_start(void);

voidiic_stop(void);

voidiic_ack(bitackbit);

voidiic_sendbyte(ucharbyt);

voidwrbyte_pcf8563(ucharadd,uchardat);

voiddelay(uchart);

bitiic_waitack(void);

uchari2c_recb

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1