【51单片机】【protues仿真】基于51单片机秒表计时器系统(带存储)

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

1、数码管液晶显示

2、按键控制开始、暂停、存储、上下翻页​

3、100条存储记录

二、使用步骤

基于51单片机的秒表计时器系统(带存储)是一个典型的嵌入式应用项目,结合了定时器中断、按键控制、数码管显示以及数据存储功能。

三、硬件资源

1、51单片机核心模块

2、按键模块

3、数码管驱动芯片模块

4、继电器模块

5、数码管显示模块

四、软件设计

#include "reg51.h"

#include"absacc.h"

#define uchar unsigned char

#define uint unsigned int

sbit k1=P1^3;//按钮

sbit k2=P1^4;

sbit k3=P1^5;

sbit k4=P1^6;

sbit smg1=P3^2;//数码管引脚

sbit smg2=P3^3;

sbit smg3=P3^4;

sbit beep=P1^0;//蜂鸣器

uchar xdata shu1003; //存储数组

//数码管编码

uchar code smgduan010={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9,无小数点

uchar code smgduan110={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//显示0~9,有小数点

uchar time=0,mode=0;

uchar num=0,cha=0;

uchar fen=0,miao=0;

uchar beep_time=0;

//延时

void delay(uint i)

{

while(i--);

}

//主函数

void main()

{

uchar k=0;

SCON=0X50; //设置为工作方式1

TMOD=0X21; //设置计数器工作方式2

TH1=0XFD;

TL1=0XFD;

ES=1; //打开接收中断

TR1=1; //打开计数器

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

ET0=1;//打开定时器0中断允许

EA=1;//打开总中断

while(1)

{

if(k1 && k2 && k3 && k4)

k=0;

}

}

//定时器0中断

void Timer0() interrupt 1

{

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

if(time<99)//0.01s

time++;

else

{

time=0;

if(miao<59)//秒计时

miao++;

else

{

miao=0;

if(fen<99)//分计时

fen++;

}

}

if(beep_time>0)//蜂鸣器控制

{

beep_time--;

beep=0;

}

else

beep=1;

}

五、实验现象

演示视频:

【51单片机-B068】【protues仿真】基于51单片机秒表计时器(带存储)仿真

相关推荐
Szime7 分钟前
高速 ADC 国产替代选型:通信、雷达、仪器仪表项目要看哪些参数?
单片机·嵌入式硬件·fpga开发
拼搏的小浣熊1 小时前
香橙派Zero3的奇幻之旅【【持续更新】香橙派zero3从入门到玩转 各种工具+笔记】
arm开发·物联网·香橙派
灯琰12 小时前
# STM32L051K6U6 IAP Bootloader 开发踩坑实录
stm32
菜鸟的学习日记、2 小时前
GPIO的几种模式——以STM32为例
stm32·单片机·嵌入式硬件·gpio
辰哥单片机设计3 小时前
STM32智能睡眠检测系统
stm32·单片机·嵌入式硬件
隔窗听雨眠4 小时前
在STM32上跑通TinyML:从模型训练到推理优化的完整实战指南
stm32·单片机·嵌入式硬件
努力努力再努力wz6 小时前
【内存管理与高并发内存池系列】从 mmap 到 malloc:文件映射、匿名映射与 glibc 内存分配机制详解
linux·c语言·数据结构·数据库·c++·qt·链表
J2虾虾6 小时前
C 语言 void 完全用法
c语言·开发语言
wu_ye_m6 小时前
学习c语言第35天 函数声明和定义
c语言·开发语言·学习
ryanuo76 小时前
Mac(M芯片)上进行嵌入式开发遇到的问题
嵌入式硬件·macos·开发板