2000H为首地址的连续10个单元的内容,读入到片内RAM的40H~49H单元中。程序如下:Рxdata unsigned char buffer1[10] _at_ 0x2000;Рdata unsigned char buffer2[10] _at_ 0x40Рvoid main(void)Р{ Р?unsigned char i;Р for(i=0; i<10; i++)Р { Р buffer2[i]= buffer1[i]Р }Р}Р2.编写将单片机片内一组RAM单元清0的函数,函数内不包括这组RAM单元的起始地址和单元个数,起始地址和单元个数参数应在执行函数前由主函数赋值。Р答:参考程序如下:Р#define uchar unsigned charРvoid clear0(uchar *addr, uchar lenth)Р{ uchar i;Рfor(i=0; i<lenth;i++){ *addr=0; addr++;}Р{Рvoid main(void)Р{Рuchar addr[32] _at_ 0x30; 起始地址赋值Рuchar lenth=32; 单元个数赋值Рclear0(addr,lenth);Р while(1);Р }Р第5章思考题及习题5参考答案Р一、填空Р1. AT89S51单片机任何一个端口要想获得较大的驱动能力,要采用电平输出。Р答:低Р2.检测开关处于闭合状态还是打开状态,只需把开关一端接到I/O端口的引脚上,另一端接地,然后通过检测来实现。Р答: I/O端口引脚的电平Р3. “8”字型的LED数码管如果不包括小数点段共计段,每一段对应一个发光二极管,有和两种。Р答:7,共阳极,共阴极Р4. 对于共阴极带有小数点段的数码管,显示字符“6”(a段对应段码的最低位)的段码为Р ,对于共阳极带有小数点段的数码管,显示字符“3”的段码为。