- 打卡等级:以坛为家I
- 打卡总天数:383
- 最近打卡:2025-04-30 09:42:19
高级会员
- 积分
- 601
|
发表于 2023-12-8 21:59:09
|
显示全部楼层
你的串口初始化函数可以使用,我对其它部分进行了调整,这是我调整后的程序,在我这里可以运行,STC8G1K08A上电后,就一直向串口调试助手发送十六进制02。
/*---------------------------------------------------------------------*/
/* --- STC MCU Limited ------------------------------------------------*/
/* --- STC 1T Series MCU Demo Programme -------------------------------*/
/* --- Mobile: (86)13922805190 ----------------------------------------*/
/* --- Fax: 86-0513-55012956,55012947,55012969 -----------------------*/
/* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
/* --- Web: www.STCMCU.com --------------------------------------------*/
/* --- Web: www.GXWMCU.com --------------------------------------------*/
/* --- QQ: 800003751 -------------------------------------------------*/
/* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序 */
/*---------------------------------------------------------------------*/
/************* 功能说明 **************
STC8G1K08A 发送通讯程序。
2023-5-17 KILL C51环境,STC8G1K08A,时钟11059200,波特率9600L,编译错误0警告0
******************************************/
#include "STC8G.H"
#define MAIN_Fosc 11059200L //定义主时钟
#define Baudrate1 9600L
typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;
void DelayXms(u8 ms); //延时涵数声明
//串口初始化涵数
void Uart1_Init(void) //9600bps@11.0592MHz
{
PCON &= 0x7f; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器时钟1T模式
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //设置定时器模式
TMOD |= 0x20; //设置定时器模式
TL1 = 0xDC; //设置定时初始值
TH1 = 0xDC; //设置定时重载值
ET1 = 0; //禁止定时器中断
TR1 = 1; //定时器1开始计时
ES = 1;
}
//========================================================================
// 函数: void main(void)
// 描述: 主函数。
// 参数: none.
// 返回: none.
// 版本: VER1.0
// 日期: 2014-12-8
// 备注:
//========================================================================
void main(void)
{
u8 tim;
P3M0 = 0x00; P3M1 = 0x00;
P5M0 = 0x00; P5M1 = 0x00;
Uart1_Init(); //串口初始化
REN=0;
EA = 1; //允许总中断
tim = 250; //延时时间
while (1)
{
DelayXms(tim);
P54=0;
SBUF = 2;
DelayXms(tim);
SBUF = 2;
P54=1;
}
}
/***********************************************************************/
//名称:DelayXms(u8 ms);
//描述: 延时函数。
//参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟.
//返回: none.
//版本: VER1.0
//日期: 2013-4-1
//备注: 摘自STC15范例程序,原涵数名:void delay_ms(unsigned char ms)
//========================================================================
void DelayXms(u8 ms)
{
u16 i;
do{
i = MAIN_Fosc / 13000;
while(--i) ; //14T per loop
}while(--ms);
}
|
1
喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
-
+1
给力啊!
|