【51单片机2位数码管100毫秒的9.9秒表】2022-5-16

缘由

这一题刚设计好要去回复就看到结帖了,好似看到我设计完成就盗窃去了,如此下面类似题目很容易也懒得回复了。

cpp 复制代码
#include "reg52.h"
sbit k0=P3^0;
sbit k1=P3^1;
unsigned char code SmZiFu[]={63,6,91,79,102,109,125,7,127,111};//0-9
unsigned char Js=0,miao=0,hm=0;//中断计时 秒 毫秒
void smxs(unsigned char mz,unsigned char w,unsigned char d)
{
	unsigned char Xd=0;
	P0=255;
	P0=255-((d==1?SmZiFu[mz]:(SmZiFu[mz]|0x80)));//小数点闪烁段数据显示
	P2=~w;//位选
	while(++Xd);//数码管延时
}
void ZhongDuanSheZhi()
{
	TH0+=(65536-9216)/256;/*定时器赋初值,定时10ms触发中断,自动补偿方式*/
	TL0+=(65536-9216)%256; 
	TMOD=0X01;//模式设置
	TR0=0; //开定时器
	ET0=1; //启定时器
	EA=1; //全局中断开关
}
void jishi()//计时
{
	if(Js==10)//100毫秒
	{
		if(++hm==10){hm=0;++miao;}else;
		if(miao==10)miao=hm=0;else;
		Js=0;
	}else;
}
void main()
{
	unsigned char JZhi=0;
	ZhongDuanSheZhi();
	while(1)
	{
		smxs(miao,2,0);smxs(hm,1,1);//数码管驱动
		if(hm==9&&miao==9)TR0=0;else;//计数满停止定时器
		jishi();
		if(!k0&&!++JZhi){TR0=1;while(!k0);}//按键消抖等待释放处理启动定时器
		if(!k1&&!++JZhi){Js=miao=hm=0;while(!k1);}//清零停止定时器
	}
}
void ZhongDuan() interrupt 1
{
	++Js;
	TH0+=(65536-9216)/256;/*定时器赋初值,定时10ms触发中断,自动补偿方式*/
	TL0+=(65536-9216)%256;      
}

单片机定时器模拟信号灯-嵌入式-CSDN问答
关于#单片机#的问题:求在P1.0引脚接有虚拟示波器,观察P1.0引脚输出的矩形脉冲波形-嵌入式-CSDN问答

单片机外部中断实验(写程序)-嵌入式-CSDN问答

相关推荐
coderhuo几秒前
浅析elf中的.bss和.data
c语言
C语言小火车18 分钟前
【C语言】贪吃蛇小游戏 丨源码+解析
c语言·开发语言·课程设计·c语言游戏·贪吃蛇源码
iCxhust1 小时前
一款复古的Intel8088单板机制作
开发语言·单片机·嵌入式硬件
IMPYLH2 小时前
Python 的内置函数 hasattr
笔记·python
moxiaoran57533 小时前
uni-app项目实战笔记17--获取系统信息getSystemInfo状态栏和胶囊按钮
笔记·uni-app
饕餮争锋3 小时前
设计模式笔记_创建型_单例模式
java·笔记·设计模式
teeeeeeemo3 小时前
Number.toFixed() 与 Math.round() 深度对比解析
开发语言·前端·javascript·笔记
2401_888859715 小时前
STM32 CAN简介及帧格式
stm32·单片机·嵌入式硬件
东芝-铠侠-技术王工5 小时前
TB62211FNG是一款采用时钟输入控制的PWM斩波器的两相双极步进电机驱动器
单片机·嵌入式硬件