篮球比赛24秒计时器.docxVIP

  • 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)

1亿VIP精品文档

相关文档