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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2104|回復(fù): 5
收起左側(cè)

51單片機(jī)程序怎么讓void main()里同時進(jìn)行?

[復(fù)制鏈接]
ID:923529 發(fā)表于 2022-5-26 01:16 | 顯示全部樓層 |閱讀模式
代碼如下,這是一個光立方的程序。第一層亮了有短暫的延遲第二層才亮,然后到第三次第四層,有沒有什么辦法讓四層同時亮。

單片機(jī)源程序如下:
#include <reg52.h>
#define uchar unsigned char        
#define uint unsigned int         

sbit SH_CP1 = P1^0;                          //第一層引腳
sbit DS1 = P1^1;
sbit ST_CP1 = P1^2;

sbit SH_CP2 = P1^3;                          
sbit DS2 = P1^4;
sbit ST_CP2 = P1^5;         

sbit SH_CP3 = P1^6;                          //第二層引腳
sbit DS3 = P1^7;
sbit ST_CP3 = P2^0;

sbit SH_CP4 = P2^1;                          
sbit DS4 = P2^2;
sbit ST_CP4 = P2^3;         

sbit SH_CP5 = P2^4;                          //第三層引腳
sbit DS5 = P2^5;
sbit ST_CP5 = P2^6;

sbit SH_CP6 = P2^7;                          
sbit DS6 = P3^0;
sbit ST_CP6 = P3^1;         

sbit SH_CP7 = P3^2;                          //第四層引腳
sbit DS7 = P3^3;
sbit ST_CP7 = P3^4;

sbit SH_CP8 = P3^5;                          
sbit DS8 = P3^6;
sbit ST_CP8 = P3^7;         

uchar a1[] = {0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xff,};   //十六進(jìn)制轉(zhuǎn)二
uchar a2[] = {0x06,0x06,0x06,0x06,0x06,0x06,0x06,0xff,};  
uchar b1[] = {0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xff,};   
uchar b2[] = {0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0xff,};

void delay (uint x)
{
while(x--);
}                                                                 
void in595(uchar temp)
{
uchar i;
for(i = 0;i < 8;i ++)
{
temp <<= 1;

DS1 = CY;                  //第一層
DS2 = CY;
SH_CP1 = 0;
SH_CP2 = 0;
SH_CP1 = 1;
SH_CP2 = 1;
DS3 = CY;                  //第二層
DS4 = CY;
SH_CP3 = 0;
SH_CP4 = 0;
SH_CP3 = 1;
SH_CP4 = 1;
DS5 = CY;                  //第三層
DS6 = CY;
SH_CP5 = 0;
SH_CP6 = 0;
SH_CP5 = 1;
SH_CP6 = 1;
DS7 = CY;                  //第四層
DS8 = CY;
SH_CP7 = 0;
SH_CP8 = 0;
SH_CP7 = 1;
SH_CP8 = 1;
}
}
void out595()
{
ST_CP1 = 0;                                //第一層
ST_CP1 = 1;
ST_CP2 = 0;
ST_CP2 = 1;
ST_CP3 = 0;                                 //第二層
ST_CP3 = 1;
ST_CP4 = 0;        
ST_CP4 = 1;
ST_CP5 = 0;                                 //第三層
ST_CP5 = 1;
ST_CP6 = 0;
ST_CP6 = 1;
ST_CP7 = 0;                                 //第四層
ST_CP7 = 1;
ST_CP8 = 0;
ST_CP8 = 1;
}

void main ()
{
uchar i;
while(1)
{
for(i = 0;i < 8;i ++)
{
in595(~a1[ i]);                                                            //第一層前8個燈
ST_CP1 = 0;
ST_CP1 = 1;
in595(~a2[ i]);                                                      //第一層后8個燈
ST_CP2 = 0;
ST_CP2 = 1;        
in595(~b1[ i]);                                                          //第二層前8個燈                                         
ST_CP3 = 0;
ST_CP3 = 1;
in595(~b2[ i]);                                                     //第二層后8個燈
ST_CP4 = 0;
ST_CP4 = 1;        
in595(~b1[ i]);                                                          //第三層前8個燈        
ST_CP5 = 0;
ST_CP5 = 1;                                 
in595(~b2[ i]);                                                     //第三層后8個燈
ST_CP6 = 0;
ST_CP6 = 1;
in595(~a1[ i]);                                                            //第四層前8個燈
ST_CP7 = 0;
ST_CP7 = 1;
in595(~a2[ i]);                                                      //第四層后8個燈
ST_CP8 = 0;
ST_CP8 = 1;                                                
}
}
}
回復(fù)

使用道具 舉報

ID:125436 發(fā)表于 2022-5-26 08:49 | 顯示全部樓層
加個硬件電路電源控制
回復(fù)

使用道具 舉報

ID:125436 發(fā)表于 2022-5-26 08:50 | 顯示全部樓層
增加使能控制
回復(fù)

使用道具 舉報

ID:161164 發(fā)表于 2022-5-26 11:09 | 顯示全部樓層
既然DS和CP都是同一動作
為啥不直接用兩根IO并聯(lián)8個595各自的DS和CP腳?
回復(fù)

使用道具 舉報

ID:923529 發(fā)表于 2022-5-26 12:52 | 顯示全部樓層
lkc8210 發(fā)表于 2022-5-26 11:09
既然DS和CP都是同一動作
為啥不直接用兩根IO并聯(lián)8個595各自的DS和CP腳?

后面還有添加別的效果
回復(fù)

使用道具 舉報

ID:230742 發(fā)表于 2022-5-26 14:56 | 顯示全部樓層
建議還是換一種思路吧。595是可以級聯(lián)的。計算好發(fā)送數(shù)據(jù)的順序就好。
不要質(zhì)疑595的刷新速度,絕對比眼睛快。
多搜索看看廣告牌的驅(qū)動電路圖。很多用595的。
http://m.raoushi.com/bbs/dpj-219890-1.html
參考一下。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表