久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2227|回復: 6
收起左側

怎么讓這幾個函數同時運行,求分析

[復制鏈接]
ID:840694 發表于 2020-11-8 19:23 | 顯示全部樓層 |閱讀模式
單片機源程序如下:
#include <reg52.h>
#include <stdio.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit LEDR=P1^0;//???
sbit LEDY=P1^1;//???
sbit LEDG=P1^2;//???
sbit DU = P2^6;
sbit WE = P2^7;
uchar  code tabel[]= {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,};
void delay (uint i)
{
uint x,y;                                      
for (x=0;x<i;x++)
for (y=0;y<110;y++);
}

void UARTInit()
{
        SM0 = 0;        SM1 = 1;
        TR1 = 1;
        TMOD |= 0x20;
        TH1 = 0xfd;
        TL1 = 0xfd;
}
uchar k;

void display(uchar i)
{
        uchar  shi, ge;
        shi = i % 100 / 10;        //236 % 100 / 10 = 3
        ge  = i % 10;//236 % 10 =6
                        
        P0 = 0XFF;
        WE = 1;
        P0 = 0XFE;
        WE = 0;
        
        DU = 1;
        P0 = tabel[shi];//
        DU = 0;
        delay(5);

        //???λ?????
        P0 = 0XFF;//???????
        WE = 1;//??λ???????
        P0 = 0XFD; //1111 1101
        WE = 0;//????λ?????
        
        DU = 1;//???????????
        P0 = tabel[ge];//
        DU = 0;//??????????
        delay(5);

}
//?????0?????
void timer0Init()
{
        TR0 = 1;         //????????0
        TMOD = 0X01; //???????????1??16λ???????????
        TH0 =(65535-46082 ) / 256;
        TL0 =(65535-46082 ) % 256; //???50ms
}

void main()


{

         UARTInit();
        {
                TI = 1;
                puts("?????");
                while(!TI);
                TI = 0;
                delay(15000);
                TI= 1;
                puts("?????");
                while(!TI);
                TI=0;
                delay(3000);
                TI=1;
                puts("?????");
                delay(10000);
                TI=0;
               }
LEDR=0;

{        
        uchar mSec, Sec;//????????????
        Sec=15;
        timer0Init();//?????0?????
        while(1)
        {
                if(TF0 == 1)//?ж???????
                {
                        TF0 = 0;//?????????????λ
                    TH0 =(65535-46082 ) / 256;
                        TL0 = (65535-46082) % 256; //???50ms               
                        mSec++;//50ms??
                        if(mSec == 20)
                        {
                                mSec = 0;                                
                                Sec--;//1?????
                        }                                       
                }
                display(Sec); //????????????
        }        
}
delay(12000);
LEDR=1;
LEDR=0;
delay(250);
LEDR=1;
delay(250);
LEDR=0;
delay(250);
LEDR=1;
delay(250);
LEDR=0;
delay(250);
LEDR=1;
delay(250);
LEDR=0;
delay(250);
LEDR=1;
delay(250);
LEDR=0;
delay(250);
LEDR=1;
delay(250);
LEDR=0;
delay(250);
LEDR=1;
delay(250);

LEDY=0;
delay(3000);
LEDY=1;
LEDG=0;
delay(10000);
for(k=0;k<3;k++);
{
LEDG=0;
delay(250);
LEDG=1;
delay(250);
LEDG=0;
delay(250);
LEDG=1;
delay(250);
LEDG=0;
delay(250);
LEDG=1;
delay(250);
LEDG=0;
delay(250);
LEDG=1;
delay(250);
LEDG=0;
delay(250);
LEDG=1;
delay(250);
LEDG=0;
delay(250);
LEDG=1;
delay(250);
}
}
回復

使用道具 舉報

ID:472390 發表于 2020-11-9 11:27 | 顯示全部樓層
程序不可能同時執行的,都是挨個執行。即使加入操作系統也是挨個執行,只是從宏觀上看好像是在并行執行而已。單片機推薦使用定時器設置不同的時間標志位,進行任務的分配。比如設置10毫秒的定時器時基,然后在定時器中用一個變量進行加加,當這個變量等于10或者20 的時候,設置一個標志位,在主函數中檢測這個標志位即可完成定時器對任務的分配。切記分配的函數執行時間不能超過設置的調度時間,否則調度任務將毫無意義。
回復

使用道具 舉報

ID:739545 發表于 2020-11-9 11:43 | 顯示全部樓層
已經在運行了,怎么叫同時運行,不知道表達什么意思
回復

使用道具 舉報

ID:626055 發表于 2020-11-9 15:38 | 顯示全部樓層
樓主想要多線程運行。
單片機中不得行哦。
回復

使用道具 舉報

ID:840694 發表于 2020-11-9 17:22 | 顯示全部樓層
江上遠帆 發表于 2020-11-9 11:27
程序不可能同時執行的,都是挨個執行。即使加入操作系統也是挨個執行,只是從宏觀上看好像是在并行執行而已 ...

有點明白了,謝謝
回復

使用道具 舉報

ID:840694 發表于 2020-11-9 17:23 | 顯示全部樓層
T_Trigger 發表于 2020-11-9 15:38
樓主想要多線程運行。
單片機中不得行哦。

哦哦,主要沒學過c,一直摸黑走路
回復

使用道具 舉報

ID:414556 發表于 2020-11-10 09:51 | 顯示全部樓層
要想“同時”就不要使用程序延時,延時用定時中斷處理就有“同時”的效果。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩国产精品激情在线播放 | 中文无吗| 日韩在线免费 | 国产色网站 | 日本精品一区二区三区在线观看视频 | 欧美xxxx做受欧美 | 日韩精品影院 | 欧美精品v国产精品v日韩精品 | 一区二区三区在线免费观看 | 欧美三级不卡 | 久久久久亚洲精品中文字幕 | 日本成人二区 | 女人牲交视频一级毛片 | 综合九九 | 亚洲综合一区二区三区 | 免费观看www7722午夜电影 | 99在线国产 | 亚洲精品一区二区三区四区高清 | 国产1页 | 精品欧美一区二区三区免费观看 | 亚洲福利在线观看 | 国产精品一区二区三区四区五区 | 欧美日韩精品免费 | 亚洲视频在线看 | 色婷婷综合久久久久中文一区二区 | 欧美日韩精品久久久免费观看 | 欧美一级片在线播放 | 成人精品久久日伦片大全免费 | 成人国产精品视频 | 91成人免费看 | 91精品久久久久久久久 | 国产福利在线免费观看 | 中文字幕亚洲视频 | 在线观看成人 | 亚洲视频中文字幕 | 亚洲高清在线观看 | 亚洲一区国产精品 | 日韩精品一区二区三区中文字幕 | 国产精品日日摸夜夜添夜夜av | 北条麻妃99精品青青久久 | 91在线视频精品 |