|
原先是個(gè)寫死的廣告風(fēng)扇,經(jīng)過(guò)抄板換芯片可以顯示任何漢字字母圖形。
制作出來(lái)的實(shí)物圖如下:
IMG_20220826_143538.jpg (5.45 MB, 下載次數(shù): 28)
下載附件
2022-9-26 13:02 上傳
IMG_20220811_230432_1.jpg (3.87 MB, 下載次數(shù): 31)
下載附件
2022-9-26 13:02 上傳
電路原理圖如下:
屏幕截圖 2022-08-07 102641.png (133.73 KB, 下載次數(shù): 26)
下載附件
2022-9-26 13:02 上傳
屏幕截圖 2022-08-26 224751.png (116.08 KB, 下載次數(shù): 24)
下載附件
2022-9-26 13:02 上傳
IMG_20220810_200751.jpg (3.5 MB, 下載次數(shù): 23)
下載附件
2022-9-26 13:03 上傳
單片機(jī)源程序如下:
- /************旋轉(zhuǎn)LED指尖陀螺程序**************/
- //----------|D1 |D2 | D3|D4 | D5| D6| D7|D8 |D9 |D10|D11||P32 | P55 | P54 |
- //----------| | | | | | | | | | | || | | |
- //----------|P10|P11|P12|P13|P14|P15|P30|P31|P33|P36|P37||按鍵|紅外接收| 紅外發(fā)射|
- //----------字模為12x12點(diǎn)陣,黑體,低位先,從左至右,0為亮燈
- //----------下載選擇IRC頻率 6.000 MHZ
- //----------分頻/4
- #include <STC8.H>
- #include"zjtl.h"
- //#include"intrins.h"
- #define uchar unsigned char //宏定義
- #define uint unsigned int //宏定義
- uchar i,s,d,zz;
- #define b 20
- sbit led1 = P1 ^ 0;
- sbit led2 = P1 ^ 1;
- sbit led3 = P1 ^ 2;
- sbit led4 = P1 ^ 3;
- sbit led5 = P1 ^ 4;
- sbit led6 = P1 ^ 5;
- sbit led7 = P3 ^ 0;
- sbit led8 = P3 ^ 1;
- sbit led9 = P3 ^ 3;
- sbit led10 = P3 ^ 6;
- sbit led11 = P3 ^ 7;
- uchar JS,ss,zz,xuanze;
- uint ZS; //累計(jì)轉(zhuǎn)數(shù)
- sbit k1=P3^2;
- sbit k2=P5^5;
- //sbit LED0=P3^0;
- sbit LED=P3^7;
- sbit LED_H=P5^4; //紅外發(fā)射LED
- //sbit D7=P3^0;
- //sbit D8=P3^1;
- //sbit D9=P3^3;
- //sbit D10=P3^6;
- //sbit D11=P3^7;
- /**************************/
- uchar code huamian0[]={
-
- 0xFF,0xFF,0xFF,0xFB,0x7F,0xFC,
- .......見(jiàn)附件.......
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",7*/
- /* (6 X 12 , 宋體 ) */
- };
- /*****************************************/
- /**********************************/
- /*****n延時(shí)子程序*****/
- /************************************************/
- void delay(uint a) //延時(shí)
- {
- uchar x;
- while(a--)
- {
- for(x=0;x<150;x++);
- }
- }
- //////////////////////////////
- void delayus(uint f)
- {
- while(f--);
- }
- /**************************/
- void Timer0Init(void) //1毫秒@6.000MHz
- {
- AUXR &= 0x7F; //定時(shí)器時(shí)鐘12T模式
- TMOD &= 0xF0; //設(shè)置定時(shí)器模式
- TMOD |= 0x01; //設(shè)置定時(shí)器模式
- TL0 = 0x0C; //設(shè)置定時(shí)初值
- TH0 = 0xFE; //設(shè)置定時(shí)初值
- TF0 = 0; //清除TF0標(biāo)志
- TR0 = 1; //定時(shí)器0開(kāi)始計(jì)時(shí)
- ET0 = 1; //定時(shí)器T0中斷允許
- }
- /**********************************************/
- /*開(kāi)機(jī)顯示*/
- void kaijiss() //開(kāi)機(jī)最外面LED閃爍三次
- {
- uchar i;
- // for(i=0;i<6;i++)
- // {
- // P10=~P10;
- // delay(100);
- // }
- // P10=1;
-
- }
- /**********************************************/
- /**** LED顯示函數(shù) ****/
- /**********************************************/
- void tuan(uchar *p)
- {
- uchar i;
-
- delayus(ss*100+3300); //延時(shí)一個(gè)時(shí)間后
- for(i=83;i>0;i--)
- {
- P1=p[i*2];
- P2=p[i*2+1];
- P30=P16;
- P31=P17;
- P33=P20;
- P36=P21;
- P37=P22;
-
- delayus(ss+35); //顯示延時(shí)
-
- }
-
- P1=P2=P3=0xff; //清除LED顯示
- }
- /***********************************/
- /* 比較器中斷 */
- void cmp_isr()interrupt 21 //
- {
- CMPCR1&=~CMPIF; //清除完成標(biāo)志
- JS=!!(CMPCR1&CMPRES);
-
- if(JS==0)
- {
-
-
- /**/
- switch(xuanze)
- {
- case(0):tuan(huamian0);break;
- case(1):tuan(huamian1);break;
- case(2):tuan(huamian2);break;
- case(3):tuan(huamian3);break;
- }
- delay(15);
- ZS++; //轉(zhuǎn)數(shù)累加
-
- }
- }
- /**************************************/
- /**************************************/
- /*定時(shí)器T0中斷服務(wù)*/
- void Timer0(void) interrupt 1
- {
- uchar c;
- d++;
- if(d==40/4) //一直檢測(cè)每10ms內(nèi)當(dāng)前轉(zhuǎn)數(shù)
- { d=0;
- c++;
- if(c==20)
- {
- P11=~P11;
- }
-
-
- ss=ZS+1;
-
-
- ZS=0; //清零
-
-
- }
- TL0 = 0x0C; //設(shè)置定時(shí)初值
- TH0 = 0xFE; //設(shè)置定時(shí)初值
- }
- /**************************************/
- /*外中斷0服務(wù)程序*/
- void zhongduan(void) interrupt 0
- {
- if(k1==0)
- {
- delay(15);
- if(k1==0)
- {
- xuanze++;
- if(xuanze>=4)xuanze=0; //
- LED=0;
- }
- while(!k1);
- LED=1;
- }
-
- }
- ////////////////////////////////////////////////
- ///////////////--主--函--數(shù)--///////////////////
- ////////////////////////////////////////////////
- void main()
- {
- EA=1; //開(kāi)總中斷
- EX0=1; //允許使用外中斷
- IT0=1; //負(fù)跳變觸發(fā)方式(下降沿)
-
- Timer0Init(); //1毫秒@6.000MHz
- msgl(); //單片機(jī)工作模式
- fenpin(); //單片機(jī)主頻設(shè)置
- bjq(); //比較器設(shè)置
-
- ioshezhi(); //io口設(shè)置
-
- kaijiss(); //開(kāi)機(jī)最外面LED閃爍三次
-
- ////////////////////////////////////////////
- // while(1)
- // {
- // LED_H=0; //紅外發(fā)射LED
- //
- // }
- }
- ////////////////////////////////////////////
- ////////////////////////////////////////////
復(fù)制代碼
Keil代碼下載(附件內(nèi)只含代碼,不含其他任何文件):
Keil代碼.7z
(29.46 KB, 下載次數(shù): 35)
2022-9-26 13:55 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|