日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

51单片机基础——串口通信字符串控制流水灯

發布時間:2024/1/8 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 51单片机基础——串口通信字符串控制流水灯 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <reg52.h> #include<intrins.h> //位移頭文件_crol_ #define uchar unsigned char unsigned char flag,i; char w='0'; char wu[15]; int k=0; int q=0; void receive() interrupt 4 //串口中斷服務程序 {if(RI==1){RI=0; //重新清0等待接收w=SBUF;//接收電腦傳輸過來的數據wu[k]=w; //將W的值賦給wu數組k++;SBUF=w;//單片機把接收到的數據返回給電腦 TI=0; //清除發送中斷標志位} }void init(){SCON=0x50;//串口控制寄存器,等價于SM0=0,SM1=1,SM2=0,串口方式一通信 TMOD=0X20; //設置定時器1為模式2,做為波特率發生器,8位初值自動重裝的8位定時器,定時到TH1的值自動裝到TL1 TH1=0xfd;//設置波特率為9600 TL1=0xfd; REN=1;//允許串口接收中斷? EA=1;//開全局中斷 ES=1;//串口中斷允許 TR1=1; //啟動波特率發生器 }void delay(unsigned int xms) { unsigned int i,j;for(i=xms;i>0;i--)for(j=112;j>0;j--); }void main() {init();P1=0xfe;//LED:1111 1110while(1){ if(w=='\n') //當發送了新行時,{k=0; //數組里的元素清零for(q=0;q<20;q++){wu[q]=0;}q=0;}//當串口調試助手發送sujunjun時執行10ms流水燈功能 if(wu[0]=='s'&&wu[1]=='u'&&wu[2]=='j'&&wu[7]=='n'&&wu[8]=='\r') { k=0; //數組里的元素清零while(1){delay(10);P1=_crol_(P1,1);//LED燈左移一位if(wu[0]=='q') //如果收到q則跳出sujunjun的流水燈break;}} //當串口調試助手發送suweiwei時執行50ms流水燈功能if(wu[0]=='s'&&wu[1]=='u'&&wu[2]=='w'&&wu[7]=='i'&&wu[8]=='\r') { k=0; //數組里的元素清零 while(1){delay(50);P1=_crol_(P1,1);//LED燈左移一位if(wu[0]=='q')//如果收到q則跳出suweiwei的流水燈break;}}} }

總結

以上是生活随笔為你收集整理的51单片机基础——串口通信字符串控制流水灯的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。