ĐỀ KIỂM TRA GIỮA KỲ
MÔN LẬP TRÌNH NHÚNG
HK 1 – 2011/2012
Thời gian: 45 phút
(SV được sử dụng tài liệu, làm bài ngay trên đề)
(Đề thi có 6 trang)
Câu 1 (2đ):
Những đoạn chương trình nào sẽ bị báo lỗi khi biên dịch? Nếu có lỗi, giải thích ngắn gọn.
a) b)
c)
Họ và tên:…………………………………. MSSV:………………… Trang - 1 -
Giá trị (theo số hex)
pint
pint1
pchar
x
Họ và tên:…………………………………. MSSV:………………… Trang - 2 -
Không báo lỗi
Báo lỗi Câu 3 (6đ):
Cho sơ đồ như hình vẽ sau:
(Sinh viên xem chú thích ở cuối trang 6)
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
ALE
A8
A9
A10
A11
A12
XTAL1
19
ALE
30
EA
31
PSEN
29
RST
9
P0.0/AD0
39
P0.1/AD1
38
P0.2/AD2
37
P0.3/AD3
36
P0.4/AD4
35
P0.5/AD5
34
P0.6/AD6
33
P0.7/AD7
32
P1.0
1
P1.1
2
P2.0/A8
21
P2.1/A9
22
P2.2/A10
23
P2.3/A11
24
P2.4/A12
25
P2.5/A13
26
P2.6/A14
27
U1
AT89C51
PACKAGE=DIL40
VCC
X1
CRYSTAL
C1
33p
C2
33p
VCC
VCC
A
1
B
2
D0
3
Q0
2
D1
4
Q1
5
D2
7
Q2
6
D3
8
Q3
9
D4
13
Q4
12
D5
14
Q5
15
D6
17
Q6
16
D7
18
Q5
15
D6
17
Q6
16
D7
18
Q7
19
OE
1
LE
11
U8
74LS373
VCC
VCC
2
3
1
U9:A
7402
5
6
4
U9:B
7402
LED1 LED2
Họ và tên:…………………………………. MSSV:………………… Trang - 3 -
#include
void initSwitch(void){
}
char readSwitch(void){
Họ và tên:…………………………………. MSSV:………………… Trang - 4 -
}
c) (2đ) Hoàn chỉnh module LED (led.h và led.c)
File led.h:
#ifndef
#define
#include <reg51.h>
//Định nghĩa 2 macro mô tả 2 con trỏ chỉ đến địa chỉ của LED1 và LED2
#define LED1
#define LED2
// Hàm displayLED nhận tham số là 1 số từ 0-15, hiển thị giá trị tham số ra
2 //LED 7 đoạn. LED1 hiển thị hang chục, LED2 hiển thị hang đơn vị.
void displayLED(char number);
#include
void main (void)
{ }
Chú thích:
Ngõ ra Q0 của 74373 nối vào thanh a của LED
…
Ngõ ra Q6 của 74373 nối vào thanh g của LED
Digit Led 7 Seg Code
0 0xC0
1 0xF9
2 0xA4
3 0xB0
4 0x99
Họ và tên:…………………………………. MSSV:………………… Trang - 6 -
5 0x92
6 0x82