【51单片机先流水2秒后数码显示2秒后显示END】2022-9-5

缘由大一新生求解,救救孩子吧-嵌入式-CSDN问答

cpp 复制代码
#include "REG52.h"
sbit BEEP=P2^5;
unsigned char Js=0;
unsigned char code SmZiFu[]={63,6,91,79,102,109,125,7,127,111,121,55,94,0};//0-9END消隐.
void smxs(unsigned char mz, unsigned char w)
{
    unsigned char Xd=0;
    P0=255;
    P0=255-SmZiFu[mz];
    P2=w;
    while(++Xd);
}
void ZhongDuanSheZhi()
{
	TH0+=(65536-9216)/256;/*定时器赋初值,定时10ms触发中断,自动补偿方式*/
	TL0+=(65536-9216)%256;//12M晶振改为65536-10000
	TMOD=0X01;//16位定时器/计数器
	ET0=TR0=1; //启动定时器T0开启定时器。
	EA=1; //全局中断开关
}
void main()
{
	unsigned char p=0;
	unsigned long sm=123456,s=256;
	ZhongDuanSheZhi();
	P1=s;
    while(1)
    {
			if(p==0)P1=~s;
            else if(p>1&&p<4)
			{
				smxs(sm/100000,1);
				smxs(sm/10000%10,2);
				smxs(sm/1000%10,4);
				smxs(sm/100%10,8);
//				smxs(sm/10%10,16);//电路以4位数码管为例
//				smxs(sm%10,32);
			}
			else if(p==4){smxs(13,1);smxs(10,2);smxs(11,4);smxs(12,8);}
			if(s>1&&Js==50){s/=2;Js=0;}
			else if(Js==100)//秒
			{
				if(++p==4)TR0=0;
				Js=0;
			}
    }
}
void ZhongDuan() interrupt 1
{
	++Js;
	TH0+=(65536-9216)/256;
	TL0+=(65536-9216)%256;       
}
相关推荐
沐晓时光5 小时前
C语言入门,深入理解指针(3)
c语言·开发语言
fly_sunnn5 小时前
STM32-GPIO
stm32·单片机·嵌入式硬件
青绿蓝LCA低碳研究院5 小时前
FSLCI首次在印度举办会议,我们需要学习什么? · 青绿蓝
经验分享
qq_284274056 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
SuperByteMaster6 小时前
wfi进入之前没有清除basepri, 导致中断优先级不够,wfi 退不出来
c语言
qq_284274057 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
Navigator_Z7 小时前
LeetCode //C - 1286. Iterator for Combination
c语言·算法·leetcode
Titan20248 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
sbjdhjd8 小时前
云安全 | Docker 容器逃逸复盘(三):docker.sock 挂载与 Docker-in-Docker 风险
经验分享·网络安全·docker·云原生·容器·kubernetes·云安全
宵时待雨8 小时前
STM32基础1:嵌入式历史与生态
stm32·单片机·嵌入式硬件