單片機(jī)能力測(cè)試
答案:
sbit SER=P1^0; //595串行數(shù)據(jù)輸入
sbit SRCLK=P1^1; //595時(shí)鐘出入
void MDIP_HC595(BYTE gLOcal_1)
{
BYTE i;
for(i=0;i<8;i++)
SRCLK=0; //時(shí)鐘為低
SER=gLOcal_1&0x80; //寫入一位串行數(shù)據(jù)
gLOcal_1=gLOcal_1<<1;//數(shù)據(jù)左移一位
SRCLK=1; //時(shí)鐘為高
}
2、AT89C51為8051系列中比較通用的1個(gè)芯片,如果用C語言編寫程序,子函數(shù)可以被調(diào)用最大多少層,為什么?
答案:對(duì)于AT89C51來說一般控制在10層內(nèi)。因?yàn)閷?duì)函數(shù)的嵌套調(diào)用層次的限制是由于其片內(nèi)RAM中缺少大型堆棧空間所致。在AT89C51內(nèi)部RAM共有128B,在這個(gè)區(qū)域中的任何子區(qū)域都可以用作堆棧區(qū)。
3、請(qǐng)說明子函數(shù)被調(diào)用時(shí)單片機(jī)是如何動(dòng)作的。
答案:每次子函數(shù)被調(diào)用時(shí)單片機(jī)把2字節(jié)壓入內(nèi)部堆棧,C編譯器通常依靠堆棧來頻繁地進(jìn)行參數(shù)傳遞。
評(píng)論