1.实验内容
在0x00-0x7E 中查出有几个字节是零,统计“00” 的个数存入0x7F单元。
2.源码:
#include<reg52.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
void main()
{
uint count;
uchar idata *p;
count = 0;
p = 0x30;
SCON=0x52; //工作在方式二,允许接受
TMOD=0X20; //定时器1工作在方式二
TH1=0xf3; //根据串口工作方式二和定时器T1的溢出率可以计算得到初值
TR1=1; //启动定时计数器工作
for(;p<= 0x7E;p++)
{
if(*p == 0)
count++;
}
*p = count;
printf("%d",count);
printf("aaaaaaaaaaa"); //测试串口是否正常输出
}
3.查看方式
调试方式下打开串口的输出:view----->serial windows----->uART-#1
4.如果要查看相应内容的值的话
调试方式下打开串口的输出:view----->memory windows----->memory1
输入:i:0x00
5.波特率和溢出率和初值之间的关系
工作在方式三的时候:
T1 溢出率 = fosc /{12×[256 -(TH1)]}
方式3的波特率 =(2SMOD/32)·(T1溢出率)