单片机实验报告-数字时钟设计报告.pdf
为天地立心,为生民立命,为往圣继绝学,为万世开太平。——张载
单片机实验报告-数字时钟设计报告
一、实验目的
1、掌握单片机的主要原理及相关的功能和特点。
2、熟悉单片机测试与调试的一般步骤与操作。
3、掌握定时/计数功能在单片机系统中的实现方法。
4、领会单片机实验模块设计思想。
二、实验内容
本次实验主要是利用STC89C52单片机实现数字时钟设计,实验从硬件电路组成和单
片机编程两个部分来实现数字时钟的设计。
(1)硬件电路设计
该系统的硬件电路设计主要包括PCB板的设计、电源的设置、单片机与外设的连接以
及时钟芯片的接入。利用AltiumDesigner软件来进行电路板设计,将STC89C52芯片与
时钟模块(DS1302)以及屏幕连接,整个电路如图1所示。
图1数字时钟使用STC89C52的电路图
(2)单片机程序设计
本实验使用keil软件对单片机程序进行编程,主要的部分如下:
(2.1)定义单片机IO口
首先定义单片机IO口,其定义方式如下:
#includereg52.h
sbitRow0=P1^0;//定义P1.0作为数码管的Row0控制端
sbitRow1=P1^7;//定义P1.7作为数码管的Row1控制端
sbitRow2=P1^1;//定义P1.1作为数码管的Row2控制端
sbitRow3=P2^0;//定义P2.0作为数码管的Row3控制端
sbitCol0=P1^2;//定义P1.2作为数字管的Col0控制端
sbitCol1=P1^3;//定义P1.3作为数字管的Col1控制端
为天地立心,为生民立命,为往圣继绝学,为万世开太平。——张载
sbitCol2=P1^4;//定义P1.4作为数字管的Col2控制端
sbitCol3=P1^5;//定义P1.5作为数字管的Col3控制端
sbitCol4=P1^6;//定义P1.6作为数字管的Col4控制端
(2.2)定义LED数码管数据和定义变量
//定义LED数码管数据
unsignedcharcode
table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsignedchari,j,k,m,n,s;
(2.3)调用初始化函数
再调用初始化函数,用于完成I/O口、定时器0/1及外部中断的初始化,代码如下:
voidinit(void){
TMOD=0x01;//定时器0的模式1
TH0=0x3c;//定时器0赋初值
TL0=0xb0;
EA=1;//外部总中断开启
ET0=1;//允许定时器0中断
ET1=0;//不允许定时器1中断
TR0=1;//开启定时器0
TR1=1;//关闭定时器1
}
(2.4)主函数