新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PC與單片機通訊(89c52 VB 控制LED)

        PC與單片機通訊(89c52 VB 控制LED)

        作者: 時間:2016-11-22 來源:網絡 收藏
        //單片機c代碼

        #include
        #include
        #define INBUF_LEN 4 //數據長度
        unsigned char inbuf1[INBUF_LEN];
        unsigned char checksum,count3;
        bit read_flag= 0 ;
        sbit p1=P1^0;
        sbit p2=P1^1;
        sbit p3=P1^2;
        sbit p4=P1^3;
        sbit p5=P1^4;
        sbit p6=P1^5;
        sbit p7=P1^6;
        sbit p8=P1^7;
        void init_serialcomm( void )
        {
        SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr
        TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload
        PCON |= 0x80 ; //SMOD=1;
        TH1 = 0xF4 ; //Baud:4800 fosc=11.0592MHz
        IE |= 0x90 ; //Enable Serial Interrupt
        TR1 = 1 ; // timer 1 run
        // TI=1;
        }

        本文引用地址:http://www.104case.com/article/201611/319687.htm

        //串口接收中斷函數
        void serial () interrupt 4 using 3
        {
        if (RI)
        {
        unsigned char ch;
        RI = 0 ;
        ch=SBUF;
        if (ch==1 )
        {
        //if (P1==0xff)
        //P1=0x0e;
        //else
        //P1=0xff;
        p1=0;
        }
        if (ch==2 )
        {
        p2=0;
        }
        if (ch==3 )
        {
        p3=0;
        }
        if (ch==4 )
        {
        p4=0;
        }
        if (ch==5 )
        {
        p5=0;
        }
        if (ch==6 )
        {
        p6=0;
        }
        if (ch==7 )
        {
        p7=0;
        }
        if (ch==8 )
        {
        p8=0;
        }
        if (ch==11 )
        {
        p1=1;
        }
        if (ch==12 )
        {
        p2=1;
        }
        if (ch==13 )
        {
        p3=1;
        }
        if (ch==14 )
        {
        p4=1;
        }
        if (ch==15 )
        {
        p5=1;
        }
        if (ch==16 )
        {
        p6=1;
        }
        if (ch==17 )
        {
        p7=1;
        }
        if (ch==18 )
        {
        p8=1;
        }

        }
        }
        main()
        {
        init_serialcomm(); //初始化串口
        while ( 1 )
        {
        if (read_flag) //如果取數標志已置位,就將讀到的數從串口發出
        {
        read_flag= 0 ; //取數標志清0
        }
        }
        }

        上位機(VB)代碼

        添加command數組1,2,各8個,command1(i),command2(i)

        添加MSComm控件

        Private Sub Command1_Click(Index As Integer)
        MSComm1.Output = Chr(Index + 1)
        End Sub

        Private Sub Command2_Click(Index As Integer)
        MSComm1.Output = Chr(Index + 11)
        End Sub

        Private Sub Form_Load()
        For i = 0 To 7
        Command1(i).Caption = "ON_LED_" & Str(i + 1)
        Command2(i).Caption = "OFF_LED_" & Str(i + 1)
        Next i
        Me.BorderStyle = 4
        Me.Caption = "LED控制"
        MSComm1.CommPort = 4 端口號根據自己電腦設置
        MSComm1.Settings = "4800,n,8,1"
        MSComm1.PortOpen = True 打開通信口
        End Sub




        評論


        技術專區

        關閉
        主站蜘蛛池模板: 弋阳县| 松原市| 高陵县| 河曲县| 渭源县| 桐庐县| 芦山县| 衡南县| 嘉义县| 扎赉特旗| 新蔡县| 富平县| 应用必备| 阿拉善左旗| 同德县| 尖扎县| 平山县| 彰武县| 吉木萨尔县| 临沭县| 嘉兴市| 罗源县| 柘荣县| 海阳市| 内黄县| 定州市| 蓝田县| 信宜市| 公主岭市| 黔东| 简阳市| 桐乡市| 永登县| 砀山县| 吐鲁番市| 汪清县| 遂宁市| 城市| 开原市| 宝清县| 清远市|