SỞ GIÁO DỤC ĐÀO TẠO KHÁNH HÒA
Trường THPT Chuyên Lê Quý Đôn
Địa chỉ: 67 Yersin, Nha Trang.
www.lqdon.khanhhoa.edu.vn
GIẢI MÃ NGUYÊN LÝ HOẠT
ĐỘNG CÔNG NGHỆ KỸ THUẬT SỐ
Lĩnh vực dự thi: 06 – Khoa Học Máy Tính
Nha Trang, tháng 1 năm 2014
Các tác giả:
Hoàng Trung Hiếu
Nguyễn Phạm Xuân Thắng
Đỗ Thanh Phong
Cuộc thi khoa học kĩ thuật cấp quốc gia
dành cho học sinh trung học Năm học 2013-2014
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
1
Lời cảm ơn
Chúng em gửi lời cảm ơn chân thành đến các Thầy (cô) giáo trường Trung Học
Phổ Thông Chuyên Lê Qúy Đôn – Khánh Hòa, Sở Giáo Dục và Đào
Tạo Khánh Hòa, Trung tâm Kỹ Thuật – Hướng Nghiệp Nha Trang, thầy
Trần Đại Hải, thầy Huỳnh Quang Đệ, thầy Nguyễn Như Nguyện, thầy
Nguyễn Xuân Thu cùng các bạn cùng lớp, gia đình, nhà trường đã tạo điều kiện,
giúp đỡ hỗ trợ chúng em hoàn thành sản phẩm này.
Hoàng Trung Hiếu
Nguyễn Phạm Xuân Thắng
Đỗ Thanh Phong
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
2
MỤC LỤC
LỜI CẢM ƠN…………………………… Trang 01
A. TÓM TẮT NỘI DUNG DỰ ÁN _________________________________ Trang 04
B. LÝ DO NGHIÊN CỨU – Ý TƯỞNG NGHIÊN CỨU________________ Trang 05
1. Lý do nghiên cứu…………………………………………………….… Trang 06
2. Ý tưởng nghiên cứu………………………………………… Trang 06
C. Ý TƯỞNG THỰC HIỆN – CÔNG VIỆC THỰC HIỆN
CƠ SỞ LÝ THUYẾT__________________________________________ Trang 08
1. Ý tưởng thực hiện – công việc thực hiện .…………………………… Trang 08
2. Cơ sở lý thuyết ……………………………………………………… Trang 09
a. Giới thiệu về hệ đếm thập phân và hệ đếm nhị phân ………… Trang 09
b. Chuyển đổi giữa các hệ đếm …………………………………… Trang 09
c. Các phép toán logic …………………………………………… Trang 09
d. Các phép toán số học …………………………… …… … Trang 09
D. SƠ ĐỒ TỔNG THỂ DỰ ÁN ____________________________________ Trang 12
E. GIỚI THIỆU PHẦN CỨNG CỦA DỰ ÁN ________________________ Trang 13
1. Giới thệu các linh kiện ……………………………… ……………… Trang 13
a. Về chíp vi xử lý AT 89C52 / AT 89C51 ….… …………. Trang 13
b. Các linh kiện khác …….….…….……….………….……… Trang 13
2. Phần cứng của các khối …………………………………………… … Trang 15
a. Khối xử lý …………… ……………………………………… Trang 15
b. Khối nhập liệu ……….….………………………………… Trang 16
c. Khối hiển thị … ……….…….……….…………………… Trang 17
d. Khối giải mã LED 7 đoạn ………… ….….……………… Trang 17
e. Khối nguồn ……………….……… ……………………… Trang 18
F. GIỚI THIỆU PHẦN MỀM CỦA DỰ ÁN _________________________ Trang 19
I. PHẦN MỀM HỖ TRỢ LẬP TRÌNH VI XỬ LÝ .…….…… ….… Trang 19
1. Keil Vision 4 ……………….…….…… ….….…… …….…. Trang 19
a. Giới thiệu ………………………… ….….….……………. Trang 19
b. Môi trường làm việc .…… ……….……….……….…… Trang 19
2. Little Programer Version Gold …………….….….….…………. Trang 20
II. PHẦN MỀM CỦA DỰ ÁN ……………………….…….… …… Trang 21
1. Tổng quan ……………………………………… …………. Trang 21
a. Phần mềm trên Khối Xử Lý …………… ……… …… Trang 21
b. Phần mềm trên Khối Giải mã LED 7 đoạn ……….……… Trang 22
2. Cài đặt ………………………………………………………… Trang 22
a. Kỹ thuật quét KEYPAD ………………………………… Trang 22
b. Thực hiện đọc số (đọc INPUT) ……………………… … Trang 25
c. Thực hiên xử lý ……………………………… … …… Trang 26
d. Kỹ thuật quét ma trận LED 3x8 ……… …… …… Trang 27
e. Kỹ thuật quét LED 7 đoạn ………… …… ……………. Trang 28
G. LỢI ÍCH ĐỀ TÀI MANG LẠI _________________________________ Trang 29
H. KẾT QUẢ ĐẠT ĐƯỢC – PHÁT TRIỂN SẢN PHẨM _____________ Trang 30
I. KẾT LUẬN_________________________________________________ Trang 31
TƯ LIỆU THAM KHẢO______________________________________ Trang 32
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
3
DANH MỤC HÌNH ẢNH
Hình 1 : Blaise Pascal ….……………………………………………… Trang 05
Hình 2a: Sơ đồ chân IC AT89C52………………………………………… Trang 13
Hình 2b: Hình dạng IC AT89C52………………………………………… Trang 13
Hình 3 : Giới thiệu LED 7 đoạn.… ……………………………….……… Trang 14
Hình 4 : Trasistor C828………….… …………………………………… Trang 14
Hình 5 : Giới thiệu IC 7805………….….…………………………………. Trang 14
Hình 6 : Sơ đồ mạch điện khối xử lý………… …………………….…… Trang 15
Hình 7 : Sơ đồ mạch điện Keypad…….……….………………………… Trang 16
Hình 8 : Sơ đồ mạch điện khối hiển thị số nhị phận…….……….……… Trang 17
Hình 9a: Kết nối LED 7 đoạn vs các PORT……………………………… Trang 18
Hình 9b: Sơ đồ ma trận LED 7 đoạn……………………………………… Trang 18
Hình 10: Sơ đồ khối nguồn…………………………………………………. Trang 18
Hình 11a: Giới thiệu phần mềm Keil……………………………………… Trang 19
Hình 11b: Môi trường lập trình Keil vesion 4……………………………. Trang 19
Hình 11c: Môi trường giả lập để chạy thử của chương trình trong Keil……. Trang 20
Hình 12 : Giao diện của Litte Programmer Version Gold
và hình ảnh mạch nạp…………… … …… ………………… Trang 21
Hình 13 : Thuật toán quét KEYPAD……….….………………… ….…… Trang 23
Hình 14 : Mô tả kĩ thuật quét ma trận LED…………….….………………. Trang 27
Hình 15 : Sơ đồ LED 7 đoạn……….……….………………………… … Trang 28
Hình 16 : Mục đích của sản phẩm………….…….………………………… Trang 29
Hình 17 : Kế hoạch phát triển sản phẩm………….……….……………… Trang 30
Hình 18 : Giả lập trên mô hình mô phỏng…… ….…….…….…… …… Trang 31
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
4
BẢN THUYẾT MINH GIẢI PHÁP DỰ THI
Sản phẩm: “GIẢI MÃ NGUYÊN LÝ HOẠT ĐỘNG CÔNG NGHỆ SỐ”
**
A. TÓM TẮT NỘI DUNG DỰ ÁN:
Sự bùng nổ của “thế giới số” làm con người đã quá quen thuộc với các thiết bị công
nghệ như Iphone, Ipad, Ipod, Itouch….và vô vàn những thiết bị điện tử khác mà ai cũng dễ
dàng bắt gặp từ nhà, ra ngõ, đến trường Nhưng đã có mấy ai tự hỏi: làm thế nào những
thiết bị đó lại có thể làm việc thông minh đến vậy? Khám phá được bí ẩn đó có nghĩa là đã
mở ra khả năng sáng tạo không giới hạn cho những ai muốn tìm hiểu về nó.
Mô hình “Giải mã bí ẩn công nghệ số” sẽ mô phỏng chính xác hoạt động của một chiếc
máy tính cầm tay thông thường để minh chứng rằng chỉ bằng cách bố trí các công tắc điện
“bật/tắt” đơn thuần, con người có thể làm thay đổi thế giới! Đây chính là nền tảng của
công nghệ kỹ thuật số.
Mô hình gồm 2 phần:
- Phần cứng: là các vi mạch điện từ (công nghệ Digital), board mạch được lắp ráp có
chức năng nhập số liệu (bàn phím), xử lý phép tính (mạch xử lý trung tâm) và hiển
thị kết quả tính toán trên hệ thống các đèn LED (mạch hiển thị), tất cả các mạch
điện đều do nhóm tác giả tham khảo, thiết kế và thực hiện.
- Phần mềm: là phần chương trình được lập trình trên máy vi tính để nạp vào chíp vi
xử lý. Phần chương trình này sẽ điều khiển mọi hoạt động của mô hình. Các thao
tác nhập xuất – xử lý sẽ được thực hiện dưới các thao tác bật – tắt bit đơn giản, mô
phỏng chính xác hoạt động của máy tính điện tử.
Mô hình cho phép thực hiện mô phỏng các phép tính cộng (+), trừ (-), nhân (x), chia
lấy nguyên ([ ]) các số nguyên dương trong phạm vi 225 một cách chính xác. Kết quả và
quá trình tính toán được hiển thị mô phỏng rất trực quan, sinh động dưới dạng số nhị phân
và số thập phân.
Điều phát hiện lý thú nhất của mô hình này là đã khám phá được nguyên lý hoạt động
bật – tắt đơn giản chính là nền tảng của hệ thống nhị phân – cốt lõi của công nghệ kỹ thuật
số hiện đại.
Không có giá trị hôm nay.
Bạn không thể sống lại ngày hôm qua,
và ngày mai thì vẫn nằm ngoài tầm với của bạn.
Johann Wolfgang Von Goethe
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
5
B. LÝ DO NGHIÊN CỨU, Ý TƯỞNG NGHIÊN CỨU
1. Lý do nghiên cứu
Sự phát triển không ngừng của khoa học kĩ thuật làm xã hội loài người đang ngày
càng thay đổi. Những thành quả của công nghệ đã trở nên quá quen thuộc trong cuộc sống
đời thường. Từ nhà, ra ngõ, cho đến khi tới trường,… đâu đâu ta cũng dễ dàng bắt gặp sự
hiện diện của các thiết bị điện tử, chẳng hạn: Iphone, Ipad, Ipod, TV, máy chụp ảnh, máy
photo kỹ thuật số…
Hơn thế nữa, những thiết bị này được đổi mới thường xuyên, liên tục. Các thế hệ
sản phẩm sau không những đa dạng về chủng loại, nhỏ gọn về kích thước, mà còn vượt
trội cả về tốc độ xử lý, tính năng ứng dụng và tiết kiệm năng lượng.
Sự đầy đủ và tiện dụng đó đã và đang thay đổi cả thói quen “suy nghĩ” và làm việc
của con người… Có mấy ai cầm trên tay chiếc Iphone 5 và tự hỏi làm thế nào nó lại
“thông minh” như thế? Tại sao phép tính 2
10
=1024,… lại được thực hiện một cách chính
xác, đơn giản và nhanh gọn đến vậy? Điều gì đang xảy ra bên trong các thiết bị đó? Chính
sự quên lãng này đã và đang vô tình khiến cho con người mất dần đi tính sáng tạo, không
làm chủ được công nghệ.
Với mong muốn cháy bỏng đi tìm “nguồn gốc”, “nguyên lý” tạo ra sự “kỳ diệu”
đó, nhóm học sinh lớp 11 chúng em đã quyết định tiến hành xây dựng một mô hình mô
phỏng lại gần chính xác hoạt động của một chiếc máy tính điện tử - một thiết bị rất gần gũi
với mọi người, là cơ sở cho các thiết bị điện – điện tử, nhằm khám phá sự bí ẩn về khả
năng tính toán siêu việt của nó…
Bằng nghiên cứu này, chúng em đã giải mã được sự bí ẩn của công nghệ số. Kiến
thức đó sẽ giúp cho tất cả mọi người có cái nhìn toàn diện nhất, hiểu được và ứng dụng
những cơ chế, kiến thức nền tảng, công nghệ vượt trội của vi xử lý trong đời sống, ứng
dụng những kiến thức kĩ năng đó vào việc xây dựng các sản phẩm khác có giá trị phục vụ
con người ngày một cao hơn, hữu dụng hơn.
2. Ý tưởng nghiên cứu
Năm 1642, nhà toán học, vật lý, nhà phát minh,
tác giả và triết gia Cơ Đốc người Pháp Blaise Pascal, sau
hơn 3 năm nghiên cứu, đã phát minh ra chiếc máy tính cơ
học đầu tiên trên Thế Giới, đặt nền móng đầu tiên cho
nền công nghiệp máy tính.
Phải đến gần 3 thế kỉ sau, vào năm 1946, máy
tính điện tử đầu tiên của Thế Giới ENIAC (Mỹ) ra đời,
đánh dấu sự bùng nổ của hàng loạt những cải tiến mới và
sự ra đời của hàng loạt loại máy tính, thiết bị mới. Chính
những phát minh vĩ đại này đã làm thay đổi bộ mặt của
xã hội loại người, là nền tảng của văn minh nhân loại
trong thế kỉ XXI.
Chúng ta biết rằng bộ não con người có khả năng nhận diện được các kí tự, hiểu
được ý nghĩa của các con số, nhận biết được màu sắc, âm thanh hình ảnh (đây chính là các
đơn vị thông tin), thực hiện các phép toán, soạn thảo các văn bản, pha trộn màu sắc, âm
Hình 1: Blaise Pascal
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
6
thanh… nhưng để máy móc hiểu được những thông tin đó thì quả là khó hiểu! Ta sẽ cùng
tìm hiểu xem máy tính làm thế nào để hiểu và sử dụng được những thông tin đó.
Hãy quan sát thí nghiệm sau đây: “Máy tính điều khiển điều hòa nhiệt độ”.
Để điều hòa nhiệt độ, máy tính có thể cho dòng điện 10 ampere chạy qua một máy
điều hòa nhiệt độ. Để tăng nhiệt độ, máy tính sẽ đóng điện trong 10 phút rồi ngắt điện 1
phút. Muốn giảm nhiệt độ thì đóng điện 9 phút rồi ngắt 1 phút. Và tương tự như vậy, bằng
cách tắt mở nguồn điện một cách thông minh máy tính có thể tăng/ giảm nhiệt độ theo ý
muốn. Hai mức đóng hay ngắt điện gọi là hai mức luận lý 0 và 1. Đây là cơ sở lý thuyết
của kỹ thuật số.
Tương tự như trên, tiếng chim hót trong thiên nhiên sẽ được máy tính phân tích rời
rạc theo thời gian. Muốn mô phỏng trung thực, máy sẽ chia chuỗi tín hiệu tiếng chim thành
từng mẩu nhỏ, càng nhiều càng tốt theo thời gian. Mỗi mẩu như thế được đặc trưng bằng
một chuỗi các số 0 hay 1 để cho biết độ lớn nhỏ, âm sắc trầm bỗng như thế nào. Trong một
khoảnh khắc, chia càng nhiều mẩu thì chất lượng âm thanh tái tạo lại càng cao.
Với hình ảnh cũng vậy, máy tính cũng sẽ chia nhỏ hình ảnh thành từng điểm ảnh
bằng kỹ thuật quét ảnh theo từng dòng, từng cột. Mỗi điểm ảnh chứa những thông tin về
màu sắc, độ đậm nhạt. Những thông tin này được đặc trưng bằng một dãy các số 0 hay 1
Phim ảnh cử động được là nhờ tập hợp của nhiều ảnh đơn chiếc xuất hiện liên tục.
Khi đã mô tả được hiện tượng tự nhiên bằng một chuỗi theo thời gian của hai mức
luận lý 0 và 1, các nhà khoa học bắt đầu sáng chế ra vô số ứng dụng hữu ích làm cho kỹ
thuật số trở thành ưu việt.
Trong máy tính, mọi thông tin được chuyển thành thông tin dưới dạng đơn giản
nhất - một chuỗi số gồm hai kí tự 0 và 1, mà ta quen gọi là hệ đếm nhị phân (các kí tự này
được gọi là các bit binary digit - số ký nhị phân). Hai ký tự 0 và 1 có thể hiểu đơn giản là
trạng thái “có” hoặc “không”, trạng thái “tắt” hoặc “mở” của một công tắc điện vậy. Ta xét
một ví dụ sau:
Ta đang thực hiện một thao tác đánh văn bản: ta đánh số 5, máy sẽ hiểu là 0000
0101 ta đánh chữ “a” máy tính sẽ không hiểu được chữ “a” đó mà nó sẽ hiểu là 0110 0001.
Ta muốn các chữ ta đánh có màu đỏ, máy sẽ không hiểu được “màu đỏ” mà “màu đỏ” ấy
cũng sẽ được chuyển thành dạng các bit 0 và 1 như những kí tự ở trên vậy.
Mọi thông tin mà con người yêu cầu máy tính xử lý đều được thực hiện dựa trên
các phép toán trên hệ đếm nhị phân (đại số Bool - Boolean algebra). Tại sao máy tính lại
lựa chọn con đường như vậy?
Những ưu điểm về khả năng tính toán “ưu việt” đơn giản, dễ dàng thực hiện về mặt
vật lý, nhanh chóng về mặt thời gian. Ví dụ như ta muốn “dạy” cho máy tính thực hiện
phép toán cộng. Bằng hệ đếm nhị phân, ta chỉ cần dạy nó 1+0=1, 0+0=0, 1+1=0 (nhớ 1).
Với 3 phép toán đó kết hợp với phép nhớ, máy tính hoàn toàn có khả năng thực hiện phép
cộng một cách thuần thục nhanh chóng đơn giản và vô cùng chính xác.
Bên cạnh đó, với việc chỉ sử dụng các bit 0, bit 1 sẽ giúp cho máy tính dễ dàng ghi
nhớ, thay vì phải ghi nhớ âm thanh, hình ảnh phức tạp bằng nhiều mức trong các băng từ
tính như băng video, băng cassette… (công nghệ analog cũ) ngày nay máy tính chỉ việc
ghi nhớ các chuỗi kí tự 0, 1 đơn giản.
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
7
Trong kỉ nguyên số, đặt ra yêu cầu đòi hỏi các thông tin cần phải được truyền đi
nhanh chóng, dễ dàng với độ chính xác cao. Công nghệ số đã đáp ứng được yêu cầu này.
Thay vì phải xử lý tín hiệu ở nhiều mức (công nghệ analog), gây méo mó, nghẹt tiếng, sai
màu… bây giờ chỉ còn truyền hai mức 0 và 1 dễ truyền, hình ảnh âm thanh được giữ
nguyên gốc.
Bằng tính ưu việt, sự đơn giản và tiện dụng hệ nhị phân – cơ sở của công nghệ số
hiện đại đã trở thành một phần kiến tạo vô cùng căn bản trong các máy tính hiện tại và là
nền tảng cho mọi hoạt động của vi xử lý cũng như của các thiết bị công nghệ hiện đại hiện
nay đang được sử dụng. Có thể nói “Hệ nhị phân” chính là con đường duy nhất của máy
tính điện tử.
Những nguyên lý cơ bản nêu trên chính là nền tảng hoạt động của một chiếc máy
tính điện tử căn bản. Các bit 0 – bit 1 đi suốt trên con đường phát triển của chiếc máy tính
điện tử. Xuất hiện trong những chiếc máy tính điện tử đầu tiên dưới dạng các bóng đèn
chân không (transistor) to, bự và cồng kềnh. Sau đó, cùng với sự phát triển của công nghệ
vi xử lý, các bit 0 – bit 1 này không còn hoạt động trên những chiếc bóng đèn chân không
to bự cồng kềnh nữa, mà ngày nay nó hoạt động trong những con chíp máy tính (IC) –
được sản xuất vô cùng công phu chi tiết. Những con chíp này ngày càng nhỏ gọn, tiêu tốn
ít năng lượng v.v… khả năng tính toán được tăng cao kể về tốc độ lẫn độ chính xác. Tuy
nhiên nguyên lý của nó vẫn rất cơ bản, không có nhiều thay đổi như những nguyên lý nền
tảng ban đầu.
Tuy nhiên, một vấn đề đặt ra là với hệ nhị phân máy tính có thể xử dụng một cách
“thành thạo” nhưng điều đó lại gây ra sự khó khăn cho con người trong việc giao tiếp và
thực hiện các thao tác. Làm thế nào để chuyển ngược thông tin từ hệ đếm nhị phân - các
thông tin dưới dạng các ký tự 0, 1 thành những ký tự số trong hệ thống thập phân, hình
ảnh, âm thanh, màu sắc,…?
Sau khi xử lý những thông tin xong, từ những thông tin dưới dạng các bit 0 và 1,
máy tính sẽ thực hiện một bước gọi nôm na là “phiên dịch” chuyển các thông tin dưới
dạng các ký tự 0 và 1 đó thành những ký tự trong bảng chữ cái Latin, các con số trong hệ
10 thông dụng, màu sắc, âm thanh, hình ảnh mà con người có thể thấy được, nghe được
thông qua các thiết bị như màn hình, loa, máy in,
Đây là nhiệm vụ của các kỹ sư lập trình máy tính và nhóm nghiên cứu đã thành
công trong việc lập một phần mềm nhỏ để “phiên dịch” ngôn ngữ từ nhị phân sang thập
phân cho mô hình của mình.
Nhằm mục đích để mọi người có thể tiếp cận với hệ nhị phân một cách trực quan,
sinh động, nhóm nghiên cứu đã xây dựng một mô hình mô phỏng một cách gần chính xác
nhất hoạt động của một chiếc máy tính – từ bước nhập liệu – xử lý – đến hiển thị kết quả.
Các bóng đèn led “tắt” - “mở” tượng trưng cho bit 1, bit 0. Từ việc quan sát những gì mô
hình mô phỏng được, người xem hoàn toàn có thể dễ dàng hiểu được hoạt động của một
chiếc máy tính điện tử - hiểu được nguyên lý hoạt động của công nghệ số.
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
8
C. Ý TƯỞNG THỰC HIỆN – CÔNG VIỆC THỰC HIỆN – CƠ SỞ LÝ THUYẾT
1. Ý tưởng thực hiện – công việc thực hiện:
Sản phẩm được xây dựng trên cả hai phương diện phần cứng – phần mềm, nó sẽ là
cơ sở để giúp cho các bạn học sinh cũng như những người có đam mê về công nghệ, đặc
biệt trong lĩnh vực vi xử lý tiếp cận một cách trực quan, sinh động và nắm được những tư
tưởng cơ bản để hình thành nên một sản phẩm.
Trong thời gian nghiên cứu và thực hiện đề tài, nhóm tác giả cần phải tìm hiểu
nghiên cứu một số vấn đề cơ bản sau đây:
Cơ sở lý thuyết: bao gồm những kiến thức cơ bản về máy tính – cách tính toán dựa trên
hai hệ đếm.
1. Về cơ chế hoạt động của thiết bị vi tính – điện tử, về cách tính toán chuyển đổi giữa
hai hệ đếm cơ bản: hệ đếm cơ số 10 (hệ đếm thập phân), được sử dụng rộng rãi
trong cuộc sống và hệ đếm cơ số 2 (hệ đếm nhị phân), được máy tính sử dụng để
tính toán.
2. Về các phép toán số học cơ bản trên hệ đếm nhị phân như phép: cộng (+), trừ (-),
nhân (*), chia lấy phần nguyên (div).
Công cụ để thực hiện sản phẩm: để thực hiện được sản phẩm cần xây dựng trên cả hai
mặt: “phần cứng” và “phần mềm”
+ Phần cứng: Bao gồm việc lắp đặt các thiết bị, linh kiện điện tử, thực hiện các chức năng
cơ bản của máy tính điện tử. Cụ thể:
3. Kiến thức tổng quát về đặc tính của vi xử lý, đặc biệt là vi xử lý AT 89C51 (của
hãng ATMEL).
4. Lắp ráp mạch điện khối xử lý với trung tâm là chíp vi xử lý AT 89C51 làm “đầu
não” cho mọi hoạt động của sản phẩm (sẽ được trình bày chi tiết ở phần sau).
5. Lắp ráp mạch điện khối nhập liệu bao gồm một bàn phím được tổ chức gồm 4 hàng
và 4 cột (gọi là KEYPAD 4x4) tạo thành hệ thống có 16 nút ấn.
6. Lắp ráp mạch điện khối hiển thị bao gồm 3 hàng đèn LED, mỗi hàng gồm có 8
LED mô tả hoạt động cho 8 bit khi chuyển một số từ hệ đếm thập phân (bé hơn
hoặc bằng 255) sang hệ đếm nhị phân (2 số nhập liệu - 1 số kết quả); 9 LED 7 đoạn
(seven segment display) để hiển thị số dưới dạng số thập phân.
7. Lắp ráp mạch điện khối giải mã LED 7 đoạn có tác dụng đổi một số (8 bit) ở hệ nhị
phân sang hệ thập phân và đưa ra các lệnh để hiển thị trên 3 LED 7 đoạn.
8. Lắp ráp mạch điện khối nguồn bao gồm IC 7805, tụ điện,… làm ổn định điện áp
5V cung cấp cho vi xử lý.
9. Lắp ráp trình bày các kết nối cái board.
10. Thiết kế hộp đựng – trình bày sản phẩm.
+ Phần mềm: Bao gồm các thao tác xử lý, lập trình trên máy vi tính thông qua vi xử lý
AT89C51/ AT 89C52, bao gồm các công đoạn:
11. Về các kiến thức cơ bản của lập trình vi xử lý (AVR).
12. Về các cấu trúc lệnh – phép toán – chương trình – hàm, chương trình con trong
ngôn ngữ lập trình C dành cho vi xử lý. Trong sản phẩm này, nhóm tác giả đã sử
dụng phần mềm Keil
Vision4 để thực hiện các thao tác lập trình.
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
9
13. Sử dụng phần mềm Little Programmer Version Gold kết hợp với mạch nạp vi xử lý
để nạp phần mềm sau khi đã xây dựng vào trong chíp xử lý.
14. Thiết kế chương trình quét KEYPAD 4x4 (hệ thống phím) cho phép người dùng
nhập dữ liệu vào mạch để xử lý.
15. Thiết kế chương trình xử lý chuyển đổi từ hệ đếm cơ số 10 (do người dùng nhập từ
KEYPAD) sáng hệ đếm cơ số 2 và hiển thị trên LED đơn.
16. Thiết kế chương trình mô tả hoạt động của các phép toán trên hệ đếm nhị phân.
17. Thiết kế chương trình chuyển đổi từ hệ đếm cơ số 2 (8 bit) sang hiển thị trên LED
7 đoạn.
2. Cơ sở lý thuyết
a. Giới thiệu về hệ đếm thập phân và hệ đếm nhị phân:
Hệ thập phân (hay hệ đếm cơ số 10) là một hệ đếm có 10 ký tự (0,1, 2, 3, 4, 5, 6, 7, 8,
9). Con số còn có thể được dẫn đầu bằng các ký hiệu “+” hay “-” để biểu đạt số dương và
số âm. Đây là hệ đếm phổ thông, được sử dụng rộng rãi.
Hệ nhị phân (hay hệ đếm cơ số 2) là một hệ đếm dùng hai ký tự để biểu đạt một giá trị
số, hai ký tự đó là 0 và 1; chúng thường được dùng để biểu đạt hai giá trị hiệu điện thế
tương ứng (có hiệu điện thế, hoặc hiệu điện thế cao là 1 và không có, hoặc thấp là 0). Để
biểu diễn số dấu người ta dùng bit đầu tiên (0: số dương, 1 số âm).
b. Chuyển đổi giữa các hệ đếm:
Từ hệ nhị phân sang hệ thập phân: giả sử có 1 số nhị phân A như sau:
A=a
n
a
n-1
a
n-2
…a
1
a
0
Giá trị thập phân của A được tính như sau: B=a
n
2
n
+ a
n-1
2
n-1
+ a
n-2
2
n-2
+…+a
1
2
1
+ a
0
2
0
Từ hệ thập phân sang hệ nhị phân: nguyên tắc của phương pháp này là lấy số cần
chuyển đổi chia cho 2 (kết quả chỉ lấy phần nguyên), sau đó tiếp tục lấy kết quả chia 2 (và
cũng chỉ lấy phần nguyên), kết quả số nhị phân thu được là tập hợp các số dư của các phép
chia theo thứ tự từ phép chia cuối cùng đến phép chia đầu tiên.
c. Các phép toán logic:
A
B
A and B
A or B
A xor B
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
d. Các phép toán số học:
Tính cộng hai số không âm:
Phép tính đơn giản nhất trong hệ nhị phân là tính cộng. Cộng hai đơn vị trong hệ nhị phân
được làm như sau:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0 (nhớ 1 lên hàng thứ 2)
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
10
Điểm đặc biệt trong phép cộng hai số nhị phân là phải thực hiện phép cộng có nhớ (sau khi
thực hiện phép cộng hai bit ở trước, phải cộng nhớ của nó vào phép cộng ở bit sau. Ta lập
được bản chân trị như hình bên:
Ví dụ: cộng với nhau: 01101
2
(13 thập phân) và 10111
2
(23 thập phân)
1 1 1 1 1 (nhớ)
0 1 1 0 1
+ 1 0 1 1 1
= 1 0 0 1 0 0
Tính trừ không âm
Phép tính trừ theo quy chế tương tự với phép cộng:
0 − 0 = 0
0 − 1 = −1 (mượn)
1 − 0 = 1
1 − 1 = 0
Ta có bảng chân trị như bảng dưới:
PHÉP CỘNG
Vào
Ra
A
B
Nhớ
Tổng
Nhớ
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
PHÉP TRỪ
Vào
Ra
A
B
BIN
HIỆU
BR
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
11
Tính nhân
Phép tính nhân trong hệ nhị phân cũng tương tự như phương pháp làm trong hệ thập phân
Ví dụ, hai số nhị phân 1011 và 1010 được nhân với nhau như sau:
1 0 1 1 (A)
× 1 0 1 0 (B)
0 0 0 0 ← tương đương với 0 trong B
+ 1 0 1 1 ← tương đương với 1 trong A
+ 0 0 0 0
+ 1 0 1 1
= 1 1 0 1 1 1 0
Tính chia
Tính chia nhị phân cũng tương tự như phép chia trong hệ thập phân.
__________
1 1 0 1 1 |1 0 1
Ở đây ta có số bị chia là 11011
2
, hoặc 27 trong số thập phân, số chia là 101
2
, hoặc 5 trong
số thập phân. Cách làm tương tự với cách làm trong số thập phân. Ở đây ta lấy 3 số đầu
của số bị chia 110
2
để chia với số chia, tức là 110
2
, được 1, viết lên trên hàng kẻ. Kết quả
này được nhân với số chia, và tích số được trừ với 3 số đầu của số bị chia. Số tiếp theo là
một con số 1 được hạ xuống để tạo nên một dãy số có 3 con số, tương tự với số lượng các
con số của số chia:
1
__________
1 1 0 1 1 | 1 0 1
− 1 0 1
0 1 1
Quy luật trên được lặp lại với những hàng số mới, tiếp tục cho đến khi tất cả các con số
trong số bị chia đã được dùng hết:
1 0 1
__________
1 1 0 1 1 | 1 0 1
− 1 0 1
0 1 1
− 0 0 0
1 1 1
− 1 0 1
1 0
Phân số của 11011
2
chia cho 101
2
là 101
2
, như liệt kê phía trên đường kẻ, trong khi số dư
còn lại được viết ở hàng cuối là 10
2
. Trong hệ thập phân, 27 chia cho 5 được 5, dư 2.
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
12
KHỐI NHẬP LIỆU
Bao gồm: Hệ thống các nút ấn (KEY PAD) gồm
16 nút bao gồm:
1
2
3
+
4
5
6
-
7
8
9
*
ENTER
0
STEP
/
Chức năng: Nhận lệnh từ người sử dụng
KHỐI XỬ LÝ
Bao gồm:
IC 89C51, bộ cấp nguồn cho IC, bộ
dao động.
Chức năng:
Xử lý các lệnh của người dùng
nhập vào, xử lý các phép toán, xuất kết quả
phép toán và các số do người dùng nhập vào
Nhận dữ liệu vào
KHỐI HIỂN THỊ
Bao gồm: 3 hàng LED đơn hiển thị, mỗi hàng gồm 8 LED đơn biểu
thị cho 8 bit khi chuyển đổi một số ở hệ thập phân sang hệ nhị phân
Khối LED ĐƠN HIỂN THỊ SỐ NHỊ PHÂN
Số nhập vào thứ nhất:
Số nhập vào thứ hai:
Kết quả của phép toán giữa hai số vừa nhập:
Khối LED 7 ĐOẠN HIỂN THỊ SỐ THẬP PHÂN
Khối hiển thị LED 7 đoạn bao gồm 9 LED 7 đoạn (7 segments LED
display) được chia làm 3 cụm. Mỗi cụm hiển thị kết quả ở hệ thập
phân cho các số nhập vào và kết quả của phép toán
Chức năng: Hiển thị, mô tả các phép toán
Kết quả
ở dạng nhị phân
KHỐI GIẢI MÃ
LED 7 ĐOẠN
Chuyển đổi số ở
hạng nhị phân ra
thập phân và đưa
ra các lệnh hiển thị
LED 7 đoạn
KHỐI NGUỒN
Cung cấp nguồn cho toàn mạch
D.SƠ ĐỒ TỔNG THỂ DỰ ÁN
Số thứ nhất
ở dạng nhị phân
Số thứ nhất
ở dạng nhị phân
Truyền dữ liệu điều khiển KEYPAD
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
13
E. GIỚI THIỆU PHẦN CỨNG CỦA DỰ ÁN:
1. GIỚI THIỆU CÁC LINH KIỆN:
a. Về chip vi xử lý (AT 89C52/ AT
89C51)
AVR là một họ vi điều khiển do hãng
Atmel sản xuất. Sản phẩm sử dụng chip AT
89C52/ AT 89C51 là một trong những thế hệ
chip thuộc họ này.
Một số đặc điểm của AT 89C52/AT 89C51:
8KB EPROM bên trong.
128 Byte RAM nội.
4 Port xuất/nhập I/O 8 bit.
Giao tiếp nối tiếp.
64KB vùng nhớ mã ngoài.
64KB vùng nhớ dữ liệu ngoại.
Xử lý Boolean (hoạt động trên bit đơn).
210 vị trí nhớ có thể định vị bit
4 micro second hoạt động nhân hoặc chia.
AT89C52/ AT 89C51 là một IC đơn phiến, bao gồm có 40 chân; công dụng của một số
chân như sau:
Chân 20: cho nối MASS.
Chân 40: cho nối nguồn +5V DC
Chân 9: là chân reset, khi chân này ở mức
áp cao, IC sẽ ở trạng thái reset.
Chân 18, 19: dùng gắn thạch anh để định
tần cho xung nhịp, với thạch anh 12MHz,
chu kỳ lệnh sẽ là 1s.
Chân 31: dùng khai báo IC sẽ làm việc với
bộ nhớ nào, khi treo chân này lên mức áp
cao, IC sẽ chỉ làm việc với bộ nhớ trong.
IC AT89C51 có 4 cảng dạng 8-bit dùng xuất nhập bit. Các cảng được đặt tên là p0, p1,
p2 và p3.
- Cảng p0 (PORT 0): gồm các chân: 39, 38, 37, 36, 35, 34, 33, 32.
(Đối với Port 0 không có điện trở kéo lên nguồn như các port khác nên phải lắp thêm
điện trở để kéo lên nguồn)
- Cảng p1 (PORT 1): gồm các chân: 1, 2, 3, 4, 5, 6, 7, 8.
- Cảng p2 (PORT 2): gồm các chân: 21, 22, 23, 24, 25, 26, 27, 28.
- Cảng p3 (PORT 3): gồm các chân: 10, 11, 12, 13, 14, 15, 16, 17.
b. Các linh kiện khác:
Trong khối nhập liệu:
Nút bấm dùng cho KEYPAD.
Dây nối.
Hình 2b: Hình dạng IC AT89C52
Hình 2a: Sơ đồ chân IC AT89C52
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
14
Hình 5: Giới thiệu IC 7805
Hình 3: Giới thiệu LED 7 đoạn
Hình 4: Transistor C828
Trong khối hiển thị :
9 LED 7 đoạn (7 segment led) sử dụng loại có anode chung.
18 LED đơn, loại 1mm.
Điện trở 560 ohm, 4.7k ohm.
Transistor C828 .
Port cắm dây nối.
Transistor loại NPN C828.
Trong khối xử lý:
AT 89C52 / AT 89C51.
Mạch nạp IC 89 Series Device Programmer – USB (nối với máy tính thông qua
cổng USB để nạp file HEX vào chíp xử lý).
Thạch anh định tần 12 MHz.
Tụ điện: Tụ 104, tụ 30pF,tụ 10 uF, tụ lọc nguồn.
Điện trở: 560 ohm, 1000 ohm, 10k ohm…
Port cắm dây nối.
Trong khối nguồn:
IC 7805 có chức năng ổn định điện áp 5V cấp cho mạch.
Tụ lọc 104, 1000uF.
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
15
2. PHẦN CỨNG CỦA CÁC KHỐI:
Sơ đồ mạch điện phần cứng của các khối được mô tả như sau:
a. Khối xử lý:
Hình 6: Sơ đồ mạch điện khối xử lý
Mục đích của khối này là duy trì điều khiển hoạt động của IC AT 89C51/ AT
89C52, điều khiển mọi hoạt động của mạch điện.
Mạch điện trên có thể được chia thành các bộ phận:
Cấp nguồn: chân 20 của IC được nối vào MASS; chân 40 cấp nguồn 5V lấy từ khối
nguồn.
Mạch dao động: được ví như “trái tim” của IC, có tác dụng tạo các xung nhịp dao
động cung cấp cho IC. Ở trong mạch, hai tụ C4 có giá trị 30pF, Thạch anh Y2 có giá
trị 12MHz.
Chân reset: được giữ ở mức 0V, khi đặt lên mức 1, mạch sẽ trở về trạng thái Reset.
Ta sẽ nối chân reset này vào một công tắc loại PUSH TO ON SWITCH để làm nút
reset. Khi ta ấn nút, chân reset sẽ được đẩy lên mức 1.
Các port (cảng): IC bao gồm 4 port; mỗi port bao gồm 8 chân dùng làm chức năng
nhập/xuất dữ liệu (được gọi là các PIN). Mỗi chân được đặt tên khác nhau. Theo thứ
tự từ trái qua phải.
Ví dụ: Port 0 bao gồm các PIN P0.0; P0.1; P0.2; P0.3; P0.4; P0.5; P0.6; P0.7 ứng với
các chân từ 32 đến 39.
Trong mạch điện này, ta sẽ quy ước tên gọi, chức năng, chủng loại của các PORT cũng
như các PIN được mô tả theo bảng sau:
PORT 0
PORT 2
PORT 1
PORT 3
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
16
Các Pin/
PORT
Ty.
KẾT NỐI
CHỨC NĂNG
P1
I
K.nhập liệu
Nhập dữ liệu từ KEYPAD
P2 +
PIN 0-2
của P3
O
K. hiển thị
Điều khiển quét ma trận LED gồm 3 hàng 8 LED
đơn hiển thị các số nhập và kết quả phép toán ở hệ
nhị phân
PIN 5 của
P3
O
K. hiển thị
K. giải mã
LED 7 đoạn
Có 2 trạng thái là 0 và 1
Trạng thái 0 báo phép toán có thể thực hiện được
Trạng thái 1 báo phép toán bị lỗi (trừ ra số âm, phép
chia cho 0, vượt ngoài khả năng tính toán của
mạch)
Nếu Pin 5 ở trạng thái 1 thì khối hiển thị và khối giả
mã led 7 đoạn sẽ xuất hiện thông báo ERROR
PIN 6,7 của
P3
O
K. giải mã
LED 7 đoạn
Điều khiển trạng thái nhận giá trị của khối giãi mã
LED 7đoạn
P0
O
K. giải mã
LED 7 đoạn
Xuất ra biểu diển của kết quả phép toán ở hệ nhị
phân, đưa qua K.Giải mã hiển thị trên LED 7 đoạn
Trong đó:
Ty. (TYPE): trong đó I là INPUT (nhận dữ liệu vào) và O là OUTPUT (xuất dữ liệu ra),
nói cách khác, loại cho ta biết chức năng của PIN hay PORT đó có chức năng là nhập hay
xuất dữ liệu.
KẾT NỐI: các PORT sẽ được hệ thống dây nối nối từ các PORT đến các khối tương ứng.
b. Khối nhập liệu (KEYPAD):
Khối nhập liệu bao gồm 16 nút nhấn. Loại PUSH TO ON SWITCH:
Các nút được kết nối với nhau theo hàng và cột như sơ đồ bên dưới, tạo thành KEYPAD
4x4:
Giả sử, người sử dụng ấn phím 1 thì hàng A và cột 1 sẽ được chập lại với nhau.
Toàn bộ KEYPAD sẽ được lắp trên một board mạch, gồm 8 chân ứng với 4 hàng và 4 cột.
1
4
7
E
2
5
8
0
+
-
*
/
3
6
9
S
1
4
7
E
2
5
8
0
+
-
*
/
3
6
9
S
A
B
C
D
1
2
3
4
Hình 7: SƠ ĐỒ MẠCH ĐIỆN KEYPAD
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
17
c. Khối hiển thị:
Khối hiển thị bao gồm:
3 hàng LED, mỗi hàng 8 đèn LED loại 1mm, tạo thành ma trận LED đơn 3x8
để hiển thị 2 số nhập vào và 1 số là kết quả của phép toán ở hệ nhị phân.
9 đèn LED 7 đoạn chia làm 3 cụm lắp theo kiểu ma trận (sẽ trình bày chi tiết ở
phần sau) để hiển thị số ở hệ thập phân.
Sơ đồ mạch điện KHỐI HIỂN THỊ SỐ NHỊ PHÂN:
Hình 8: Sơ đồ mạch điện khối hiển thị số nhị phân
Sơ đồ mạch điện khối hiển thị số nhị phân được mô tả như hình trên
Nhận xét:
Các LED được mắc nối với nhau theo từng hàng, từng cột.
Các ANODE của các LED được mắc theo cột, gắn vào cực E của transistor C828.
Các CATHODE của các LED được mắc theo hàng, gắn vào cực E của transistor C828.
Chân C của transistor ở mỗi hàng được mắc lên nguồn 5V, cấp điện cho LED.
Chân C của transistor ở mỗi cột được mắc xuống MASS, cấp điện cho LED.
Chân B của transsitor được nối vào các PIN của các PORT tương ứng.
d. Khối giải mã LED 7 đoạn:
Bao gồm một IC AT 89C52/ AT 89C51. Sơ đồ khối giải mã LED 7 đoạn giống với
khối xử lý. Khác nhau ở việc sử dụng và kết nối các PORT.
Các Pin/
PORT
Ty.
KẾT NỐI
CHỨC NĂNG
P0 + P2
O
K. hiển thị
LED 7 đoạn
Điều khiển 3 cụm – mỗi cụm 3 LED 7 đoạn để
hiển thị các số theo yêu cầu từ K. Xử lý
P1
I
K. Xử lý
Nhận giá trị số ở hệ nhị phân từ K. Xử lý đưa
ra để hiển thị trên LED 7 đoạn
PIN 1,2 của
P3
I
K. Xử lý
Nhận lệnh hiển thị ở cụm nào từ K. Xử lý đưa
ra
Sơ đồ lắp LED 7 đoạn: (mô phỏng)
Trên mạch điện, ta không sử dụng LED 7 đoạn đôi như hình minh họa bên dưới. Ta
sẽ kết nối các LED 7 đoạn đơn thành một ma trận LED 7 đoạn.
Ma trận LED 7 đoạn được kết nối vào các PORT của vi xử lý AT 89C52/ AT
89C51 được lắp đặt trên khối giải mã LED 7 đoạn.
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
18
Hình 9a: Kết nối LED 7 đoạn với các PORT.
Hình 9b: Sơ đồ ma trận LED 7 đoạn
Loại LED 7 đoạn được sử dụng là loại có ANODE chung. Các ANODE được mắc vào
cực E của Transistor. Cực B của Transistor mắc lên nguồn 5V. Chân B của Transistor
được mắc vào các các PIN của các PORT vi xử lý. Các CATODE của các thanh có tên
giống nhau được mắc song song với nhau.
e. Khối nguồn:
104
104
+12VDC
+5 VDC
Hình 10: Sơ đồ khối nguồn
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
19
F. GIỚI THIỆU VỀ “PHẦN MỀM” CỦA DỰ ÁN:
Sau khi đã lắp ráp thành công phần mạch điện của các khối và kết nối chúng lại với nhau.
Ta sẽ tiến hành thao tác “lập trình” trên máy tính để nạp vào chíp vi xử lý. Công việc này
ta phải tiến hành thao tác lên thuật toán – viết code – biên dịch – ghi vào chíp.
Ta phải thiết lập 2 chương trình:
1. Chương trình nạp vào vi điều khiển ở Khối Xử Lý (có các chức năng: thu nhập
dữ liệu từ KEYPAD – quét và hiển thị các số ở hệ nhị phân lên ma trận LED,
xuất số ở hệ nhị phân và ra lệnh cho khối giải mã LED 7 đoạn.
2. Chương trình nạp vào vi điều khiển ở Khối Giải Mã LED 7 đoạn (có chức năng
chuyển đổi số ở hệ nhị phân ra số thập phân và hiển thị nó lên LED 7 đoạn).
Sau đây, ta sẽ lần lượt nghiên cứu về các phần mềm hỗ trợ lập trình vi xử lý và các
chương trình được lập trình để thực hiện các yêu cầu của mạch.
I. PHẦN MỀM HỖ TRỢ LẬP TRÌNH VI XỬ LÝ:
1. Keil Vision 4:
a. Giới thiệu:
Là phần mềm chủ đạo dùng để
lập trình và thiết kế phần mềm cho
sản phẩm.
Phần mềm Keil Vision 4 cho
phép người dùng có thể sử dụng các
câu lệnh như trong ngôn ngữ lập trình
C để thiết kế và lập trình cho các loại
vi điều khiển.
Keil Vision 4 cũng cho phép
người dùng có thể mô phỏng chương
trình của mình viết trên máy tính để thử
nghiệm và kiểm tra tính đúng đắn của chương trình mà không cần phải lắp mạch điện để
thực hiện.
b. Môi trường làm việc:
Hình 11b: Môi trường lập trình trong Keil
version 4
Hình 11a: Giới thiệu phần mềm Keil
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
20
Môi trường lập trình cho phép người sử dụng lập trình soạn thảo ra các câu lệnh phục
vụ cho việc giải quyết bài toán, bao gồm các thao tác nhập, xuất, xử lý …
Điểm đặc biệt là phần mềm hỗ trợ viết các câu lệnh tương tự câu lệnh trong ngôn ngữ
lập trình C nên rất nhanh chóng, dễ tiếp cận, thuật tiện và gần gũi cho người lập trình.
Sau khi đã hoàn thành việc lập trình, Keil C sẽ có nhiệm
vụ biên dịch, kiểm tra những lỗi cú pháp do người lập trình vô
ý mắc phải trong quá trình thực hiện.
Bên cạnh, Keil còn có chức năng mô phỏng hoạt động
của chương trình trên máy vi tính thông qua mục Debug
Sesson (Ctrl+ F5). Ở chức năng này, người dùng có thể chạy
thử, mô phỏng cả chương trình hoặc từng đoạn chương trình.
Thông qua đó, người dùng có thể kịp thời điều chỉnh, chỉnh
sửa hoạt động của chương trình sao cho đạt được hiệu quả
cao nhất.
Ví dụ: trong hình bên, mô tả các PORT I/O của IC trong
giai đoạn đang chạy mô phỏng : Port 1 và Port 2 gồm 8 bit của IC đang ở mức cao (mức
1).
Hình 11c: Môi trường giả lập để chạy thử của chương trình trong Keil
Sau khi đã chạy hoàn chỉnh chương trình theo mong muốn, Keil sẽ có nhiệm vụ
biên dịch chương trình đã hoàn chỉnh, xuất ra file có định dạng file HEX (được tạo ra từ
chương trình hoàn chỉnh ban đầu). File HEX này chứa các câu lệnh mà ta đã lập trình mà
vi xử lý có thể hiểu và thực hiện được.
2. Little Programmer Version Gold:
Phần mềm Little Programmer Version Gold đi kèm với mạch nạp 89 Series
Device Programmer – USB cho phép người lập trình đọc/nạp/xóa file HEX (xuất ra từ
chương trình biên dịch) thông qua dây cắm USB.
Trong sản phẩm này, phần mềm được sử dụng để nạp code từ file HEX được tạo ra từ
chương trình Keil nạp vào vi xử lý IC AT 89C51/ AT 79C52.
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
21
Hình 12: Giao diện chính của Little Programer Version Gold và hình ảnh mạch nạp
Các thao tác nạp chương trình vào vi xử lý bao gồm:
Cắm chíp vào mạch nạp.
Lựa chọn loại chíp (AT 89C51 / AT 89C52).
Chọn đường dẫn file HEX.
Ấn chọn: “Ghi Chip”.
II. “PHẦN MỀM” CỦA DỰ ÁN:
1. Tổng quan:
a. “Phần mềm” trên Khối Xử Lý:
Các thao tác trên phần mềm của sản phẩm được thực hiện chủ yếu ở Khối Xử Lý.
Chương trình được lập trình trên máy tính và nạp vào IC AT89C52/ AT 89C51. Tại đây,
Khối Xử Lý có nhiệm vụ thu nhận INPUT từ Khối Nhập Liệu; xử lý và xuất ra kết quả
trên Khối Hiển Thị. Nói cách khác, Khối Xử Lý có nhiệm vụ phải giải bài toán với những
INPUT và OUTPUT như sau:
INPUT: Tổ chức hoạt động của một KEYPAD 16 nút, nhập vào hai số nguyên không âm
A,B (0 ≤A,B≤255) và một phép toán trên hai số A và B này. Thứ tự nhập sẽ là: Số nguyên
A nhập trước, kế theo sau là phép toán của 2 số (+,-,*, [ ](chia lấy nguyên)) và cuối cùng là
số nguyên B, sau khi ấn phím ENTER, mạch sẽ hiển thị kết quả tính toán.
(LƯU Ý: phép toán phải có kết quả bé hơn hoặc bằng 255, không âm) :
Cú pháp nhập:
<Số A> <Phép toán> <sốB> ENTER
OUTPUT: Xuất hai số A,B dưới dạng hệ nhị phân (8bit ứng với 8 đèn LED: LED sáng
ứng với bit 1, LED tắt ứng với bit 0) và hệ thập phân (bằng các LED 7 đoạn). Sau khi
người sử dụng ấn phím “ENTER” lần nữa xuất ra kết quả của phép toán dưới dạng số
nhị phân và thập phân.
Sử dụng 4 LED để hiển thị phép toán đang tính toán.
VÍ DỤ: Nếu người dùng nhập lần lượt:
<Số 5> < + > <Số 2> ENTER
Khi đó, 3 hàng LED đơn sẽ thể hiện:
Hàng 1( ứng với số A): 0 0 0 0 0 1 0 1
Hàng 2 (ứng với số B): 0 0 0 0 0 0 1 0
Hàng 3 (ứng với kết quả): 0 0 0 0 0 1 1 1
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
22
LED ở phép toán cộng sẽ sáng lên.
Đồng thời, 3 cụm LED 7 đoạn sẽ thể hiện
Cụm số 1: xuất số A : 0 0 5
Cụm số 2: xuất số B : 0 0 2
Cụm số 3: xuất kết quả: 0 0 7
Như vậy, tại Khối Xử Lý, “phần mềm” phải thực hiện các công việc – kỹ thuật như
sau:
Kỹ thuật quét KEYPAD (để ghi nhận các thao tác mà người dùng nhập vào với độ
chính xác cao, tiết kiệm các PIN của vi xử lý).
Kỹ thuật quét ma trận LED (để hiển thị các số nhị phân bằng việc sử dụng một
ma trận LED 3x8 và phép toán đang sử dụng bằng ma trận LED 2x2).
Các thao tác xuất bit (để chuyển số nhị phân sang khối giải mã LED 7 đoạn để
hiển thị trên ma trận LED 7 đoạn).
b. “Phần mềm” trên Khối giải mã LED 7 đoạn:
Phần mềm trên Khối giải mã LED 7 đoạn có nhiệm vụ điều khiển vi xử lý AT 89C52/
AT 89C51 để ghi nhận số ở hệ nhị phân được truyền qua từ Khối Xử Lý.
Số ở hệ nhị phân này sẽ được thực hiện chuyển thành số ở hệ thập phân và hiển thị nó
lên trên một ma trận LED 7 đoạn bao gồm 9 LED.
Ta sẽ thực hiện một kỹ thuật để quét ma trận LED 7 đoạn. Về cơ bản tư tưởng của nó
sẽ tương tự như kỹ thuật quét ma trận LED đơn (như ở khối xử lý).
2. Cài đặt:
Chương trình ở Khối Xử Lý và Khối giải mã LED 7 đoạn phải thực hiện các công việc
– kỹ thuật – các thao tác nêu trên để giải quyết bài toán. Sau đây sẽ là phần trình bày các
chương trình con và mô tả thuật toán thực hiện các kỹ thuật nêu trên:
Đầu tiên là thuật toán quét KEYPAD (bàn phím).
a. Quét KEYPAD:
Như đã mô tả ở phần cấu tạo: KEYPAD của sản phẩm bao gồm 4 hàng 4 cột được kết
nối với nhau theo từng hàng, từng cột (gọi là KEYPAD 4x4).
Để nhằm mục đích dễ tổ chức chương trình, ta sẽ quy ước các hàng được đánh dấu
bằng các chữ cái A,B,C,D, các cột được đánh dấu bằng các chữ số 1,2,3,4 theo đúng thứ tự
từ trên xuống dưới, từ trái qua phải.
Kết nối các chân của KEYPAD vào Port1 của IC theo quy ước sau:
Chân trên KEYPAD
Chân trên PORT 1
A
0
B
1
C
2
D
3
1
4
2
5
3
6
4
7
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
23
Thuật toán quét KEYPAD được mô tả như sau:
Tiến hành:
Bước 1: Giữ các chân từ 0 đến 7 ở mức cao (mức 1).
Bước 2: Lần lượt hạ các chân 1,2,3,4 của KEYPAD xuống mức thấp (mức 0). Các chân
còn lại vẫn giữ nguyên mức 1.
Bước 3: Kiểm tra các chân A,B,C,D có chân nào hiện tại đang ở mức 0 hay không. Nếu có
thì nút ở tọa độ đó là nút được nhấn, kết thúc chương trình.
Nếu không có nút nào được nhấn, quay lại bước 2.
Để dễ hình dung kỹ thuật này, ta sẽ xét một ví dụ như sau:
Ví dụ: Giả sử nút “số 2” được nhấn.
- Hạ chân 1 xuống mức 0, các chân 2,3,4 vẫn giữ ở mức 1.
- Kiểm tra chân A,B,C,D thấy tất cả các chân vẫn giữ ở mức cao nên không có nút
nào được nhấn.
- Hạ chân 2 xuống mức 0, các chân 1, 2, 4 vẫn đang giữ ở mức 1.
- Kiểm tra các chân A,B,D vẫn giữ mức cao, chân C lại ở mức thấp (do cột 2 đang ở
mức 0 mà cột 2 lại đang được nối với nút C. Do đó, hàng C ở đây sẽ bị hạ xuống
mức 0 ). Ta kết luận nút 2 được nhấn. Kết thúc chương trình.
Mô tả giải mã: Thuật toán quét KEYPAD được mô tả giải mã như sau:
<Gán tất cả các chân ở mức 1>
For i:=1 to 4 do
Begin
<hạ chân thứ i xuống mức 0>
For j:=A to D do
If <chân j là 0> then
Begin
<nút ở tọa độ j,i> đã được nhấn;
<kết thúc>
End;
< không có nút nào được nhấn>
1
4
7
E
2
5
8
0
+
-
*
/
3
6
9
S
1
4
7
E
2
5
8
0
+
-
*
/
3
6
9
S
A
B
C
D
1
2
3
4
Hình 13: Thuật toán quét KEYPAD
Đề tài: Giải mã nguyên lý hoạt động công nghệ số
24
Đoạn chương trình hoàn chỉnh thực hiện quét KEYPAD: viết bằng ngôn ngữ C.
Phần khai báo:
Khai báo mảng scan: chứa các cấu hình có thể xảy ra đối với các hàng A,B,C,D để tìm
kiếm bit nào đang ở trạng thái 0:
int scan[4]={0x0E,0x0D,0x0B,0x07};
Trong đó, có thể hiểu các giá trị dưới dạng một dãy các bit như sau:
0x0E
0 0 0 0 1 1 1 0
A đang ở mức 0
0x0D
0 0 0 0 1 1 0 1
B đang ở mức 0
0x0B
0 0 0 0 1 0 1 1
C đang ở mức 0
0x07
0 0 0 0 0 1 1 1
D đang ở mức 0
Ta sẽ khai báo một mảng hằng chứa giá trị của nút bấm: giatri[i][j] cho biết giá trị của
phím bấm tại hàng i cột j.
int giatri[4][4]={1,2,3,15,4,5,6,14,7,8,9,13,10,0,11,12};
Để tiện việc sử dụng mảng, ta sẽ quy ước các nút có giá trị nguyên dương. Khai báo như
trên ta sẽ có một mảng giá trị như sau:
Khai báo
Thực tế trên phím
1 2 3 15
4 5 6 14
7 8 9 13
10 0 11 12
1 2 3 +
4 5 6 -
7 8 9 *
E 0 = /
Như vậy, ví dụ kết quả quét KEYPAD thu được cho ta kết quả là số 10, ta sẽ nhận thấy nút
ENTER đã được ấn.
Chương trình đọc KEYPAD:
int doc_keypad(void)
{
int i,j,KEYIN;
KEYPAD = 0xFF; // KHỞI GÁN
for (i=0;i<4;i++) // Quét các cột
{
KEYPAD=0xFF-(1<<(i+4)); //Chuyển cột i về 0
delay_us(10); //delay
KEYIN=KEYPAD & 0x0F; // Đọc dữ liệu các hàng
if (KEYIN != 0x0F)
// Nếu một trong các hàng có bit 0 xuất hiện
for (j=0;j<4;j++)
// Quét các hàng tìm hàng có bit 0 xuất hiện
if (KEYIN==scan[j]) return giatri[j][i];
}
return 20;
//trong trường hợp không số nào được nhập thì xuất ra 20
}