民國113年 第3梯次 數位電子甲級 學科
第40題
ATmega328P 程式碼如下,下列敘述何者正確?
題目
ATmega328P 程式碼如下,下列敘述何者正確?
- (1) 設定Port B 的pin 4,5,6,7 為輸入腳位,且 Port B 的pin 6,7 為PULL_UP
- (2) 將r16 的值寫入PINB
- (3) 設定Port B 的pin 4,5,6,7 為輸入腳位且 Port B 的pin 4,5 設定為PULL_UP
- (4) 設定Port B 的pin 0,1,2,3 為輸入腳位
官方答案
(1) 設定Port B 的pin 4,5,6,7 為輸入腳位,且 Port B 的pin 6,7 為PULL_UP
解析
以常見程式碼為例:LDI R16,0x0F寫入DDRB,0x0F=0000 1111,位元1表輸出、0表輸入,故pin0~3為輸出、pin4~7為輸入。續LDI R16,0xC0寫入PORTB,0xC0=1100 0000,對輸入腳位寫1即啟用內部上拉PULL_UP,故pin6、7為PULL_UP。因此設定pin4~7輸入且pin6、7上拉,選項1正確。選項2將資料寫入PINB有誤,PINB為輸入腳位狀態暫存器,唯讀不可寫入。選項3稱pin4、5上拉,與0xC0不符。選項4稱pin0~3輸入,與DDRB=0x0F相反。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。