You are on page 1of 5

ĐẠI HỌC QUỐC GIA TP.

HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ
---------------o0o---------------

BÁO CÁO HOMWORK 1

The following programming problems are for microcontroller


LM4F120 / TM4C123
2. Write a program to count a 8bit number and display on 8
single LEDs at port PB[7:0].

SVTH: NGUYỄN XUÂN TRƯỜNG


MSSV: 2115150

TP. HỒ CHÍ MINH, THÁNG NĂM 20


Tạo folder GPIO chứa các Header file GPIO.h và Source file GPIO.c để dễ dàng quản
lý.
Tạo Header file: include.h chứa tất cả các thư viện cần dùng, ở đây em include dư thừa
so với project để tận dụng cho các Project sau khỏi #include lại.

Trong Source file: GPIO.c em thực hiện viết hàm Cấu hình GPIO cho PortB:

- Đầu tiên là cung cấp xung CLK cho PortB hoạt động

- Tiếp theo cấu hình PB0 tới PB7 với chức năng OutPut

- Cho PORTB ban đầu mức logic 0.

Khai báo 1 bến toàn cục static int cnt = 0 ban đầu cho bằng 0 và khai báo hàm
Config_PORTB() kiểu extern để giao tiếp với các module bên ngoài ở file GPIO.h
Tiếp theo em viết hàm LEDsg(): đọc biến cnt rồi viết giá trị của biến cnt lên các chân
GPIO của Port B. Điều này làm cho các LED được kết nối với các chân GPIO này
sáng theo giá trị của cnt. Vì đề bài đọc 1 số 8bit nên ta giới hạn cnt ở 255. Biến cnt
được tăng lên mỗi lần hàm được gọi.

Thực hiện khai báo các hàm ở Source file GPIO.c ở Header file GPIO.h bằng extern để
báo cho chương trình biết các hàm này là hàm ngoại vi không phải là hàm nội bộ, có
thể giao tiếp với các module bên ngoài.
Ở file main.c ta thực hiện #include tới Header file include.h để liên kết với các thư
viện.
- Thực hiện cấp xung cho hệ thống, ở đây chọn 40MHz
- Khai báo hàm Config_PORTB()
- Trong While(1) ta gọi hàm LEDsg(), liên tục đọc giá trị cnt rồi xuất ra PORTB
rồi tăng cnt tới khi cnt=255 rồi quay lại về 0.

You might also like