|
基于51單片機(jī)的SC2622的315M遙控器設(shè)計(jì)的原理圖如下:
QQ截圖20170309110419.png (40.69 KB, 下載次數(shù): 59)
下載附件
原理圖
2017-3-9 11:04 上傳
單片機(jī)程序源碼:
- #include<reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- sbit dula=P3^7;//定義段選引腳
- sbit wela=P3^6;//定義位選引腳
- sbit P30=P3^0;//定義百位控制引腳
- sbit P31=P3^1;//定義十位控制引腳
- sbit P32=P3^2;//定義個(gè)位控制引腳
- sbit VCC=P3^3;//定義控制加電信號(hào)輸出引腳
- sbit UP=P3^4;//定義上升信號(hào)輸出引腳
- sbit DOWN=P3^5;//定義下降信號(hào)輸出引腳
- uchar code table[]=
- {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//八段共陽數(shù)碼管數(shù)組
- //uchar code table0[]=
- //{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- //uchar code table1[]=
- //{0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
- void init();//聲明初始化程序
- void delayms(uint);//聲明延時(shí)程序
- void display(uchar,uchar,uchar);//聲明數(shù)碼管顯示程序
- void address();//聲明地址運(yùn)算程序
- uint bai,shi,ge,num,k,add,add1,flag,ok,right;
- uchar keyscan(void);//
- /********************初始化程序*************************/
- void init()
- {
- // TMOD=0x11;
- // TH0=(65536-45872)/256;
- // TL0=(65536-45872)%256;
- // TH1=(65536-45872)/256;
- // TL1=(65536-45872)%256;
- // EA=1;
- // TR1=1;
- // ET0=1;
- // ET1=1;
- // TR0=1;
- // P2=0x00;
- // P1=0x00;
- // P3=0;
- k=0;
- bai=0;
- shi=0;
- ge=0;
- ok=0;
- }
- /********************數(shù)碼管顯示程序*************************/
- void display(uchar bai,uchar shi,uchar ge)
- {
- dula=1;
- P2=table[bai];
- dula=0;
- P2=0x00;
- wela=1;
- P30=1;P31=0;P32=0;
- wela=0;
- delayms(2);
- dula=1;
- P2=table[shi];
- dula=0;
- P2=0x00;
- wela=1;
- P30=0;P31=1;P32=0;
- wela=0;
- delayms(2);
- dula=1;
- P2=table[ge];
- dula=0;
- P2=0x00;
- wela=1;
- P30=0;P31=0;P32=1;
- wela=0;
- delayms(2);
- }
- /*******************延時(shí)程序*************************/
- void delayms(uint xms)
- {
- uint i,j;
- for(i=xms;i>0;i--)
- for(j=110;j>0;j--);
- }
- /********************鍵盤掃描程序*************************/
- uchar keyscan(void)
- {
- uchar cord_h,cord_l;
- P0=0x0f;
- cord_h=P0&0x0f;
- if(cord_h!=0x0f)
- {
- delayms(10);
- if(cord_h!=0x0f)
- {
- cord_h=P0&0x0f;
- P0=cord_h|0xf0;
- cord_l=P0&0xf0;
- return(cord_h+cord_l);
- }
- }
- while(cord_h!=0x0f);
- flag=1;
- return(0xff);
- }
- /********************主程序*************************/
- void main()
- {
- uchar key;
- init();
- while(1)
- {
- key=keyscan();
- switch(key)
- {
- case 0x7e: //1
- //ok=0;
- flag=0;
- k=0;
- // address();
- if(ok==1&&right==1)
- {
- //right=0;
- UP=1;
- DOWN=0;
- P1=add;
- VCC=1;
- delayms(1000);
- P1=add1;//display(bai,shi,ge);
- delayms(1000);
- VCC=0;
- UP=0;
- add=0;
- P1=0;
- }
- break;//上升
-
- case 0x7d: //2
- //ok=0;
- flag=0;
- k=0;
- //address();
- if(ok==1&&right==1)
- {
- // right=0;
- DOWN=1;
- UP=0;
- P1=add;
- VCC=1;
- delayms(1000);
- P1=add1;// display(bai,shi,ge);
- delayms(1000);
- VCC=0;
- DOWN=0;
- add=0;
- P1=0;
- }
- break;//下降
-
- // case 0x7b: //3
-
-
- case 0x77: //a
- ok=0;flag=0;right=0;
- break;//取消ok
-
- case 0xbe: //4
- if(flag==1)
- {
- num=3; k=k+1; flag=0;ok=0;right=0;
- }
- break;//3
-
- …………余下代碼請(qǐng)下載附件…………
復(fù)制代碼
0.png (59.93 KB, 下載次數(shù): 34)
下載附件
2017-3-9 18:08 上傳
下載:
遙控器0328.rar
(1.6 KB, 下載次數(shù): 25)
2017-3-9 11:09 上傳
點(diǎn)擊文件名下載附件
程序 下載積分: 黑幣 -5
|
|