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