微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机能力测试

单片机能力测试

时间:11-10 来源:互联网 点击:
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编译器通常依靠堆栈来频繁地进行参数传递。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top