1、74HC595为串行输入、并行输出的逻辑芯片,调用函数MDIP_HC595(0x01);在输出端输出7个低电平及1个高电平,其间参数为无符号8位变量BYTE,请用C言语编写函数void MDIP_HC595(BYTE gLOcal_1);
答案:
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编译器一般依托仓库来频频地进行参数传递。