久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1447|回復(fù): 0
收起左側(cè)

單片機(jī)與pc通訊源碼

[復(fù)制鏈接]
ID:292466 發(fā)表于 2018-3-15 20:20 | 顯示全部樓層 |閱讀模式
#include <REG52.H>    /* special function register declarations */
#include <stdio.h>    /* prototype declarations for I/O functions */
#include <intrins.h>
#include <Absacc.h>
#include <string.h>
#include <ctype.h>

#define byte unsigned char
#define uchar unsigned char
#define word unsigned int
#define uint unsigned int
#define ulong unsigned long
#define BYTE         unsigned char
#define WORD         unsigned int

#define TRUE  1
#define FALSE 0

void time(unsigned int ucMs);//延時(shí)單位:ms
void initUart(void);/*初始化串口波特率,使用定時(shí)器2*/
void sendString(uchar *ucString); //往串口發(fā)字符串

/******** main 函數(shù) *********/
void main (void) {

        time(1);/* 延時(shí)等待外圍器件完成復(fù)位 */
        initUart();/* 初始化串口 */
        IE=0x90; /* 打開(kāi)串口中斷 */               
        while(TRUE){}
}
/********** 初始化串口波特率 ************/
void initUart(void)/*初始化串口波特率,使用定時(shí)器2*/
{
/* Setup the serial port for 9600 baud at 11.0592MHz */
        SCON = 0x50;  //串口工作在方式1
        RCAP2H=(65536-(3456/96))>>8;
        RCAP2L=(65536-(3456/96))%256;
          T2CON=0x34;   
}

/***********  串行口中斷服務(wù)程序***************/
void serial0_int(void) interrupt 4
{
uchar rChar;
uchar code str1[]="What do you plan to do this Friday?";//收到0x01時(shí)的返回
uchar code str2[]="I plan to go to the concert.";//收到0x02時(shí)的返回
uchar code str3[]="What are you doing next week?";//收到0x03時(shí)的返回
uchar code str4[]="I'm thinking of going to my grandma's.";//收到0x04時(shí)的返回
uchar code strdefault[]="Please select a character '1','2','3' or '4'!";//收到其它時(shí)的返回

    EA=0;/* 關(guān)總中斷 */
        RI=0;/* 請(qǐng)標(biāo)志 */
        rChar=SBUF;/* 讀串口緩沖區(qū),得到PC發(fā)來(lái)的數(shù)據(jù) */
        P2=rChar; /* 送P2口顯示 */

        switch(rChar) {
                case '1': //收到字符'1'
                            SBUF='1';while(TI==0){}TI=0;//發(fā)送字符'1'
                                SBUF=':';while(TI==0){}TI=0;//發(fā)送字符':'
                                sendString(str1);//發(fā)送字符串str1
                            break;
                case '2': //收到字符'2'
                            SBUF='2';while(TI==0){}TI=0;//發(fā)送字符'2'
                                SBUF=':';while(TI==0){}TI=0;//發(fā)送字符':'
                                sendString(str2);//發(fā)送字符串str2
                            break;
                case '3': //收到字符'3'
                            SBUF='3';while(TI==0){}TI=0;//發(fā)送字符'3'
                                SBUF=':';while(TI==0){}TI=0;//發(fā)送字符':'
                                sendString(str3);//發(fā)送字符串str3
                            break;
                case '4': //收到字符'4'
                            SBUF='4';while(TI==0){}TI=0;//發(fā)送字符'4'
                                SBUF=':';while(TI==0){}TI=0;//發(fā)送字符':'
                                sendString(str4);//發(fā)送字符串str4
                            break;
                default:  //收到其它字符
                            SBUF='d';while(TI==0){}TI=0;//發(fā)送字符'd'
                                SBUF=':';while(TI==0){}TI=0;//發(fā)送字符':'
                                sendString(strdefault);//發(fā)送字符串strdefault
                            break;
        }
        EA=1;/* 開(kāi)總中斷 */       
}

void sendString(uchar *ucString) //往串口發(fā)字符串
{
uchar i,stringLength=strlen(ucString);
        REN=0;//設(shè)置發(fā)送狀態(tài)
        for(i=0;i<stringLength;i++){
                SBUF=ucString[i];while(TI==0);TI=0;//發(fā)送字符
        }
        SBUF=0x0d;while(TI==0);TI=0;//發(fā)送回車(chē)
        SBUF=0x0a;while(TI==0);TI=0;//發(fā)送換行
        SBUF=0x0a;while(TI==0);TI=0;//發(fā)送換行
        REN=1;//設(shè)置接收狀態(tài)
}

void delay_5us(void)//延時(shí)5us,晶振改變時(shí)只用改變這一個(gè)函數(shù)!
{
        _nop_();
        _nop_();
        //_nop_();
        //_nop_();
}
/************ delay_50us ***************/
void delay_50us(void)//延時(shí)50us
{
        unsigned char i;
        for(i=0;i<4;i++)
        {
                delay_5us();
        }
}
/******** 延時(shí)100us ******************/
void delay_100us(void)//延時(shí)100us
{
        delay_50us();
        delay_50us();
}

/*********** 延時(shí)單位:ms *******************/
void time(unsigned int ucMs)//延時(shí)單位:ms
{
        unsigned char j;       
        while(ucMs>0){
                for(j=0;j<10;j++) delay_100us();
                ucMs--;
        }
}


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精久久久| 91久久久精品国产一区二区蜜臀 | 日本不卡一区二区三区在线观看 | 久久黄色精品视频 | 日韩在线视频一区 | 午夜激情国产 | 97精品超碰一区二区三区 | 久久久久久国产精品免费免费 | 精品国产91乱码一区二区三区 | 精品一区二区三区四区在线 | 国产精品免费av | 一级黄色网页 | 秋霞国产 | 97精品久久 | 丁香久久| 欧美在线a | 日朝毛片 | av毛片免费| 亚洲乱码国产乱码精品精98午夜 | 国产日韩精品久久 | 91婷婷韩国欧美一区二区 | 亚洲精品久久久久avwww潮水 | 看片地址| 亚洲精品视频网站在线观看 | 男女网站视频 | 欧美日韩中文在线观看 | 欧美综合网 | 中文字幕一区二区三区不卡在线 | 国产精品久久久久久久久久三级 | 99资源站| 91中文| 涩涩鲁亚洲精品一区二区 | 精品久久久久久亚洲综合网 | 国产一区二区精品 | 精品一区二区三区在线观看 | 九色在线观看 | 国产欧美一区二区三区另类精品 | 精品欧美激情在线观看 | 国产欧美日韩精品一区 | 国产在线精品一区二区 | 日批免费看 |