单片机流水灯课程设计Word文档格式.docx

上传人:b****6 文档编号:15948279 上传时间:2022-11-17 格式:DOCX 页数:15 大小:462.30KB
下载 相关 举报
单片机流水灯课程设计Word文档格式.docx_第1页
第1页 / 共15页
单片机流水灯课程设计Word文档格式.docx_第2页
第2页 / 共15页
单片机流水灯课程设计Word文档格式.docx_第3页
第3页 / 共15页
单片机流水灯课程设计Word文档格式.docx_第4页
第4页 / 共15页
单片机流水灯课程设计Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

单片机流水灯课程设计Word文档格式.docx

《单片机流水灯课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机流水灯课程设计Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

单片机流水灯课程设计Word文档格式.docx

过完成本课题的软硬件设计,使同学们了解单片机实例的整个开发流程。

1.2.2基本要求

⑴简要说明

用单片机设计出一个数字钟。

此数字钟完成自动走时和时间调整的功能。

⑵任务和要求

设计简易的数字钟,该数字钟满足以下要求:

设计一个数字钟,该数字钟基本功能:

使用单片机的定时/计数器实现数字中的定时计数功能,秒计60次成分,分计60次成小时,小时计24次则计满一天。

本设计LED显示部分采用动态显示,其中2个LED显示器显示秒,2个LED显示器显示分钟,2个LED显示器显示小时。

同时为了使用方便,本题目还需要设计几个简单按键,可以通过按键实现时、分的调整,这样在主程序中需要加入键盘设置子程序。

2设计思路

基于单片机的简易数字钟设计主要可以分为以下几个模块来考虑:

㈠对于单片机AT89C51的T0,T1定时中断部分。

本次设计中的单片机晶振频率采用了精准的11.0592MHZ。

故对T1初值设定为:

DC00h,实现了10ms的定时,然后C程序中通过定义一个变量i,对i进行i++的100次循环,如此即可达到最小1S的实现。

而后在这个1S程序段的基础之上,我们可以分别编写出对时,分的程序段。

对于定时器T0,我们可以将其用来作为数码管动态扫描的定时中断,本次设计设为50ms左右,初值为FC17h。

这个取值通过最后的仿真及实际效果看出合理,不会出现闪烁等情况。

㈡校时电路。

本次设计要求了该简易数字钟必须具备时、分的调整功能。

故必须接入2个简单的按键(本设计设置问p1.4调时、p1.5调分,按键为实验箱单次脉冲按键模块),并且在软件部分必须引入这2个独立按键的子程序。

㈢显示电路。

考虑采用动态显示部分,用P0口作为数码管数据(段选),P2口作为数码管控制(位选)。

动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任意时刻都只有一位数码管被点亮,但由于人眼存在视觉暂留效应,只要每位数码管间隔时间足够短,就可以给人以通俗显示的感觉。

上面第一部分已提到,我们采用了50ms左右的时间间隔,并且是合理的。

6位数码管,实验室的硬件是共阴极的,故我们的数码表采用{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};

㈣晶振电路。

在AT89C51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。

而在芯片内部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。

时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。

㈤复位电路。

这部分设计用来完成对单片机的复位。

3设计方框图

3.1数字钟硬件部分示意图

该简易数字钟硬件部分主要由晶振、手动复位、单片机AT89C51、数码管显示、时间调整按键模块组成。

框图如下:

图3.1数字钟硬件系统示意图

3.2数字钟软件部分组成框图

3.2.1时间调整的程序流程

Y

N

INT1中断服务子程序

时钟分位调整

时钟分位+1

1小时到

时钟分位清零

返回

时钟小时位调整?

时钟小时+1

24小时到

时钟小时位清零

图3.2时间调整程序流程框图

3.2.2时钟显示程序流程

图3.324小时时钟

4简易数字钟源程序

4.1源程序

#include<

reg52.h>

#include"

common.h"

#defineFOSC12000000L

#defineT2MS(65536-(FOSC/12/1000)*2)//2mstimercalculationmethodin12Tmode

#defineS_1

#defineT_0

unsignedcharcodewetable[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};

unsignedcharcodedutable[]={0x3f,0x06,0x5b,0x4f,

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

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

0x39,0x5e,0x79,0x71};

unsignedchari=0;

unsignedintTcount=0;

unsignedintScount=0;

unsignedcharidataT[3]={9,0,0};

unsignedcharidataS[2]={0,0};

unsignedcharidatatemp[6];

bitmodeflag=0;

bitk1_flag=0;

bitk2_flag=0;

bitk3_flag=0;

bitk4_flag=0;

bitSbegin=0;

voiddelay_ms(unsignedcharx)

{

unsignedcharz,y;

for(z=x;

z>

0;

z--)

for(y=110;

y>

y--);

}

voidTimer0_Init()

TMOD|=0x01;

//settimer0asmode1(16-bit)

TL0=T2MS;

//initialtimer0lowbyte

TH0=T2MS>

>

8;

//initialtimer0highbyte

TR0=1;

//timer0startrunning

ET0=1;

//enabletimer0interrupt

EA=1;

//openglobalinterruptswitch

voidTimer1_Init()

{

TMOD|=0x20;

//settimer1asmode2(8-bit)

IP=0x08;

TL1=0x06;

TH1=0x06;

TR1=1;

//timer1startrunning

ET1=1;

//enabletimer1interrupt

voidmain(void)

beep=0;

delay_ms(200);

beep=1;

Timer0_Init();

Timer1_Init();

while

(1)

{

if(k1==0||k2==0||k3==0||k4==0)

{

delay_ms(10);

if(k1==0){while(!

k1);

k1_flag=1;

if(k2==0){while(!

k2);

k2_flag=1;

if(k3==0){while(!

k3);

k3_flag=1;

if(k4==0){while(!

k4);

k4_flag=1;

}

if(k1_flag)

if(modeflag==T_){k1_flag=0;

beep=0;

delay_ms(200);

beep=1;

modeflag=S_;

else{k1_flag=0;

modeflag=T_;

}

if(modeflag==T_)

if(k2_flag)

{

k2_flag=0;

beep=0;

T[0]++;

if(T[0]==24)

T[0]=0;

}

if(k3_flag)

k3_flag=0;

T[1]++;

if(T[1]==60)

T[1]=0;

if(k4_flag)

k4_flag=0;

T[2]++;

if(T[2]==60)

T[2]=0;

else

if(k2_flag){k2_flag=0;

Sbegin=~Sbegin;

if(k3_flag&

&

Sbegin==0){k3_flag=0;

S[0]=0;

S[1]=0;

}

}

voidtm0_isr()interrupt1using1

{

//reloadtimer0lowbyte

//reloadtimer0highbyte

if(modeflag==T_)

if(i%2==0)

temp[i]=T[i/2]/10;

temp[i]=T[(i-1)/2]%10;

else

temp[i]=S[i/2]/10;

temp[i]=S[(i-1)/2]%10;

LED7s_wei|=0x3f;

wela=1;

wela=0;

if(i==1||i==3)

LED7s_data=dutable[temp[i]]+0x80;

dula=1;

dula=0;

LED7s_d

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

当前位置:首页 > 解决方案 > 商业计划

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

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