資源簡介
該工程,是用KEIL開發(fā)的適合單片機(jī)的采集AD值,并且通過串口傳輸數(shù)據(jù),采用了協(xié)議傳輸,通過相應(yīng)的上位機(jī)顯示波形圖,很有用

代碼片段和文件信息
/**********************
文件名稱:ad_wave.c
作者:王偉
說明:串口發(fā)送AD例程
修改記錄:
***********************/
/**********************
基于STC15F2K60S2系列單片機(jī)C語言編程實(shí)現(xiàn)
使用如下頭文件
***********************/
#include?“STC15F2K60S2.h“
/**********************
宏定義
/*********************/
#define?Machine_Focs?11059200L
#define?BAUD?115200
/**********************
引腳別名定義
***********************/
/**********************
全局變量定義
***********************/
char?rec_flag=0;??//用于標(biāo)識接收的數(shù)據(jù)
unsigned?char?a=0b=1c=0;?//用于保存并校驗(yàn)收到的數(shù)據(jù)
?
char?flag=0;
unsigned?char?i=1;
unsigned?char?zero=0; ???//發(fā)送高8位
unsigned?char?one=0;
unsigned?char?temp=0;
unsigned?char?light=0;
unsigned?char?zero_t=0; ??//發(fā)送低2位
unsigned?char?one_t=0;
unsigned?char?temp_t=0;
unsigned?char?light_t=0;
unsigned?char?other=0;????//另外湊齊的一個(gè)字節(jié)
unsigned?char?sum=0;//存放校驗(yàn)和
/****************************************************************************
*Uart1_Init()
*初始化串口1的相關(guān)設(shè)置,設(shè)定串口的波特率等
***************************************************************/
void?Uart1_Init(void)
{
AUXR=0X00; //改為定時(shí)器T0為12T工作模式注意工作模式的切換
SCON|=0X50;????//允許接收
TL1=(65536-(Machine_Focs/4/BAUD));
TH1=(65536-(Machine_Focs/4/BAUD))>>8;
AUXR|=0X40;
RI=0;
TI=0;
TR1=1;
//使用定時(shí)器T0定時(shí)為1ms
TMOD=0x00;
IE=0xB2;//包括允許總中斷,AD中斷,T0中斷,串口中斷
? TH0=(65535-1000)/256;
TL0=(65535-1000)%256;
TR0=1;//啟動定時(shí)器T0
PS?=?1?; //串口1中斷高優(yōu)先級
}
/********************************************************************************************
*Uart1()
*串口1中斷服務(wù)程序,只有當(dāng)接收到數(shù)據(jù)時(shí)才應(yīng)用串口中斷,當(dāng)發(fā)送數(shù)據(jù)時(shí)關(guān)閉串口中斷
*/
void?Uart1_fun()?interrupt?4?using?1
{
??if(RI==1)
??{
?? ???RI=0;
???
???if(c==b)
???{
??? b=1;
??? return;
???}
???if((rec_flag==0)&&(SBUF==0x5A))
???{
??? // IE=0x90;//測試
??? a=SBUF;
??? rec_flag++;
???}
???else??if(rec_flag==1)
{
??b=SBUF;
??if(b==0x5A)
??{
?? ??rec_flag=1;
??a=0x5A;
??return;
??}
rec_flag++;
}
else??if(rec_flag==2)
{
c=SBUF;
if(c==0x5A)
{
?? ??rec_flag=1;
??a=0x5A;
??return;
}
if(c!=a+b)
{
b=1;
}
rec_flag=0;
// IE=0xB2;
}
??}
??
// ??if(RI==1)
// ??{
//
// RI=0;
//
//
// if(rec_flag==2)
// {
// c=SBUF;
// c=~c;
// if(c!=a+b)
// {
// b=1;
// }
// rec_flag=0;
// }
// if(rec_flag==1)
// {
// b=SBUF;
// rec_flag++;
// }
// if(SBUF==0x5A)
// {
// ?a=SBUF;
// ?rec_flag++;
// }
//
//
// ?
//
// ??}
}
/********************************************************************/
/*
延時(shí)函數(shù)
*/
void?Delay(int?n)
{
int?y;
while(n--)
{
y=60;
while(y--);
}
}
//發(fā)送數(shù)據(jù)
void?SendData(int?byt)
{
?SBUF=0;//緩沖區(qū)清零
?SBUF=byt;
?while(!TI);
?TI=0;
} ?
//T0中斷并且定時(shí)發(fā)送數(shù)據(jù)給上位機(jī)
void?t0int()?interrupt?1
{
if(i==b)
{
//TR0=0;
IE=0x00;//發(fā)送數(shù)據(jù)的時(shí)候所有關(guān)閉所有中斷
???
SendDa
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????32581??2014-08-22?19:49??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\參考資料\測光和溫度和電壓.jpg
?????文件??????65536??2014-08-22?21:40??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\采集AD串口傳輸說明.doc
?????文件???????9226??2014-08-24?01:20??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\采集AD值顯示波形圖工程\AD_Wave
?????文件???????5403??2014-08-24?01:19??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\采集AD值顯示波形圖工程\ad_wave.c
?????文件???????2131??2014-08-24?01:20??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\采集AD值顯示波形圖工程\AD_Wave.hex
?????文件?????????46??2014-08-24?01:20??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\采集AD值顯示波形圖工程\AD_Wave.lnp
?????文件??????15054??2014-08-24?01:20??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\采集AD值顯示波形圖工程\ad_wave.LST
?????文件??????14533??2014-08-24?01:20??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\采集AD值顯示波形圖工程\AD_Wave.M51
?????文件??????10984??2014-08-24?01:20??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\采集AD值顯示波形圖工程\ad_wave.OBJ
?????文件???????1674??2014-08-24?01:35??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\采集AD值顯示波形圖工程\AD_Wave.plg
????.......?????55728??2014-08-24?01:35??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\采集AD值顯示波形圖工程\AD_Wave.uvopt
?????文件??????13473??2014-08-22?18:47??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\采集AD值顯示波形圖工程\AD_Wave.uvproj
????.......?????55728??2014-08-24?01:35??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\采集AD值顯示波形圖工程\AD_Wave_uvopt.bak
?????文件??????13469??2014-08-22?18:45??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\采集AD值顯示波形圖工程\AD_Wave_uvproj.bak
?????文件???????9064??2014-03-29?12:51??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\采集AD值顯示波形圖工程\STC15F2K60S2.H
?????目錄??????????0??2014-08-23?21:31??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\參考資料
?????目錄??????????0??2014-08-24?01:35??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02\采集AD值顯示波形圖工程
?????目錄??????????0??2014-08-23?21:31??采集AD值顯示波形圖工程03\采集AD值顯示波形圖工程02
?????目錄??????????0??2014-08-23?23:41??采集AD值顯示波形圖工程03
-----------?---------??----------?-----??----
???????????????304630????????????????????19
評論
共有 條評論