📄 newpose1.c
字号:
#include "total.h"
//uchar s[7];
uchar Port1,Port2;
uchar Key_flag=0;
uchar Time_cnt=0;
uchar Card_state=0xE0;
uchar *Kpd;
uint Page=3000;
union
{
uchar value;
struct
{
uchar set:1;
uchar copy:1;
uchar back:1;
uchar down:1;
uchar send:1;
uchar watch:1;
uchar record:1;
uchar download:1;
}value_bit;
}Control;
void nop(void)
{
uint i=10;
while(i)
{i--;}
}
void delay(uint time)
{
uchar i;
do{
for(i=250;i!=0;i--);
} while(--time!=0);
}
#include "display.c"
#include "readtime.c"
#include "usart.c"
#include "card4442.c"
#include "45db041.c"
void init_LCD(void)
{
unsigned char i;
uchar *pointer;
pointer=(unsigned char*)0x91;
for(i=0;i<12;i++)
{
*(pointer++)=0x00;
}
FLL_CTL0 |=0x30;
P5SEL=0xFC;
LCDCTL=0x7f;
BTCTL=0x0F;
SCFQCTL=0x25;
DISP_scebatu;
}
void Init_port(void)
{
P3DIR=0X00;
P2DIR=~(BIT1+BIT2+BIT3);
P2OUT|=BIT1+BIT2+BIT3;
P2IE|=(BIT1+BIT2+BIT3);
P2IES|=(BIT1+BIT2+BIT3);
}
void Init_TA(void)
{
TACTL=0x0106;
CCTL0=CCIE;
TAR=0;
}
/*void HextoASC(unsigned long int m)
{
uchar i,j;
uchar ss[7];
for(i=0;i<8;i++)
{
if((m&0x0000000f)>9)
{
ss[i]=(m&0x0000000f)+55;
}
else
{
ss[i]=(m&0x0000000f)+48;
}
m>>=4;
s[i]=ss[i];
//if(m==0)break;
}
for(j=0;j<=i;j++)
{
s[j]=ss[8-j];
}
Display(s);
}*/
#pragma vector=TIMERA0_VECTOR
__interrupt void TIMEA00 (void)
{
TACTL&=~0x0001; //清标志位taifg
TACTL|=0x0004; //清TAR
TAR=0;
Time_cnt++;
if(Time_cnt>=1)
{
P4OUT^=BIT2;
Time_cnt=0;
}
}
#pragma vector=PORT1_VECTOR
__interrupt void PORT1_00 (void)
{
if((P1IFG&BIT4)==BIT4)
{
P1IFG&=~BIT4;
delay(4);
if((P1IN&BIT4)==0)
{
P1IES&=~BIT4;
Card_state=Read442(0x20);
}
else
{
P1IES|=BIT4;
}
if((P1IFG&BIT4)==BIT4)Card_state=0xc0;
P1IFG&=~BIT4;
}
LPM3_EXIT;
}
#pragma vector=UART0RX_VECTOR
__interrupt void Usart0_Rx (void)
{
if(StartRx0==0)
{
if(RXBUF0==0x16)
{
StartRx0=1;//开始接收数据
rxindex0=0;
RxBuffer0[rxindex0]=RXBUF0;
}
}
else
{
rxindex0++;
switch(rxindex0)
{
case 1: {
if(RXBUF0==0x00)
{
RxBuffer0[rxindex0]=RXBUF0;
}
else
{
StartRx0=0;
rxindex0=0;
}
}break;
case 2: {
if((RXBUF0>=0x03)&&(RXBUF0<=16))
{
RxBuffer0[rxindex0]=RXBUF0;
RXData_long=RXBUF0+2;
}
else
{
StartRx0=0;
rxindex0=0;
}
}break;
default:{
RxBuffer0[rxindex0]=RXBUF0;
if(rxindex0>RXData_long)
{
StartRx0=0;
rxindex0=0;
memcpy(RxData,RxBuffer0,16);
Uart_TRfinish_flag=0x0f;
LPM3_EXIT;
}
}
}
}
}
/*********************The Fourth***********************************************/
// UART1 TX ISR
// UART1 TX ISR is RS485 communication
// UART1 TX ISR will for exit from LPM3 in Mainloop
/******************************************************************************/
#pragma vector=UART0TX_VECTOR
__interrupt void Usart0_tx (void)
{
if(StartTx0==0)
{
TXBUF0=0x16;
StartTx0=1;
txindex0=0;
}
else
{
txindex0++;
switch(txindex0)
{
case 1: {
TXBUF0=0x00;
}break;
case 2: {
TXBUF0=233;
}break;
default:{
if(txindex0<236)
{
TXBUF0=Card_data[txindex0-3];
}
else if(txindex0==236)
{
TXBUF0=CRC2&0x00ff;
}
else if(txindex0==237)
{
TXBUF0=(CRC2&0xff00)>>8;
}
else
{
IE1&=~UTXIE0;
}
}
}
}
/*if(txindex0<txcount0)
{
TXBUF0=Card_data[txindex0];
txindex0++;
}
else{
IE1&=~UTXIE0; //禁止中断
}*/
}
#pragma vector=PORT2_VECTOR
__interrupt void PORT2_00 (void)
{
if((P2IFG&BIT1)==BIT1)
{
delay(2);
if((P2IN&BIT1)==0)
{
P2IFG&=~BIT1;
P2DIR|=BIT1;
Control.value|=P3IN;
P2DIR&=~BIT1;
LPM3_EXIT;
}
}
else if((P2IFG&BIT2)==BIT2)
{
delay(2);
if((P2IN&BIT2)==0)
{
P2IFG&=~BIT2;
P2DIR|=BIT2;
Port2=P3IN;
Port1=0;
P2DIR&=~BIT2;
Key_flag=1;
LPM3_EXIT;
}
}
else if((P2IFG&BIT3)==BIT3)
{
delay(2);
if((P2IN&BIT3)==0)
{
P2IFG&=~BIT3;
P2DIR|=BIT3;
Port1=P3IN;
Port2=0;
P2DIR&=~BIT3;
Key_flag=1;
LPM3_EXIT;
}
}
if(Control.value==0)
{
Port1=0;
Port2=0;
Key_flag=0;
}
P2IFG=0;
}
main( void )
{
uchar bit;
uint i;
union
{
unsigned long int value;
struct
{
uchar byte3:8;
uchar byte2:8;
uchar byte1:8;
uchar byte0:8;
}value_byte;
struct
{
uint word1:16;
uint word0:16;
}value_word;
}fourbyte;
WDTCTL = WDTPW+WDTHOLD;
Control.value=0;
P4DIR|=BIT2;
P4OUT|=BIT2;
delay(200);
P4OUT&=~BIT2;
init_LCD();
init_I2c();
AT45DB04Iint();
Init_TA();
Init_port();
InitUSART(COM0,6,0,1,0);
Init442();
//TACTL|=MC1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -