<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機普通IO口模擬串行口之查詢方式

          51單片機普通IO口模擬串行口之查詢方式

          作者: 時間:2012-08-04 來源:網(wǎng)絡 收藏

          完整程序工程源代碼:點擊下載

          主程序:

          #include reg51.h>#include "delay.h"#include "sub4094.c"#include intrins.h>sbit spk = P2^5;    //定義蜂鳴器使用的I/O口P2.5sbit LED = P2^7;#include "subuart2.c"void main (void){unsigned char first,zjgs,order,zhen_xh,jym,end;  //定義起始字、字節(jié)個數(shù)、命令碼、幀序號、校驗碼、結束字unsigned char i;       //定義1個隨機變量unsigned char sum;     //定義單片機計算用的校驗碼unsigned char LED_contrl;  //指示燈控制字unsigned contrl_1,contrl_2; //移位變量//unsigned int delay_counter;P5=0xEF;   //使能流水燈,屏蔽數(shù)碼管P4=0x00;      //流水燈全部點亮	update4094(); //刷新流水燈狀態(tài)delay_ms(300);P4=0xFF;      //流水燈全部熄滅update4094(); //刷新流水燈狀態(tài)while(1){first=getchar2();   //讀取6個數(shù)據(jù)進行處理。 zjgs=getchar2();order=getchar2();zhen_xh=getchar2();jym=getchar2();end=getchar2();if(0xfa != first) goto end;sum=zjgs+order+zhen_xh;if(sum != jym) {putchar2(0xfa);   //起始字putchar2(0x07);    //字節(jié)個數(shù)sum=0x07;putchar2(order);   //接收到的命令碼sum+=order;putchar2(zhen_xh); //接收到的幀序號putchar2(0x00);    //命令校驗錯誤標志位sum+=zhen_xh;putchar2(sum);     //校驗碼putchar2(0xfb);//蜂鳴器發(fā)出報警聲音,指示燈閃爍for(i=0;i8;i++)  {LED=~LED;     //取反指示燈spk=~spk;     //取反蜂鳴器delay_ms(200); }goto end;} if(0xfb != end) goto end;switch(order){case 1: //將收到的命令返回給串行口LED=0;putchar2(first);      //起始字  putchar2(zjgs);       //字節(jié)個數(shù) putchar2(order);      //命令碼putchar2(zhen_xh);    //幀序號putchar2(jym);        //校驗碼putchar2(end);      //結束字delay_ms(50);LED=1;//流水燈效果 循環(huán)右移P4=0xff;                       //熄滅所有指示燈update4094();LED_contrl=0x01;               //初始化指示燈控制字節(jié)delay_ms(50);                 //延時300MSfor(i=0;i8;i++){P4=~LED_contrl;            //點亮控制字節(jié)相應指示燈update4094();delay_ms(50);LED_contrl=1;}P4=0xff;                       //熄滅所有指示燈update4094();break;case 2: //將收到的命令返回給串行口putchar2(first);      //起始字  putchar2(zjgs);       //字節(jié)個數(shù) putchar2(order);      //命令碼putchar2(zhen_xh);    //幀序號putchar2(jym);        //校驗碼putchar2(end);      //結束字//流水燈效果 從左到右逐個點亮P4=0xff;         //熄滅所有指示燈update4094();LED_contrl=0xff;   //初始化指示燈控制字節(jié)delay_ms(50);for(i=0;i8;i++){LED_contrl=1;P4=LED_contrl;update4094();delay_ms(50);}break;case 3: //將收到的命令返回給串行口putchar2(first);      //起始字  putchar2(zjgs);       //字節(jié)個數(shù) putchar2(order);      //命令碼putchar2(zhen_xh);    //幀序號putchar2(jym);        //校驗碼putchar2(end);      //結束字//流水燈效果  循環(huán)對撞P4=0xff;          //熄滅所有指示燈update4094();contrl_1=0x02;   //初始化移位變量1contrl_2=0x80;   //初始化移位變量2delay_ms(50);for(i=0;i8;i++){LED_contrl=contrl_1|contrl_2;P4=~LED_contrl; //點亮控制字節(jié)相應指示燈update4094();delay_ms(50);contrl_1=1;  //移位變量1左移1位contrl_2>>=1;  //移位變量2右移1位} P4=0xff;                       //熄滅所有指示燈update4094();break;default:break;}end:;}}

          51單片機相關文章:51單片機教程


          單片機相關文章:單片機教程


          單片機相關文章:單片機視頻教程


          單片機相關文章:單片機工作原理


          蜂鳴器相關文章:蜂鳴器原理

          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();