需要的自己拿吧
0.png (62.49 KB, 下載次數(shù): 87)
下載附件
2016-5-1 02:21 上傳
0.png (136.19 KB, 下載次數(shù): 73)
下載附件
2016-5-1 02:22 上傳
搖搖棒的電路圖:
搖搖棒電路圖.JPG (176.61 KB, 下載次數(shù): 89)
下載附件
2016-5-1 02:24 上傳
搖搖棒的元件清單:
名稱 描述 標(biāo)號 單板數(shù)量
瓷片電容 22p C1, C2 2
電解電容 10uF C3 1
電源指示燈 LED 發(fā)光二極管 D1 1
二極管IN4007 High Conductance Fast Diode D2 1
LED LED 發(fā)光二極管 D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16, D17, D18 16
JTAG10 下載接頭 J1 1
按鍵 Switch K1 1
彈簧開關(guān) Switch K2 1
電源端口 Header, 2-Pin P1 1
單排插針 Header, 3-Pin P2 1
電阻 1k R1, R2, R3, R4 2 R2,R3可不焊接
撥動開關(guān) 三位波動開關(guān) S1 1
AT89s52 單片機(jī) U4 1
晶振 12M Y1 1
芯片插座 單片機(jī)芯片座 U4 1
很多親們經(jīng)常問搖搖棒中的字怎樣取字模,今天在這里描述一下; 以“歡”為例作為講解 程序中的“歡”點陣是這樣的: //-- 歡 -- 0x04,0x10,0x34,0x08,0xC4,0x06,0x04,0x01, 0xC4,0x82,0x3C,0x8C,0x20,0x40,0x10,0x30, 0x0F,0x0C,0xE8,0x03,0x08,0x0C,0x08,0x10, 0x28,0x60,0x18,0xC0,0x00,0x40,0x00,0x00, 為了直觀,我們把它按PCB布線的方法把上面的點陣排類一下
0.png (5.14 KB, 下載次數(shù): 86)
下載附件
2016-5-1 02:28 上傳
其中1為亮 ,0為LED滅(為什么1是亮,0是滅,請親們看一下程序和電路,2個結(jié)合起來看一下就明白了,這里就不再說明) 接下來為了方便看哪些是亮的,我們把0去掉
0.png (3.6 KB, 下載次數(shù): 75)
下載附件
2016-5-1 02:29 上傳
0.png (10.74 KB, 下載次數(shù): 88)
下載附件
2016-5-1 02:29 上傳
|
|
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image002.jpg 看到了嗎,一個很大的“歡”字就出來了。上面的點陣我們是手動排列的。接下來教大家如何用軟件取字模。
0.png (128.56 KB, 下載次數(shù): 72)
下載附件
2016-5-1 02:29 上傳
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image006.jpg 字體設(shè)置為:新宋體然后輸入“歡”,點生產(chǎn)字模 file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image008.jpg 點完后我們會得到如下的字模: 歡(0)
{0x14,0x20,0x24,0x10,0x44,0x4C,0x84,0x43,0x64,0x43,0x1C,0x2C,0x20,0x20,0x18,0x10}, {0x0F,0x0C,0xE8,0x03,0x08,0x06,0x08,0x18,0x28,0x30,0x18,0x60,0x08,0x20,0x00,0x00},/*"歡 /* (16 X 16 , 新宋體 ) */
這個就是我們要的“歡”字的字模,很多親們就會問,為什么軟件取出來的字模和程序中的不一樣,那是因為程序中的字模,我們是手動排列的。用軟件取出來的字模也是可以的。
0.png (44.76 KB, 下載次數(shù): 82)
下載附件
2016-5-1 02:26 上傳
搖搖棒程序:
- #include <AT89X52.h>
- #define uchar unsigned char
- #define uint unsigned int //宏定義
- #define KEY P3_7 //定義畫面切換按鍵
- uchar KY; //KY作用在后面說明
- uchar disp; //顯示漢字指針
- uchar pic=0,num=0; //pic為按鍵次數(shù);num為中斷次數(shù)
- uchar code love[] = {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x20,0x00,0x20,0x00,0x20,
- 0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,
- 0x04,0x10,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x04,0x10,0xF8,0x0F,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x10,
- 0x00,0x08,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x82,0x20,0x82,0x20,
- 0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*LOVE*/
- };
- uchar code loveyou[] = {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x78,0x00,0xFC,0x00,0xFE,0x01,0xFE,0x03,0xFE,0x07,0xFE,0x0F,0xFE,0x1F,0xFC,0x3F,
- 0xF8,0x7F,0xFC,0x3F,0xFE,0x1F,0xFE,0x0F,0xFE,0x07,0xFE,0x03,0xFE,0x01,0xFC,0x00,
- 0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*心形圖案*/
- };
- uchar code hehe[] = {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00,0x00,0x00,
- 0xF0,0x0F,0x08,0x10,0x04,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0x00,
- 0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,
- 0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0x00,
- 0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x04,0x20,0x08,0x10,
- 0xF0,0x0F,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*呵呵o(∩_∩)o圖案*/
- };
- unsigned char code hanzi[] = {
- 0x40,0x08,0x44,0x08,0x44,0x04,0x44,0x04,
- 0x44,0x02,0x44,0x3E,0x7F,0x49,0xC4,0x48,
- 0xC4,0x44,0x44,0x44,0x64,0x42,0x54,0x42,
- 0x4E,0x40,0x44,0x70,0x40,0x00,0x00,0x00,/*"老",0*/
- 0x00,0x40,0xFC,0x27,0x00,0x10,0x00,0x0E,
- 0xFF,0x01,0x00,0x00,0xF2,0x0F,0x12,0x00,
- 0x12,0x00,0x12,0x00,0xFE,0xFF,0x12,0x00,
- 0x12,0x04,0x12,0x08,0xF2,0x07,0x00,0x00,/*"師",0*/
- 0x10,0x80,0x10,0x43,0xF0,0x22,0x1F,0x14,
- 0x10,0x0C,0xF0,0x73,0x80,0x20,0x82,0x00,
- 0x82,0x40,0x82,0x80,0xF2,0x7F,0x8A,0x00,
- 0x86,0x00,0x82,0x00,0x80,0x00,0x00,0x00,/*"好",0*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x5F,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"!",0*/
- 0x20,0x22,0x30,0x23,0xAC,0x22,0x63,0x12,
- 0x10,0x12,0x40,0x00,0x20,0x00,0x50,0x7E,
- 0x4C,0x42,0x43,0x42,0x44,0x42,0x48,0x42,
- 0x30,0x7E,0x60,0x00,0x20,0x00,0x00,0x00,/*"給",0*/
- 0x00,0x00,0x80,0x00,0x80,0x00,0x40,0x00,
- 0x20,0x00,0x10,0x00,0x0C,0x00,0xE3,0x7F,
- 0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,
- 0x60,0x00,0xC0,0x00,0x40,0x00,0x00,0x00,/*"個",1*/
- 0x10,0x08,0x61,0xF8,0x06,0x07,0xE0,0x00,
- 0x04,0x00,0xA4,0xFF,0xA4,0x08,0xEF,0x07,
- 0xA4,0x14,0xA4,0x08,0xE4,0x07,0xAF,0x44,
- 0xA4,0x88,0xA4,0x7F,0x24,0x00,0x00,0x00,/*"滿",2*/
-
- 0x80,0x00,0x40,0x80,0x20,0x40,0x98,0x20,
- 0x87,0x10,0x82,0x0F,0x80,0x00,0x80,0x00,
- 0x83,0x20,0x84,0x40,0x98,0x3F,0x30,0x00,
- 0x60,0x00,0xC0,0x00,0x40,0x00,0x00,0x00,/*"分",3*/
- };
- /*****函數(shù)聲明*****/
- void display1_ltor(void);
- void display2_ltor(void);
- void display2_rtol(void);
- void display3(void);
- void display4(void);
- /*****n(us)延時子程序*****/
- void DelayUs(uint N)
- {
- uint x;
- for(x=0; x<=N;x++);
- }
- /*****中斷服務(wù)程序*****/
- void intersvr0(void) interrupt 0
- {
- ;
- KY=~KY; //每個搖動來回水銀開關(guān)會在擺幅兩端分別產(chǎn)生下降沿中斷,只提取其中一次(從左向右搖才顯示)
- if(KY==0)
- {
- num++; //計算中斷次數(shù)
- switch(pic) //選擇畫面
- {
- case 0:{display1_ltor();}break;
- case 1:{display2_ltor();}break;
- case 2:{display3();}break;
- case 3:{display4();}break;
- default:{display1_ltor();}
- }
- }
- }
- /*****顯示子程序1(漢字)*****/
- void display1_ltor(void)
- {
- uchar i;
- if(num>10){disp++;num=0;} //每中斷10次切換
- if(disp>1)disp=0;
- DelayUs(5200); //此處延時時間依各硬件差別而各不相同,試著調(diào)整使得顯示內(nèi)容居中即可
- for(i=0;i<64;i++)
- {
- P0=~hanzi[disp*128+i*2];
- P2=~hanzi[disp*128+i*2+1];
- DelayUs(100);
- }
- }
- /*****顯示子程序2(LOVE)*****/
- void display2_ltor(void)
- {
- uchar i;
- DelayUs(4000);
- for(i=0;i<64;i++)
- {
- P0=~love[i*2];
- P2=~love[i*2+1];
- DelayUs(140);
- }
- }
- /*****顯示子程序3(心形圖案)*****/
- void display3(void)
- {
- uchar i;
- DelayUs(4000);
- for(i=0;i<64;i++)
- {
- P0=~loveyou[i*2];
- P2=~loveyou[i*2+1];
- DelayUs(120);
- }
- }
- /*****顯示子程序4(呵呵o(∩_∩)o圖案)*****/
- void display4(void)
- {
- uchar i;
- DelayUs(4000);
- for(i=0;i<64;i++)
- {
- P0=~hehe[i*2];
- P2=~hehe[i*2+1];
- DelayUs(120);
- }
- }
- /*****主函數(shù)*****/
- void main(void)
- {
- IT0=1;
- EX0=1;
- EA=1; //開中斷,下降沿中斷
- KY=0;
- while(1) //主程序中只檢測按鍵
- {
- if(KEY==0) //畫面切換鍵按下
- {
- DelayUs(10000); //按鍵去抖
- if(KEY==0);
- pic++;}
- if(pic>3)pic=0;
- }
- }
- /*****END*****/
復(fù)制代碼
0.png (298.43 KB, 下載次數(shù): 60)
下載附件
2016-5-1 02:34 上傳
0.png (141.64 KB, 下載次數(shù): 95)
下載附件
2016-5-1 02:34 上傳
搖搖棒課程設(shè)計報告及其詳細(xì)的制作文件下載:
搖搖棒配套資料.zip
(14.04 MB, 下載次數(shù): 131)
2016-4-30 09:16 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|