欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

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

QQ登錄

只需一步,快速開始

搜索
查看: 5458|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

stc15F204ea模擬串口

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:40241 發(fā)表于 2012-5-14 20:44 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

小弟今天第一次模擬串口,程序如下:其實(shí)就是第8.1章的例程,但是我將其下載下去后,串口輸入0x55后 沒有輸出。我在STC-ISP中設(shè)置也是設(shè)置的11.0592MHz,波特率9600,為什么沒有呢?

#include "reg51.h"
typedef unsigned char BYTE;
typedef unsigned WORD;
typedef bit BOOL; 
#define BAUD  0xFE80         /* 9600bps@11.0592MHz           */
sfr AUXR = 0x8E;
sbit RXB = P3^0;          /* 定義串口TX RX端口           */
sbit TXB = P3^1;

BYTE TBUF,RBUF;
BYTE TDAT,RDAT;
BYTE TCNT,RCNT;
BYTE TBIT,RBIT;
BOOL TING,RING;
BOOL TEND,REND;

BYTE t,r;
BYTE buf[16];

void UART_INIT()
{
 TING = 0;
 RING = 0;
 TEND = 1;
 REND = 0;
 TCNT = 0;
 RCNT = 0;
}
void main()
{
 TMOD = 0x00;       /* 定時(shí)器0 16位自動(dòng)裝置模式         */
 AUXR = 0x80;       /* 定時(shí)器0工作在1T模式          */
 TL0 = BAUD;
 TH0 = BAUD >> 8;         /* 初始化定時(shí)器0,并設(shè)置自動(dòng)裝置的值      */
 TR0 = 1;            /* 定時(shí)器0開始啟動(dòng)           */
 ET0 = 1;            /* 使能定時(shí)器0中斷           */
 PT0 = 1;            /* 設(shè)置定時(shí)器0中斷優(yōu)先級(jí)         */
 EA = 1;             /* 開全局中斷            */
 UART_INIT();            /* 串口初始化            */
 while(1)
 {
 

  if(REND)
  {
     REND = 0;
   buf[r++ & 0x0f] = RBUF;
  }
  if(TEND)
  {
   if(t != r)
   {
    TEND = 0;
    TBUF = buf[t++ & 0x0f];
    TING = 1;
   }
  }

 }
}

void tm0() interrupt 1 using 1
{
 if(RING)
 {
  if(--RCNT == 0)
  {
   RCNT =3;
   if(--RBIT == 0)
   {
    RBUF = RDAT;
    RING = 0;
    REND = 1;
   }
   else
   {
    RDAT >>=1;
    if(RXB)RDAT |= 0x80;
   }
  }
 }
 else if(!RXB)
 {
  RING = 1;
  RCNT = 4;
  RBIT = 9;
 }
 if(--TCNT == 0)
 {
  TCNT = 3;
  if(TING)
  {
   if(TBIT == 0)
   {
    TXB = 0;
    TDAT = TBUF;
    TBIT = 9;
   }
   else
   {
    TDAT >>= 1;
    if(--TBIT ==0)
    {
     TXB = 1;
     TING = 0;
     TEND = 1;
    }
    else
    {
     TXB =CY;
    }
   }
  }

 }
}

 

 

 

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:40241 發(fā)表于 2012-5-14 20:45 | 只看該作者
希望各位大俠幫忙解決,萬(wàn)分感謝!
回復(fù)

使用道具 舉報(bào)

板凳
ID:40241 發(fā)表于 2012-5-14 21:08 | 只看該作者
感謝各位大俠!
回復(fù)

使用道具 舉報(bào)

地板
ID:114645 發(fā)表于 2016-9-24 16:47 來自觸屏版 | 只看該作者
qiancuit 發(fā)表于 2012-5-14 20:45
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

樓主,這個(gè)問題我也遇到過,在keil C51里面的把memory model設(shè)為small就可以正常運(yùn)行了
回復(fù)

使用道具 舉報(bào)

5#
ID:33544 發(fā)表于 2017-8-4 10:30 | 只看該作者
分享是種美德
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表