新聞中心

STC15F2K60S2串口1程序

作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
此程序?yàn)椴艑懙拇?,工作模式1程序,自己測(cè)試沒(méi)問(wèn)題
//本示例在Keil開(kāi)發(fā)環(huán)境下請(qǐng)選擇Intel的8058芯片型號(hào)進(jìn)行編譯
//假定測(cè)試芯片的工作頻率為18.432MHz
#include "reg51.h"
sfr P4 = 0xc0;
sfr P5 = 0xc8;
sfr AUXR = 0x8e ;
unsigned char temp ;
bit flag = 0 ;
void UartInit(void) //9600bps@11.0592MHz
{
SCON = 0x50; //8位數(shù)據(jù),可變波特率
AUXR |= 0x40; //定時(shí)器1時(shí)鐘為Fosc,即1T
AUXR &= 0xFE; //串口1選擇定時(shí)器1為波特率發(fā)生器
TMOD &= 0x0F; //設(shè)定定時(shí)器1為16位自動(dòng)重裝方式
TL1 = 0xE0; //設(shè)定定時(shí)初值
TH1 = 0xFE; //設(shè)定定時(shí)初值
ET1 = 0; //禁止定時(shí)器1中斷
TR1 = 1; //啟動(dòng)定時(shí)器1
EA = 1 ; //開(kāi)啟總中斷
ES = 1 ; //開(kāi)串口中斷
}
void main( void )
{
UartInit() ;
SBUF = A ;
while(1)
{
if( flag == 1 )
{
SBUF = temp ;
flag = 0 ;
}
}
}
void Uart( void ) interrupt 4 using 1
{
if( RI )
{
RI = 0 ;
temp = SBUF ;
flag = 1 ;
}
if( TI )
{
TI = 0 ;
}
}



關(guān)鍵詞: STC15F2K60S2串口1程

評(píng)論


技術(shù)專區(qū)

關(guān)閉