標題: 各位誰看一下這個單片機程序怎么發(fā)送和接受 [打印本頁]

作者: szxyp    時間: 2017-12-25 16:41
標題: 各位誰看一下這個單片機程序怎么發(fā)送和接受
TXD和RXD怎么寫才能發(fā)送接收

#include "reg52.h"                         
#include<intrins.h>               

typedef unsigned int u16;         
typedef unsigned char u8;

sbit beep=P1^5;         
sbit a=P2^0 ;       
sbit LSA=P2^2;       
sbit LSB=P2^3;
sbit LSC=P2^4;
u8 code smgduan[10]={
        0x3f,   //0
        0x06,          //1
        0x5b,        //2
        0x4f,        //3
        0x66,        //4
        0x6d,          //5
        0x7d,        //6
        0x07,        //7
        0x7f,        //8
        0x6f,        //9
        };          

void delay(u16 i)
{
        while(i--);                  //延時函數(shù),i=1時,大約延時10us
}



void main()
{       
   u16 L0=0,L1=0,L2=0,L3=0,d,n=0,w=0;
       
        TMOD|=0X01;                //  01定時  04計數(shù)  選擇為定時器0模式,工作方式1,僅用TR0打開啟動。

        TH0=0X3C;                //給定時器賦初值,定時1ms   
        TL0=0XB0;                                                    
       
        TR0=1;        //打開定時器
        if(TXD==0)
        {
            RXD=L0&L1&L2&L3;
        }

       
         if(w==0)
        {       
                delay(100);
                if(a==1)
                {
              L0++;
                 while(1)
       {
           if(L0==10)
                {
                        L0=0;
                        L1++;
                }
                if(L1==10)                                                          
                {
                        L1=0;
                        L2++;
                }
                if(L2==10)
                {
                        L2=0;
                        L3++;
                }
                if(L3==10)
                {
                    L3=0;
                        L0=0;L1=0;L2=0;
                }
                if(L2==9)
                {
                     beep = 1;
                }


                for(d=0;d<4;d++)
                {
                        switch(d)         
                        {
                                case(0):
                                        LSA=0;LSB=0;LSC=0;P0=smgduan[L0]; break;//顯示第0位
                                case(1):
                                        LSA=1;LSB=0;LSC=0;P0=smgduan[L1]; break;//顯示第1位
                                case(2):
                                        LSA=0;LSB=1;LSC=0;P0=smgduan[L2]; break;//顯示第2位
                                case(3):
                                        LSA=1;LSB=1;LSC=0;P0=smgduan[L3]; break;//顯示第3位
                        }
                        delay(100);
                        P0=0x00;           //消隱
                }
                if(a==1)
                delay(10000);                                                                       
                L0++;
       
       
                if(TF0==1)
        {
            TF0=0;       
                TH0=0X3C;              //重置定時常數(shù)
                TL0=0XB0;
                n++;
                if(n>200)
                {
                  n=0;
                  w=1;
                }
                if(w==1)
                a=0;
    }
               
        }
        }               
        }
                }  

                       







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