我要做一个80c51驱动两个数码管循环显示0-9,这个c语言的程序是什么意思?

2024-05-15

1. 我要做一个80c51驱动两个数码管循环显示0-9,这个c语言的程序是什么意思?

#include                                                        //包含头文件
#define uint unsigned int //定义整形变量                      
#define uchar unsigned char 
uchar sec=0;//***********初始化时间值
uchar count;
//***************************延时子程序***************************
void delay(uint i)                                                            //延时大约(1*t)ms
{
   uint j;
   for(;i>0;i--)
   for(j=0;j<125;j++);
}
//***************************初始化子程序***************************
void System_Init(void)                                                    //定时器初始化
{ 
   TMOD=0X01;//*************定时器0的工作方式1
   TH0=0X3C;                                                                  //TH0和TL0装入初值
   TL0=0XB0;
   ET0=1;                                                                        //打开定时器0中断开关
   EA=1;                                                                          //打开总中断
   TR0=1;                                                                        //启动定时器0
}
void display(uchar tmp)                                                  //数码管显示函数
{
P3=0xfe;                                                                        //选通第一个数码管,让它做好显示准备
P2=tmp;                                                                         //第一个数码管显示数据tmp
delay(1);                                                                         //延时越1ms

P3=0xfd;                                                                         //选通第二个数码管,让它做好显示准备
P2=tmp<<4;                                                                    //显示tmp左移4位后的数据
delay(1);                                                                         //延时约1ms
}
void main(void)                                                               //主程序
{ 
   System_Init();                                                              //调用定时器0初始化函数
   while(1)                                                                       //死循环
   {
 display(sec);	                                                                //送显sec变量     
   }
}
//***************************中断子程序*****************************
void Time(void) interrupt 1                                            //定时器0中断号为1
{
   TH0=0X3C;                                                                // 重装初值                       
   TL0=0XB0;
   count++;                                                                    //每过50us  count自增1
   if(count==20)                                                            //当count增到20,则1s时间到
   {
      count=0;                                                                //count清零
 sec++;                                                                        //sec自增1,这个变量代表1s
 if(sec==10)                                                               //当过去了10s时
 	sec=0;                                                                        //sec清零
   }
}
//***************************END************************************
建议在display()函数的每一个delay(1);后边加上P2=0;可以消除下一个数码管显示的鬼影
希望我的回答能帮助到你。

我要做一个80c51驱动两个数码管循环显示0-9,这个c语言的程序是什么意思?

2. x-0.7=0.51怎么解

x=0.7+0.51=1.21

3. 耗电量(千瓦时/24小时)0.51 是什么意思??

千瓦时/24小时 是0.51 ,就是表示24小时是0.51千瓦时,也就是0.51度的意思。

耗电量(千瓦时/24小时)0.51 是什么意思??

4. HP5200出现51.02什么意思

内存错误或激光器错误;
你是不是刚拆过机器?
以前我遇到过,我拆修一个5200激光器,结果也报ERROR 51.02
后来反复检查才发现激光器位置错了一点点;
如果你没有维修经验,建议你报修,请专业维修人员处理最好

5. BIOScpu温度62.6 ℉/+18℃是什么意思,还有主板显示是51.8 ℉/11.0℃

温度有点高啊,赶紧处理一下,涂抹硅脂,清理机箱灰尘,最好换个好点的风扇,cpu温度就是处理器发热的温度

BIOScpu温度62.6 ℉/+18℃是什么意思,还有主板显示是51.8 ℉/11.0℃

6. 51题加速度办什么是零?

他没选加速度为零啊

7. 钻石0.51 EVS1 3EX N GIA这个参数是什么意思啊?这样的钻石值多少钱啊?

就是钻石的分数是51分的。颜色E色。净度VS1。切工3ex。荧光无,是GIA证书的钻石。。正常点的价格差不多是14600。。商场或者品牌店做成戒指后的价格差不多会卖接近3万。。还有什么不懂的都可以直接百度hi我哈

钻石0.51 EVS1 3EX N GIA这个参数是什么意思啊?这样的钻石值多少钱啊?

8. p43.0主频显示1.51怎么办呀

主板降频使用CPU,主要因为你的DDR一代内存不够频率。