IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于单片机的简易秒表(C语言程序独立按键检测示例) -> 正文阅读

[嵌入式]基于单片机的简易秒表(C语言程序独立按键检测示例)

今天为大家带来一个基于单片机的简易秒表,该秒表拥有两个功能键,一个是控制秒表启动计时和暂停功效的(开始/暂停)键,1.当第一次按下该键,秒表开始计时。2.当第二次按下功能键时,秒表暂停工作。第二个按键是(清除)键,用来清除之前的计时数据,使秒表计数器归零。该秒表的精确度是0.1秒。

#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit le1=P2^0;//用来控制第一个锁存器
sbit le2=P2^4;//用来控制第二个锁存器
sbit we3=P2^5;//用来控制第三个数码管的公共端
sbit we1=P2^6;//用来控制第一个数码管的公共端
sbit we2=P2^7;//用来控制第二个数码管的公共端
sbit key1=P3^0;//用来检测 开始/暂停 按键
sbit key2=P3^1;//用来检测 清楚 按键
uint num,num1,shi,ge,xiao;
uchar code tabl[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

//延时函数
void delayms(uint xms){
uint i,j;
	for(i=xms;i>0;i--)
		for(j=110;j>0;j--)
			;
			}
			
	//按键扫描函数		
void keyscan(){

	if(key1==0){  //开始/暂停键扫描
		delayms(10);
		if(key1==0){
			TR0=~TR0;
			while(!key1);
			}
		}
		if(key2==0){  //清除键扫描
delayms(10);
	if(key2==0){
		num=0;
		TR0=0;
		while(!key2);
		}
	}
}
void display(uint  num2){	//显示函数
shi=num2/100;//获取秒表十位显示数字
ge=num2%100/10;//获取秒表各位显示数字
xiao=num2%100%10;//获取秒表十分位的数字。

we1=0;//把第一个数码管公共端接低电平 (打开)
le1=1;//打开第一个锁存器
P0=tabl[shi];//向第一个锁存器发送秒表要显示的十位数字
delayms(2);//延时2ms
le1=0;//关闭锁存器
P0=0xff;//消影
we1=1;//把把第一个数码管公共端接高电平(关闭)

we2=0;
le1=1;
P0=tabl[ge];
delayms(2);
le1=0;
P0=0xff;
we2=1;

we3=0;
le2=1;
P0=tabl[xiao];
delayms(2);
le2=0;
P0=0xff;
we3=1;
		}
		
void main(){
	TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
while(1){
 keyscan();
 if(num==600)num=0;//当num 计数满600,表示时间增加六十秒
 display(num);
 }
 }
 void T0_time()interrupt 1//中断函数(用来产生时间)
 {
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 num1++;
 if(num1==2){//当num1计数满2,表示时间增加0.1秒
	 num1=0;
	 num++;
		}
	}

Protues仿真演示截图

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-11-09 19:43:26  更:2021-11-09 19:44:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:03:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码