?? ch375.c
字號(hào):
/* 2005.01.01
****************************************
** Copyright (C) W.ch 1999-2005 **
** Web: http://www.winchiphead.com **
****************************************
** KC7.0@MCS51 **
****************************************
*/
/* CH375評(píng)估板演示程序: 演示USB-HOST主機(jī)接口和USB-DEVICE設(shè)備接口的應(yīng)用 */
/* MCS-51單片機(jī)C語言的示例程序, 適用于89C52或者更大程序空間的單片機(jī),也適用于ATMEL/PHILIPS/SST等具有1KB內(nèi)部RAM的單片機(jī) */
/* 關(guān)于本程序中的CH375主機(jī)接口: HOST.C
可以連接U盤, 支持U盤文件系統(tǒng)FAT12/FAT16/FAT32, 容量不限,
插入U(xiǎn)盤后, 該程序?qū)盤中的/C51/CH375HFT.C文件中的前600個(gè)字符顯示出來,
如果找不到原文件CH375HFT.C, 那么該程序?qū)@示C51子目錄下所有以CH375開頭的文件名,
如果找不到C51子目錄, 那么該程序?qū)@示根目錄下的所有文件名,
最后將程序ROM中的一個(gè)字符串寫入寫入新建的文件"NEWFILE.TXT"中,
CH375的INT#引腳采用查詢方式處理, 數(shù)據(jù)復(fù)制方式為"單DPTR復(fù)制", 兼容性最好但是速度最慢,
以字節(jié)為單位讀寫U盤文件, 讀寫速度較扇區(qū)模式慢, 不需要文件數(shù)據(jù)緩沖區(qū)FILE_DATA_BUF,
總共只需要600字節(jié)的RAM, 適用于單片機(jī)硬件資源有限、數(shù)據(jù)量小并且讀寫速度要求不高的系統(tǒng),
計(jì)算機(jī)端可以通過串口監(jiān)控/調(diào)試工具軟件以9600bps查看演示情況, 也可以使用CH341的串口工具或者CH375模塊的演示工具 */
/* 關(guān)于本程序中的CH375設(shè)備接口: DEVICE.C
采用請(qǐng)求+應(yīng)答模式通訊結(jié)構(gòu), 強(qiáng)調(diào)可靠性和交互性, 不追求傳輸速度,
計(jì)算機(jī)端可以通過CH372/CH375的調(diào)試工具中的MCS51監(jiān)控工具程序CH37XDBG.EXE實(shí)現(xiàn)對(duì)MCS51單片機(jī)的"完全"控制,
可以讀寫MCS51單片機(jī)的任意外部RAM、內(nèi)部RAM以及絕大多數(shù)SFR, 當(dāng)然也能夠進(jìn)行數(shù)據(jù)通訊 */
/* 關(guān)于主從切換:
本程序默認(rèn)工作于USB-HOST主機(jī)方式, 當(dāng)有USB設(shè)備連接時(shí)自動(dòng)處理, 需要作為USB設(shè)備與計(jì)算機(jī)通訊時(shí), 可以按評(píng)估板上的按鈕由主程序進(jìn)行切換 */
/* 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 ); /* 按鍵去抖動(dòng) */
LED_OUT_ACT( ); /* LED亮以示工作 */
return( 1 );
}
LED_OUT_ACT( ); /* LED亮以示工作 */
}
return( 0 );
}
main( ) {
LED_OUT_INIT( );
LED_OUT_ACT( ); /* 開機(jī)后LED閃爍一下以示工作 */
mDelaymS( 100 ); /* 延時(shí)100毫秒 */
LED_OUT_INACT( );
mDelaymS( 100 );
mInitSTDIO( ); /* 為了讓計(jì)算機(jī)通過串口監(jiān)控演示過程 */
printf( "Start CH375 demo ...\n" );
EA = 1;
LED_OUT_ACT( ); /* LED亮以示工作 */
while ( 1 ) { /* 用戶按鍵導(dǎo)致USB主從模式來回切換 */
LED_HOST( );
printf( "Set USB host mode\n" );
host( );
LED_DEVICE( );
printf( "Set USB device mode\n" );
device( );
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -