xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

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

資源簡介

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

資源截圖

代碼片段和文件信息

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

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

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

u8?tempbuf;
//u8?disbuf[2]={0x000x00};
void?sdelay(u8?n) //延時程序
{
u8?i;
for(i=n;i>0;i--);
}
/*******************************************************
*??????????????????????????????????????????????????????*
*?驅(qū)動函數(shù)??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) //數(shù)碼管顯示程序(第c個數(shù)碼管顯示r)
{
smg595(~(1< P0=table[r]; //數(shù)碼管段信號輸出
sdelay(10);
P0=0;
}


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

??發(fā)送數(shù)據(jù)函數(shù)

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

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

??串行中斷服務(wù)函數(shù)

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

評論

共有 條評論