找回密码
 立即注册
楼主: YangHY

第一课 序言《AI8051U的特点》

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-28 09:41:27 | 显示全部楼层
这个工具可以帮助我们自动生成

波特率发生器:定时器2(16位自动重载)

否则我们还不知道应该用那个定时器来做波特率发生器!

截图202601280941234694.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-28 10:32:59 | 显示全部楼层
本课的任务:

截图202601281032572709.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-28 11:17:29 | 显示全部楼层
运行结果:
截图202601281117271640.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-28 11:20:19 | 显示全部楼层
  1. #include "usart.h"
  2. #include "io.h"
  3. u8 Rec_Dat[50];                //接收缓冲区
  4. u8 Rec_Num = 0;                //接收计数
  5. bit B_TX2_Busy=0;
  6. void Uart2_Isr(void) interrupt 8
  7. {
  8.         if (S2CON & 0x02)        //检测串口2发送中断
  9.         {
  10.                 S2CON &= ~0x02;        //清除串口2发送中断请求位
  11.                 B_TX2_Busy = 0;
  12.         }
  13.         if (S2CON & 0x01)        //检测串口2接收中断
  14.         {
  15.                 S2CON &= ~0x01;        //清除串口2接收中断请求位
  16.                
  17.                 //S2BUF
  18.                 Rec_Dat[Rec_Num++] = S2BUF;
  19.         }
  20. }
  21. void Uart2_Init(void)        //9600bps@24.000MHz
  22. {
  23.                                                                 //UART2/USART2: RxD2(P4.2), TxD2(P4.3)
  24.        
  25.         P_SW2 |= 0x01;                          //UART2/USART2: RxD2(P4.2), TxD2(P4.3)
  26.        
  27.         S2CON = 0x50;                //8位数据,可变波特率
  28.         AUXR |= 0x04;                //定时器时钟1T模式
  29.         T2L = 0x8F;                        //设置定时初始值
  30.         T2H = 0xFD;                        //设置定时初始值
  31.         AUXR |= 0x10;                //定时器2开始计时
  32.         IE2 |= 0x01;                //使能串口2中断
  33.        
  34.         Rec_Num = 0;
  35.         B_TX2_Busy = 0;
  36. }
  37. void Uart2_SendStr( u8 *puts )                //串口数据发送函数
  38. {
  39.     for (; *puts != 0;  puts++)     //遇到停止符0结束
  40.     {
  41.         S2BUF = *puts;
  42.         B_TX2_Busy = 1;
  43.         while(B_TX2_Busy);
  44.     }       
  45. }
  46. //1.发送OPEN\r\n打开数码管,数码管显示“- - - -” 11 22 OPEN\r\n
  47. //2.发送CLOSE\r\n打开数码管,数码管全部熄灭
  48. void Usart2_RunTask(void)
  49. {
  50.         if( Rec_Num >= 6 )                //是否接收到了6位以上的数据
  51.         {
  52.                 if(( Rec_Dat[Rec_Num-1] == '\n' ) && ( Rec_Dat[Rec_Num-2] == '\r' ) )        //末尾判断
  53.                 {
  54.                         if( ( Rec_Dat[Rec_Num-6] == 'O' ) && ( Rec_Dat[Rec_Num-5] == 'P' ) && ( Rec_Dat[Rec_Num-4] == 'E' ) && ( Rec_Dat[Rec_Num-3] == 'N' )  )
  55.                         {
  56.                                 passward[0] = 16;
  57.                                 passward[1] = 16;
  58.                                 passward[2] = 16;
  59.                                 passward[3] = 16;
  60.                                 Uart2_SendStr( "打开成功!\r\n" );
  61.                         }
  62.                         else if( ( Rec_Dat[Rec_Num-7] == 'C' ) && ( Rec_Dat[Rec_Num-6] == 'L' ) && ( Rec_Dat[Rec_Num-5] == 'O' ) && ( Rec_Dat[Rec_Num-4] == 'S' ) && ( Rec_Dat[Rec_Num-3] == 'E' )  )
  63.                         {
  64.                                 passward[0] = 17;
  65.                                 passward[1] = 17;
  66.                                 passward[2] = 17;
  67.                                 passward[3] = 17;
  68.                                 Uart2_SendStr( "关闭成功!\r\n" );
  69.                         }
  70.                         Rec_Num = 0;
  71.                 }
  72.         }
  73. }
复制代码

关键程序:
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-28 11:22:02 | 显示全部楼层
STC的CDC串口助手,可以修改按钮名称哦:

截图202601281120543154.jpg
截图202601281121568345.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-28 11:45:16 | 显示全部楼层
烧录后一切正常:
截图202601281145135086.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-28 11:46:46 | 显示全部楼层
课后小练习:

那么十七课就学到这里结束!
截图202601281146178555.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-29 12:09:27 | 显示全部楼层
今天我们学校第十八集 串口高级应用

截图202601291209259851.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-29 12:11:24 | 显示全部楼层
奇偶校验:
截图202601291211055509.jpg
截图202601291211224830.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-29 12:12:26 | 显示全部楼层
为什么需要校验?
截图202601291212242886.jpg
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-4-6 03:38 , Processed in 0.147593 second(s), 80 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表