单片机SH79F168串口调式

来源:本站
导读:目前正在解读《单片机SH79F168串口调式》的相关信息,《单片机SH79F168串口调式》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《单片机SH79F168串口调式》的详细说明。
简介:本文将介绍单片机SH79F168串口调式

最近在弄中颖最新出来的8bit单片机,开始的时候挺棘手的,网上没有那些主流芯片那么多资料,一个小问题没有弄清楚都要调式很久才能搞明白,最惨的在焊接电源的时候还让我烧了片,弄得我四处找新片子,幸好今天样片来了,烧之前没有调通的串口终于调通了,就把程序发出来,让像我一样的新手别像无头苍蝇一样到处乱撞,呵呵……

需要注意的地方:

(1)将接受和发送端口设置为输入,同时设置为输入,只将接受端口设置为输入都也不行;

(2)波特率的计算跟51单片机不相同,可以仔细看数据手册怎么计算的;

(3)RI与TI共用一个中断,需要由标志去区分(这里跟PIC的中断有点类似了)。

程序不周到的地方还望各位见谅,有什么建议尽管提。

void init_uart()

{

P3CR &= 0xF9 ; //这个需要将端口设置为输入,不然有可能会产生乱码

TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload

TH1 = 0x94 ; //Baud:9600 fosc=16.6MHz

TL1 = 0x94 ;

SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr

PCON = 0x80 ; //SMOD=1;

IEN0 |= 0x90 ; //Enable Serial Interrupt,EA=1,ES=1;

TR1 = 1 ; // timer 1 run

//TI = 1;

}

//向串口发送一个字符

void send_char_com( uint8 ch)

{

SBUF = ch;

while (!TI);

TI = 0 ;

}

//向串口发送一个字符串,strlen为该字符串长度

void send_string_com( unsigned char *str, unsigned int strlen)

{

unsigned int k= 0 ;

do { send_char_com(*(str + k)); k++; }

while (k < strlen);

}

//接受串口发送过来的数据,并再次发给串口

void RX_ISR() interrupt 4

{

if(RI&&ES)

{

send_char_com(SBUF);

RI=0;

}

}

提醒:《单片机SH79F168串口调式》最后刷新时间 2024-03-14 00:56:45,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《单片机SH79F168串口调式》该内容的真实性请自行鉴别。