亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mc68hc908rf2.txt

?? MC68HC908RF2帶曼徹斯特碼的發射程序,給要用RF2進行輪胎監測系統設計的朋友一點幫助
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
MC68HC908RF2帶曼徹斯特碼的發射程序
作者:  文章來源:   時間:2007-10-21 16:09:25   閱讀次數:836
--------------------------------------------------------------------------------
 

 
波特率:9600 


#include <hidef.h> /* for EnableInterrupts macro */
#include <MC68HC908RK2.h> /* include peripheral declarations */

/*****************************************************************************/
/* PROJECT : RF key demonstrator (ASK or FSK) */
/* constant file */
/*****************************************************************************/
/* Protocol */
#define nb_wake_up_bit 0 // not using the variable to delay for some time.
#define Preamble 0xFB86 // End of Tone + ID (B8) + Header (for using Romeo2 SPI)
#define Device_ID 0x7800 // length = 4 ; from $7800 to $7803


// NOTE: <IMPORTANT> Each of these 4 bytes must be programmed
// individually for each RK/RF2 upon programming the flash,
// and represent the tire identification.

#define wait_0_2ms 400 // for temperature sense
#define wait_0_5ms 1000 // for L22B pressure sense
#define wait_0_8ms 1600 // for long L90J pressure sense
#define wait_1ms 2000 // = 1 ms
#define wait_1_8ms 3810 // = 1.8 ms for Tango3
#define wait_2ms 4000 // = 2 ms for Remeo2

/* Transmission Timer Clock Generator */
/* This is the section that must be modified when the crystal is changed. */
/* You will also have to clear TSC[2:0] during transmission (see emis1.asm) */

/* ~9600 bauds using MCU clock for timer (not as accurate over temperature) */

// #define UHF_period 200 // =2MHz/10000bauds
// #define UHF_Duty_Cycle 100 // =0.5*UHF_period

/* use of DATACLK at 9600 bauds, 434 MHz*/

#define UHF_Period 22 // = 212kHz/9600 bauds
#define UHF_Duty_Cycle 11 // = 50%

/* use of DATACLK at 4800 bauds, 434 MHz*/
//#define UHF_period 44 // = 212kHz/4800 bauds
//#define UHF_Duty_Cycle 22 // = 50%

/* use of DATACLK at 9600 bauds, 315 MHz*/

// #define UHF_period 16 // = 154kHz/9600 bauds
// #define UHF_Duty_Cycle 8 // = 50%

/* use of DATACLK at 1200 bauds, 434 MHz:*/

// #define UHF_period_park 176 // = 212kHz/1200 bauds
// #define UHF_Duty_Cycle_park 88 // = 50%

/* use of DATACLK at 1200 bauds, 315 MHz:*/

// #define UHF_period_park 128 // = 154kHz/1200 bauds
// #define UHF_Duty_Cycle_park 64 // = 50%


//** hardef.h
//** Tango 3 I/O assignments

//#define tango_Band PTB_PTB0
#define tango_Band PTA_PTA7 
#define tango_Enable PTB_PTB1
#define tango_DATA_RF PTB_PTB2
#define tango_UP_CLOCK PTB_PTB3 
//#define tango_Mode PTA_PTA7 // PA7 **Important: porta!!! NOT portb!!!
#define tango_Mode PTB_PTB0 

//* Mode Control pins *
//#define S1 PTA_PTA1
//#define S0 PTA_PTA2
#define S1 PTA_PTA2
#define S0 PTA_PTA3 
//* Digital Data Output Pin *
//#define DOUT_BAR PTA_PTA3
//#define DOUTb PTA_PTA3 
#define DOUT_BAR PTA_PTA1
#define DOUTb PTA_PTA1
//* Data Clock Pin *
#define DCLK PTA_PTA4 
//* Serial Data In Pin *
#define SDATA PTA_PTA5
#define DDATA PTA_PTA5


#define LOWV 0x20
#define LVIOUT 0x80
#define nb_tx_byte 10

/*****************************************************************************/
/* PROJECT : RF key demonstrator (ASK or FSK) */
/* Variable file */
/* Modified by Jeff Burgess */
/* - added work-around for bug in Romeo2 receiver, where its SPI corrupts */
/* the last bit of data in the frame. Simply transmit one more useless */
/* byte, that will be corrupted instead of the useful data. */
/*****************************************************************************/

//*** define tyre's ID @ 0x7800
//const uchar ID[]@Device_ID = {0x55,0x10,0x77,0x77}; 
const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x01}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x02}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x03}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x04}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x05}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x06}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x07}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x08}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x09}; 


 

// transmit variables
// Preamble (2 bytes) - Device ID (4 bytes) - daytona data (2 bytes) -
// Status (1 byte) - CRC (1 byte) - Junk (1 byte)


uchar Tx_Byte[nb_tx_byte]; 
uchar Current_Tx_Bit;
uchar Next_Tx_Bit;
uchar current_tx_byte;


/* hardware variables for Daytona */
// variables for Daytona Serial and SAR routines

uchar T2; // temporary variables 
uchar T3; //
uchar T4; //
uchar T5; //
uchar SAR; //
uchar STATUS; //
uchar Tx_count; // Measure pressure every 3 sec, tx every 54 sec.
uchar Max_Pres; // Holds the maximum pressure
uchar Min_Pres; // Holds the minimum pressure
uchar AVGCOUNT; // Averaging counter (only used with noisy L22B silicon)
uchar TEMPERATURE; // converted temperature
uchar PRESSURE; // converted pressure 
uchar COUNTER; // counter to count every 3 or 6 secs
uchar Random_Number; // Pseudo-random number (from timer counter low register)


void init_ports(void);
void init_icg(void);
void init_timer(void);
void init_kbi(void);
void init_sys(void);

void tango_read_temperature_mode(void);
void tango_read_pressure_mode(void);
void tango_read_data_out(void);
void tango_idle(void);

void asleep_tx(void);

void Daytona_NoTx_Read(void);
void Daytona_Tx_Read(void); // Read temperature and pressure data.

void Check_battery(void);


void Fast_Data_Mode(void);
void Normal_Data_Mode(void); 
void Transmit_Prepare(void);
void Transmit_Frame(void); // Process and transmit the data.
void Transmit_Message(void); 

void Random_delay(void); // Add a random delay (~0 - 100 ms).
void tempo(uint ch);
void delay_200_ms(void);
void delay_800_ms(void); // Wait for about 0.8 seconds.
void make_frame(void);
uchar ad_converted(void);
void send_byte(uchar ch);
void toggle_clk(void);


/*********************************************************/
/* 函數:interrupt void Tx_UHF_ISR(void); */
/* 功能:中斷程序,將數據按曼徹斯特碼發射出去 */ 
/*********************************************************/
/* Tx_UHF_ISR */ 
/* Description : it decides what to do on timer overflow */ 
/* if current = next, then toggle on timer overflow,*/ 
/* else no toggle */
/* In : Next_Tx_bit, Current_Tx_Bit */ 
/* Out : TSC0, nb_1 */ 
/* local variables : */ 
/*********************************************************/
interrupt void Tx_UHF_ISR(void){

asm LDA TSC0 // reenable next input capture isr by reading tsc0
TSC0_CH0F = 0; // clearing input capture flag


if(!(Next_Tx_Bit==Current_Tx_Bit)){
TSC0_TOV0 = 0; //No Tovf
} 

else{
TSC0_TOV0 = 1; // Tovf
}
}


/*********************************************************/
/* 函數:__interrupt void Cpu_Interrupt(void) */
/* 功能:中斷程序,執行空操作 */ 
/*********************************************************/
interrupt void KB_entry(void){ 

tango_Enable = 1; // replace the contents in <emis1.asm>

INTKBSCR_IMASKK = 1; // Disable keyboard Interrupts.
Daytona_NoTx_Read(); // Read pressure data (not include temperature)
Tx_count++;
if(Tx_count==1){
Transmit_Prepare();
}

init_kbi();
init_ports();
tango_idle();
asm stop
} 


/*********************************************************/
/* 函數:void main(void); */
/*********************************************************/
void main(void) {
DisableInterrupts; /* disable interrupts */
/* include your code here */

//CONFIG = 0x32; // LVISTOP disabled!!!
// CONFIG[0]=COPD=0:ENABLE WATCHDOG!
// timeout period = 2**18-2**4 CGMXCLK cycles

CONFIG = 0x33; // WATCHDOG disabled!!!


init_sys(); // Initialize Module, clear counters/variables.
tango_idle(); // Place Daytona in IDLE mode and

// asm stop // wait here for falling edge at DOUT.
// when using sensor.

//*** for test program
for(;;) {
PTA_PTA6 = ~PTA_PTA6; //FOR TEST ok!
Transmit_Frame();
} // loop forever /
//please make sure that you never leave this function /

}

 

/**************************************************************/
/* LVI status check routine */
/* V0.1 17 July, 2002 Jeff Burgess */
/* Called with: jsr SEND_BYTE */
/* Returns: STATUS[7,6] containing the data */
/* from LVISR[7,5] respectively. */
/* (c) 2002 Motorola */
/**************************************************************/
void Check_battery(void){ 
asm LDA LVISR
T3 = LVISR;
if(0!=(T3&LOWV)){ //LOWV is bit 5 0010-0000
//STATUS.S_LOWV = 1; 
}

if(0!=(T3&LVIOUT)){
//STATUS.S_LVIOUT = 1; //LVIOUT is bit 7 1000-0000 
} 
}


/**************************************************************/
/* 函數:void Daytona_NoTx_Read(void); */
/* 功能:沒到發射時間只采樣壓力值 */ 
/* 須更新最大最小壓力值:Max_Pres 和 Min_Pres */ 
/**************************************************************/
void Daytona_NoTx_Read(void){ 

tango_read_pressure_mode(); //Sample pressure
tempo(wait_0_5ms); 
tango_read_data_out();
PRESSURE = ad_converted();
tango_idle();

if(PRESSURE>Max_Pres){
Max_Pres = PRESSURE;
} 

else if(PRESSURE<Min_Pres){
Min_Pres = PRESSURE;
} 

else {
}

}

/**************************************************************/
/* 函數:void Daytona_Tx_Read(void); */
/* 功能:已到發射時間,采樣壓力和溫度值 */ 
/**************************************************************/
void Daytona_Tx_Read(void){

tango_read_temperature_mode();
tempo(wait_0_2ms);
tango_read_data_out();
TEMPERATURE = ad_converted();

tango_read_pressure_mode();
tempo(wait_0_5ms);
PRESSURE = ad_converted();
tango_idle();

}

/**************************************************************/
/* 函數:uchar ad_converted(void); */
/* 功能:A/D轉換程序,用以采集MPXY8020傳感器的溫度、壓力數據 */ 
/**************************************************************/
uchar ad_converted(void){
uchar i;
uchar data=0;
uchar ad_data;
uchar data_buff;

SAR = 0;

T2 = 0x80; 

for(i=1;i<8;i++){

data_buff = T2|SAR; 
send_byte(data_buff);
if(1==DOUT_BAR) { //TOO LOW
SAR |=T2;
} 
else{
T2 = T2>>1; 
} 
} 

ad_data = SAR;
return ad_data; 
}

void send_byte(uchar ch){
uchar data;
uchar mask = 0x80;
uchar i; //bit count
data = ch;
DCLK = 0;
for(i=8;i>0;i--){
if(1==data&mask){
SDATA = 1;
toggle_clk();
} 

else{
SDATA = 0;
toggle_clk();
}
} 
}


void toggle_clk(void){
DCLK = 1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久久久久99999| 欧美一区二区视频网站| 欧美经典一区二区三区| 亚洲v日本v欧美v久久精品| 91精品一区二区三区在线观看| 免费av成人在线| 国产欧美一区二区精品婷婷| 日韩欧美高清一区| 成人黄色免费短视频| 午夜不卡av在线| 亚洲国产精品成人综合| 欧美国产一区在线| 亚洲日本一区二区| 久久久国产精品午夜一区ai换脸 | 26uuu成人网一区二区三区| www.在线欧美| 国产主播一区二区三区| 午夜av一区二区三区| 日韩在线观看一区二区| 一区二区三区免费网站| 国产精品丝袜91| 精品国产一区二区三区不卡| 欧美日韩国产一级二级| 成人av网站在线观看| 日本精品视频一区二区三区| 丰满亚洲少妇av| 蓝色福利精品导航| 免费一级片91| 99久久精品情趣| 国产**成人网毛片九色| 91视频精品在这里| av福利精品导航| 91福利在线看| 久久先锋影音av鲁色资源网| 亚洲人xxxx| 亚洲人xxxx| 精品制服美女丁香| 国模娜娜一区二区三区| 91麻豆产精品久久久久久| 制服丝袜亚洲播放| 亚洲欧洲韩国日本视频| 亚洲欧洲av色图| 麻豆传媒一区二区三区| 免费在线观看视频一区| 99久久精品费精品国产一区二区| 日韩午夜精品电影| 精品国内二区三区| 亚洲综合在线视频| 成人免费不卡视频| 97aⅴ精品视频一二三区| 精品日韩av一区二区| 国产日韩精品一区二区三区| 亚洲超碰精品一区二区| 91香蕉国产在线观看软件| 亚洲精品一区二区三区影院| 一片黄亚洲嫩模| va亚洲va日韩不卡在线观看| 久久午夜国产精品| 美女视频免费一区| 欧美群妇大交群的观看方式| 亚洲卡通欧美制服中文| 午夜久久久久久| 色播五月激情综合网| 中文字幕亚洲在| 成人美女视频在线看| 久久久国产精品麻豆 | 久久你懂得1024| 天堂一区二区在线免费观看| 日本乱码高清不卡字幕| 亚洲一区二区在线观看视频| 日本怡春院一区二区| 国产大陆精品国产| 欧美在线高清视频| 日韩美女主播在线视频一区二区三区 | 欧美久久久久免费| 久久人人超碰精品| 精品一区二区在线视频| 日韩女同互慰一区二区| 全国精品久久少妇| 日韩欧美一卡二卡| 狠狠色狠狠色综合| 国产日韩欧美综合在线| 丁香激情综合国产| 亚洲男人的天堂av| 欧美视频中文字幕| 国产精品美女久久久久久久久| 国产成人在线视频免费播放| 国产丝袜美腿一区二区三区| 亚洲国产日韩在线一区模特| 国产成人在线网站| 成人免费小视频| 欧美伊人久久久久久久久影院| 亚洲综合999| 91.com在线观看| 国产另类ts人妖一区二区| 欧美日韩精品欧美日韩精品一| 视频一区二区三区入口| 欧美一二三四在线| 国精产品一区一区三区mba视频| 国产人久久人人人人爽| www.日韩av| 一卡二卡欧美日韩| 欧美大黄免费观看| 不卡一区中文字幕| 亚洲成人手机在线| 亚洲国产成人私人影院tom| 色婷婷激情久久| 亚洲男人天堂一区| 日韩一区二区三区免费看| 国产一区二区三区av电影| 91精品国产欧美一区二区| 激情久久五月天| 一区二区三区四区激情| 欧美变态凌虐bdsm| 91视频91自| 久久精品国产精品亚洲红杏| 中文字幕色av一区二区三区| 欧美日本一区二区| 成人精品视频一区| 奇米影视一区二区三区| 日韩一区在线免费观看| www亚洲一区| 911精品国产一区二区在线| 成人国产一区二区三区精品| 婷婷亚洲久悠悠色悠在线播放| 久久久亚洲国产美女国产盗摄| 色女孩综合影院| 懂色av一区二区在线播放| 日本伊人色综合网| 亚洲国产精品一区二区久久恐怖片| 久久视频一区二区| 日韩一区二区免费在线电影| 色综合久久99| 国产不卡高清在线观看视频| 奇米精品一区二区三区四区| 中文字幕制服丝袜成人av| 97久久精品人人做人人爽| 国内成人自拍视频| 青青草97国产精品免费观看无弹窗版| 亚洲男帅同性gay1069| 日本一区二区电影| 久久久精品日韩欧美| 欧美xxxxx牲另类人与| 91精品中文字幕一区二区三区| 色国产综合视频| 97精品久久久久中文字幕 | 国产精品久久毛片a| 日本一区二区动态图| 国产女主播一区| 国产亚洲va综合人人澡精品 | 欧美男女性生活在线直播观看| 色综合久久久网| 一本色道久久综合亚洲91| 不卡免费追剧大全电视剧网站| 国产资源在线一区| 国产精品一卡二卡| 国产成人亚洲精品青草天美| 国产不卡高清在线观看视频| 国产成人小视频| www.亚洲色图| 91麻豆文化传媒在线观看| 在线国产亚洲欧美| 欧美中文字幕不卡| 在线观看亚洲一区| 91 com成人网| 久久久一区二区三区捆绑**| 欧美激情一区二区三区蜜桃视频| 国产精品女人毛片| 一区二区三区在线免费| 亚洲一区二区三区精品在线| 婷婷国产在线综合| 狠狠色丁香婷婷综合| 99久久综合精品| 欧美日韩日本视频| 色综合久久久久| 555夜色666亚洲国产免| 日韩欧美一级二级| 国产欧美日韩久久| 亚洲一级二级三级| 久久精品国产99| 成人av在线资源网站| 色狠狠一区二区三区香蕉| 欧美一区二区久久| 国产人成亚洲第一网站在线播放 | 国产成人啪午夜精品网站男同| 成人免费视频播放| 欧美私人免费视频| 久久综合国产精品| 亚洲综合精品自拍| 美女国产一区二区三区| 成人av综合一区| 欧美日韩性生活| 国产亚洲精品aa午夜观看| 日韩美女啊v在线免费观看| 日本不卡一二三| www..com久久爱| 久久久夜色精品亚洲| 亚洲成av人影院在线观看网| 国产suv一区二区三区88区| 欧美三级视频在线播放|