【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问答

相关推荐
TangDuoduo00054 小时前
【常见传感器原理及应用】
单片机·嵌入式硬件
断剑zou天涯9 小时前
【算法笔记】窗口内最大值或最小值的更新结构
java·笔记·算法
Naiva10 小时前
【小技巧】Microchip 把 MPLAB X IDE工程编码改成 UTF-8
笔记
薛慕昭12 小时前
嵌入式 C 语言猜大小游戏设计与实现
c语言·游戏
月光技术杂谈13 小时前
实战:C驱动框架嵌入Rust模块的互操作机制与完整流程
c语言·开发语言·rust·ffi·跨语言·bindgen·互操作
码途进化论14 小时前
用AI当嘴替、优雅终结技术争论!
经验分享
im_AMBER14 小时前
Leetcode 59 二分搜索
数据结构·笔记·学习·算法·leetcode
q***064714 小时前
SocketTool、串口调试助手、MQTT中间件基础
单片机·嵌入式硬件·中间件
合作小小程序员小小店14 小时前
游戏开发,桌面%小游戏,贪吃蛇%demo,基于vs2022,c语言,easyX,无数据库
c语言·开发语言
天殇凉15 小时前
AC自动机学习笔记
java·笔记·学习