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溢出率)