单片机能力测试
答案:
sbit SER=P1^0; //595串行数据输入
sbit SRCLK=P1^1; //595时钟出入
void MDIP_HC595(BYTE gLOcal_1)
{
BYTE i;
for(i=0;i<8;i++)
SRCLK=0; //时钟为低
SER=gLOcal_1&0x80; //写入一位串行数据
gLOcal_1=gLOcal_1<<1;//数据左移一位
SRCLK=1; //时钟为高
}
2、AT89C51为8051系列中比较通用的1个芯片,如果用C语言编写程序,子函数可以被调用最大多少层,为什么?
答案:对于AT89C51来说一般控制在10层内。因为对函数的嵌套调用层次的限制是由于其片内RAM中缺少大型堆栈空间所致。在AT89C51内部RAM共有128B,在这个区域中的任何子区域都可以用作堆栈区。
3、请说明子函数被调用时单片机是如何动作的。
答案:每次子函数被调用时单片机把2字节压入内部堆栈,C编译器通常依靠堆栈来频繁地进行参数传递。
评论