欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: L298N可編程串口驅(qū)動器原理圖+單片機源碼等資料 [打印本頁]

作者: zhangxinchun    時間: 2018-3-18 00:46
標(biāo)題: L298N可編程串口驅(qū)動器原理圖+單片機源碼等資料
L298N可編程串口驅(qū)動器電路原理圖:

簡要說明:
一、尺寸:長93mmX87mmX40mm
二、主要芯片:L298N、光電耦合器 STC12C2052AD單片機
三、工作電壓:輸入電壓(5V~12V)輸入電壓的大小由被控制電機的額定電壓決定。
四、可驅(qū)動直流(5~12V之間電壓的直流電機或者步進(jìn)電機)
五、最大輸出電流2A (瞬間峰值電流3A
六、最大輸出功率25W
七、特點:(需要對單片機進(jìn)行編程)
1、具有信號指示
2、轉(zhuǎn)速可調(diào)
3、抗干擾能力強
4、具有續(xù)流保護(hù)
5、可單獨控制兩臺直流電機
6、可單獨控制一臺步進(jìn)電機
7、PWM脈寬平滑調(diào)速(可使用PWM信號對直流電機調(diào)速)
8、可實現(xiàn)正反轉(zhuǎn)
9、采用光電隔離
10、具有擴展IO開口
11、四位LED燈指示(輸出信號顯示)
12、四位按鍵輸入(可以對單片機編程實現(xiàn)任何控制)




IO口模擬串口  能發(fā)送 能接收單片機源程序如下:
  1. #include <reg52.h>
  2. sbit PIN_RXD = P1^0; //接收引腳定義
  3. sbit PIN_TXD = P1^1; //發(fā)送引腳定義
  4. bit RxdOrTxd = 0; //指示當(dāng)前狀態(tài)為接收還是發(fā)送
  5. bit RxdEnd = 0; //接收結(jié)束標(biāo)志
  6. bit TxdEnd = 0; //發(fā)送結(jié)束標(biāo)志
  7. unsigned char RxdBuf = 0; //接收緩沖器
  8. unsigned char TxdBuf = 0; //發(fā)送緩沖器
  9. void ConfigUART(unsigned int baud);
  10. void StartTXD(unsigned char dat);
  11. void StartRXD();
  12. void main(){
  13.     EA = 1; //開總中斷
  14.     ConfigUART(9600);
  15.     while (1){ //配置波特率為 9600
  16.         while (PIN_RXD); //等待接收引腳出現(xiàn)低電平,即起始位
  17.         StartRXD(); //啟動接收
  18.         while (!RxdEnd); //等待接收完成
  19.         StartTXD(RxdBuf+1); //接收到的數(shù)據(jù)+1 后,發(fā)送回去
  20.         while (!TxdEnd); //等待發(fā)送完成
  21.     }
  22. }
  23. /* 串口配置函數(shù),baud-通信波特率 */
  24. void ConfigUART(unsigned int baud){
  25.     TMOD &= 0xF0; //清零 T0 的控制位
  26.     TMOD |= 0x02; //配置 T0 為模式 2
  27.     TH0 = 256 - (11059200/12)/baud; //計算 T0 重載值
  28. }
  29. /* 啟動串行接收 */
  30. void StartRXD(){
  31.     TL0 = 256 - ((256-TH0)>>1); //接收啟動時的 T0 定時為半個波特率周期
  32.     ET0 = 1; //使能 T0 中斷
  33.     TR0 = 1; //啟動 T0
  34.     RxdEnd = 0; //清零接收結(jié)束標(biāo)志
  35.     RxdOrTxd = 0; //設(shè)置當(dāng)前狀態(tài)為接收
  36. }
  37. /* 啟動串行發(fā)送,dat-待發(fā)送字節(jié)數(shù)據(jù) */
  38. void StartTXD(unsigned char dat){
  39.     TxdBuf = dat; //待發(fā)送數(shù)據(jù)保存到發(fā)送緩沖器
  40.     TL0 = TH0; //T0 計數(shù)初值為重載值
  41.     ET0 = 1; //使能 T0 中斷
  42.     TR0 = 1; //啟動 T0
  43.     PIN_TXD = 0; //發(fā)送起始位
  44.     TxdEnd = 0; //清零發(fā)送結(jié)束標(biāo)志
  45.     RxdOrTxd = 1; //設(shè)置當(dāng)前狀態(tài)為發(fā)送
  46. }
  47. /* T0 中斷服務(wù)函數(shù),處理串行發(fā)送和接收 */
  48. void InterruptTimer0() interrupt 1{
  49.     static unsigned char cnt = 0; //位接收或發(fā)送計數(shù)
  50.     if (RxdOrTxd){ //串行發(fā)送處理
  51.         cnt++;
  52.         if (cnt <= 8){ //低位在先依次發(fā)送 8bit 數(shù)據(jù)位
  53.             PIN_TXD = TxdBuf & 0x01;
  54.             TxdBuf >>= 1;
  55.         }else if (cnt == 9){ //發(fā)送停止位
  56.             PIN_TXD = 1;
  57.         }else{ //發(fā)送結(jié)束
  58.             cnt = 0; //復(fù)位 bit 計數(shù)器
  59.             TR0 = 0; //關(guān)閉 T0
  60.             TxdEnd = 1; //置發(fā)送結(jié)束標(biāo)志
  61.         }
  62.     }
  63.         else { //串行接收處理
  64.         if (cnt == 0){ //處理起始位
  65.             if (!PIN_RXD){ //起始位為 0 時,清零接收緩沖器,準(zhǔn)備接收數(shù)據(jù)位
  66.                 RxdBuf = 0;
  67.                 cnt++;
  68.             }

  69.                                         else{ //起始位不為 0 時,中止接收
  70.             TR0 = 0; //關(guān)閉 T0
  71.         }
  72.         }

  73.                 else if (cnt <= 8){ //處理 8 位數(shù)據(jù)位
  74.             RxdBuf >>= 1; //低位在先,所以將之前接收的位向右移
  75.             //接收腳為 1 時,緩沖器最高位置 1,
  76.             //而為 0 時不處理即仍保持移位后的 0
  77.             if (PIN_RXD){
  78.                 RxdBuf |= 0x80;
  79.             }
  80.             cnt++;
  81.         }
  82.                 else{ //停止位處理
  83.             cnt = 0; //復(fù)位 bit 計數(shù)器
  84.             TR0 = 0; //關(guān)閉 T0
  85.             if (PIN_RXD){ //停止位為 1 時,方能認(rèn)為數(shù)據(jù)有效
  86.                 RxdEnd = 1; //置接收結(jié)束標(biāo)志
  87.             }
  88.         }
  89.     }
  90. }
復(fù)制代碼


所有資料51hei提供下載:
GYJ-0081_298可編程串口驅(qū)動器發(fā)貨資料.rar (8.08 MB, 下載次數(shù): 16)








歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1