单片机秒表.docx

上传人:b****6 文档编号:5618296 上传时间:2022-12-29 格式:DOCX 页数:7 大小:83.78KB
下载 相关 举报
单片机秒表.docx_第1页
第1页 / 共7页
单片机秒表.docx_第2页
第2页 / 共7页
单片机秒表.docx_第3页
第3页 / 共7页
单片机秒表.docx_第4页
第4页 / 共7页
单片机秒表.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

单片机秒表.docx

《单片机秒表.docx》由会员分享,可在线阅读,更多相关《单片机秒表.docx(7页珍藏版)》请在冰豆网上搜索。

单片机秒表.docx

单片机秒表

实验设计报告

 

设计题目:

51单片机外扩8155秒表计时

班级:

姓名:

学号:

02

 

51单片机秒表计时

一、设计目的

(1)利用单片机定时器中断和定时器计数方式实现秒定时。

(2)通过LED显示程序的调整,熟悉单片机与LED的接口技术,熟悉LED动态显示的控制过程。

(3)掌握8155芯片的用法及口地址的计算方法。

(3)通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示和定时器中断等多种功能的综合程序。

(4)进一步学习单片机开发系统的整个流程。

二、设计需求

利用STC-89C52单片机作为系统核心控制部分,用外围6个数码管、两个独立按键实习秒表计时的功能。

当接P30的按键按下时,秒表开始计时,当接P30的按键打开时暂停,当接P31的按键按下时数码管清零。

三、设计材料

序号

器件

数量

功能

1

STC-89C52单片机最小系统板

1

核心

2

8155芯片

1

外扩I/O口

3

共阳极数码管

6

计时

4

开关

2

控制数码管的计

时与暂停

内容要求

一、总体方案设计

二、硬件设计

电路图如下所示

Protues仿真:

三、软件设计

#include

#include

#defineA8155XBYTE[0XFE21]

#defineB8155XBYTE[0XFE22]

#defineC8155XBYTE[0XFE23]

#defineK8155XBYTE[0XFE20]

sbitp30=P3^0;

sbitp31=P3^1;

charcodeshow[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,

0xf8,0x80,0x90};

charshowdata[6]={0xC0,0xbf,0xC0,0xC0,0xbf,0xC0};

charshowdata_0[6]={0xC0,0xbf,0xC0,0xC0,0xbf,0xC0};

intcnt,i,j;

intflag=0,count=0,fen=0;

voiddelay(intms);

voidstart();

voidpasue();

voidclear();

voidmain()

{

TMOD=0x01;

TL0=(65536-50000)%256;

TH0=(65536-50000)/256;

EA=1;

ET0=1;

TR0=1;

P=0xff;

K8155=0x03;

while(p31==1)

{

A8155=0x01;

if(p30==0&&p31==1)

{

start();

}

elseif(p30==1&&p31==1)

{

pasue();

}

elseif(p30==1&&p31==0)

{

clear();

}

}

}

voidpasue()

{

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

{

B8155=showdata[i];

delay(5);

A8155=A8155<<1;

if(A8155==0x40)

{

A8155=0x01;

}

}

}

voidclear()

{

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

{

B8155=showdata_0[i];

delay(5);

A8155=A8155<<1;

if(A8155==0x40)

{

A8155=0x01;

}

}

}

voidstart()

{cnt=0;

while(cnt<=2)

{

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

{

B8155=showdata[i];

delay(5);

A8155=A8155<<1;

if(A8155==0x40)

{

A8155=0x01;

}

}

if(cnt==2)

{

flag++;

if(flag<=9)

{

showdata[0]=show[flag];

}

else

{

flag=0;

count++;

if(count<=60)

{

showdata[2]=show[count%10];

showdata[3]=show[count/10];

}

else

{

fen++;

count=0;

showdata[5]=show[fen];

}

}

}

}

}

voiddelay(intms)

{

intj,i;

for(j=0;j

{

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

}

}

voidtime0_int(void)interrupt1

{

TL0=(65536-50000)%256;//

TH0=(65536-50000)/256;

cnt++;

}

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

当前位置:首页 > PPT模板 > 商务科技

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

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