?? pin.h
字號:
// 硬件相關定義, 請根據實際硬件修改本文件
#include <reg52.h>
#include <intrins.h>
#pragma NOAREGS // 如果MCS51使用鍵盤中斷功能,那么建議加入此編譯選項
//#define ENABLE_2_CH452 1 // 在2線接口下支持兩個CH452芯片并聯
/* 延時1uS子程序,主要用于2線接口,與單片機速度有關 */
//#define DELAY_1US {} // MCS51<=10MHz
//#define DELAY_1US {_nop_();} // MCS51<=20MHz
#define DELAY_1US {_nop_();_nop_();} // MCS51<=30MHz
/* 2線接口的連接,與實際電路有關 */
sbit CH452_SCL=P1^7;
sbit CH452_SDA=P1^6; // 如果使用真正的2線接口,那么SDA接中斷引腳P3^3/INT1,用SDA直接做中斷輸出
//sbit CH452_ADDR=P1^5; // 實際電路應該硬件接GND或者VCC
sbit CH452_INT=P3^3; // 標準的2線接口使用該引腳輸出中斷
/* 4線接口的連接,與實際電路有關 */
sbit CH452_DCLK=P1^7; // 串行數據時鐘上升延激活
sbit CH452_DIN=P1^6; // 串行數據輸出,接CH452的數據輸入
sbit CH452_LOAD=P1^5; // 串行命令加載,上升延激活
sbit CH452_DOUT=P3^3; // INT1,鍵盤中斷和鍵值數據輸入,接CH452的數據輸出
/* 2線接口的位操作,與單片機有關 */
#define CH452_SCL_SET {CH452_SCL=1;}
#define CH452_SCL_CLR {CH452_SCL=0;}
#define CH452_SCL_D_OUT {} // 設置SCL為輸出方向,對于雙向I/O需切換為輸出
#define CH452_SDA_SET {CH452_SDA=1;}
#define CH452_SDA_CLR {CH452_SDA=0;}
#define CH452_SDA_IN (CH452_SDA)
#define CH452_SDA_D_OUT {} // 設置SDA為輸出方向,對于雙向I/O需切換為輸出
#define CH452_SDA_D_IN {CH452_SDA=1;} // 設置SDA為輸入方向,對于雙向I/O需切換為輸入
/* 4線接口的位操作,與單片機有關 */
#define CH452_DCLK_SET {CH452_DCLK=1;}
#define CH452_DCLK_CLR {CH452_DCLK=0;}
#define CH452_DCLK_D_OUT {} // 設置DCLK為輸出方向,對于雙向I/O需切換為輸出
#define CH452_DIN_SET {CH452_DIN=1;}
#define CH452_DIN_CLR {CH452_DIN=0;}
#define CH452_DIN_D_OUT {} // 設置DIN為輸出方向,對于雙向I/O需切換為輸出
#define CH452_LOAD_SET {CH452_LOAD=1;}
#define CH452_LOAD_CLR {CH452_LOAD=0;}
#define CH452_LOAD_D_OUT {} // 設置LOAD為輸出方向,對于雙向I/O需切換為輸出
#define CH452_DOUT_D_IN {CH452_DOUT=1;} // 設置DOUT為輸入方向,對于雙向I/O需切換為輸入
/* 與單片機有關,與中斷連接方式有關 */
//#define USE_CH452_KEY 1 // 使用了CH452的按鍵中斷
#ifdef USE_CH452_KEY
#define DISABLE_KEY_INTERRUPT {EX1=0;}
#define ENABLE_KEY_INTERRUPT {EX1=1;}
#define CLEAR_KEY_INTER_FLAG {IE1=0;}
#else
#define DISABLE_KEY_INTERRUPT {}
#define ENABLE_KEY_INTERRUPT {}
#define CLEAR_KEY_INTER_FLAG {}
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -