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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

[復制鏈接]
跳轉到指定樓層
樓主
ID:923529 發表于 2022-5-26 01:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
代碼如下,這是一個光立方的程序。第一層亮了有短暫的延遲第二層才亮,然后到第三次第四層,有沒有什么辦法讓四層同時亮。

單片機源程序如下:
#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,};   //十六進制轉二
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;                                                
}
}
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:125436 發表于 2022-5-26 08:49 | 只看該作者
加個硬件電路電源控制
回復

使用道具 舉報

板凳
ID:125436 發表于 2022-5-26 08:50 | 只看該作者
增加使能控制
回復

使用道具 舉報

地板
ID:161164 發表于 2022-5-26 11:09 | 只看該作者
既然DS和CP都是同一動作
為啥不直接用兩根IO并聯8個595各自的DS和CP腳?
回復

使用道具 舉報

5#
ID:923529 發表于 2022-5-26 12:52 | 只看該作者
lkc8210 發表于 2022-5-26 11:09
既然DS和CP都是同一動作
為啥不直接用兩根IO并聯8個595各自的DS和CP腳?

后面還有添加別的效果
回復

使用道具 舉報

6#
ID:230742 發表于 2022-5-26 14:56 | 只看該作者
建議還是換一種思路吧。595是可以級聯的。計算好發送數據的順序就好。
不要質疑595的刷新速度,絕對比眼睛快。
多搜索看看廣告牌的驅動電路圖。很多用595的。
http://www.zg4o1577.cn/bbs/dpj-219890-1.html
參考一下。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品国产免费一区二区三区 | 天天操伊人 | 久久美女视频 | 久久99精品久久久久久国产越南 | 国产成人高清在线观看 | 男女羞羞视频在线观看 | 99久久精品国产一区二区三区 | 国产在线观看网站 | 国产日韩欧美另类 | 粉嫩一区二区三区国产精品 | 精品久久久久久久人人人人传媒 | 日韩色在线 | 一区二区三区视频在线 | 9191在线观看 | 欧美aa在线 | 国产乱码精品一区二区三区忘忧草 | 91亚洲国产成人久久精品网站 | 精品国产一区二区国模嫣然 | 久久久久久久综合色一本 | 成人不卡在线 | 国产精品一区二区三区在线 | 黄色成人av| 91成人免费电影 | 国产精品美女 | 日韩精品一区二区三区视频播放 | 欧美国产精品一区二区 | av免费网址 | 国产在线精品一区二区 | 国产精品永久久久久久久www | 亚洲综合三区 | 亚洲国产精品一区二区第一页 | 国产精品久久久久久久久久久久久 | 亚洲国产一区二区三区四区 | 欧美一区二区大片 | 亚洲精品在线91 | 99精品国产一区二区三区 | 欧美日韩a| 久久久久91| 国产精品影视在线观看 | 久久er99热精品一区二区 | 久久男人 |