上次炫了一下七彩旋轉(zhuǎn)LED后,沒(méi)有及時(shí)的上次資料,這里補(bǔ)上
LED.jpg (1.08 MB, 下載次數(shù): 370)
下載附件
2014-6-27 00:19 上傳
散件資料.rar
(2.44 MB, 下載次數(shù): 5173)
2014-6-27 00:21 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
參考程序.rar
(19.75 KB, 下載次數(shù): 130)
2016-11-15 12:26 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
企鵝 1556546395
主程序:
- /*************************************************************************
- ** 程序名稱(chēng): ZA1LA3-R3旋轉(zhuǎn)LED紅外遙控旋轉(zhuǎn)LED柱面顯示遙控碼
- ** 功能描述:顯示紅色led走字模式,,遙控改變文字效果 學(xué)習(xí)遙控以及595串口的使用
- ** 作 者: yyl
- ** 日 期: 2014-4-1
- 單片機(jī)芯片 STC15F2Kxxxx 或者其他51 選用內(nèi)部晶振頻率11.0592MHz
- 字模軟件用 PC2002
- **------------------------------------------------------------------------------------------------------
- ** 修 改 人:
- ** 日 期:
- **------------------------------------------------------------------------------------------------------
- ***************************************************************************/
- /*****************************************************
- 說(shuō)明:
- 用595擴(kuò)充單片機(jī)的IO口,每個(gè)595有8位兩個(gè)串起來(lái)就是16位,
- 剛好一列,此程序的595是低位在前,所以發(fā)送數(shù)據(jù)需要先送低位
- 采用無(wú)線供電方式電流可達(dá)500MA,足夠使用(當(dāng)顯示白色的時(shí)候
- 電流最大,將近200ma)。以及12560電機(jī),在12V電源下 顯示的效果
- 非常好.電機(jī)速度快且安靜.
- 調(diào)試學(xué)習(xí)程序前請(qǐng)務(wù)必看一下原理圖,根據(jù)原理圖來(lái)理解比較容易!
- 程序用判斷紅外起點(diǎn)的方法開(kāi)始顯示 每轉(zhuǎn)一圈,列數(shù)往后移動(dòng)一列
- 顯示完指定的字?jǐn)?shù)后循環(huán) 此種弊端是沒(méi)用中斷,一圈的開(kāi)始后必須要顯示完
- 指定的列數(shù)才能退出,如果電機(jī)速度太快會(huì)造成頭吃尾的后果,后面會(huì)介紹避免
- 頭吃尾的方法,讓整一圈都能顯示字 盲點(diǎn)很小。
- 學(xué)習(xí)知識(shí):
- 只為簡(jiǎn)單的理解顯示的原理,利用人眼視覺(jué)暫存,用電機(jī)旋轉(zhuǎn)做列掃描,
- 每送一列數(shù)據(jù)延時(shí) 再送下一列數(shù)據(jù),原理比較簡(jiǎn)單,跟點(diǎn)陣顯示差不多。
- /***************************************************/
- #include "rotatingled.h"
- uchar i=0,j=0;
- uchar Buff[192]=0xff;
- /*********************************************************************************************************
- ** 函數(shù)名稱(chēng): main
- ** 功能描述: 主函數(shù),用戶程序從這里執(zhí)行
- ** 輸 入: 無(wú)
- ** 輸 出: 無(wú)
- ** 全局變量: 無(wú)
- ** 調(diào)用模塊:
- **
- ** 作 者:yyl
- ** 日 期: 20140321
- **-------------------------------------------------------------------------------------------------------
- ** 修 改 人:
- ** 日 期:
- **------------------------------------------------------------------------------------------------------
- ********************************************************************************************************/
- void main(void)
- {
- EA = 1; //總中斷
- IT0 = 1; //外部中斷為邊沿觸發(fā)
- EX0 = 1; //允許外部中斷
- IT1 = 1; //外部中斷為邊沿觸發(fā)
- EX1 = 1; //允許外部中斷
- /****************定時(shí)器1初始化****************///160微秒@22.1184MHz
- AUXR |= 0x40; //定時(shí)器時(shí)鐘1T模式
- TMOD &= 0x0F; //設(shè)置定時(shí)器模式
- TL1 = 0x92; //設(shè)置定時(shí)初值
- TH1 = 0xF1; //設(shè)置定時(shí)初值
- TF1 = 0; //清除TF1標(biāo)志
- TR1 = 1; //定時(shí)器1開(kāi)始計(jì)時(shí)
- ET1 =1;
- memcpy(Buff,txt1,160);//顯示俊元電子0x
- OE=0;
- i=key_code>>4;
- memcpy(&Buff[160],&txt2[i*16],16);//顯示紅外碼值高位
- i=key_code&0x0f;
- memcpy(&Buff[176],&txt2[i*16],16);//顯示紅外碼值低位
-
- while(1)
- { if( new_code )
- { new_code=0;
- i=key_code>>4;
- memcpy(&Buff[160],&txt2[i*16],16);//顯示紅外碼值高位
- i=key_code&0x0f;
- memcpy(&Buff[176],&txt2[i*16],16);//顯示紅外碼值低位
- }
-
-
- if(IRFLAG)
- {
- IRFLAG=0;
-
- for(i=0;i<96;i++)
- {
- Write595 (Buff[i*2+1]);
- Write595 (Buff[i*2]);
- RCLK=0;
- Delay1us();
- RCLK=1; //上升沿把8位數(shù)據(jù)并行輸出
- Delay100us();//延時(shí)讓LED亮起來(lái) 每列延時(shí)的時(shí)間
- Write595(0xff); //送高電平關(guān)閉顯示
- Write595(0xff);
- RCLK=0;
- Delay1us();
- RCLK=1;
-
- }
- }
- }
- }
復(fù)制代碼
|