串行口实验 编写程序利用串口调试助手通过串口给实验板发送数据(数据范围0x00-0xfe),单片机将接受到的数据加1后再发送给PC机。

编写程序利用串口调试助手通过串口给实验板发送数据(数据范围0x00-0xfe),单片机将接受到的数据加1后再发送给PC机。

在这里插入图片描述

程序:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar temp;
int main(void)
{
SCON=0x50;
PCON=0X00;
TMOD=0X20;
EA=1;
ES=1;
TH1=0XFD;
TL1=0XFD;
TR1=1;
while(1);
}
void int1(void) interrupt 4
{
if(RI)
{
RI=0;
temp=SBUF;
SBUF=temp+1;
}
if(TI)
TI=0;
}

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是基于C语言的51单片机程序,实现了按键S1控制数码管从00到99计数循环显示,按下按键S2将当前显示的数字发送串口调试助手接收缓存区的功能。 ```c #include <reg51.h> void delay(unsigned int t); // 延时函数 void display(unsigned char num); // 显示函数 void send_data(unsigned char data); // 发送数据函数 unsigned char code DispTab[] = { // 数码管显示表 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90 }; void main() { unsigned char cnt = 0; // 计数器 unsigned char key; // 按键状态 unsigned char disp_num = 0; // 当前显示的数字 while (1) { key = P3 & 0x03; // 读取按键状态 if (key == 0x01) { // 按键S1按下,计数器1 cnt++; if (cnt >= 100) cnt = 0; } else if (key == 0x02) { // 按键S2按下,发送当前数字 send_data(disp_num); while (P3 & 0x02); // 等待按键释放 } display(disp_num); // 显示当前数字 delay(1000); // 延时1s disp_num = cnt % 100; // 计算当前显示的数字 } } void delay(unsigned int t) { unsigned int i, j; for (i = t; i > 0; i--) for (j = 110; j > 0; j--); } void display(unsigned char num) { unsigned char high, low; high = num / 10; // 计算高位数字 low = num % 10; // 计算低位数字 P2 = 0xFF; // 关闭所有数码管 P0 = DispTab[high]; // 显示高位数字 P2 = 0xFE; // 打开第1个数码管,显示高位数字 delay(1); // 延时一段时间 P2 = 0xFF; // 关闭所有数码管 P0 = DispTab[low]; // 显示低位数字 P2 = 0xFD; // 打开第2个数码管,显示低位数字 delay(1); // 延时一段时间 } void send_data(unsigned char data) { SBUF = data; // 发送数据串口调试助手接收缓存区 while (!TI); // 等待发送完成 TI = 0; // 发送完成,清除发送完成标志 } ``` 在程序中,通过P3口读取按键状态,当按键S1按下时,计数器1,当计数器达到100时,重新从0开始计数。当按键S2按下时,将当前显示的数字发送串口调试助手接收缓存区,等待发送完成后,清除发送完成标志。在显示函数中,先计算出当前数字的高位和低位数字,然后先显示高位数字,再显示低位数字,从而实现了数码管的显示

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值