單片機能力測試
答案:
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編譯器通常依靠堆棧來頻繁地進行參數傳遞。
評論