當前位置:首頁 » 編程語言 » c語言飛控燈光效果
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言飛控燈光效果

發布時間: 2022-09-23 16:09:19

⑴ 用簡單的c語言程序控制LED燈的點亮

初始化部分你要自己根據晶元資料寫,數碼管部分可以根據數碼管的資料做數組xs[10]={0x3b……}要看數碼管引腳定義了,看原理圖看不出來的,可以做個200MS的定時器,然後計數5次就是1S
直接給數碼管的IO口附數組的值,如P1=xs[5];要看你給的是哪個IO口了,我這邊看不清你的原理圖,LED亮200MS後就換動作太快,看不出效果,可以把時間加長

⑵ 求51單片機C語言,一個板子上完成一部分三個開關分別控制三個led燈光亮滅(不是流水燈),

#include<reg51.h>
sbitled1=P1^0;
sbitled2=P1^1;
sbitled3=P1^2;
sbitkey1=P1^4;
sbitkey2=P1^5;
sbitkey3=P1^6;
main()
{
while(1)
{
led1=key1;
led2=key2;
led3=key3;
}
}

⑶ 如何用單片機控制一盞燈慢慢亮起來,是用c語言編程

這個要看燈的特性,是否可調光。
如果是個可調光且驅動電壓與電流不需要很大的,那就用單片機與DA晶元完成,使電壓輸出0~10V左右。
如果是個非可調光,則用占空比調光方法,控制燈光迅速亮滅,使肉眼看不出來,通過平均電壓來控制燈光亮度。常用晶元的PWM波口完成。

⑷ 用單片機c語言一個按鍵控制led的閃爍和熄滅,就是按一下閃爍,再按就熄滅。

首先你的貼出來的程序不完整,最好貼出完整代碼!
其次,如果你的程序沒問題的話,你的LED閃爍是必須在你按住按鍵且不能彈起情況下才會發生的,你是一直按著嗎?
而且注意你n的類型,因為你這樣一直加,會溢出的

⑸ 要寫一個基於51單片機的c語言程序控制彩燈效果,要求一個按鍵控制一種效果可來回切換,每種效果的子函數寫

調用輸入輸出指令啊

⑹ 請問:單片機使用C語言編程,怎樣控制led燈的完成亮度強弱變換

/*********************************************************************
模擬PWM輸出控制燈的10個亮度級別
將定時器2溢出定為1/1200秒。每10次脈沖輸出一個120HZ頻率。
這每10次脈沖再用來控制高低電平的10個比值。
這樣,在每個1/120秒的方波周期中,我們都可以改變方波的輸出占空比,從而控制LED燈的10個級別的亮度。
*******************************************************************/
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#include <reg52.h> //包括一個52標准內核的頭文件
sbit P10 = P1^0; //要控制的LED燈
sbit K1= P3^2; //按鍵K1
uchar scale;//用於保存占空比的輸出0的時間份額,總共10份
char code dx516[3] _at_ 0x003b;//這是為了模擬設置的
//模擬PWM輸出控制燈的10個亮度級別
void main(void) // 主程序
{
uint n;
RCAP2H =0xF3; //賦T2的預置值,溢出1次是1/1200秒鍾
RCAP2L =0x98;
TR2=1; //啟動定時器
ET2=1; //打開定時器2中斷
EA=1; //打開總中斷
while(1) //程序循環
{ ;//主程序在這里就不斷自循環,實際應用中,這里是做主要工作
for(n=0;n<50000;n++); //每過一會兒就自動加一個檔次的亮度
scale++;
if(scale==10)scale=0;
}
}
//1/1200秒定時器2中斷
timer2() interrupt 5
{
static uchar tt; //tt用來保存當前時間在一秒中的比例位置
TF2=0;
tt++;
if(tt==10) //每1/120秒整開始輸出低電平
{
tt=0;
if(scale!=0) //這里加這一句是為了消除滅燈狀態產生的鬼影
P10=0;
}
if(scale==tt) //按照當前占空比切換輸出高電平
P10=1;
}
――――――――――――――――――
在主程序中,每延時一段時間,就自動換一個占空比,以使亮度自動變化,方便觀察。
編譯,運行,看結果。
可以看到,LED的亮度以每種亮度1秒左右不斷變化,共有10個級別。

⑺ 用C語言編寫一個單片機控制LED燈閃爍變化的編程 急用!!!!!!!!!

C語言實現LED燈閃爍控制配套51單片機開發板。

#include //包含單片機寄存器的頭文件

/****************************************
函數功能:延時一段時間

*****************************************/

void delay(void) //兩個void意思分別為無需返回值,沒有參數傳遞。

{

unsigned int i; //定義無符號整數,最大取值范圍65535。

for(i=0;i<20000;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燈的源程序:

#include<reg52.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;x>0;x--)

for(y=110;y>0;y--);

}

(7)c語言飛控燈光效果擴展閱讀:

單片機應用分類:

通用型:

這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。

匯流排型:

這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接。

另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。

控制型:

這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型。

通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。

參考資料來源:網路-單片機



⑻ 單片機控制8個燈依次亮,全亮了,再依次滅的c語言流程圖,順便加上解釋,不然看不懂

1、創建項目,如圖所示。

⑼ 求一個閃光燈C語言程序,

#include<stdio.h>

#defineGREAT_THAN(a,b)((a)>(b))
#defineLESS_THAN(a,b)((a)<(b))
#defineGREAT_OR_EQUAL(a,b)((a)>=(b))
#defineLESS_OR_EQUAL(a,b)((a)<=(b))
#defineNOT_EQUAL(a,b)((a)!=(b))
#defineEQUAL_TO(a,b)((a)==(b))

staticinttest(void)
{
intx;
inty;

printf(">operation: ");
for(x=0;x<2;x++){
for(y=0;y<2;y++){
printf("%x>%x-->%x ",x,y,GREAT_THAN(x,y));
}
}

printf(" <operation: ");
for(x=0;x<2;x++){
for(y=0;y<2;y++){
printf("%x<%x-->%x ",x,y,LESS_THAN(x,y));
}
}

printf(" >=operation: ");
for(x=0;x<2;x++){
for(y=0;y<2;y++){
printf("%x>=%x-->%x ",x,y,GREAT_OR_EQUAL(x,y));
}
}

printf(" <=operation: ");
for(x=0;x<2;x++){
for(y=0;y<2;y++){
printf("%x<=%x-->%x ",x,y,LESS_OR_EQUAL(x,y));
}
}

printf(" !=operation: ");
for(x=0;x<2;x++){
for(y=0;y<2;y++){
printf("%x!=%x-->%x ",x,y,NOT_EQUAL(x,y));
}
}

printf(" ==operation: ");
for(x=0;x<2;x++){
for(y=0;y<2;y++){
printf("%x==%x-->%x ",x,y,EQUAL_TO(x,y));
}
}

return0;
}

intmain(void)
{
test();

return0;
}

⑽ 需要一個用按鍵控制一個LED燈亮度的C語言程序

/**52系列單片機,晶振12MHz,P1.0輸出100Hz方波(即周期10ms),方波由T0定時器產生
P1.3接按鍵 K1,每按一次按鍵,方波占空比改變一次,依次為:1/10→2/10→……→9/10→1/10,如此循環**/
#include"reg52.h" //包含52系列頭文件
#define uchar unsigned char //定義 無符號字元型
#define uint unsigned int //定義 無符號整型
#define TRUE 1 //定義 邏輯真
#define FALSE 0 //定義 邏輯假

#define th0 0xfc //100Hz(10ms),占空比分母10,則其最小時間單位應該為10ms/10=1ms,故定時器T0定時時間為 1ms
#define tl0 0x18 //1ms at 12HMz Fosc
#define DutyDeno 10 //定義 占空比分母 為:10

sbit WaveOut=P1^0; //定義 方波輸出 介面
sbit Key1=P1^3; //定義 按鍵Key1 介面

uchar DutyNume=1; //定義 占空比分子 變數,並初始化為 1(即 占空比 為:1/10)

void Timer0() interrupt 1 //定時器T0 中斷 函數
{
static uchar ty_time=0; //定義靜態變數,作為 占空比 輸出時間的參考值(1ms)
TL0=tl0;
TH0=th0; //重賦定時器初值,1ms
ty_time=++ty_time%DutyDeno; //該句等效於:ty_time++;ty_time%=DutyDeno;
if(ty_time<DutyDeno) WaveOut=1; //若計時時間小於 占空比分子,則輸出應為 高電平
else WaveOut=0; //若計時時間大於 占空比分子,則輸出應為 低電平
}

void TimerInit() //定時器初始化 函數
{
TMOD=0x01; //T0 16位定時器
EA=1; //允許系統中斷
ET0=1; //允許T0中斷
TH0=th0;
TL0=tl0; //1ms 初值
TR0=1; //T0開始計時
}

void KeyResp() //按鍵響應 函數
{
static bit KeyDownFlag,KeyReadyFlag; //定義 靜態標志位,KeyDownFlag 按鍵按下標志,KeyReadyFlag 按鍵准備(響應)標志
if(!Key1) //若按鍵Key1 被按下
{
KeyDownFlag=TRUE; //按鍵按下標志 置位
KeyReadyFlag=TRUE; //按鍵准備標志 置位
}
else KeyDownFlag=FALSE; //若按鍵Key1 無按下,則清空 按鍵按下標志
if(!KeyDownFlag && KeyReadyFlag) //若 按鍵已准備,且按鍵無按下(即 鬆手狀態)
{
DutyNume++; //占空比分子 加1
if(DutyNume==DutyDeno) DutyNume=1; //若 占空比分子=分母,則返回 1
KeyReadyFlag=FALSE; //按鍵處理完畢,清 按鍵准備標志
}
}

void main() //主函數
{
TimerInit(); //調用 定時器初始化 函數
while(1) //循環系統
{
KeyResp(); //調用 按鍵響應 函數
}
}
方波輸出介面接燈;