1樓:
1、同時去掉兩個delay,會導致led引腳的電平持續在0、1之間變化,變化頻率非常快,在mhz量級,導致的結果就是直接看不到燈閃爍,如果燈的初始狀態是滅的,則燈會基本看不到亮度。
2、見上一條,見不到閃爍。
3、去掉第一個delay,實際燈會持續表現出led=1指令的狀態,該狀態與硬體中led燈的控制端是接在陰極還是陽極有關;類似地,去掉第二個delay,實際燈會持續表現出led=1指令的狀態。
4、人眼能分辨的燈閃爍最快的情況應該在幾十hz左右,可以實際更改delay函式的值,進行測試;最慢閃爍速度,則取決於delay的最長延時時間,這裡delay的引數num為16位,則當num取65535時,燈閃爍最慢,另外,還可以增大delay函式內部引數「y=110」的值,增加延時時間,降低閃爍速度。
2樓:匿名使用者
如果輸出低電平燈亮,去掉第一個或都去掉,燈看起來不亮,去掉第二個,燈看起來常亮。
3樓:匿名使用者
很簡單的,你就去掉啊,然後看一下實際效果就知道了嗎。
什麼是最慢和最快,你同樣需要一邊改延時的長短,一邊試試看效果,直以滿意為止呀。
但不知是實物,還是**呀,還是就為了寫程式,什麼也不做,就想問結果呢?
求微控制器控制led燈1秒鐘閃爍一次程式
4樓:手機使用者
include #define uchar unsigned char char code dx516[3] _at_ 0x003b; void main(void) } timer2() interrupt 5 }
微控制器流水燈c語言程式(8個燈,依次點亮每個燈,延時500ms)
5樓:小夏在深圳
微控制器流水燈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()}}
6樓:
1、用精確定時的方法,設定流水燈執行時的時間間隔,延時時間為500ms。
2、#include "reg51.h"首先寫出微控制器的頭函式。
3、#include "intrins.h"輸入位移函式。
4、unsigned int count=0,led;定義函式。
5、輸入主函式,定義微控制器的埠,寫入延時函式。
6、中斷跳轉,使流水燈執行起來。
7樓:匿名使用者
#include //51系列微控制器定義檔案#define uchar unsigned char //定義無符號字元
#define uint unsigned int //定義無符號整數
void delay(uint); //宣告延時函式void main(void)
}} void delay(uint t) //定義延時函式
微控制器高手給點撥下,led燈只讓偶數閃爍,奇數不亮,程式如何寫
很好實現的 就是讓偶數led燈亮 延時一段時間後 讓偶數led燈滅 再延時一段時間 迴圈不斷地重複這2個過程。整個過程中,奇數led燈不亮。這樣就會產生偶數led燈閃爍現象。即就是由亮 滅交替產生的。lll mov p1,10101010b 偶數led燈亮 lcall ys 延時mov p1,111...
關於微控制器點亮led燈的問題
你的程式,燈一直是在開關狀態 0與1 只是眼睛看不出來,記得先初始化再進入迴圈,不然程式會跑飛,然後再看看電路圖,確認電路和你的程式是否一至。include sbit d1 p1 0 sbit d2 p1 5 void main zhxiufan正解,while 1 是必須要有的。否則微控制器會繼續...
微控制器C程式。按鍵控制led點亮30秒。現在想要讓led2和led3由長亮變為交替亮。該怎麼改
依驪豔 include unsigned char k sbit k1 p0 0 sbit k2 p0 1 sbit led p1 1 unsigned char sz delay1s void main delay1s led 1 delay1s 思路僅供參考。 草莓啵啵虎 include def...