91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-10
  • 語言: C/C++
  • 標簽: 串口通信??

資源簡介

串口通信程序,附帶詳細說明! //程序功能:接收串口發過來的字符,當字符分別為12345的時候分別返回OKMCU字母,當為其他字符的時候,把接收內容返回。 #include #include //內部包含延時函數 _nop_(); typedef unsigned char u8; typedef unsigned int u16; sbit SER_595 =P1^0; //串行數據輸入 sbit SCK_595 =P1^1; //移位時鐘脈沖 sbit RCK_595 =P1^2; //輸出鎖存器控制脈沖 u8 i,j,k; u8 code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, //數碼管編碼 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; u8 temp,buf; //u8 disbuf[2]={0x00,0x00}; void sdelay(u8 n) //延時程序 { u8 i; for(i=n;i>0;i--); } /******************************************************* * * * 驅動函數 595 * * * *******************************************************/ void smg595(u8 byte) { u8 num,c; num=byte; for(c=0;c<8;c++) { SCK_595=0; num=num<<1; SER_595=CY; SCK_595=1; } for(c=0;c<8;c++) { SCK_595=0; SER_595=0; SCK_595=1; } RCK_595=0; RCK_595=1; } void dis8(u8 r,u8 c) //數碼管顯示程序(第c個數碼管顯示r) { smg595(~(1<<c)); //數碼管位信號輸出 P0=table[r]; //數碼管段信號輸出 sdelay(10); P0=0; } /********************************************************* 發送數據函數 *********************************************************/ void senddata(u8 dat) { SBUF =dat; while(!TI); TI = 0; } /********************************************************* 串行中斷服務函數 *********************************************************/ void serial() interrupt 4 { RI = 0; //清除串行接受標志位 ES = 0; //關閉串行中斷 buf = SBUF; //從串口緩沖區取得數據 switch(buf) { case 0x31: senddata('O');break; //接受到1,發送字符'O'給計算機 case 0x32: senddata('K');break; //接受到2,發送字符'K'給計算機 case 0x33: senddata('M');break; //接受到3,發送字符'M'給計算機 case 0x34: senddata('C');break; //接受到4,發送字符'C'給計算機 case 0x35: senddata('U');break; //接受到5,發送字符'U'給計算機 default: s

資源截圖

代碼片段和文件信息

//程序功能:接收串口發過來的字符,當字符分別為12345的時候分別返回OKMCU字母,當為其他字符的時候,把接收內容返回。
#include
#include? ?//內部包含延時函數?_nop_();
typedef??unsigned?char???u8;
typedef??unsigned?int????u16;

sbit??SER_595??=P1^0; //串行數據輸入
sbit??SCK_595??=P1^1;?? //移位時鐘脈沖
sbit??RCK_595??=P1^2;???//輸出鎖存器控制脈沖

u8?ijk;
u8?code?table[]={0x3f0x060x5b0x4f0x660x6d0x7d //數碼管編碼
????????????????????????0x070x7f0x6f0x770x7c0x390x5e0x790x71};

u8?tempbuf;
//u8?disbuf[2]={0x000x00};
void?sdelay(u8?n) //延時程序
{
u8?i;
for(i=n;i>0;i--);
}
/*******************************************************
*??????????????????????????????????????????????????????*
*?驅動函數??595??????????????????????????????????????*
*??????????????????????????????????????????????????????*
*******************************************************/
void?smg595(u8?byte)
{????
u8?numc;?
num=byte;??????
for(c=0;c<8;c++)
{
SCK_595=0;
num=num<<1;
SER_595=CY;
SCK_595=1;
}
for(c=0;c<8;c++)
{
SCK_595=0;
SER_595=0;
SCK_595=1;
}
RCK_595=0;
RCK_595=1;?
}

void?dis8(u8?ru8?c) //數碼管顯示程序(第c個數碼管顯示r)
{
smg595(~(1< P0=table[r]; //數碼管段信號輸出
sdelay(10);
P0=0;
}


/*********************************************************

??發送數據函數

*********************************************************/
void?senddata(u8?dat)
{
?????SBUF?=dat;
?????while(!TI);
?????TI?=?0;
}

/*********************************************************

??串行中斷服務函數

********************

評論

共有 條評論