欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1402|回復: 2
打印 上一主題 下一主題
收起左側

剛學單片機這個程序可以幫忙注釋一下嗎?

[復制鏈接]
跳轉到指定樓層
樓主
ID:834445 發表于 2020-10-25 20:25 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
#include<reg52.h>
#define uint unsigned int
void delay7ms(void)   //誤差 -0.217013888891us
{
    unsigned char a,b;
    for(b=208;b>0;b--)
        for(a=14;a>0;a--);
}
void delay2ms(void)   //誤差 -0.217013888889us
{
    unsigned char a,b;
    for(b=80;b>0;b--)
        for(a=10;a>0;a--);
}

void main(void)
{
uint led[10]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint m,n=0,a=0;
for(m=0;m<=10;m++)
{
while(a<30)
  {
    if(m==10)
    {
  m=0;
     n++ ;
     if(n==10)
     n=0;
}
   P0=led[m];
   P2=0x40;
   delay7ms();
   P2=0x00;
   delay2ms();
   P0=led[n];
   P2=0x80;
   delay7ms();
   P2=0x00;
   delay2ms();

a++;
  }
   a=0;
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

板凳
ID:387641 發表于 2020-10-26 11:27 | 只看該作者
#include<reg52.h>
#define uint unsigned int
void delay7ms(void)   //延時7m函數
{
    unsigned char a,b;
    for(b=208;b>0;b--)//循環208次
        for(a=14;a>0;a--);//循環4次
}
void delay2ms(void)   //延時函數
{
    unsigned char a,b;
    for(b=80;b>0;b--)//循環80次
        for(a=10;a>0;a--);//循環10次
}

void main(void) //運行主函數
{
uint led[10]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數組變量
uint m,n=0,a=0;};//變量

for(m=0;m<=10;m++) ;};//循環10次
{
while(a<30)//如果a大于30不運行括號內代號
  {
    if(m==10)
    {
  m=0;
     n++ ;
     if(n==10)
     n=0;
}
   P0=led[m];//P0=數組變量其中一個
   P2=0x40;//P2=0x40
   delay7ms();//延時
   P2=0x00;//
   delay2ms();//延時
   P0=led[n];//P0=數組變量其中一個
   P2=0x80;//
   delay7ms();//延時
   P2=0x00;
   delay2ms();//延時

a++; //A加1
  }
回復

使用道具 舉報

沙發
ID:97554 發表于 2020-10-26 09:56 | 只看該作者
#include<reg52.h>     //頭文件,沒啥好說的。
#define uint unsigned int     //程序中用uint代替unsigned int,簡化定義無符號整數型變量
void delay7ms(void)   //誤差 -0.217013888891us   //延時函數,這個根據晶振計算,他這個誤差不一定就準確。
{
    unsigned char a,b;
    for(b=208;b>0;b--)
        for(a=14;a>0;a--);
}
void delay2ms(void)   //誤差 -0.217013888889us  //一樣的延時函數,至于怎么延時,就是看下邊的那個循環,計算a-十次,b-1次,就這樣進行80次a-1減十次,也就是讓CPU完成800次計算來打發時間,上邊的一樣,VIOD在具體使用中會換成整數值,與那800次相乘就是浪費的總共時間---延時。
{
    unsigned char a,b;
    for(b=80;b>0;b--)
        for(a=10;a>0;a--);
}



void main(void)   //主函數,程序從此開始。
{
uint led[10]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};   //做一個名字為led的數據表[10]表示這個表里總共有十個元素,確定里邊元素的序號。第一個元素為0XC0   表示輸出的時候PIO輸出的1 1 0 0 0 0 0 0,依次。


uint m,n=0,a=0; // 定義m , n , a ,三個無符號整數型變量,且n,a初始值為0


for(m=0;m<=10;m++)     //m初始值為0,進行自加運算,和下邊那句M==10 M=0那段一起表示,初始為0  依次+1,加到10了歸0,也就是m從0--1.
{


while(a<30)
  {
    if(m==10)
    {
  m=0;     
     n++ ;
     if(n==10)
     n=0;
}

   P0=led[m];   //P0口依次取uint led[10]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; 表里的十個數據,
   P2=0x40;      //P2口電平狀況為 0 1 0 0 0 0 0 0   P2^6=1;
   delay7ms();   //延時
   P2=0x00;      //P2口電平全部為0
   delay2ms();   //延時
   P0=led[n];     //P0口依次取uint led[10]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; 表里的十個數據,因為N也是從0--10,他是在M到10后開始從1開始數,也就是M顯示完了開始顯示N的數。
   P2=0x80;     //P2口電平為1 0 0 0 0 0 0 0         P2^7=1;
   delay7ms(); //延時
   P2=0x00;    //P2口全部置0.
   delay2ms();  //延時

a++;                    //a自加,這個變量定義的a最大值是30,所以,上邊的顯示循環30次   while(1)
  }
   a=0;      
}
}



回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表