- 14
- 0
- 约2.83千字
- 约 6页
- 2023-09-13 发布于浙江
- 举报
篮球比赛24秒计时器
单片机具有体积小、可靠性高、功能强、灵活方便等许多优点,广泛应用于国民经济的各个领域。单片机的应用从根本上改变了传统的控制系统设计思想和方法,以前由数字和模拟电路实现的大部分功能,现在都能用单片机通过软件的方法来实现。
单片机用于各种仪器仪表使其智能化,可以提高测量的自动化程度和精度。本项目主要利用单片机的内部定时器和外部中断;外部的独立按键和数码管显示以及报警器。来实现24秒计时的功能。
一 设计要求和设计方案
1.24秒计时器具有显示24秒的计时功能。
系统设置外部操作开关控制计时器的暂停和连续功能。
设置计时器为24秒递减时,其时间间隔为1秒。
4.当计时器递减到零时,数码管显示不灭,发出报警信号。
二 设计的功能
单片机启动时系统从24秒开始递减计时同时数码管也递减显示,当按键按下时系统暂停计时,数码管显示当前计时时间,当系统计时到零时数码管显示0同时报警器响发出报警信号。
三 电路的组成
晶振电路部分
主要有晶振(本电路中的晶振实际是陶瓷谐振器)和电容够成分别接振荡电路反向放大器的输入端和输出端,为单片机提供工作的频率。
报警电路部分
主要由报警器、电阻、电源构成。 当单片机P1^7口发低电平时该电路导通报警器响,电阻是限流电阻。
独立按键部分
主要由按键和地组成。按键按下时单片机接受低电平产生外部中断计时器暂停计时,松开时继续计时。
4. 数码管显示部分
主要由数码管、总线、排阻(上拉电阻)构成. 单片机的P0、P2口通过总线和导线向数码管发送显示数字的二进制码使数码管显示。数码管(7端数码显示管)为共阴集数码管高电平有效。
四 设计电路全图
五 设计电路的程序
#includereg52.h // 头文件包含c51的基本I/O口和寄存器的定义
#define uint unsigned int // 宏定义将 “ 无符号整型 数据用 uint 代替
#define uchar unsigned char// 宏定义将 “ 无符号字符型 数据用 uchar 代替
uchar temp,aa,shi,ge; // 定义4个无符号字符型数据 temp,aa,shi,ge;
sbit sounder=P1^7; // 定义一个位变量sounder( 将P1^0口与位变量sounder建立联系 )
uchar code table[]={ // 定义了一个无符号字符型数组 table 数据存放在程序存储器中
0x3f,0x06,0x5b,0x4f, // 共阴数码管表 0,1,2,3,
0x66,0x6d,0x7d,0x07, // 4,5,6,7,
0x7f,0x6f,0x77,0x7c, // 8,9,a,b,
0x39,0x5e,0x79,0x71} ; // c,d,e,f,
void display(uchar shi,uchar ge); // 显示函数声明
void delay(uint z) ; // 延时函数声明
void init(void); // 初始化函数声明
void main(void) //主函数程序的入口
{
init(); // 调用初始化函数
while(1) // while死循环循环判断变量始终为1
{
if(aa==20) // 判断定时是否为1秒
{
aa=0; // 每次循环后清零将aa( 定时器计时1秒清零 )
temp--; // 时间递减计算
if(temp0)
{ // 到0后赋值24( 计数到达0秒后重新赋值24秒开始递减计时 )
temp=24;
}
shi=temp/10; // 计算十位的数字
ge=temp%10; // 计算个位的数字
}
display(shi,ge); // 调用显示函数
EA=1; // 开总中断
EX0=1; // 开外部中断INT0
if(temp==0)
{
sounder=0;
while(1);
}
}
}
void display(uchar shi,uchar ge) // 定义显示函数
{
P0=table[shi]; //给P0口送显示值( 数码管的十位显示)
delay(1); // 延时1毫秒
P2=table[ge];
原创力文档

文档评论(0)