本文目錄一覽:
- 1、用c語言控制兩個燈的閃爍
- 2、用c語言寫一個由單片機PO口的一個引腳控制一個發光二極管閃爍?
- 3、c語言點亮十六個小燈亮滅閃爍原理
- 4、用C語言編寫一個單片機控制LED燈閃爍變化的編程 急用!!!!!!!!!
- 5、想用c語言寫一個按鍵控制小燈閃爍的程序,就是按一下閃爍,再按就熄滅
- 6、用單片機C語言怎麼寫用狀態機實現按鍵控制LED燈閃爍這個程序
用c語言控制兩個燈的閃爍
delay()這個函數在哪?你沒寫啊,開頭也沒有聲明。然後 如果你是想實現兩個燈閃爍,你寫的內容都要放在第一個while(1){} 里,因為while(1)這循環沒有break語句,除了你調用子函數,其他的不會被執行到的。
用c語言寫一個由單片機PO口的一個引腳控制一個發光二極管閃爍?
給你個參考;
void delay();
main()
{
while(1){ //設P1.0引腳去驅動LED,
P1=0xff;
delay(500);//延時500mS
P1=0xfe; //P1.0引腳反覆輸出高電平,低電平,LED即閃爍;
delay(500);//延時500mS
}
c語言點亮十六個小燈亮滅閃爍原理
用C語言實現點亮16隻小燈亮滅閃爍的狀態,首先我們定義一個兩個字節的變量x,並賦了初始值,每一位表示一隻燈的狀態,1為亮,0為滅,正好是16隻小燈。
單片機16個小燈亮滅閃爍c語言,需要利用到MSP430F247單片機的P1和P4端口控制16個發光二極管D1~D16,發光二極管有8種花樣顯示,顯示速度可調,由P2端口的三個按鍵控制,分別是模式按鍵、加速按鍵、減速按鍵。模式按鍵按下一次,花樣顯示模式變換一次,按下8次後循環到第一種模式,加速和減速按鍵可以控制LED的閃爍速度。十六進制數也就是十進制數的把這些數轉化為二進制數,然後進行按位與運算
用C語言編寫一個單片機控制LED燈閃爍變化的編程 急用!!!!!!!!!
C語言實現LED燈閃爍控制配套51單片機開發板。
#include //包含單片機寄存器的頭文件
/****************************************
函數功能:延時一段時間
*****************************************/
void delay(void) //兩個void意思分別為無需返回值,沒有參數傳遞。
{
unsigned int i; //定義無符號整數,最大取值範圍65535。
for(i=0;i20000;i++) //做20000次空循環。
; //什麼也不做,等待一個機器周期。
}
/*******************************************************
函數功能:主函數 (C語言規定必須有也只能有1個主函數)。
********************************************************/
void main(void)
{
while(1) //無限循環。
{
P0=0xfe; //P1=1111 1110B, P0.0輸出低電平。
delay(); //延時一段時間。
P0=0xff; //P1=1111 1111B, P0.0輸出高電平。
delay(); //延時一段時間。
}
}
單片機驅動LED燈的源程序:
#includereg52.h //頭文件。
#define uint unsigned int
#define uchar unsigned char
sbit LED1=P1^7; //位定義。
void delay_ms(uint);//mS級帶參數延時函數。
void main()
{
while(1)
{
LED1=0;
delay_ms(1000);
LED1=1;
delay_ms(1000);
}
}
void delay_ms(uint z) //延時子程序
{
uint x,y;
for(x=z;x0;x–)
for(y=110;y0;y–);
}
擴展資料:
單片機應用分類:
通用型:
這是按單片機(Microcontrollers)適用範圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC接口等功能的溫度測量控制電路。
總線型:
這是按單片機(Microcontrollers)是否提供並行總線來區分的。總線型單片機普遍設置有並行地址總線、 數據總線、控制總線,這些引腳用以擴展並行外圍器件都可通過串行口與單片機連接。
另外,許多單片機已把所需要的外圍器件及外設接口集成一片內,因此在許多情況下可以不要並行擴展總線,大大減省封裝成本和芯片體積,這類單片機稱為非總線型單片機。
控制型:
這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型尋址範圍大,運算能力強;用於家電的單片機多為專用型。
通常是小封裝、低價格,外圍器件和外設接口集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是總線型,還可以作工控用。
參考資料來源:百度百科-單片機
想用c語言寫一個按鍵控制小燈閃爍的程序,就是按一下閃爍,再按就熄滅
具體是怎麼個不行法。
像你這種按鍵程序
因為單片機速度非常快,在你按一下按鍵時,單片機已經循環了很多次程序。
因此這樣就會導致,當你按下時,其實k一直==0 一直在執行動作。
所以這種按鍵需要判斷按鍵是第一次按下(由彈起狀態下按下)。而不是一直按着導致的動作。
方法:建一個變量保存上一次按鍵的值
char LastKey;
LastKey = 1;
while(1)
{
if(k == 0 LastKey == 1) //按下,且上一次檢測按鍵時是彈起狀態
{ //這樣才能保證每次按下時只執行一次,
//而不是一直在執行
Delay1ms(20);
if(k == 0) //確定是第一次按下,執行動作
{
if((n % 2) == 0)
{
LedFlash();
}
else
{
P0 = 0xFF;
}
n++;
}
}
LastKey = k; //保存按鍵狀態
}
用單片機C語言怎麼寫用狀態機實現按鍵控制LED燈閃爍這個程序
#include STC12C52.H
#define uchar unsigned char
#define uint unsigned int
sbit key=P1^2;
sbit p1_6=P1^6;
void delay(uchar delay_time)
{
uchar n;
uint m;
for (n=0;ndelay_time;n++)
{
for(m=0;m10000;m++);
}
}
void keyscan()
{
if(key==0)
{
delay(5);
if(key==0)
while(!key)
{
p1_6 = 0;
delay(20);
p1_6 = 1;
delay(20);
}
}
}
void main()
{
WDT_CONTR = 0x3C;
while(1)
{
keyscan();
WDT_CONTR = 0x3C;
}
}
這個功能可以用中斷來實現,當然,現在我寫的這個也可以實現。由於你用的晶振頻率不知道,所以你自己修改一下延時時間,再把頭文件改一下,就可以了,我試驗了,可以實現改功能。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/259427.html