|
楼主 |
发表于 2021-5-6 15:40:03
|
显示全部楼层
谢谢,确实是你说的问题,需要配置IO口的输出模式;
另外,再请教一下,这个单片机的串口我没调通,不知道哪里的问题;
程序下载完毕后,串口助手打开,一个字节也收不到,串口根本就没发数据;
- #include <stc8g.h>
- #define u8 unsigned char
- #define u16 unsigned int
- #define FOSC 11059200UL
- #define BRT (65536-FOSC/115200/4)
- bit busy = 0;
- void UART1_Isr() interrupt 4
- {
- if (TI)
- {
- TI = 0;//清中断标志
- busy = 0;
- }
- if (RI)
- {
- RI = 0;//清中断标志
- }
- }
- void Delay500ms() //@11.0592MHz
- {
- unsigned char i, j, k;
- i = 29;
- j = 14;
- k = 54;
- do
- {
- do
- {
- while (--k);
- } while (--j);
- } while (--i);
- }
- void USART1_Init(void)
- {
- P3M0 = 0X00;
- P3M1 = 0X00;
- // P3M0 |= 0x02;
- // P3M1 &= ~0x02;
- SCON = 0x50; //
- // T2L = BRT;
- // T2H = BRT>>8;
- T2L = 0xe8;//65536-11059200/115200/4=0FFE8H
- T2H = 0xff;
- AUXR = 0x15;//启动定时器
- busy = 0;
- ES = 1; //使能串口中断
- }
- void USART1_SendOneByte(u8 dat)
- {
- while(busy);
- busy = 1;
- SBUF = dat;
- }
- void main()
- {
- USART1_Init();
- EA = 1;
- //发送测试数据
- while (1){
- USART1_SendOneByte(0x7f);
- Delay500ms();
- }
- }
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|