⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftp.h

📁 富士通微型打印机驱动程序
💻 H
字号:
//msp430f149 I/O define
//-----------------------------------------
#define    FALSE          0
#define    TRUE           1
#define    uchar          unsigned char
#define    uint           unsigned int
#define    ushort         unsigned short int
#define    ulong          unsigned long int
#define    NOP4           {_NOP();_NOP();_NOP();_NOP();}
#define    NOP2           {_NOP();_NOP();}
#define    NOP            _NOP();
//-----------------------------------------
//P2口
//-----------------------------------------
#define    PHSHUT          (0x01)
#define    PAPERWANT       (P2IN & PHSHUT)

#define    TVHCTL          (0x02)                //过热保护
#define    VOTSHUT_EN         (P2OUT &= ~TVHCTL)    //切断打印驱动的电源
#define    VOTSHUT_DIS        (P2OUT |= TVHCTL)     //打开打印驱动的电源

#define    MTA             (0x04)
#define    MTAP            (0x08)
#define    MTA_1           {P2OUT |= MTA; P2OUT &= ~MTAP;}
#define    MTA_0           {P2OUT &= ~MTA; P2OUT |= MTAP;}
#define    MTA_LOSS        (P2OUT &= ~(MTA + MTAP))

#define    HOLD            (0x80)
#define    CHIPUNHOLD      (P2OUT |= HOLD)
#define    CHIPHOLD        (P2OUT &= ~HOLD)   
//------------------------------------------
//P3口
//------------------------------------------
#define    STE0            (0x01)
#define    SPI0_EN         (P3OUT &= ~STE0)
#define    SPI0_DIS        (P3OUT |= STE0)

#define    SIMO0           (0x02)
#define    SPI0MO_1        P3OUT |= SIMO0
#define    SPI0MO_0        P3OUT &= ~SIMO0

#define    SOMI0           (0x04)
#define    SPI0DATA_IN     (P3IN & SOMI0)

#define    UCLK0           (0x08)
#define    SPI0CLK_1       P3OUT |= UCLK0
#define    SPI0CLK_0       P3OUT &= ~UCLK0

#define    UT1TX           (0x10)
#define    UT1RX           (0x20)

#define    UT2TX           (0x40)
#define    UT2RX           (0x80)

//-------------------------------------------
//P4口
//-------------------------------------------
#define    MTB             (0x01)
#define    MTBP            (0x02)
#define    MTB_1           {P4OUT |= MTB; P4OUT &= ~MTBP;}
#define    MTB_0           {P4OUT &= ~MTB; P4OUT |= MTBP;}
#define    MTB_LOSS        (P4OUT &= ~(MTB + MTBP))

//-------------------------------------------
//P5口
//-------------------------------------------
#define    STE1            (0x01)
#define    SPI1_EN         (P5OUT &= ~STE1)
#define    SPI1_DIS        (P5OUT |= STE1)

#define    PRT_O           (0x02)
#define    PRT_O_1         (P5OUT |= PRT_O)
#define    PRT_O_0         (P5OUT &= ~PRT_O)

#define    PRT_I           (0x04)
#define    PRT_IN          (P5IN & PRT_I)

#define    PRT_CLK         (0x08)
#define    PRT_CLK_1       (P5OUT |= PRT_CLK)
#define    PRT_CLK_0       (P5OUT &= ~PRT_CLK)

#define    RUN             (0x10)
#define    LED_RUN_TOG     (P5OUT ^= RUN)
#define    LED_SHUT        (P5OUT &= ~RUN)

//-------------------------------------------
//P6口
//-------------------------------------------
#define    STB            (0x3f)
#define    STB_EN         (P6OUT |= STB)
#define    STB_DIS        (P6OUT &= ~STB)

#define    LAT            (0x40)
#define    LAT_EN         (P6OUT &= ~LAT)
#define    LAT_DIS        (P6OUT |= LAT)      

#define    CLRWTD         {P6OUT &= ~BIT7;NOP4;P6OUT |= BIT7;}
//-------------------------------------------
#define COM0_LEN    1024     //串口缓冲区长度
 
void ComOutStr(uchar *pChar);
void instr_u0(void);
void Delay(uint n);
void initialize_IO(void);                       //I/O初始化
void initialize_U0(void);                       //初始化串口1
void initialize_timerA(void);                   //初始化定时器A
void initialize_timerB(void);                   //初始化定时器2
void chip_erase(void);
void initialize_dev(void);
void clr_u0(void);
void sector_erase(ulong tempaddr);
uint spi_rdid(void);
uchar spi_read(ulong tempaddr);
uchar spi_rdsr(void);
void spi_write(ulong tempaddr,uint length);
void spi_wrsr(uchar tempdata);
void spi_bytewrite(uchar tempdata);
void look_spi(void);
void chip_ers_spi(void);
void block_ers_spi(void);
void spi_wren(void);

void ByteWrite(uchar tempdata);
uchar ByteRead(void);
void hzck(void);
void reg_clr(void);
void Motor_Step(uchar cnt);
void OnPrinterCmd(void);
void print_it(void);
void print_pic(uchar index);
void SENT_HEAD(uchar cmd,uint length);
void nopaper_ack(void);
void paperok_ack(void);
void printerbusy_ack(void);
void printerok_ack(void);

//------------------------------------------------
//串行flash操作指令
#define WREN             (0x06)               //设置写使能锁存器
#define WRDI             (0x04)               //写禁止锁存器
#define RDSR             (0x05)               //读状态寄存器
#define WRSR             (0x01)               //写状态寄存器
#define READ             (0x03)               //读操作
#define PROGRAM          (0x02)               //写操作
#define SERADE           (0xD8)               //块擦除
#define CERASE           (0xC7)               //整片擦除
#define RDID             (0x15)               //读设备商ID号
//--------------------------------------------------
#define FNODE            (0xA1)               //汉字基地址
#define BLOCK0           (0x00000)            //flash第1块首地址
#define BLOCK1           (0x10000)            //flash第2块首地址
#define BLOCK2           (0x20000)            //flash第3块首地址
#define BLOCK3           (0x30000)            //flash第4块首地址
#define BLOCK4           (0x40000)            //flash第5块首地址
#define BLOCK5           (0x50000)            //flash第6块首地址
#define BLOCK6           (0x60000)            //flash第7块首地址
#define BLOCK7           (0x70000)            //flash第8块首地址
#define AD_TOP           (0X0FFF)             //FLASH顶地址
#define ONE_PAGE         (0X100)              //写FLASH完整的一页为256字节
//---------------------------------------------------
#define SR_              (0x0008)             /* 状态寄存器 */
DEFC(   SR              , SR_)
//---------------------------------------------------
#define  TIMER_A_EN      (TACCTL0 |= CCIE)      //启动定时器A
#define  TIMER_A_DIS     (TACCTL0 &= ~CCIE)     //关闭定时器A

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -