STC11F02E內(nèi)容較小 如果需要顯示的圖片多一點(diǎn) 可以改內(nèi)存大的4E或者5E;
程序,步驟簡(jiǎn)單。
話不多出,附上圖片
Altium Designer畫(huà)的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.png (18.06 KB, 下載次數(shù): 84)
下載附件
2018-12-12 00:46 上傳
F}X9I}2P[L@PR``)O[D[QIV.png (65.83 KB, 下載次數(shù): 72)
下載附件
原理圖
2018-12-11 19:34 上傳
Screenshot_2018-12-11-19-36-40-940_com.miui.video(1).png (562.96 KB, 下載次數(shù): 79)
下載附件
實(shí)物圖
2018-12-11 19:39 上傳
單片機(jī)源程序如下:
- #include "yyb.h"
- #define out P1 //數(shù)據(jù)輸出端口
- sbit led1=P3^0; //第1組LED
- sbit led2=P3^1; //第2組LED
- sbit led3=P3^3; //第3組LED
- sbit led4=P3^4; //第4組LED
- sbit key1=P3^5; //按鍵輸入
- sbit p3_2=P3^2;
- uchar KY,num; //KY作用在后面說(shuō)明
- uchar BUFF; //緩存
- /*********全局變量定義**********/
- unsigned long int TimeCount=0;
- unsigned int DelayN=1, //延時(shí)臨時(shí)計(jì)數(shù)
- DelayTime=1; //每次延時(shí)的周期個(gè)數(shù)
- unsigned char key,keyy;
- void DelayUs(uint N)
- {
- uint x;
- for(x=0; x<=N;x++);
- }
- void display_word(unsigned char code *text)
- {
- unsigned char i,j=2;
-
- DelayUs(50); //因?yàn)榈谝坏诙肴Σ粫?huì)是完整的180 所以用延時(shí)來(lái)補(bǔ)償形成一個(gè)完整的圓 可適當(dāng)修改
-
- for(i=0;i<64;i++) //第一半圈顯示程序
- {
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B;
- if((key>=j)||(keyy>=j))
- BUFF=(*(text+i*4+3));
- else
- BUFF=(*(text+128+i*2+1));
- led4=0;
- P1=~BUFF>>1;
- P3M0=0x10; //0001 0000 //P3.4推挽輸出 P3 .0 P3.3 P3.1輸入高阻
- P3M1=0x0B; //0000 1011
-
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B; //0001 1011
- led4=1;
- P1=BUFF; //01010101 1357
- P3M0=0x10; //0001 0000 //P3.4推挽輸出 P3 .0 P3.3 P3.1輸入高阻
- P3M1=0x0B; //0000 1011
-
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B; //0001 1011
-
- if((key>=j)||(keyy>=j))
- BUFF=(*(text+i*4+2));
- else
- BUFF=(*(text+128+i*2+0));
- led3=0;
- P1=~BUFF>>1;
- P3M0=0x08; //0000 1000 //P3.3推挽輸出 P3 .0 P3.1 P3.4輸入高阻
- P3M1=0x13; //0001 0011
-
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B; //0001 1011
- led3=1;
- P1=BUFF; //01010101 1357
- P3M0=0x08; //0000 1000 //P3.3推挽輸出 P3 .0 P3.1 P3.4輸入高阻
- P3M1=0x13; //0001 0011
-
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B;
-
- if((key>=j)||(keyy>=j))
- BUFF=(*(text+i*4+1));
- else
- BUFF=(*(text+i*2+1));
- led2=0;
- P1=~BUFF>>1;
- P3M0=0x02; //0000 0010 //P3.1推挽輸出 P3 .0 P3.3 P3.4輸入高阻
- P3M1=0x19; //0001 1001
-
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B; //0001 1011
- led2=1;
- P1=BUFF; //01010101 1357
- P3M0=0x02; //0000 0010 //P3.1推挽輸出 P3 .0 P3.3 P3.4輸入高阻
- P3M1=0x19; //0001 1001
-
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B; //0001
- if((key>=j)||(keyy>=j))
- BUFF=(*(text+i*4+0));
- else
- BUFF=(*(text+i*2));
- led1=0;
- P1=~BUFF>>1;
- P3M0=0x01; //0000 0001 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1A; //0001 1010
-
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B; //0001 1011
- led1=1;
- P1=BUFF; //01010101 1357
- P3M0=0x01; //0000 0001 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1A; //0001 1010
-
- }
- for(i=0;i<64;i++) //第二半圈顯示程序
- {
-
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B;
- if((key>=j)||(keyy>=j))
- BUFF=(*(text+i*4+3+256));
- else
- BUFF=(*(text+128+i*2+1+256));
- led4=0;
- P1=~BUFF>>1;
- P3M0=0x10; //0001 0000 //P3.4推挽輸出 P3 .0 P3.3 P3.1輸入高阻
- P3M1=0x0B; //0000 1011
-
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B; //0001 1011
- led4=1;
- P1=BUFF; //01010101 1357
- P3M0=0x10; //0001 0000 //P3.4推挽輸出 P3 .0 P3.3 P3.1輸入高阻
- P3M1=0x0B; //0000 1011
-
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B; //0001 1011
-
- if((key>=j)||(keyy>=j))
- BUFF=(*(text+i*4+2+256));
- else
- BUFF=(*(text+128+i*2+0+256));
- led3=0;
- P1=~BUFF>>1;
- P3M0=0x08; //0000 1000 //P3.3推挽輸出 P3 .0 P3.1 P3.4輸入高阻
- P3M1=0x13; //0001 0011
-
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B; //0001 1011
- led3=1;
- P1=BUFF; //01010101 1357
- P3M0=0x08; //0000 1000 //P3.3推挽輸出 P3 .0 P3.1 P3.4輸入高阻
- P3M1=0x13; //0001 0011
-
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B;
-
- if((key>=j)||(keyy>=j))
- BUFF=(*(text+i*4+1+256));
- else
- BUFF=(*(text+i*2+1+256));
- led2=0;
- P1=~BUFF>>1;
- P3M0=0x02; //0000 0010 //P3.1推挽輸出 P3 .0 P3.3 P3.4輸入高阻
- P3M1=0x19; //0001 1001
-
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B; //0001 1011
- led2=1;
- P1=BUFF; //01010101 1357
- P3M0=0x02; //0000 0010 //P3.1推挽輸出 P3 .0 P3.3 P3.4輸入高阻
- P3M1=0x19; //0001 1001
-
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B; //0001
- if((key>=j)||(keyy>=j))
- BUFF=(*(text+i*4+0+256));
- else
- BUFF=(*(text+i*2+256));
- led1=0;
- P1=~BUFF>>1;
- P3M0=0x01; //0000 0001 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1A; //0001 1010
-
- P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1B; //0001 1011
- led1=1;
- P1=BUFF; //01010101 1357
- P3M0=0x01; //0000 0001 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
- P3M1=0x1A; //0001 1010
-
- }
- }
- /*****************************************/
- void display(unsigned char y)
- {
- switch (y){ //顯示內(nèi)容的先后
- case 0: {display_word(text0);}break;
- case 1: {display_word(text1);}break;
- // case 2: {display_word(text2);}break;
- // case 3: {display_word(text3);}break;
- }
- }
- /***************************************/
- /*********延時(shí)子程序**********/
- void yyv_init(void) //程序初始化
- {
- AUXR=0x80;
- CLK_DIV=1;
- EX0=1; //開(kāi)放外部中斷0
- IT0=1; //中斷0為邊沿觸發(fā)方式
- IP=0x02; //設(shè)置中斷優(yōu)先級(jí)
- TMOD=0x02; //定時(shí)器0方式2,8位重裝載
- TH0=0x00; //設(shè)定定時(shí)器初值 //8080
- TL0=0x01;
- KY=0;
- EA=1; //開(kāi)放中斷
- ET0=1; //開(kāi)放定時(shí)器0中斷
- TR0=1; //啟動(dòng)定時(shí)器0,開(kāi)始計(jì)時(shí)*/
- key=0; //初始化顯示第一組文字
- keyy=0;
- P1M0=0x55; //0101 0101 /P1.0 P1 .2 P1.4 P1.6推挽輸出
- P1M1=0xAA; //1010 1010
- }
- void timer0() interrupt 1 //定時(shí)器0中斷子程序
- {
- TimeCount++;
- if (DelayN!=0)DelayN--;
- }
- //顯示數(shù)據(jù)段
- unsigned char code text0[]={
- 0xFF,0x7F,0xEF,0xBF,0xEF,0xDF,0xEF,0xE7,0xEF,0xF8,0x00,0xFF,0xEF,0xFF,0xEF,0xFF,
- 0xEF,0xFF,0xEF,0xFF,0x0F,0xC0,0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0x87,0xFF,0xFF,/*"九",0*/
- 0xEF,0xFB,0x9F,0xFB,0xFD,0x83,0xF3,0xFC,0x3F,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,
- 0xFB,0xDF,0x03,0xC0,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFF,0xDF,0xFF,0xFF,/*"江",1*/
- 0xBF,0xFB,0xCF,0xFB,0xEE,0xFB,0x69,0xFB,0x6F,0xFB,0x6F,0xBB,0x6E,0x7B,0x69,0x81,
- 0x6F,0xF9,0x6F,0xFA,0x67,0xFB,0xEB,0xFB,0xEC,0xFB,0xAF,0xFB,0xCF,0xFB,0xFF,0xFF,/*"學(xué)",2*/
- 0xFF,0xFF,0x01,0x00,0xDD,0xFB,0xA5,0xF7,0x79,0xF8,0xEF,0x7F,0xF3,0xBE,0xDB,0xCE,
- 0xDB,0xF0,0xDA,0xFE,0xD9,0xFE,0xDB,0xC0,0xDB,0xBE,0xEB,0xBE,0xF3,0x8E,0xFF,0xFF,/*"院",3*/ // 這是第一半圈
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,//
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,//?0
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,//
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,//?1
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,//
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,//?2
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,//
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,//?3 由于下半部分顯示字體看不清楚 所以用來(lái)字符來(lái)修飾
-
- 0xFF,0xFF,0xFF,0xFF,0x07,0xE0,0x77,0xF7,0x77,0xF7,0x77,0xF7,0x77,0xF7,0x00,0x80,
- 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x07,0x60,0xFF,0x7F,0xFF,0x0F,0xFF,0xFF,/*"電",0*/
- 0x7F,0xFF,0x7D,0xFF,0x7D,0xFF,0x7D,0xFF,0x7D,0xFF,0x7D,0xBF,0x7D,0x7F,0x1D,0x80,
- 0x5D,0xFF,0x6D,0xFF,0x75,0xFF,0x79,0xFF,0x7D,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,/*"子",1*/
- 0xEF,0xFF,0xEF,0xFF,0x00,0x00,0xEF,0xFF,0xEF,0xFB,0xFF,0x7D,0x6F,0xBE,0xEF,0xCF,
- 0x00,0xF0,0xEF,0xBF,0xEF,0x7F,0x0F,0x80,0x7F,0xFF,0xFF,0xFE,0xFF,0xF9,0xFF,0xFF,/*"協(xié)",2*/
- 0xBF,0xFF,0xBF,0xFD,0xDF,0xBD,0xDF,0x1D,0xAF,0xAD,0xB7,0xB5,0xBB,0xB9,0xBC,0xBD,
- 0xBB,0xBD,0xB7,0xBD,0xAF,0xAD,0xDF,0x9D,0xDF,0x3D,0xBF,0xFD,0xBF,0xFF,0xFF,0xFF,/*"會(huì)",3*/ //這是第2半圈 組成一個(gè)圓
-
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,//
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,//?0
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,//
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,//?1
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,//
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,//?2
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,//
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,//?3 下同
- };
- unsigned char code text1[]={
- 0xFF,0x7F,0xFF,0x9F,0x01,0xE0,0xFD,0xFF,0xFD,0xEF,0x05,0xED,0x55,0xED,0x55,0xAD,//
- 0x55,0x6D,0x55,0x8D,0x55,0xE5,0x55,0xE9,0x05,0xED,0xFD,0xEF,0xFD,0xEF,0xFF,0xFF,//厚0*/
- 0xEF,0xFE,0x77,0xFF,0x3B,0x00,0xCC,0xFF,0xFB,0xBD,0x0B,0xCD,0x6B,0xFD,0x6B,0x8D,//
- 0x0B,0x7D,0x60,0x79,0x0B,0x65,0x6B,0x7D,0x6B,0x1D,0x0B,0xF5,0xFB,0xCD,0xFF,0xFF,//德1*/
- 0xDF,0xFF,0xEF,0xEF,0xD3,0xEF,0x58,0xEC,0xD3,0xED,0xCB,0xED,0xDB,0xED,0xCB,0xED,//
- 0xD7,0xED,0xD8,0xED,0xDB,0xAD,0x13,0x7C,0xEB,0xBD,0xFB,0xC1,0xFB,0xFF,0xFF,0xFF,//篤2*/
- 0xFF,0xFD,0xEF,0xFE,0x77,0xFF,0x3B,0x00,0xCC,0xFF,0xFF,0xFF,0xBF,0xFF,0xBD,0xFF,//
- 0xBD,0xBF,0xBD,0x7F,0x3D,0x80,0xBD,0xFF,0xBD,0xFF,0xBD,0xFF,0xBF,0xFF,0xFF,0xFF,//行3*/
- 0xBF,0xFD,0xBF,0xFD,0x7F,0xFE,0x0F,0xF0,0x7F,0xFE,0xBF,0xFD,0xBF,0xFD,0xFF,0xFF,//*0
- 0xBF,0xFD,0xBF,0xFD,0x7F,0xFE,0x0F,0xF0,0x7F,0xFE,0xBF,0xFD,0xBF,0xFD,0xFF,0xFF,//*1
- 0xBF,0xFD,0xBF,0xFD,0x7F,0xFE,0x0F,0xF0,0x7F,0xFE,0xBF,0xFD,0xBF,0xFD,0xFF,0xFF,//*2
- 0xBF,0xFD,0xBF,0xFD,0x7F,0xFE,0x0F,0xF0,0x7F,0xFE,0xBF,0xFD,0xBF,0xFD,0xFF,0xFF,//*3
- 0xBF,0xFD,0xBF,0xFD,0x7F,0xFE,0x0F,0xF0,0x7F,0xFE,0xBF,0xFD,0xBF,0xFD,0xFF,0xFF,//*4
- 0xBF,0xFD,0xBF,0xFD,0x7F,0xFE,0x0F,0xF0,0x7F,0xFE,0xBF,0xFD,0xBF,0xFD,0xFF,0xFF,//*5
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
旋轉(zhuǎn)搖搖棒.7z
(671.22 KB, 下載次數(shù): 114)
2018-12-12 00:46 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|