欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
求大神對以下單片機源代碼做出闡述,目前我還看不懂
[打印本頁]
作者:
123112233211
時間:
2020-11-12 17:28
標題:
求大神對以下單片機源代碼做出闡述,目前我還看不懂
/*************** writer:shopping.w ******************/
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar Receive_Buffer[101];
uchar Buf_Index = 0;
uchar code DSY_CODE[]=
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00
};
void Delay(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
void main()
{
uchar i;
P0 = 0x00;
Receive_Buffer[0]=i;
SCON = 0x50;
TMOD = 0x20;
PCON = 0x00;
TH1 = 0xfd;
TL1 = 0xfd;
EA = 1;
EX0 = 1;
IT0 = 1;
ES = 1;
IP = 0x01;
TR1 = 1;
while(1)
{
for(i=0;i<100;i++)
{
if(Receive_Buffer[i]==-1)
break;
P0 = DSY_CODE[Receive_Buffer[i]];
Delay(200);
}
Delay(200);
}
}
void Serial_INT() interrupt 4
{
uchar c;
if(RI==0)
return;
ES = 0;
RI = 0;
c = SBUF;
if(c>='0' && c<='9')
{
Receive_Buffer[Buf_Index]=c-'0';
Receive_Buffer[Buf_Index+1]=-1;
Buf_Index = (Buf_Index+1)%100;
}
ES = 1;
}
void EX_INT0() interrupt 0
{
uchar *s = ("Receiving From 8051...\r\n");
uchar i = 0;
while(s[i]!='\0')
{
SBUF = s[i];
while(TI == 0);
TI = 0;
i++;
}
}
復制代碼
作者:
器車人
時間:
2020-11-12 18:08
/*************** writer:shopping.w ******************/
#include <reg52.h>//頭文件
#define uint unsigned int//宏定義無符號整型變量
#define uchar unsigned char//宏定義無符號字符型變量
uchar Receive_Buffer[101];//定義一個接收緩存數組
uchar Buf_Index = 0;//定義一個無符號字符型變量
uchar code DSY_CODE[]=
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00
};//共陰極數碼管編碼值
void Delay(uint x)//延時函數
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
void main()//主函數
{
uchar i;//定義一個無符號字符型變量
P0 = 0x00;//初始化P0口,賦值為0,輸出低電平
Receive_Buffer[0]=i;//初始化數組0的值
SCON = 0x50;//單片機寄存器設置
TMOD = 0x20;//
PCON = 0x00;//
TH1 = 0xfd;//計數器初始化高八位
TL1 = 0xfd;//低八位
EA = 1;//開總中斷
EX0 = 1;//開外部中斷
IT0 = 1;//啟動定時器中斷
ES = 1;//啟動外部中斷
IP = 0x01;
TR1 = 1;//啟動定時器1
while(1)//循環
{
for(i=0;i<100;i++)
{
if(Receive_Buffer[i]==-1)
break;
P0 = DSY_CODE[Receive_Buffer[i]];
Delay(200);
}
Delay(200);
}
}
void Serial_INT() interrupt 4
{
uchar c;
if(RI==0)
return;
ES = 0;
RI = 0;
c = SBUF;
if(c>='0' && c<='9')
{
Receive_Buffer[Buf_Index]=c-'0';
Receive_Buffer[Buf_Index+1]=-1;
Buf_Index = (Buf_Index+1)%100;
}
ES = 1;
}
void EX_INT0() interrupt 0
{
uchar *s = ("Receiving From 8051...\r\n");
uchar i = 0;
while(s[i]!='\0')
{
SBUF = s[i];
while(TI == 0);
TI = 0;
i++;
}
}
復制代碼
作者:
器車人
時間:
2020-11-12 18:10
void Serial_INT() interrupt 4//定時器1中斷服務函數
{
uchar c;
if(RI==0)
return;
ES = 0;
RI = 0;
c = SBUF;
if(c>='0' && c<='9')
{
Receive_Buffer[Buf_Index]=c-'0';
Receive_Buffer[Buf_Index+1]=-1;
Buf_Index = (Buf_Index+1)%100;
}
ES = 1;
}
void EX_INT0() interrupt 0//外部中斷函數
{
uchar *s = ("Receiving From 8051...\r\n");
uchar i = 0;
while(s[i]!='\0')
{
SBUF = s[i];
while(TI == 0);
TI = 0;
i++;
}
}
復制代碼
作者:
csmyldl
時間:
2020-11-12 18:14
該程序是接收串口發送來的100個數據,接收后在P0口的數碼管上顯示接收來的數據(數據只限0-9的數字)
作者:
SUN_
時間:
2020-11-12 18:18
就是從串口接受數據然后顯示出來,不難的!
作者:
lovexulu
時間:
2020-11-12 18:29
此程序可用串口中斷接收串口發送來的數字0~9,并將數字保存在數組中,數組能保存最近100個數據,超過時從最早的數據開始依次替換。主程序會循環將收到數字按照查表法轉換成段碼輸出在P0口,如果數據總數不到100個則以當前數據尾數-1結束,并重啟循環顯示。此程序有外部中斷INT0,當外部中斷觸發則向串口發送“Receiving From 8051...\r\n”
作者:
花心--大蘿卜
時間:
2020-11-12 21:04
就是從串口接受數據然后顯示出來,接收串口發送來的100個數據,接收后在P0口的數碼管上顯示接收來的數據
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1