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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1705|回復: 5
收起左側

初學單片機,請問一個延時的問題

[復制鏈接]
ID:1033105 發表于 2022-8-8 10:31 | 顯示全部樓層 |閱讀模式
#include <STC11F.h>
#define uint unsigned int
#define uchar unsigned char
#include "intrins.h"

sbit ge=P3^5;
sbit shi=P3^4;                        
sbit bai=P3^3;



uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,
                    0x92,0x82,0xf8,0x80,0x90,};  

uint num;
                                                                                                               
void delay(uint);
       
void main(void)
{

              uint i;

        while(1)
        {

                {
                                                                                                P3=0xff;
                                                                              P1=0xff;
                                                                              delay(2);
                                                                              bai=0;
                        P1=table[num/100];
                                                                              delay(15);

                                                                       
                }

                {
                        P3=0xff;
                                                                              P1=0xff;
                                                                              delay(2);
                                                                              shi=0;
                                                                                                P1=table[num/10%10];//送個位段碼                     
                                                                              delay(15);
                                                                             

                }
                                                                {
                        P3=0xff;
                                                                              P1=0xff;
                                                                              delay(2);
                                                                              ge=0;
                                                                                                P1=table[num%10];                     
                                                                              delay(15);
                                                                             

                }
                                                                i++;
                if(i==100)                   //大概是1秒
                {      
                        i=0;
                        num++;
                        if(num>1000)
                        {
                                num=0;
                        }
                }

                delay(1);                //延時約1ms,以此控制主循環周期
        }
}
void delay(uint xms)  //延時函數
{                                               
        uint i,j;
        for(i=xms;i>0;i--)
                for(j=110;j>0;j--);
}

回復

使用道具 舉報

ID:1033105 發表于 2022-8-9 13:39 | 顯示全部樓層
不會編輯,下文沒接上,我重新試試
回復

使用道具 舉報

ID:1033105 發表于 2022-8-9 13:40 | 顯示全部樓層
初學51,只學到了延時函數階段,這個是我按照我的理解寫的一個三位數碼管999倒計時,其中自增加部分是是抄前輩的,

                                                        i++;
                if(i==100)                   //大概是1秒
                {      
                        i=0;
                        num++;
                        if(num>1000)
                        {
                                num=0;
                        }

就是這一段有點不能理解,i==100是如何延時的,按我的理解這個要寫成
{
num=0,num<1000,num++;
delay(1000);
if(num=1000);
num=0;
}
每一秒鐘num自加一,直到滿1000,然后歸0.
回復

使用道具 舉報

ID:397008 發表于 2022-8-10 16:55 | 顯示全部樓層
這個i要進這個函數void delay(uint xms)  //延時函數;
void delay()  //延時函數
{                                               
        uint i,j;
        for(i=100;i>0;i--)
                for(j=110;j>0;j--);
}
這樣去理解
回復

使用道具 舉報

ID:161164 發表于 2022-8-10 17:54 | 顯示全部樓層
看代碼不能斷章取義
你的代碼可以簡化為

  1. while(1)
  2. {
  3.         i++;
  4.         if(i==100)                   //大概是1秒
  5.         {
  6.                 i=0;
  7.                 num++;
  8.         }
  9.         delay(1);//延時約1ms,以此控制主循環周期<<<<<<<<<<<<<<<<<<<<<<<<<<<
  10. }
復制代碼

這樣看的出如何延時的吧?

回復

使用道具 舉報

ID:1033105 發表于 2022-10-22 17:04 | 顯示全部樓層
感謝兩位老師的指點,是我理解片面了,要從總局來看這個。再次感謝兩位老師。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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