1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Đề thi lập trình nhúng giữa kì 2011

7 503 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 102,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đề thi lập trình nhúng giữa kì 2011

Trang 1

ĐỀ 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)

Không báo lỗi Báo lỗi Không báo lỗi Báo lỗi Không báo lỗi Báo lỗi

Trang 2

Câu 2 (2đ): Cho đoạn chương trình sau: 1 char x; 2 char *pchar; 3 int *pint = 0x2000; int *pint1 = pint + 1; 4 *pint = 0x1234;

5 *pint1 = 0x5678; 6 pchar = (char *)pint + 1; 7 x = *pchar; a) (1đ) Đoạn chương trình trên sẽ ảnh hưởng đến các ô nhớ nào? Điền địa chỉ và giá trị của chúng vào bảng sau và giải thích ngắn gọn Địa chỉ (theo số hex) Giá trị (theo số hex)

b) (1đ) Điền giá trị của các con trỏ và biến x vào bảng sau Giải thích ngắn gọn

Giá trị (theo số hex) pint

pint1 pchar x

Không báo lỗi Báo lỗi

Trang 3

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 A13 A14 A15

/WE /RD

A13 A14 A15

AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7

AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7

LATCH_LED1

LATCH_LED2

LATCH_LED2 LATCH_LED1

/WE

XTAL2 18

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 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8

P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14

P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28

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 C 3

E1 6 E2 4 E3 5

Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7

U7

74LS138

SW0

SW1

SW2

SW3

D0

D1

D2

D3

D4

D5

D6 17

Q6 16 D7

OE 1 LE 11

U4

74LS373

D0

D1

D2

D3

D4

D5

D6 17

Q6 16 D7

OE 1 LE 11

U8

74LS373

VCC

VCC

2 3

1

U9:A

7402

5 6

4

U9:B

7402

Trang 4

Địa chỉ của LED2 là:

Giải thích:

b) (2đ) Hoàn chỉnh module switch (switch.h và switch.c) chứa các hàm initSW và readSwitch File switch.h: #ifndef

#define

#include <reg51.h> // Khởi tạo chân port để đọc bằng cách ghi 1 vào các bộ chốt của các chân // port có giao tiếp switch void initSwitch(void); // Đọc giá trị của 4 Switch, Switch 0 có trọng số nhỏ nhất Giá trị đọc được có //tầm từ 0-15 char readSwitch(void); #endif File switch.c: #include

void initSwitch(void){

}

char readSwitch(void){

Trang 5

} 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); #endif File led.c: #include

//Khai báo mảng chứa bảng mã 7 đoạn (trong bộ nhớ code) unsigned char ………… Led7SegCode[ ] =

// Định nghĩa hàm displayLED void displayLED(char number){

Trang 6

} d) (1đ) Viết module main.c đọc giá trị từ 4 Switch và hiển thị giá trị ra 2 LED Trong module main.c có sử dụng 2 module led và switch đã viết ở trên File main.c: #include

#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

Trang 7

5 0x92

Cán bộ ra đề

Ngày đăng: 11/05/2014, 16:05

TỪ KHÓA LIÊN QUAN

w