Professional Documents
Culture Documents
Báo Cáo Hệ Thúng Nhúng
Báo Cáo Hệ Thúng Nhúng
1
LỜI CẢM ƠN
Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép em được
bày tỏ lòng biết ơn đến tất cả các cá nhân và tổ chức đã tạo điều kiện
hỗ trợ, giúp đỡ em trong suốt quá trình học tập và nghiên cứu môn học
này. Trong suốt thời gian từ khi bắt đầu học tập tại trường đến nay, em
đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô và bạn
bè.
Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô ở Viện Kĩ
Thuật đã truyền đạt vốn kiến thức quý báu cho em trong suốt thời gian
học tập tại trường. Nhờ có những lời hướng dẫn, dạy bảo của Thầy
Phạm Hùng Kim Khánh nên môn học thực hành hệ thống nhúng của
nhóm em mới có thể hoàn thiện tốt đẹp.
2
MỤC LỤC
3
Bài 2.1 Viết lại đoạn mã để LEDR sáng dần từ LEDR0-LEDR7 khi SW0 on,
tắt dần từ LEDR0-LEDR7 khi SW1 on( SW0 ưu tiên hơn SW1)..........................
Hình 2.1 Thực hiện kết nối các xung clock với nhau..............................................
Hình 2.2 Nios II Processor.........................................................................................
Hình 2.3 Bộ nhớ RAM on_chip 32K.........................................................................
Hình 2.4 Pio ngõ vào 2 bit gán cho SW[1..0]............................................................
Hình 2.5 Pio ngõ ra 8 bit gán cho LEDR[7..0].........................................................
Hình 2.6 System ID Peripheral (1337)......................................................................
Hình 2.7 Sơ đồ thiết kế...............................................................................................
Hình 2.8 Đoạn mã.......................................................................................................
Bài 2.2 Viết lại đoạn mã để LEDR sáng dần từ LEDR0-LEDR7 khi SW0 on,
tắt dần từ LEDG0-LEDG7 khi SW1 on( SW0 ưu tiên hơn SW1).........................
Hình 2.9 Sơ đồ thiết kế...............................................................................................
Hình 2.10 Đoạn mã.....................................................................................................
Bài 2.3 Thiết kế phần cứng và viết phần mềm:.......................................................
Hình 2.11 Kết nối các xung clock với nhau..............................................................
Hình 2.12 Pio ngõ vào 1 bit gán cho SW[0]..............................................................
Hình 2.13 Pio ngõ vào 1 bit gán cho KEY[0]...........................................................
Hình 2.14 Pio ngõ ra 2 bit gán cho LEDR[1..0].......................................................
Hình 2.15 Sơ đồ thiết kế.............................................................................................
Hình 2.16 Đoạn mã.....................................................................................................
Bài 2.4 Thiết kế phần cứng và viết phần mềm để hiện giá trị tăng dần từ 0 –
9 trên HEX[0].............................................................................................................
Hình 2.17 Kết nối các xung clock với nhau..............................................................
Hình 2.18 Pio ngõ ra 7 bit gán cho hex0[6..0]..........................................................
Hình 2.19 Sơ đồ thiết kế.............................................................................................
Hình 2.20 Đoạn mã.....................................................................................................
Bài 2.5 Thiết kế phần cứng và viết phần mềm:.......................................................
4
Hình 2.21 Kết nối các xung clock với nhau..............................................................
Hình 2.22 Pio ngõ ra 7 bit gán cho hex0[6..0]..........................................................
Hình 2.23 Pio ngõ ra 7 bit gán cho hex1[6..0]..........................................................
Hình 2.24 Sơ đồ thiết kế.............................................................................................
Hình 2.25 Đoạn mã.....................................................................................................
BÀI 3 HỎI VÒNG VÀ NGẮT...................................................................................
Bài 3.1 Viết chương trình kiểm tra 4 công tắc KEY0-KEY3, nếu có 1 phím
được nhấn thì nội dung của các công tắc SW0-SW7, hiển thị giá trị tương
ứng trên các LED xanh..............................................................................................
Hình 3.1 Đoạn mã.......................................................................................................
Bài 3.3 Viết chương trình như bài 3.1 nhưng sử dụng ngắt...................................
Hình 3.2 Đoạn mã.......................................................................................................
BÀI 4 LCD..................................................................................................................
Bài 4.1 Nhập đoạn mã hiện giá trị trên LCD:.........................................................
Hình 4.1 Kết nối các xung clock với nhau................................................................
Hình 4.2 Pio ngõ vào 2 bit gán cho KEY[1..0].........................................................
Hình 4.3 Pio ngõ ra 1 bit gán cho lcd_on.................................................................
Hình 4.4 Altera Avalon LCD 16207..........................................................................
Hình 4.5 Bộ nhớ RAM on_chip 128K.......................................................................
Hình 4.6 System ID Peripheral (1338)......................................................................
Hình 4.7 Đoạn mã.......................................................................................................
Bài 4.2 Viết chương trình hiện chuỗi trên LCD:.....................................................
Hình 4.8 Đoạn mã.......................................................................................................
5
BÀI 1: NGÔN NGỮ MÔ TẢ PHẦN CỨNG
Bài 1.1: Viết mã VHDL cho mạch giải mã 3->8 và gán chân S0->S2: SW[0]-
SW[2], E: SW[10], D0-D7 : LEDG[0] – LEDG[7]
6
Hình 1.2 : Sơ đồ thiết kế
Bài 1.2: Viết mã VHDL cho mạch mã hóa 8->3 và gán chân D0-D7
:SW[10]-SW[17], Q0-Q2: LEDR[10] – LEDR[12]
7
Hình 1.4: Sơ đồ thiết kế
Bài 1.3 Viết mã Verilog cho mạch giải mã 3->8 và gán chân S0-S2
:SW[10]-SW[12], E: SW[0], D0-D7: LEDR[0] – LEDR[7]
8
Hình 1.6 : Sơ đồ thiết kế
Bài 1.4 Viết mã Verilog cho mạch giải mã 8->3 và gán chân D0-D7
:SW[1]-SW[8], Q0-Q2: LEDG[5]-LEDG[7]
9
Hình 1.8: Sơ đồ thiết kế
10
Hình 1.10: Mô tả trạng thái
11
RESET EN Dir Clk Signal
SW[0] SW[1] SW[2] KEY[0] LEGG[0..3]
1 1 1 0000
0 1 Nhấn 1000
0 0 Nhấn 0000
0 1 0 Nhấn 0001
0 1 0 Nhấn 0010
0 1 0 Nhấn 0100
0 1 0 Nhấn 1000
0 1 1 Nhấn 0100
0 1 1 Nhấn 0010
0 1 1 Nhấn 0001
0 1 1 Nhấn 1000
Bài 1.6 Thực hiện máy trạng thái cho mạch tuần tự với đầu vào x là luồng
bit nối tiếp và đầu ra y là 1 khi đầu vào xuất hiện chuỗi
“1101”, và 0 trong các trường hợp còn lại
12
Hình 1.12: Sơ đồ trạng thái
13
Hình 1.14: State Machine Wizard
14
Bài 2: THIẾT KẾ HỆ THỐNG NHÚNG
ĐƠN GIẢN
Bài 2.1 Viết lại đoạn mã để LEDR sáng dần từ LEDR0-LEDR7 khi SW0 on,
tắt dần từ LEDR0-LEDR7 khi SW1 on( SW0 ưu tiên hơn SW1)
- Xây dựng phần cứng
Hình 2.1: Thực hiện kết nối các xung clock với nhau
15
Hình 2.2: Nios II Processor
16
Hình 2.3: Bộ nhớ RAM on_chip 32K
17
Hình 2.4: Pio ngõ vào 2 bit gán cho SW[1..0]
18
Hình 2.5: Pio ngõ ra 8 bit gán cho LEDR[7..0]
19
Hình 2.6: System ID Peripheral (1337)
20
Hình 2.7: Sơ đồ thiết kế
21
- Xây dựng phần mềm
22
Bài 2.2 Viết lại đoạn mã để LEDR sáng dần từ LEDR0-LEDR7 khi SW0 on,
tắt dần từ LEDG0-LEDG7 khi SW1 on( SW0 ưu tiên hơn SW1)
- Xây dựng phần cứng:
23
- Xây dựng phần mềm:
24
Bài 2.3: Thiết kế phần cứng và viết phần mềm:
- Nhấn KEY[0]:
+ Nếu SW[0] on: LEDR[0] nhấp nháy, thời gian delay là 300ms
+ Nếu SW[1] off: LEDR[1] nhấp nháy, thời gian delay là 500ms
Ghi chú: Đối với KEY[0]: khi nhấn = 0, khi không nhấn = 1
25
Hình 2.12: Pio ngõ vào 1 bit gán cho SW[0]
26
Hình 2.14: Pio ngõ ra 2 bit gán cho LEDR[1..0]
27
Hình 2.15: Sơ đồ thiết kế
28
Hình 2.16: Đoạn mã
29
Bài 2.4: Thiết kế phần cứng và viết phần mềm để hiện giá trị tăng dần từ 0 –
9 trên HEX[0]
- Xây dựng phần cứng
30
Hình 2.18: Pio ngõ ra 7 bit gán cho hex0[6..0]
31
Hình 2.19: Sơ đồ thiết kế
32
Hình 2.20: Đoạn mã
33
Bài 2.5: Thiết kế phần cứng và viết phần mềm:
- Nhấn KEY[0]: hiện giá trị tăng dần từ 00 – 99 trên HEX[1], HEX[0]
- Nhấn KEY[1]: hiện giá trị giảm dần từ 99 – 00 trên HEX[1],
HEX[0]
- Xây dựng phần cứng
34
Hình 2.22: Pio ngõ ra 7 bit gán cho hex0[6..0]
35
Hình 2.23: Pio ngõ ra 7 bit gán cho hex1[6..0]
36
- Xây dựng phần mềm:
37
BÀI 3: HỎI VÒNG VÀ NGẮT
Bài 3.1: Viết chương trình kiểm tra 4 công tắc KEY0-KEY3, nếu có 1 phím
được nhấn thì nội dung của các công tắc SW0-SW7, hiển thị giá trị tương
ứng trên các LED xanh
38
Bài 3.3: Viết chương trình như bài 3.1 nhưng sử dụng ngắt
39
BÀI 4: LCD
Bài 4.1: Nhập đoạn mã hiện giá trị trên LCD:
- Xây dựng phần cứng:
40
Hình 4.2: Pio ngõ vào 2 bit gán cho KEY[1..0]
41
Hình 4.3: Pio ngõ ra 1 bit gán cho lcd_on
42
Hình 4.4: Altera Avalon LCD 16207
43
Hình 4.5: Bộ nhớ RAM on_chip 128K
44
Sơ đồ thiết kế
- Xây dựng phần mềm
45
Bài 4.2 Viết chương trình hiện chuỗi trên LCD:
- Dòng 1: counter 1=xxx
- Dòng 2: counter 2=yyy
- Nhấn KEY0: tăng giá trị xxx từ 123-456
- Nhấn KEY1: giảm giá trị yyy từ 456-123
46
Hình 4.8: Đoạn mã
47