高分 89C51微控制器流水燈程式求步驟詳解,看懂了就給分

時間 2022-02-01 20:26:29

1樓:匿名使用者

//這是一個花樣流水燈控制程式,主程式沒有,由陣列值來控制#include //提供基本的51微控制器埠定義#include //這個標頭檔案主要提供移位控制函式#define uchar unsigned char#define uint unsigned intuchar code display_p0=;

uchar code display_p2=;

void delayms(uint ms) //延時程式,這裡不全。

// 延時子程式

{uchar k;

while(ms--){

2樓:匿名使用者

uchar code display_p0=;//全滅→全亮→全亮→全滅→全滅

uchar code display_p2=;

3樓:巨季雅

看不懂,

你這僅僅是一段資料

還有一個不完整的延時子函式

連個主函式也沒有

沒人能看懂,

但是我卻明白你可能要表達的意思

其實,同學,你用這種查表方式實現的流水燈,程式結構不太好我認為還是用迴圈,移位等辦法ok

4樓:匿名使用者

沒找到主函式~~ 陣列裡面寫的是你想讓跑馬燈的跑法~~

51微控制器流水燈程式解析,求大神指導,本人是初學者。

5樓:匿名使用者

要看二進位制的資料0xfe = 1111 1110,對應到p0口的每個引腳,就是0亮,其他滅,0x01= 0000 0001

6樓:孫毅超

首先,樓主要搞清楚p口的值與p口每一個輸出端的關係,也即樓上所說的,要轉換成二進位制來看,資料0xfe = 1111 1110中的每一個1或0對應一個埠的高或低電平;其次樓主要結合電路圖led的接法與微控制器埠的屬性,搞清楚是1使得燈亮還是0使得燈亮;最後樓主要知道函式_crol_(p0,1)的作用,它是將p0的值迴圈左移後,即比如原來p0為1111 1110,迴圈左移後為1111 1101,再賦值給p0,你如果給p0一開始設定的初值為0x00,那當然不論怎麼迴圈都是0x00,沒有流水燈的效果。

51微控制器16路流水燈怎麼用c語言寫,並求每個步驟的講解

7樓:

我給你個簡單的例子:

#include //預處理檔案裡面定義了特殊暫存器的名稱如p1 口定義為p1

void main(void)

;unsigned int a; //定義迴圈用的變數

unsigned char b; //在c51 程式設計中因記憶體有限儘可能注意變數型別的使用

//儘可能使用少位元組的型別,在大型的程式中很

受用do

}while(1);

}程式中的花樣資料可以自以去定義,因這裡我們的led 要at89c51 的p1 引腳為低電平才

會點亮,所以我們要向p1 口的各引腳寫資料o 對應連線的led 才會被點亮,p1 口的八個引

腳剛好對應p1 口特殊暫存器的八個二進位,如向p1 口定資料0xfe,轉成二進位制就是

11111110,最低位d0 為0 這裡p1.0 引腳輸出低電平,led1 被點亮。如此類推,大家不難算

出自己想要做的效果了。

留個郵箱給你發個入門文件

8樓:匿名使用者

這個沒有0實驗板原理圖,沒法寫哈。

大概就是先定義一下管腳,再向管腳寫ff或00初始化。再把第一個燈點亮,再關掉第一個燈,再點亮第二個燈。。。 。。。把它放在do迴圈裡就ok了,

熟練了後,加個for迴圈簡化一下程式,設幾個變數就行了。

9樓:

#include "reg52.h"

#include "intrins.h"

void delay(unsigned int t)}}void main(void)

temp=0x7f;

for(num2=0;num2<8;num2++)temp=0xfe;

for(num1=0;num1<8;num1++)temp=0x7f;

for(num2=0;num2<8;num2++)}}

16個二極體分別接到p0口和p1口.....

參考資料

用at89c51微控制器控制8個led的流水燈的c程式看不懂

10樓:休閒居大偉

#include包含微控制器專用標頭檔案

#include這個是什麼俺也不知道,但這個程式不需要這個標頭檔案void delay10ms(unsigned int c); 自定義的延時函式宣告

main() 主函式}}void delay10ms(unsigned int c)延時函式主程式}}

給你翻譯了,希望能幫到你

11樓:

如果你連這個都看不懂 建議放棄

12樓:匿名使用者

理解就ok了 再仔細分析哦~~

微控制器流水燈c語言程式(8個燈,依次點亮每個燈,延時500ms)

13樓:小夏在深圳

微控制器流水燈c語言程式的源**如下:

#include //51系列微控制器定義檔案#define uchar unsigned char //定義無符號字元

#define uint unsigned int //定義無符號整數

void delay(uint); //宣告延時函式void main(void)

temp=0x80;

for(i=0;i<8;i++) //8個流水燈反向逐個閃動temp=0xfe;

for(i=0;i<8;i++) //8個流水燈依次全部點亮temp=0x7f;

for(i=0;i<8;i++) //8個流水燈依次反向全部點亮void delay(uint t) //定義延時函式擴充套件資料51微控制器流水燈的源**如下

#include

#include

void delay(int a)

main()}}

14樓:

1、用精確定時的方法,設定流水燈執行時的時間間隔,延時時間為500ms。

2、#include "reg51.h"首先寫出微控制器的頭函式。

3、#include "intrins.h"輸入位移函式。

4、unsigned int count=0,led;定義函式。

5、輸入主函式,定義微控制器的埠,寫入延時函式。

6、中斷跳轉,使流水燈執行起來。

15樓:匿名使用者

#include //51系列微控制器定義檔案#define uchar unsigned char //定義無符號字元

#define uint unsigned int //定義無符號整數

void delay(uint); //宣告延時函式void main(void)

}} void delay(uint t) //定義延時函式

c語言c51微控制器花樣流水燈程式分析註釋

16樓:

和你說一句關鍵的(別告我你整個程式一句都看不懂):

p1=0xfe;

0xfe是十六進位制表示的數,二進位制就是1111 1110,通過你的程式和相關注釋可以看出,硬體上你有8個led燈連線p1口,且這些led是低電平亮。p1=0xfe(1111 1110)也就是表示七個燈滅,一個燈亮。接下來的**就是讓p1資料0xfe左移且低位補1,移一次就是1111 1101,、兩次就是1111 1011,三次是1111 0111。。。

以此類推,可以看出它是0由最低位到最高位依次移過去的,而剛說了0表示led亮,這也就是led從一邊到另一邊依次點亮的效果。

後面的**按我上面說的自己理解,完全對你解釋太麻煩,對你也沒多大好處,只有你自己理解了才能學好微控制器

80c51微控制器流水燈程式設計

17樓:匿名使用者

#include//51系列微控制器定義檔案#define uchar unsigned char //定義無符號字元

#define uint unsigned int //定義無符號整數

void delay(uint); //宣告延時函式void main(void)

}void delay(uint t) //定義延時函式這是**,具體你可以執行來看效果。

51微控制器實驗遇到問題,89C51微控制器實驗中遇到的一個問題

上的位選和段選都是一個串列埠出來的,只是用了兩個鎖存器,通過改變鎖存器的選擇來選擇是位選還是段選,你這圖不存在這個 一般只是在做數碼管的動態掃描才有位選和段選 include sbit dula p2 6 sbit wela p2 7 void main 不知你的電路如何定義的,姑且猜一下了 inc...

求一89c52微控制器c語言程式,流水燈 數碼管共同作用

士多啤梨啤 include define uint unsigned int define uchar unsigned char define led p3 uchar code tab unsigned char a,i unsigned long int temp void init void...

89C51微控制器輸出電流是多少,AT89S51微控制器I O口輸出電流及灌入電流各是多少

佯北勿從 51微控制器的io口每個引腳的電流驅動能力比較弱 拉電流 即微控制器引腳置高電平時對外輸出的電流,不超過1毫安。灌電流 即微控制器引腳置低電平時對外吸收的電流,不超過10毫安。這些都是教科書上那個微控制器的驅動電流,現在增強型51推輓輸出能達到20ma,具體還是看資料手冊。89c51是一種...