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

📄 uart.h

📁 AVR单片机串口通信程序 已经应用很久
💻 H
字号:
/***********************************************************************************************
* Copyright (c) 2005,深圳威利姆
* All rights reserved.
* 
*          文件名称:uart.h
*
*          通信程序头文件定义
*-----------------------------------------------------------------------------------------------
* 当前版本:2.1.2
* 作    者:陈兆红
* 完成日期:2005年10月15日
*************************************************************************************************/

#ifndef __UART_H
  #define __UART_H
  
//---------------------------------------------------------------------------------------------
static  uchar cmd,High_Byte,Low_Byte;                           // 通信使用的命令
static  uint  Si;  
//extern  uchar DuiBiDuCardNo[5];       
//---------------------------------------------------------------------------------------------
//pd2 as 485 cntr
#define RS485_SEND          SET_BIT(DDRD,2); SET_BIT(PORTD,2)         
#define RS485_RECEIVE       SET_BIT(DDRD,2); CLR_BIT(PORTD,2)   
//---------------------------------------------------------------------------------------------
//通信前缀和广播地址
//-----------------------------------------
#define STX                     0xA2           /*               */
#define ETX                     0xA3           /* 结束通讯      */
#define AnsSTX                  0xB2           /*               */
#define AnsETX                  0xB3           /* 结束通讯      */
#define DATA_NULL               0xED
#define StatusComm              0xBB           /*               */
#define StatusMainLoop          0x00
//---------------------------------------------------------------------------------------------
// 通信命令定义
//------------------------------------------------------------------------------------------
#define STX                     0xA2          /* 数据包开始标志 */
#define ETX                     0xA3          /* 数据包结束标志 */
//------------------------------------------------------------------------------------------
#define PC_SET_ID               0x21          /* 设置地址:02xx2101xxRRRR03                */
#define PC_SET_TIME             0x23          /* 下载标准时间 :02xx2306xxxxxxxxxxxxRRRR03 */

#define PC_Num_TimeSeg          0x22          /* 下载开门时间 , 默认为32段                */
#define PC_TimeSeg              0x24          /* 下载开门时间 , 默认为32段                */
        
#define PC_DOWN_REPAIR_CARDNO   0x25          /* 下载维修卡号,目前用来调整对比度          */
#define PC_UP_REPAIR            0x26          /* 上传维修卡卡号 ,not used           */

#define PC_DOWN_TIME_NUM        0x2A          /* 设置刷卡时段数量时间                     */
#define PC_DOWN_TIME_1_8        0x2B          /* 设置刷卡的时间段 1~8                     */
#define PC_UP_TIME_1_8          0x2C          /* 上传刷卡的时间段 1~8                     */

#define PC_DOWN_BAI_NUM         0x2E          /* 设置白名单数量,同时擦除白名单区域        */
#define PC_DOWN_BAI_CARDNO      0x2F          /* 下载白名单的卡号                         */
#define PC_READ_BAI_CARDNO      0x30          /* 读白名单的卡号                           */

#define PC_SET_CARD_TIME        0x31          /* 设置读卡间隔时间                         */
#define PC_UP_PERIOD            0x32          /* 上传刷卡间隔时间,not used               */
#define PC_UP_TIME              0x33          /* 上传系统时间                             */

#define PC_UP_DOOR_DELAY        0x35          /* 上传门继电器延时时间 ,not used      */

#define PC_UP_COUNT             0x37          /* 上传考勤记录数量                     */
#define PC_UP_DATA              0x38          /* 上传考勤记录 ,每10 条一组            */
#define PC_DEL_DATA             0x39          /* 删除所有考勤记录                     */

#define PC_Set_Baud             0x3A          /* 设置系统通信的波特率                 */

#define PC_KAOQIN_ONLY          0x3C          /* 设置为仅仅作考勤机标志               */
#define PC_DOWN_SENTENCE        0x3D          /* 下载用户的欢迎信息 ,或公司名称      */

#define PC_SET_HEI_NUM          0x3E          /* 下载黑名单数量,同时擦除黑名单区域    */
#define PC_SET_HEI_CARDNO       0x3F          /* 下载黑名单卡号                       */
#define PC_READ_HEI_CARDNO      0x40          /* 下载黑名单用户卡号(5字节,均为卡号,和下载用户号相比,只是少了姓名的编码;按从小到大顺序下载)*/

#define PC_DOWN_SERIAL_NO       0x41          /* 下载产品序列号                       */
#define PC_UP_SERIAL_NO         0x42          /* 上传产品序列号                       */

#define PC_GetTimeSegNum        0x43          /* 下载开门时间 , 默认为32段            */
#define PC_GetTimeSeg           0x44          /* 下载开门时间 , 默认为32段            */

#define PC_END_UART             0x49          /* 结束通信                             */
//==================================================================================================
//---------------------------------------------------------------------------------------------
// 通信命令定义结束
//---------------------------------------------------------------------------------------------
//#define RXB8 1
//#define TXB8 0
//#define OVR  3
//#define FE   4
//#define UDRE 5
//#define RXC  7
//---------------------------------------------------------------------------------------------
// 通信错误代码定义
//---------------------------------------------------------------------------------------------
#define FRAMING_ERROR       ( 1<<FE   )
#define DATA_OVERRUN        ( 1<<OVR  )
#define DATA_REGISTER_EMPTY ( 1<<UDRE )
#define RX_COMPLETE         ( 1<<RXC  )
//---------------------------------------------------------------------------------------------
//  外部函数声明
//---------------------------------------------------------------------------------------------
extern void lcd_clr1();
extern void GetCurRecLen();
extern void SaveCurRecLen();

extern void Read_Card_No();
extern void Read_hei_card();
//extern uchar  RcvLongByte();
extern uchar RcvByte(uchar);
extern void disp_connect();
extern void lcd_clr();
extern void DelaypMs(uint);
extern void DelaypUs(uint);

extern void Disp_gs();
extern void DispCurTime();
extern void ClrLine(uchar,uchar);
extern void Disp_Controller_ID();
extern void SetTime(uchar  *);
extern void Dsp_Time();
extern void Disp_Welcom();
extern void GetTime();
extern void read_flash(ulong addr,uchar chip_cs,uchar n,uchar *p);
extern void Sector_Erase(ulong address,uchar chipcs);
extern void AAI_Write(uchar,ulong,uchar *,uchar);
//---------------------------------------------------------------------------------------------
//函数声明
//---------------------------------------------------------------------------------------------
uchar Byte2To1Byte(uchar,uchar);
uchar HighOfByte(uchar uByte);
uchar LowOfByte(uchar uByte);
void EnableUART(uint Baud);
void DisableUART();
void Uart_Send_RxBuf(uchar uCommand,uchar uLen);
void Uart_Send( uchar *data, uchar num );
void DisWatchDogTimer();
void AnswerAddrToPC();
void Uart_OK(uchar);
void Uart_Error(uchar,uchar);
void info_pro();         // 该程序在该文件的串口中断程序中使用到
//---------------------------------------------------------------------------------------------
// 错误代码定义
//---------------------------------------------------------------------------------------------
#define   ERR_CRC       0x9B
#define   ERR_ETX       0x9C
#define   ERR_FLOW      0x9D
#define   ERR_LEN       0x9E
#define   ERR_W_BAI     0x84
#define   ERR_W_HEI     0x85

#define   ERR_TimeSeg   0x83
//=============================================================================================
  #endif
//=============================================================================================

⌨️ 快捷键说明

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