標(biāo)題:
單片機(jī)與pc串口實(shí)驗(yàn)
[打印本頁]
作者:
liuda
時間:
2015-1-21 23:18
標(biāo)題:
單片機(jī)與pc串口實(shí)驗(yàn)
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbit D=P1^0;
//========
uchar code as[]=" Receving Data:\0";
uchar a=0x30,b;
//=========
void init(void)
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
SCON=0x50;
TR1=1;
ES=1;
EA=1;
}
//=========
void delay(uint k)
{
uint i,j;
for(i=0;i<k;i++){
for(j=0;j<121;j++)
{;}}
}
//==========
void main(void)
{uchar i;
init();
while(1)
{
D=1;P0=SEG7[(a-0x30)/10];D=0;P2=0x7f;delay(2);
D=1;P0=SEG7[(a-0x30)%10];D=0;P2=0xbf;delay(2);
if(RI)
{
RI=0;i=0;
while(as[i]!='\0'){SBUF=as[i];while(!TI);TI=0;i++;}
SBUF=b;while(!TI);TI=0;
EA=1;
}
}
}
//=========
void serial_serve(void) interrupt 4
{
a=SBUF;
b=a;
EA=0;
}
復(fù)制代碼
作者:
liuda
時間:
2015-1-21 23:18
再來一個復(fù)雜點(diǎn)的
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
//======================
uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code ACT[4]={0xfe,0xfd,0xfb,0xf7};
sbit D=P3^7;
//====================
sbit D0=P1^0;
sbit D1=P1^1;
sbit D2=P1^2;
sbit D3=P1^3;
sbit D4=P1^4;
sbit D5=P1^5;
sbit D6=P1^6;
sbit D7=P1^7;
#define ON 0
#define OFF 1
uchar a[2];
uchar cnt;
bit outflag;
//================
void delay(uint k)
{
uint i,j;
for(i=0;i<k;i++){
for(j=0;j<121;j++)
{;}}
}
//============
void init(void)
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
SCON=0x50;
TR1=1;
ES=1;
EA=1;
}
//==============
void main(void)
{
init();
while(1)
{
D=1;P0=SEG7[a[0]];D=0;P2=ACT[1];delay(2);
D=1;P0=SEG7[a[1]];D=0;P2=ACT[0];delay(2);
if(outflag==1)
{
switch(a[0])
{
case 1:if(a[1]==1)D0=ON;else D0=OFF;break;
case 2:if(a[1]==1)D1=ON;else D1=OFF;break;
case 3:if(a[1]==1)D2=ON;else D2=OFF;break;
case 4:if(a[1]==1)D3=ON;else D3=OFF;break;
case 5:if(a[1]==1)D4=ON;else D4=OFF;break;
case 6:if(a[1]==1)D5=ON;else D5=OFF;break;
case 7:if(a[1]==1)D6=ON;else D6=OFF;break;
case 8:if(a[1]==1)D7=ON;else D7=OFF;break;
default:break;
}
outflag=0;
}
}
}
//==============
void serial_serve(void) interrupt 4
{
uchar temp;
RI=0;
EA=0;
temp=SBUF;
switch(cnt)
{
case 0:if(temp=='#')cnt=1;else outflag=0;break;
case 1:if((temp>0x30)&&(temp<0x39)){a[0]=temp-0x30;cnt=2;}
else outflag=0;break;
case 2:if(temp=='(')cnt=3;
else outflag=0;break;
case 3:if((temp>=0x30)&&(temp<=0x38)){a[1]=temp-0x30;cnt=4;}
else outflag=0;break;
case 4:if(temp==')'){cnt=0;outflag=1;}
else outflag=0;break;
default:break;
}
EA=1;
}
復(fù)制代碼
作者:
薄情yi
時間:
2017-4-16 19:05
請問這個后來實(shí)現(xiàn)的效果截圖有嗎
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1