?? ch375.c
字號:
/* 2005.01.01
****************************************
** Copyright (C) W.ch 1999-2005 **
** Web: http://www.winchiphead.com **
****************************************
** KC7.0@MCS51 **
****************************************
*/
/* CH375評估板演示程序: 演示USB-HOST主機接口和USB-DEVICE設備接口的應用 */
/* MCS-51單片機C語言的示例程序, 適用于89C52或者更大程序空間的單片機,也適用于ATMEL/PHILIPS/SST等具有1KB內部RAM的單片機 */
/* 關于本程序中的CH375主機接口: HOST.C
可以連接U盤, 支持U盤文件系統FAT12/FAT16/FAT32, 容量不限,
插入U盤后, 該程序將U盤中的/C51/CH375HFT.C文件中的前600個字符顯示出來,
如果找不到原文件CH375HFT.C, 那么該程序將顯示C51子目錄下所有以CH375開頭的文件名,
如果找不到C51子目錄, 那么該程序將顯示根目錄下的所有文件名,
最后將程序ROM中的一個字符串寫入寫入新建的文件"NEWFILE.TXT"中,
CH375的INT#引腳采用查詢方式處理, 數據復制方式為"單DPTR復制", 兼容性最好但是速度最慢,
以字節為單位讀寫U盤文件, 讀寫速度較扇區模式慢, 不需要文件數據緩沖區FILE_DATA_BUF,
總共只需要600字節的RAM, 適用于單片機硬件資源有限、數據量小并且讀寫速度要求不高的系統,
計算機端可以通過串口監控/調試工具軟件以9600bps查看演示情況, 也可以使用CH341的串口工具或者CH375模塊的演示工具 */
/* 關于本程序中的CH375設備接口: DEVICE.C
采用請求+應答模式通訊結構, 強調可靠性和交互性, 不追求傳輸速度,
計算機端可以通過CH372/CH375的調試工具中的MCS51監控工具程序CH37XDBG.EXE實現對MCS51單片機的"完全"控制,
可以讀寫MCS51單片機的任意外部RAM、內部RAM以及絕大多數SFR, 當然也能夠進行數據通訊 */
/* 關于主從切換:
本程序默認工作于USB-HOST主機方式, 當有USB設備連接時自動處理, 需要作為USB設備與計算機通訊時, 可以按評估板上的按鈕由主程序進行切換 */
/* C51 CH375.C */
/* C51 HOST.C */
/* C51 DEVICE.C */
/* LX51 CH375.OBJ, HOST.OBJ, DEVICE.OBJ, CH375HF6.LIB */
/* OHX51 CH375 */
#define CH375HF_NO_CODE 1
#include "CH375.H"
/* 為printf和getkey輸入輸出初始化串口 */
void mInitSTDIO( )
{
SCON = 0x50;
PCON = 0x80;
TMOD = 0x21;
TH1 = 0xf3; /* 24MHz晶振, 9600bps */
TR1 = 1;
TI = 1;
}
UINT8 IsKeyPress( )
{
if ( USER_KEY_IN == 0 ) { /* 有鍵按下 */
LED_OUT_INACT( ); /* LED滅 */
mDelaymS( 50 );
if ( USER_KEY_IN == 0 ) {
while ( USER_KEY_IN == 0 ); /* 等待按鍵釋放 */
mDelaymS( 50 );
while ( USER_KEY_IN == 0 ); /* 按鍵去抖動 */
LED_OUT_ACT( ); /* LED亮以示工作 */
return( 1 );
}
LED_OUT_ACT( ); /* LED亮以示工作 */
}
return( 0 );
}
main( ) {
LED_OUT_INIT( );
LED_OUT_ACT( ); /* 開機后LED閃爍一下以示工作 */
mDelaymS( 100 ); /* 延時100毫秒 */
LED_OUT_INACT( );
mDelaymS( 100 );
mInitSTDIO( ); /* 為了讓計算機通過串口監控演示過程 */
printf( "Start CH375 demo ...\n" );
EA = 1;
LED_OUT_ACT( ); /* LED亮以示工作 */
while ( 1 ) { /* 用戶按鍵導致USB主從模式來回切換 */
LED_HOST( );
printf( "Set USB host mode\n" );
host( );
LED_DEVICE( );
printf( "Set USB device mode\n" );
device( );
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -