51微控制器流水燈問題用c語言用到光感測器

2022-09-03 04:26:50 字數 3624 閱讀 3844

1樓:匿名使用者

當手滑到感測器1時,用定時器進行計時,超過你設定的時間,視為這次無效,不亮燈不就行了

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

2樓:

我給你個簡單的例子:

#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 被點亮。如此類推,大家不難算

出自己想要做的效果了。

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

3樓:匿名使用者

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

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

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

4樓:

#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口.....

參考資料

c51微控制器獨立按鍵控制流水燈小問題,求助大神看看我的程式錯在了**?用c語言,開關開啟後流水燈一直亮

5樓:匿名使用者

麻煩你把想要實現的功能表述清楚,按照你的程式,你的按鍵無論按否,流水燈都是亮的。

6樓:nm灰灰

主程式中delay太長了

7樓:匿名使用者

while(1) 這前面的while(1)根本不會退出,也就是不會執行下面的if(key1 == 0)的語句了,...

更多關於c51微控制器

51微控制器流水燈用c語言編寫的設計程式???

8樓:匿名使用者

其實很簡單

就是用_cror_()函式或者 _crol_()函式,第一個是右移第二個是左移

9樓:zui依然

#include

#include

#define uchar unsigned char#define uint unsigned intvoid delay(uint z);

main()}}

void delay(uint z)

51微控制器c語言對流水燈程式設計,用定時中斷做

10樓:安全管理人

#include

#define uchar unsigned charuchar m=0,i=0;

void main()

void timer0() interrupt 1{th0=(65536-50000)/256;

tl0=(65536-50000)%256;

m++ ;

if(m==5) //12m晶振   定時5*50ms=250ms{m=0;

p1=~(0x01<

[補充]

延時函式是一種粗略計算延時時間的函式

是通過讓微控制器執行空指令,達到等待延時的目的。

經常被應用在對延時時間要求不太嚴格的場合。

而定時器中斷,則是通過對晶振時鐘進行計數

由於晶振的頻率一般是很穩定的,所以晶振的脈衝頻率基本穩定從而通過對脈衝進行計數即可得到準確的延時目的。

中斷延時函式和定時器中斷延時沒有明確的對應關係。

主要是根據你的應用場合來確定使用哪種函式。

11樓:

// 寫了個測試程式,希望對你有幫助

#include

#define uchar unsigned charuchar m=0,i=0;

void main()

void timer0() interrupt 1}

12樓:匿名使用者

把具體要求說清楚後,我才好把按照要求寫的程式貼出來

51微控制器,有8個流水燈,每個之間延遲1秒,這個延遲用c程式編寫怎麼寫

13樓:匿名使用者

要看你的時鐘週期,如果是12mhz的話,每個時鐘週期mc=6*2/12 m =1us,所以延遲是讓機器計數1000000下,上面那個公式你自己套用24mhz的就是2000000下。c語言的迴圈次數你自己算,每條指令一個週期,所以樓上的程式在12mhz下是1s延遲。

14樓:匿名使用者

呼叫delay()函式

其中x,y的最大數字根據除錯結果做修改,很長時間沒寫了。。。。

void delay()

15樓:匿名使用者

寫個for迴圈 在除錯下就行了

16樓:匿名使用者

去網上下一個微控制器 小精靈 只要你輸入 晶振頻率就能夠給出準確的延時程式 ,記得下破解的哦。

**等 用c語言程式設計 實現51微控制器其中一個埠控制八個流水燈依次點亮,

17樓:超哥

#include

#include<

#define uchar unsigned char#define uint unsigned intuchar led=0xfe;

void delay(void)

}tr1=0;

}void left(void)

void main(void)

18樓:匿名使用者

#include

void delay(long int t)}}}void main() //假設低電平有效}}ok了,樓主這個沒問題了

用c51微控制器控制12個led流水燈的c語言程式怎麼寫?

19樓:

斯帝國乘八國聯軍侵華戰爭之機,出兵侵佔我國東北全境。中俄兩國

51微控制器彙編控制流水燈,51微控制器中如何用組合語言編寫流水燈

用rl a 他是左移補零的,你rlc a 是把最高位放在psw的c中,再左移,c再放在最低位.而rl是不經過c的。左移後低位補零,你把rlc換成rl就可以了 org 0000h ljmp start org 0030h start mov a,0feh mov r2,8 output mov p1,...

51微控制器程式設計,用C語言,51微控制器程式設計時彙編和C語言如何結合?

給你一個矩陣鍵盤的參考程式 行列掃描 通過高四位全部輸出低電平,低四位輸出高電平。當接收到的資料,低四位不全為高電平時,說明有按鍵按下,然後通過接收的資料值,判斷是哪一列有按鍵按下,然後再反過來,高四位輸出高電平,低四位輸出低電平,然後根據接收到的高四位的值判斷是那一行有按鍵按下,這樣就能夠確定是哪...

求51微控制器c語言教程 ,求51微控制器c語言教程 pdf

微控制器學習方法 網上微控制器資料很多 你上csdn上找吧 那上面多的是 這個網上的太多了。你搜一下,有很多 的。這種東西多得很,你應該先搜搜再提問 急求郭天祥 新概念51微控制器c語言教程 入門 提高 開發 拓展全攻略 pdf 這是郭天祥這本書最完整的pdf,是整本的,不是一部分。望採納 從入門到...