久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
調(diào)光LED燈STC15F104單片機(jī)源碼
[打印本頁(yè)]
作者:
yygdzjs
時(shí)間:
2018-8-22 00:09
標(biāo)題:
調(diào)光LED燈STC15F104單片機(jī)源碼
調(diào)光LED燈軟件STC15F104 ,用的是STC宏晶8腳單片機(jī) ,將一個(gè)舊的LED燈加了調(diào)光功能. 和大家學(xué)習(xí)探討.
電路原理圖如下:
0.png
(80.37 KB, 下載次數(shù): 60)
下載附件
2018-8-22 00:26 上傳
單片機(jī)源程序如下:
/*--------------------------------------------------------
* Name File: KEY,C
* Versions number: 1.0
* Date : 2016.01.01
* Remarks : STC15F104E MCU
- 文件名 :KEY.C
- 版本 :1.0
- 日期 :2016.01.01
- 備注 :STC15F104E MCU
--------------------------------------------------------*/
#include"config.h" //
unsigned char T1RH,T1RL; //
unsigned char code KeyCodeMap[6]={ //按鍵值數(shù)組0-2是S1-S3短按
0x01,0x02,0x03,0x10,0x20,0x30 //按鍵值數(shù)組3-5是S1-S3長(zhǎng)按
};
unsigned char KeySta[3]={//
1,1,1
};
unsigned int idata KeyDownTime[3]={0,0,0}; //按鍵按下持續(xù)時(shí)間
void configtime1(unsigned int ms); //定時(shí)器1配置
bit led1flag =1; //LED1狀態(tài)標(biāo)志位
bit led2flag =1; //LED2狀態(tài)標(biāo)志位
bit led3flag =1; //LED3狀態(tài)標(biāo)志位
//bit led4flag =0;
bit KeyLFlag = 0; //長(zhǎng)按標(biāo)志位
void KeyScan(); //按鍵的掃描
void KeyDriver(); //按鍵驅(qū)動(dòng)
void LEDOUT(); //
void KeyAction(unsigned char KeyCode); //按鍵執(zhí)行
//--------------------------------
void KeyAction(unsigned char KeyCode)
{
if(KeyCode==0x01)led1flag = ~led1flag;
if(KeyCode==0x02)led2flag = ~led2flag;
if(KeyCode==0x03)led3flag = ~led3flag;
if(KeyCode==0x10)led1flag = ~led1flag;
if(KeyCode==0x20)led2flag = ~led2flag;
if(KeyCode==0x30)led3flag = ~led3flag;
}
void LEDOUT()
{
LED_R=led3flag; //
LED_G=led1flag; //
LED_B=led2flag; //
}
//----------------------------
void KeyDriver()
{
unsigned char i; //
static unsigned char idata backup[3]={1,1,1}; //
static unsigned int idata TimeThr[3]={600,600,600}; //
for(i=0;i<3;i++) //循環(huán)檢測(cè)3個(gè)按鍵
{
//---------------------------------
if(KeyDownTime[i] > 0) //檢測(cè)執(zhí)行快速輸入
{
if(KeyDownTime[i] >= TimeThr[i])
{
if(KeyLFlag != 1)
{
KeyAction(KeyCodeMap[i+3]); //
// TimeThr[i+3] += 200; //
KeyLFlag = 1;
}
}
}
if(backup[i] != KeySta[i])
{
if(backup[i] != 1)
{
if(KeyLFlag)
{
KeyLFlag = 0;
}
else
{
KeyAction(KeyCodeMap[i]); //
}
}
backup[i] = KeySta[i]; //
}
}
}
//---------定時(shí)器1的配置------------
void configtime1(unsigned int ms)
{
unsigned long tmp;
tmp = 11059200/12; //
tmp =(tmp*ms)/1000; //
tmp = 65536 - tmp; //
tmp = tmp + 18; //
T1RH = (unsigned char)(tmp>>8); //
T1RL = (unsigned char)tmp; //
TMOD &= 0x0f; //
TMOD |= 0x10; //
TH1 = T1RH; //
TL1 = T1RL; //
ET1 = 1; //
TR1 = 1; //
EA = 1; //
}
//---------按鍵的掃描函數(shù)----------
void KeyScan()
{
bit RLED=0; //
bit GLED=0; //
bit BLED=0; //
unsigned char i; //
static unsigned char KeyBuf[]={
0xff,0xff,0xff
};
RLED=LED_R; //
GLED=LED_G; //
BLED=LED_B; //
S1 = 1; //
S2 = 1; //
S3 = 1; //
_nop_(); //
_nop_(); //
_nop_(); //
KeyBuf[0] = (KeyBuf[0]<<1)|S1; //
KeyBuf[1] = (KeyBuf[1]<<1)|S2; //
KeyBuf[2] = (KeyBuf[2]<<1)|S3; //
for(i=0;i<3;i++)
{
if(KeyBuf[i]== 0x00)
{
KeySta[i] = 0; //按鍵為零
KeyDownTime[i] += 1; //按鍵持續(xù)按下
}
else if(KeyBuf[i]== 0xff)
{
KeySta[i] = 1; //按鍵彈起狀態(tài)
KeyDownTime[i]=0; // 按鍵清零
}
}
_nop_(); //
_nop_(); //
LED_R=RLED; //
LED_G=GLED; //
LED_B=BLED; //
// _nop_(); //
……………………
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
調(diào)光LED燈軟件STC15F104.zip
(78.79 KB, 下載次數(shù): 91)
2018-8-22 00:09 上傳
點(diǎn)擊文件名下載附件
單片機(jī)調(diào)光
下載積分: 黑幣 -5
作者:
zjnbzm
時(shí)間:
2018-8-22 12:01
調(diào)光LED燈軟件STC15F104 ,用的是STC宏晶8腳單片機(jī) ,將一個(gè)舊的LED燈加了調(diào)光功能. 和大家學(xué)習(xí)探討. 電路原理圖如下: 單片機(jī)源程序如下 -------------------------------------------------------- Name File KEY,C Versions number 1.0 Date 2016.01.01 Remarks STC15F104E MCU - 文件名 :KEY.C - 版本 :1.0 - 日期 :2016.01.01 - 備注 :STC15F104E MCU -------------------------------------------------------- #includeconfig.h unsigned char T1RH,T1RL; unsigned char code KeyCodeMap[6]={ 按鍵值數(shù)組0-2是S1-S3短按 0x01,0x02,0x03,0x10,0x20,0x30 按鍵值數(shù)組3-5是S1-S3長(zhǎng)按 }; unsigned char KeySta[3]={ 1,1,1 }; unsigned int idata KeyDownTime[3]={0,0,0}; 按鍵按下持續(xù)時(shí)間 void configtime1(unsigned int ms); 定時(shí)器1配置 bit led1flag =1; LED1狀態(tài)標(biāo)志位 bit led2flag =1; LED2狀態(tài)標(biāo)志位 bit led3flag =1; LED3狀態(tài)標(biāo)志位 bit led4flag =0; bit KeyLFlag = 0; 長(zhǎng)按標(biāo)志位 void KeyScan(); 按鍵的掃描 void KeyDriver(); 按鍵驅(qū)動(dòng) void LEDOUT(); void KeyAction(unsigned char KeyCode); 按鍵執(zhí)行 -------------------------------- void KeyAction(unsigned char KeyCode) { if(KeyCode==0x01)led1flag = ~led1flag; if(KeyCode==0x02)led2flag = ~led2flag; if(KeyCode==0x03)led3flag = ~led3flag; if(KeyCode==0x10)led1flag = ~led1flag; if(KeyCode==0x20)led2flag = ~led2flag; if(KeyCode==0x30)led3flag = ~led3flag; } void LEDOUT() { LED_R=led3flag; LED_G=led1flag; LED_B=led2flag; } ---------------------------- void KeyDriver() { unsigned char i; static unsigned char idata backup[3]={1,1,1}; static unsigned int idata TimeThr[3]={600,600,600}; for(i=0;i3;i++) 循環(huán)檢測(cè)3個(gè)按鍵 { --------------------------------- if(KeyDownTime[i] 0) 檢測(cè)執(zhí)行快速輸入 { if(KeyDownTime[i] = TimeThr[i]) { if(KeyLFlag != 1) { KeyAction(KeyCodeMap[i+3]); TimeThr[i+3] += 200; KeyLFlag = 1; } } } if(backup[i] != KeySta[i]) { if(backup[i] != 1) { if(KeyLFlag) { KeyLFlag = 0; } else { KeyAction(KeyCodeMap[i]); } } backup[i] = KeySta[i]; } } } ---------定時(shí)器1的配置------------ void configtime1(unsigned int ms) { unsigned long tmp; tmp = 1105920012; tmp =(tmpms)1000; tmp = 65536 - tmp; tmp = tmp + 18; T1RH = (unsigned char)(tmp8); T1RL = (unsigned char)tmp; TMOD &= 0x0f; TMOD = 0x10; TH1 = T1RH; TL1 = T1RL; ET1 = 1; TR1 = 1; EA = 1; } ---------按鍵的掃描函數(shù)---------- void KeyScan() { bit RLED=0; bit GLED=0; bit BLED=0; unsigned char i; static unsigned char KeyBuf[]={ 0xff,0xff,0xff }; RLED=LED_R; GLED=LED_G; BLED=LED_B; S1 = 1; S2 = 1; S3 = 1; _nop_(); _nop_(); _nop_(); KeyBuf[0] = (KeyBuf[0]1)S1; KeyBuf[1] = (KeyBuf[1]1)S2; KeyBuf[2] = (KeyBuf[2]1)S3; for(i=0;i3;i++) { if(KeyBuf[i]== 0x00) { KeySta[i] = 0; 按鍵為零 KeyDownTime[i] += 1; 按鍵持續(xù)按下 } else if(KeyBuf[i]== 0xff) { KeySta[i] = 1; 按鍵彈起狀態(tài) KeyDownTime[i]=0; 按鍵清零 } } _nop_(); _nop_(); LED_R=RLED; LED_G=GLED; LED_B=BLED; _nop_(); …………………… …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件………… 復(fù)制代碼 所有資料51hei提供下載 調(diào)光LED燈軟件STC15F104.zip (78.79 KB, 下載次數(shù) 2)
作者:
zjnbzm
時(shí)間:
2018-8-22 12:04
你好,有匯編的程序嗎?
作者:
jialishoushi
時(shí)間:
2018-8-23 03:25
不錯(cuò) 有空也搞個(gè)玩玩
作者:
yygdzjs
時(shí)間:
2018-12-23 00:24
沒(méi)有匯編
作者:
WFX777888
時(shí)間:
2019-8-5 09:11
謝謝復(fù)習(xí)資料
作者:
weixiao4
時(shí)間:
2019-8-5 11:51
謝謝樓主分享
作者:
qxdqx
時(shí)間:
2020-1-31 21:02
很好。太謝謝啦!
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
一区二区三区不卡视频
|
av在线影院
|
美女久久久久久久
|
在线播放国产一区二区三区
|
久久伊
|
九久久
|
中文天堂在线观看
|
一区二区三区国产
|
日韩精品一区二区三区在线播放
|
亚洲综合在
|
午夜精品视频
|
蜜桃视频在线观看免费视频网站www
|
观看av
|
你懂的在线视频播放
|
国产高清视频一区
|
日韩中文字幕一区二区三区
|
国产精品99久久久久久动医院
|
日韩精品一二三
|
国产在线精品一区二区三区
|
波多野结衣电影一区
|
av黄色在线
|
日韩和的一区二在线
|
aaa级片
|
四虎影院在线观看av
|
国产日韩精品一区二区
|
日韩精品一区二区三区老鸭窝
|
亚洲精品一区在线观看
|
日本中文在线视频
|
无码日韩精品一区二区免费
|
一区二区三区精品视频
|
狠狠干av
|
欧美精品一区久久
|
在线日韩视频
|
国产精品三级久久久久久电影
|
人妖一区
|
九色视频网站
|
81精品国产乱码久久久久久
|
欧美中文字幕一区二区三区亚洲
|
九九九久久国产免费
|
一区视频在线
|
欧美一区二区三区在线观看
|