# 單晶片系統實驗期中考試 #### 1. (20%) Fill out the following blanks about questions on 8051 microcontroller. ##### a. How many I/O pins can be used concurrently? At most 32 pins, at least 8 pins. ##### b. What is the size of on-chip code memory? 4k bytes. ##### c. What is the size of on-chip data memory? 128 bytes. ##### d. Where is the on-chip general purpose byte-addressable RAM (byte address)? 0 - 7FH. ##### e. Where is the on-chip general purpose bit-addressable RAM (bit address)? 0 - 7FH. ##### f. Which port of 8051 doesn't have an internal pull up? Port 0. ##### g. How many TTL loads can each pin in port 0 drive? 8 TTLs. ##### h. How long at least should the reset (RST) pin hold? At what voltage level? 2 machine cycles (2 µs), at HIGH voltage level. #### 2. (20%) Draw an 8051 reset circuit and explain what it does? <img src="https://hackmd.io/_uploads/HJvXa6y-C.png" alt="drawing" width="50%"/> #### 3. (20%) Write an 8051 program segment to delay for 1.65second. Assuming conditional branches take 2 cycles and others take one cycle and the clock is 12MHz. ```= DELAY: MOV R0, #33 L3: MOV R1, #100 L2: MOV R2, #250 L1: DJNZ R2, L1 DJNZ R1, L2 DJNZ R0, L3 RET ``` #### 4. (20%) Write a few lines of code to implement: * p1.5 = (p1.2 + /p1.3 )* /p1.1 * p1.0 ```= MOV C, P1.3 CPL C ORL C, P1.2 MOV 0, C ; bit address 0, MOV C, P1.1 ; equal to byte address 20.0H CPL C ANL C, P1.0 ANL C, 0 MOV P1.5, C ; Quick Version MOV C, /P1.3 ORL C, P1.2 ANL C, /P1.1 ANL C, P1.0 MOV P1.5, C ``` #### 5. (20%) Draw Circuitry for I/O PORT and explain how the write, read, and read modify write work.