注册名:

密码:

个人注册

企业注册

商务申请

商务管理平台

企业管理平台

个人管理平台

我的工控博客

中国工控网www.chinakong.com

首页 | 新闻中心 | 工控论坛 | 经验视点 | 工控商务 | 电气手册 | 工控博客 | 招聘求职 | 网上调查 | 企业中心 | 供求信息 | 资料中心 | 工控书店

所在位置:工控论坛 -- 工业自动化网络论坛 -- 工业自动化网络论坛(非专题) -- 协议标准

中国工控网搜索:

 自动化企业招聘

更多..

 登陆:密码:  注册  密码

搜索:

工业自动化网络论坛(非专题)分类  

全部论题

协议标准

硬件配置

发表人:jianhai55 发表时间:2008/11/22 15:46:00  

 

 本栏论题: 单片机与PC串口通信的部分C源代码  [3125]

    
    #define UART_RX_BUFFER_SIZE 16 /* 1,2,4,8,16,32,64,128 or 256 bytes */
    #define UART_RX_BUFFER_MASK ( UART_RX_BUFFER_SIZE - 1 )
    #define UART_TX_BUFFER_SIZE 16 /* 1,2,4,8,16,32,64,128 or 256 bytes */
    #define UART_TX_BUFFER_MASK ( UART_TX_BUFFER_SIZE - 1 )
    /* Static Variables */
    static data unsigned char UART_RxBuf[UART_RX_BUFFER_SIZE];
    static data volatile unsigned char UART_RxHead;
    static data volatile unsigned char UART_RxTail;
    static data unsigned char UART_TxBuf[UART_TX_BUFFER_SIZE];
    static data volatile unsigned char UART_TxHead;
    static data volatile unsigned char UART_TxTail;
    bit fSeri0_Send_Ok;
    /* initialize UART */
    //t2 做波特率发生器 9600bps at 11.0592 MHz
    void InitUART( )
    {
    unsigned char x;
    T2CON = 0x30; //t2 做波特率发生器  
    TH2 = 0xFF;
    TL2 = 0xdc;         
    RCAP2H = 0xFF;       
    RCAP2L = 0xdc;
    SCON = 0x50; /* SM0 SM1 SM2 REN TB8 RB8 TI RI:9 bit */
    PCON = 0x00; /* baut rate, 80h:double; 00h: normal */
    ES = 1; /* 串口中断允许 1-enable */
    PS = 0; /* 串口中断优先级 1-高,0-低 */
    TR2 = 1; /* Start T2 as baut rate generator */    
    x = 0; /* flush receive buffer */
    UART_RxTail = x;
    UART_RxHead = x;
    UART_TxTail = x;
    UART_TxHead = x;
    }
    /* interrupt handlers */
    void UART_interrupt( void ) interrupt 4
    {
    if (TI)
    { // 是否是发送中断
    unsigned char tmptail;
    TI=0;
    if (UART_TxTail==UART_TxHead)
    {
    fSeri0_Send_Ok=0; /*已发送完毕*/  
    }
    else
    {
    tmptail = ( UART_TxTail + 1 ) & UART_TX_BUFFER_MASK;
    UART_TxTail = tmptail; /* store new index */
    SBUF = UART_TxBuf[tmptail]; /* start
    transmition */
    }
    }
    if (RI)
    {
    unsigned char revdata;
    unsigned char tmphead;
    RI=0;
    revdata = SBUF;  
    tmphead = ( UART_RxHead + 1 ) & UART_RX_BUFFER_MASK;
    UART_RxHead = tmphead; /* store new index */
    UART_RxBuf[tmphead] = revdata; /* store received data in
    buffer */
    }
    }
    unsigned char ReceiveByte( void )
    {
    unsigned char tmptail;
    while ( UART_RxHead == UART_RxTail );/* wait for incomming data */
    tmptail = ( UART_RxTail + 1 ) & UART_RX_BUFFER_MASK;/* calculate buffer index */
    UART_RxTail = tmptail; /* store new index */
    return UART_RxBuf[tmptail]; /* return data */
    }
    void TransmitByte( unsigned char senddata )
    {
    unsigned char tmphead;
    tmphead = ( UART_TxHead + 1 ) & UART_TX_BUFFER_MASK;
    UART_TxBuf[tmphead] = senddata; /* store data in buffer */
    UART_TxHead = tmphead; /* store new index */
    if(fSeri0_Send_Ok==0)
    {
    fSeri0_Send_Ok=1;
    TI=1;
    }
    }
   

以下是关于《单片机与PC串口通信的部分C源代码》论题的回复(共3篇)

回复人:cn18show 

 回复时间:2009/9/18 17:33:00

支持(370) | 反对(230)

 

    易展成立五周年,50万回馈新老客户!易展旗下有仪表展览网,电子展览网,工控展览网、环保及易展国际等24个行业网站。活动官方网站:http://www.18show.cn/5/?m=189

回复人:lzy808 

 回复时间:2009/11/15 15:07:00

支持(344) | 反对(346)

 

    ok

回复人:杭州双翌 

 回复时间:2017/6/28 14:06:00

支持(312) | 反对(447)

 

    杭州双翌自动化科技有限公司
    宋永辉 (YongHui Song) Maketing Manager
    TEL: 0571-28350143 FAX: 0571-88315242
    Add: 杭州市西湖区文三路249号联强大厦A座421室
    Web:www.shuangyi-tech.com
    Mobile: (+86) 135-8847-3224
    欢迎来电咨询

如果要回复本栏论题,请首先中国工控网www.chinakong.com

·如果你已经是中国工控网www.chinakong.com成员,请直接登录。

·如果你还不是中国工控网www.chinakong.com成员,请首先注册,注册为免费!

注册名:

密  码:

           注册中国工控网www.chinakong.com
           忘记密码

关闭该窗口

关于我们     免责声明     服务项目     广告联系     友情链接     联系方式     意见反馈     设为首页     加入收藏

 ©2023-2025 中国工控网(www.chinakong.com) 版权所有 豫ICP备17046657号

管理员信箱:chinakong98@163.com  服务热线:13525974529

洛阳博德工控自动化技术有限公司

中国    洛阳