#include<reg51.h> unsigned char code Tab[]={"wlhebqy"}; void send(unsigned char dat) //发送字符串函数 { SBUF=dat; while(TI==0); TI=0; } void delay (void) { unsigned int m; for (m=0;m<=5000;m++) ; } void main() { unsigned char i; TMOD=0x20; //设定定时器1为模式2(8位自动重载) PCON=0x00; //设波特率为9600 SCON=0x40; //设置串口为模式1 TH1=0xfd; //给T1高八位赋值 TL1=0xfd; //给T1低八位赋值 TR1=1; //启动定时器1 while(1) { for(i=0;i<8;i++) { send(Tab[i]); delay(); } } }根据以上代码画一个流程图
时间: 2024-04-28 18:25:17 浏览: 109
以下是根据代码所画的流程图:
![流程图](https://i.imgur.com/R7vL3v7.png)
该代码主要是通过串口发送字符数组中的内容,同时使用定时器1来控制延时。在主函数中,通过for循环遍历字符数组中的每个元素,然后调用send()函数发送数据。在send()函数中,将发送数据存储到SBUF寄存器中,然后通过TI(发送中断标志位)来判断是否发送完成,完成后将TI置为0。在delay()函数中,通过循环来实现延时操作。
相关问题
#include<REG52.H> #include<stdio.h> #include <intrins.h> sbit Trig=P2^0; sbit Echo=P2^1;超声模块测距代码补全
`#include<REG52.H>`是一段头文件的引用,代表使用了基于Intel 8051的单片机开发环境。`<stdio.h>`是标准输入输出头文件的引用。`<intrins.h>`是用于特殊函数的头文件引用。
以下是超声模块测距的代码补全:
```
#include<REG52.H>
#include<stdio.h>
#include <intrins.h>
sbit Trig=P2^0;
sbit Echo=P2^1;
void delay(unsigned int us) //延时函数
{
while(us--);
}
unsigned char read_distance() //读取距离函数
{
unsigned char distance;
Trig = 0; //初始化
delay(2);
Trig = 1; //触发测量
delay(10);
Trig = 0; //停止测量
while(!Echo); //等待Echo为高电平
TH0 = 0;
TL0 = 0; //清零计时器
while(Echo); //等待Echo为低电平
distance = (unsigned char)(TH0*256+TL0)/58.0; //计算距离
return distance;
}
void main()
{
unsigned char distance;
TMOD |= 0x01; //设置为定时器0,工作方式1
while(1)
{
distance = read_distance(); //读取距离
printf("The distance is %d cm\n",distance); //打印距离
delay(500); //延时500ms
}
}
```
#include<REGX51.H> #include<intrins.h> #define uchar unsigned char #define uint unsigned int什么意思
这段代码是一个基于51单片机的C语言程序,其中:
- `#include<REGX51.H>` 是包含了51单片机的头文件,可以使用其中定义的寄存器及功能;
- `#include<intrins.h>` 是包含了汇编语言的头文件,可以使用其中定义的内嵌汇编函数;
- `#define uchar unsigned char` 定义了一个名为`uchar`的宏,表示无符号字符类型;
- `#define uint unsigned int` 定义了一个名为`uint`的宏,表示无符号整数类型。
阅读全文