L298N可編程串口驅動器電路原理圖:
0.jpg (87.71 KB, 下載次數: 35)
下載附件
2018-3-18 16:13 上傳
簡要說明: 一、尺寸:長93mmX 寬87mmX 高40mm
二、主要芯片:L298N 、光電耦合器 STC12C2052AD 單片機
三、工作電壓:輸入電壓(5V~12V )輸入電壓的大小由被控制電機的額定電壓決定。
四、可驅動直流(5~12V 之間電壓的直流電機或者步進電機)
五、最大輸出電流2A (瞬間峰值電流3A)
六、最大輸出功率25W
七、特點:(需要對單片機進行編程)
1 、具有信號指示
2 、轉速可調
3 、抗干擾能力強
4 、具有續流保護
5 、可單獨控制兩臺直流電機
6 、可單獨控制一臺步進電機
7 、PWM脈寬平滑調速(可使用PWM信號對直流電機調速)
8 、可實現正反轉
9 、采用光電隔離
10 、具有擴展IO 開口
11 、四位LED燈指示(輸出信號顯示)
12 、四位按鍵輸入(可以對單片機編程實現任何控制)
主圖.JPG (233.14 KB, 下載次數: 31)
下載附件
2018-3-18 00:46 上傳
DSC_0067.JPG (186.35 KB, 下載次數: 40)
下載附件
2018-3-18 00:46 上傳
DSC_0066.JPG (223.05 KB, 下載次數: 36)
下載附件
2018-3-18 00:46 上傳
DSC_0064.JPG (186.85 KB, 下載次數: 33)
下載附件
2018-3-18 00:46 上傳
DSC_0063.JPG (196.08 KB, 下載次數: 33)
下載附件
2018-3-18 00:46 上傳
0.png (7.05 KB, 下載次數: 48)
下載附件
2018-3-18 16:14 上傳
IO口模擬串口 能發送 能接收單片機源程序如下:
- #include <reg52.h>
- sbit PIN_RXD = P1^0; //接收引腳定義
- sbit PIN_TXD = P1^1; //發送引腳定義
- bit RxdOrTxd = 0; //指示當前狀態為接收還是發送
- bit RxdEnd = 0; //接收結束標志
- bit TxdEnd = 0; //發送結束標志
- unsigned char RxdBuf = 0; //接收緩沖器
- unsigned char TxdBuf = 0; //發送緩沖器
- void ConfigUART(unsigned int baud);
- void StartTXD(unsigned char dat);
- void StartRXD();
- void main(){
- EA = 1; //開總中斷
- ConfigUART(9600);
- while (1){ //配置波特率為 9600
- while (PIN_RXD); //等待接收引腳出現低電平,即起始位
- StartRXD(); //啟動接收
- while (!RxdEnd); //等待接收完成
- StartTXD(RxdBuf+1); //接收到的數據+1 后,發送回去
- while (!TxdEnd); //等待發送完成
- }
- }
- /* 串口配置函數,baud-通信波特率 */
- void ConfigUART(unsigned int baud){
- TMOD &= 0xF0; //清零 T0 的控制位
- TMOD |= 0x02; //配置 T0 為模式 2
- TH0 = 256 - (11059200/12)/baud; //計算 T0 重載值
- }
- /* 啟動串行接收 */
- void StartRXD(){
- TL0 = 256 - ((256-TH0)>>1); //接收啟動時的 T0 定時為半個波特率周期
- ET0 = 1; //使能 T0 中斷
- TR0 = 1; //啟動 T0
- RxdEnd = 0; //清零接收結束標志
- RxdOrTxd = 0; //設置當前狀態為接收
- }
- /* 啟動串行發送,dat-待發送字節數據 */
- void StartTXD(unsigned char dat){
- TxdBuf = dat; //待發送數據保存到發送緩沖器
- TL0 = TH0; //T0 計數初值為重載值
- ET0 = 1; //使能 T0 中斷
- TR0 = 1; //啟動 T0
- PIN_TXD = 0; //發送起始位
- TxdEnd = 0; //清零發送結束標志
- RxdOrTxd = 1; //設置當前狀態為發送
- }
- /* T0 中斷服務函數,處理串行發送和接收 */
- void InterruptTimer0() interrupt 1{
- static unsigned char cnt = 0; //位接收或發送計數
- if (RxdOrTxd){ //串行發送處理
- cnt++;
- if (cnt <= 8){ //低位在先依次發送 8bit 數據位
- PIN_TXD = TxdBuf & 0x01;
- TxdBuf >>= 1;
- }else if (cnt == 9){ //發送停止位
- PIN_TXD = 1;
- }else{ //發送結束
- cnt = 0; //復位 bit 計數器
- TR0 = 0; //關閉 T0
- TxdEnd = 1; //置發送結束標志
- }
- }
- else { //串行接收處理
- if (cnt == 0){ //處理起始位
- if (!PIN_RXD){ //起始位為 0 時,清零接收緩沖器,準備接收數據位
- RxdBuf = 0;
- cnt++;
- }
- else{ //起始位不為 0 時,中止接收
- TR0 = 0; //關閉 T0
- }
- }
- else if (cnt <= 8){ //處理 8 位數據位
- RxdBuf >>= 1; //低位在先,所以將之前接收的位向右移
- //接收腳為 1 時,緩沖器最高位置 1,
- //而為 0 時不處理即仍保持移位后的 0
- if (PIN_RXD){
- RxdBuf |= 0x80;
- }
- cnt++;
- }
- else{ //停止位處理
- cnt = 0; //復位 bit 計數器
- TR0 = 0; //關閉 T0
- if (PIN_RXD){ //停止位為 1 時,方能認為數據有效
- RxdEnd = 1; //置接收結束標志
- }
- }
- }
- }
復制代碼
0.png (53.32 KB, 下載次數: 30)
下載附件
2018-3-18 16:15 上傳
所有資料51hei提供下載:
GYJ-0081_298可編程串口驅動器發貨資料.rar
(8.08 MB, 下載次數: 16)
2018-3-18 00:46 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|