?? lib.c
字號:
/************************************************************/
/*功能描述:發送一個字節數據 發送的數據放在RXTXDATA中 */
/*函數說明:設定好參數后 通過 TIME0 發送數據 */
/*調用函數: */
/*全局變量: RXTXDATA */
/************************************************************/
void TX_BYTE (void)
{
BitCnt = 0xA;//1STA+8DATA+1結束
CCR0=TAR+Bitimem;
RXTXDATA |= 0x100;
RXTXDATA = RXTXDATA << 1;
CCTL0 = OUTMOD0 + CCIE;
while ( CCTL0 & CCIE ); // 等待發送結束
}
/************************************************************/
/*功能描述:準備接收一個字節數據 */
/*函數說明: */
/*調用函數: */
/*全局變量: */
/*輸入: */
/************************************************************/
void RX_BYTE (void)
{
BitCnt = 0x8; // 接收數據長度
CCTL0 = SCS + CCIS0 + OUTMOD0 + CM1 + CAP + CCIE;
//while ( CCTL0 & CCIE );
}
/************************************************************/
/*功能描述:初始化 */
/*函數說明: */
/*調用函數: 無 */
/*全局變量: spanl int_sum */
/*輸入: */
/************************************************************/
void init(void)
{
WDTCTL=WDT_ARST_1000;
FLL_CTL0 |= XCAP14PF;
P1IES|=BIT5;//下降沿有效
P1IE|=BIT5;//開脈沖中斷
P1IES&=~BIT2;//上升沿有效
P1IE|=BIT2;//開上電檢測中斷
TACTL = TASSEL_1 + MC_2;//ACLK
CCTL0 = OUT;
P1SEL = TXD + RXD; //P1.0,1.1定為外設
RX_BYTE();//串口接收初始化
CCR1=TAR+time_20msl;
CCTL1=CCIE;//開定時器1,定時200MS
LCD_CLR();//液晶清零
/*WRNBYTE_I2C(PEG1,addr_who,&wt_who[4],4);//存整數+小數地址
WRNBYTE_I2C(VAL_PEG,wt_who[7],wt_who,4);//存后兩位
WRNBYTE_I2C(PEG1,a_addr,&addr,1);//讀addr+span+const
WRNBYTE_I2C(PEG1,constant_addr,constant,3);
WRNBYTE_I2C(PEG1,show_mode_addr,&show_mode,1);
WRNBYTE_I2C(PEG1,lcd_show_addr,&lcd_show,1);
WRNBYTE_I2C(PEG1,password_addr,password,3);
WRNBYTE_I2C(PEG1,uart_mode_addr,&uart_mode,1);*/
RDNBYTE_I2C(PEG1,addr_who,wt_who+4,4);//讀整數+小數地址
RDNBYTE_I2C(VAL_PEG,wt_who[7],wt_who,4);//讀小數
RDNBYTE_I2C(PEG1,a_addr,&addr,1);//讀地址
RDNBYTE_I2C(PEG1,constant_addr,constant,3);//讀表常數
RDNBYTE_I2C(PEG1,show_mode_addr,&show_mode,1);//讀顯示模式
RDNBYTE_I2C(PEG1,password_addr,password,3);//讀密碼
RDNBYTE_I2C(PEG1,lcd_show_addr,&lcd_show,1);//讀LCD顯示模式
RDNBYTE_I2C(PEG1,uart_mode_addr,&uart_mode,1);//讀串口發送模式
RX=wt_who[3]&0x0f;//讀10L位上的值
span1=SPAN;//脈沖寬度限制
addr&=0x07;
show_mode&=0x01;
if(lcd_show==0x55)
{
LCDCTL = LCDP1+LCD4MUX+LCDON; // 4-Mux LCD, segments S0-S19
BTCTL = BTFRFQ1; // Set freqLCD = ACLK/128
P5SEL = 0xFC; // Set Rxx and COM pins for LCD
LCD_OUT(wt_who);//顯示
if(dir_cnt<5){dir_cnt++;} else {dir_cnt=0;}
LCDMEM[1]&=0xf0;
LCDMEM[1]|=(dir[dir_cnt]&0x0f);
LCDMEM[0]=dir[dir_cnt]|0x0f;
}
else
{
LCDCTL=0;
BTCTL=0;
P5SEL=0;
}
rest=0;
WDTCTL=WDT_ARST_1000;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -