❶ 單片機c語言編程讓二極體移動亮然後依次靜止亮最後全都亮怎樣做
哥們專門給你寫的,記得加分啊!
#include<reg52.h>
#include<intrins.h>
#define uint unsigned
#define uchar unsigned
void delayms(uint);
uchar aa;
void main()
{
uint i,j;
aa=0xfe; //這里選LED燈為共陽接法
for(i=0;i<8;i++)
{
P1=aa;
delayms(500);
aa=_crol_(aa,1); //調用頭文件intrins.h,循環左移
} //LED燈動態點亮
aa=0xfe;
for(j=0;j<8;j++)
{
P1=aa; //LED燈依次點亮
delayms(500);
aa=aa<<1;
}
while(1); //最後全保持亮
}
void delayms(uint ms)
{
uint x,y;
for(x=ms;x>0;x--);
for(y=110;y>0;y--);
}
調試ok,模擬ok!
樓下的兄弟們有懂單片機串口編程的?要實戰的,關於通信協議的還請詳細講講,大家也學習則個!
❷ 如何用單片機實現流水燈,從一依次亮到八,再從八依次亮
單片機流水燈C語言程序的源代碼如下:
#include //51系列單片機定義文件。
#define uchar unsigned char //定義無符號字元。
#define uint unsigned int //定義無符號整數。
void delay(uint); //聲明延時函數。
硬體特徵
1、單片機的體積比較小, 內部晶元作為計算機系統,其結構簡單,但是功能完善,使用起來十分方便,可以模塊化應用。
2、單片機有著較高的集成度,可靠性比較強,即使單片機處於長時間的工作也不會存在故障問題。
3、單片機在應用時低電壓、低能耗,是人們在日常生活中的首要選擇, 為生產與研發提供便利。
❸ 實現單片機信號燈1-8依次循環點亮的程序怎麼寫
電路很簡單八個led燈接在p1口.運行後看到的效果是 從第一個燈開始 隨著時間變化 二進制數的遞減 所有的燈都會依次的點亮,當全部的燈都被點亮後再重新開始這個過程 一直循環下去 單片機是不是很有趣?
下面是c語言程序源碼
#include <reg51.h>
void delay100ms(); //如果函數是在主函數後面定義,那麼一定要在主函數前面聲明
void main()
{
int i;
i=0xfe;
while(1)
{P1=i;
i--;
delay100ms();
if(i==0)
i=0xfe;
}
}
void delay100ms(void)//
{
unsigned char a,b,c;
for(c=19;c>0;c--)
for(b=20;b>0;b--)
for(a=230;a>0;a--)
❹ 單片機怎麼依次點亮十六個指示燈
最簡單的方式,但是不是常用的方式:
16個燈分別接PA,PB口; 另一端接地。
程序思路:
首先給2個IO口都清零,然後按次序給這些IO口賦值。 主意用位操作,如果不會位操作,可以考慮笨方式,PA=1,3,7,15 用這樣的遞增規律給某一個埠賦值,後面一樣。這樣沒有驅動 當燈全點亮時候可能不是很亮了。
❺ 51單片機流水燈依次點亮循環兩次怎麼實現只循環兩次!
#include<reg52.h> // 這是下圖的程序,可以模擬 試試
#define uchar unsigned char
#define uint unsigned int
uchar i,t;
uchar code table[]={0xf6,0xed,0xdb,0xf6,0xed,0xdb}; // 發光二極體循環點亮可以有很多方法
uchar code tabled[]={0xaa,0x55,0xaa,0x55,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void delay(uint z) // 延時程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
t=30;
while(1)
{
t++;
if(t==100) t=10;
for(i=0;i<20;i++) // 發光二極體 循環亮
{
P1=tabled[i];
delay(250); // 調用延時程序
}
}
}
❻ 如何用單片機實現流水燈,從一依次亮到八,再從八依次亮回一,一直循環
有個想法, 放一個位元組LED做標志位,可位定址。 每一位代表一個燈。
對位元組LED附初值1,做一個200mS的時鍾,每200ms對位元組LED值做左移1位指令(匯編可循環)。
主程序中位定址判斷位元組LED的bit(0-7)點亮相應的燈。或者直接P0=LED
純想法、還沒試過,感覺好玩,呵呵。 好像上述燈流的方式不對,不過可以改。。。
❼ 51單片機數碼管如何依次點亮
51單片機數碼管依次點亮:選擇數碼管操作稱為位選,根據自己的開發板原理圖找到位選對應的管腳,以共陰極為例。要在編程時執行選中操作,只要給對應管腳低電平即可。段選同樣。如果每個單獨連接佔用管腳太多,很浪費硬體資源,所以採用多位串聯控制。
數碼管通常有兩種不同的接法,共陰極和共陽極,共陰極顧名思義就是講八個二極體的陰極連接在一起,這樣根據二極體導通原理,通過控制不同二極體陽極電平就可以控制數碼管顯示不同的數字。單個數碼管是由八個發光二極體連接而成,通過控制不同led點亮,可以使之顯示不同的數字。
注意區分兩個概念即段選和位選;位選指數碼管對應的位,例如圖共有八個數碼管,位選就是選中哪一個數碼管操作,段選則是控制數碼管顯示什麼數字。靜態顯示為了縮短代碼長度,一般都是採用匯流排式編程,顯示數字共陰共陽互為反。
❽ 單片機C語言,將8個燈依次點亮(被點亮的繼續亮),然後再依次熄滅,(在沒有熄滅完時熄滅的保持滅)
其次,我建議還是自己嘗試寫一寫,這個不難,我給你個思路
首先定義變數類似於P1_2 = P1^2這種,先把這八個管腳全部定義好,之後給個for循環,讓P1(假設的你LED燈連接的是P1口)口的P1^0~P1^7相關標志位依次等於0或者1(0還是1需要看你在LED等上給的是高電位亮還是低電位亮),之後再給個for循環,五次的循環,全部P1口置為1(假設高電平LED亮),之後設置P1口全為1,再讓P1口的相關標志位置為0,再置為0的時候可以加個延時
❾ 由52單片機的一個埠控制兩排二極體,並依次點亮它們,就是第一排依次點亮,然後第二排接著點亮,匯編怎麼
如果每排4個共8個就很簡單了。也不知道你說的2排是幾個,假設每排8個,2排16個。
首先把每8個發光二極體的負極焊接在一起,就可以焊接出來2排,把一排的8個正極分別焊接在一個埠(比如p0口)的8個引腳上,再把另一排的8個正極也分別焊接在這個埠(p0)的8個引腳上,這樣,p0口的每個引腳焊接了2個二極體的正極,每排各一個。再把2排的2個負極焊接在另外一個埠的2個引腳上(比如P1.0和P1.1),用於選擇排通。當需要第一排點亮時,負極選通第一排(P1.0為低,P1.1為高)。當需要第二排點亮時,負極選通第二排(P1.0為高,P1.1為低)。
❿ 實現單片機信號燈1-8依次循環點亮的程序怎麼寫
把各個花樣寫在子函數,中斷中對變數加1,在判斷是否大於5,大於5就對變數清零。因為你要5種花樣。主函數判斷變數的值,1時執行從左到右依次點亮,2時執行從左到右逐個依次熄滅。依次下去