Một trong vô số những thànhtựu của khoa học kỹ thuật nói chung, của khoa học kỹ thuật điện tửnói riêng là bộ vi điều khiển, ghép nối máy tính.. Trong các thiết bị điện và điện tử dân dụn
Trang 1Lời Nói Đầu
Ngày nay, các thiết bị máy móc, hệ thống nhằm phục vụ đờisống con ngời trong sinh hoạt cũng nh trong sản xuất phát triểnnhanh và ngày càng thông minh Sở dĩ có đợc điều đó là nhờ ứngdụng thành tựu của khoa học kỹ thuật Một trong vô số những thànhtựu của khoa học kỹ thuật nói chung, của khoa học kỹ thuật điện tửnói riêng là bộ vi điều khiển, ghép nối máy tính
Trong các thiết bị điện và điện tử dân dụng, các bộ vi điềukhiển điều khiển các hoạt động của ti vi, máy giặt, đầu đọc laser,
điện thoại, lò vi ba trong hệ thống sản xuất tự động, bộ vi điềukhiển đợc sử dụng trong ro bốt, dây truyền tự động, các hệ thốngcàng thông minh thì vai trò của hệ vi điều khiển càng quan trọng
Đây là nói đến vi điều khiển, còn ghép nối máy tính có nó cũng córất nhiều ứng dụng có liên quan đến vi điều khiển Ghép nối máytính với máy in, máy quét, máy ảnh, máy quay phim qua các cổngghép nối của máy tính
Qua học tập và nghiên cứu chúng em đã tìm hiểu về đề tài
:” Thiết kế mụ hỡnh bảng LED điện tử gồm 2 ma trận LED đơn sắc
sử dụng cổng nối tiếp.” Đợc sự hớng dẫn tận tình của cô: Vũ Thị Thu Hơng, cùng các thầy giáo khác trong bộ môn, em cũng đã nắm
vững đựơc cấu tạo, nguyên lý hoạt động, cách thức lập trình vàứng dụng của vi điều khiển trong đo lờng, tự động hoá nhằmnâng cao kết quả của đề tài em đã chọn
Do thời gian nghiên cứu và kinh nghiệm còn hạn chế nên khôngtránh khỏi những thiếu sót
Vì vậy, em rất mong sự góp ý chỉ bảo của các thầy cô và cácbạn
Chúng em xin chânthành cảm ơn!
Hà Nội, Ngày 28 Tháng 05 Năm 2010Giáo viên hớng dẫn :Vũ Thị Thu HơngNhóm sinh viên thực hiện: Lê Đức Biên
Nguyễn Ngọc Lơng
Trang 2Phần I: cơ sở lý thuyếtChơng i Giới thiệu chung về ghép nối máy tính
I Giới thiệu
Sự phát triển của ghép nối máy tính đã mở rộng đáng kể cáclĩnh vực ứng dụng của máy tính, đặc biệt là đo lờng và điềukhiển Thực tế cho thấy, trong các công ty xí nghiệp đã ứng dụng
kỹ thuật ghép nối rất nhiều, Ví Dụ: Những điều khiển CNC, dâytruyền công nghệ sản xuất xi măng, điều khiển các thiết bị khácnhau nh những phần cứng và chơng trình do ngời sử dụng viết,ngôn ngữ giao tiếp là: Pascal, C++, ASM, VB, VB.net có khả năngghép nối máy tính có độ chính xác cao, thời gian thu nhập số liệungắn và quan trọng là mức thu thập và xử lý các kết quả
Đề tài, xây dựng bảng mã font và hệ thống có thể hiện thịdòng chữ chạy bất kỳ từ bàn phím là một đề tài tơng đối khó và làmột trong nhiều ứng dụng của vi điều khiển
II Sự giao tiếp giữa máy tính và các khối ghép nối.
Nh chúng ta đã biết cấu trúc của một máy tính đợc chia làm 3phần chính:
Khối xử lý trung tâm CPU làm nhiệm vụ thu thập và xử lý mộidữ liệu
Khối nhớ (Memory): Lu trữ các loại dữ liệu khác nhau đa vàolấy và lấy ra ở CPU
Khối vào ra (I/O): Làm nhiệm vụ tơng thích với các thiết bị bênngoài và đờng Bus trong máy tính
1 Các dạn tin trao đổi của máy tính
a Dạng số (Digital)
Đây là một chuỗi các bit 0 và 1 đợc biểu diễn theo hệ đếmnh: nhi phân, hệ thập lục phân Các tín hiệu này có thẻ ở dạng nốitiếp hoặc song song và mức có thể là RS hoặc TTL
b Dạng chữ (Text)
Đây chính là dạng biểu diễn của các ký tự dới dạng số, trên thếgiới hiện nay thông dụng là biểu diễn các ký theo mã ACCII Theocách này thì các ký tự đợc biểu diễn bằng các bit 0,1 trên hệ thậplục phân, ví dụ: Mã ký tự A là 41h Dạng tín hiệu này có thể coi làtìn hiệu số
c Dạng tơng tự (Analog)
Đây là các dòng điện hay điên áp biến đổi liên tục theo thờigian Điển hình là đại lợng vật lý thu thập từ các bộ cảm biến(sensor) Muốn xử lý đợc các tín hiệu này, máy tính (khối ghép nối)phải chuyển nó sang dạng số bằng các bộ biến đổi ADC
d Dạng âm tần
Khoa Điện Tử – Tự Động Hoá 2
Trang 3Đây là dạng tổng hợp của nhiều tín hiệu tơng tự với tín hiệu
số với các biên độ khác nhau Cũng có thẻ coi đây là một dạng củatín hiệu Analog
2 Các dạng thông tin trao đổi của máy tính
Trong quá trình gửi tin từ các thiết bị ngoại vi vào máy tính cócác dạng tín hiệu sau:
Tin về trạng thái của thiết bị ngoại vi
Tin mạng dữ liệu cần trao đổi
Trong quá trình ngợc lại
Tin về dữ liệu trao đổi
Tin mang lệnh điều khiển
3 Các phơng thức trao đổi tin của máy tính
Trao đổi theo chơng trình (Asembly, Pascal, C++, VB,VB.net )
Trao đổi trực tiếp với các khối nhớ (DMA – Direct MemoryAccess)
a Chế độ trao đổi tin theo chơng trình
Đây là chế độ trao đổi tin trong đó máy tính trao đổi vớicác thiết bị ngoại vi bằng các lệnh vào ra Lệnh dịch chuyển dữliệu giữa các thanh ghi
Trong chế độ trao đổi theo chơng trình có 3 phơng pháp:
Phơng pháp trao đổi đồng bộ.
ở phơng pháp này, máy tính sẽ tiến hành trao đổi tin ngayvơi thiết bị ngoài khi khởi động xong mà không cần biết trạng tháicủa trạng thái đờng dây cũng nh thiết bị ngoài
Để có thể thực hiện đợc phơng pháp này thì yêu cầu là:
+ Tốc độ trao đổi tin của thiết bị ngoài lớn hơn tốc độ trao
đổi tin của máy tính
+ Thiết bị ngoài cần phải ở trạng thái sẵn sàng ngay khi máytính khởi động xong
+ Phơng pháp này có u điểm là tốc độ trao đổi tin nhanhnhng có nhợc điểm là dễ bị mất tin khi thiết bị ngoài cha ở trạngthái sãn sàng
Trang 4Phơng pháp này lợi dụng đợc u điểm, khắc phục đợc nhợc điểm củahai phơng pháp trên:
+ Khi thiết bị ngoài có yêu cầu trao đổi sẽ gửi tin tín hiệutheo yêu cầu (ngắt) đến máy tính
+ Máy tính dừng chơng trình đang phục vụ (nếu thiết bịngoài đang yêu cầu có mức yêu tiên cao hơn) và nhớ lại dừng đồngthời gửi tín hiệu xác nhận, yêu cầu thiết bị ngoài trao đổi tin
+ Máy tính và thiết bị ngoài trao đổi tin theo chơng trình(gọi là chơng trình con phục vụ ngắt)
+ Kết thúc quá trình trao đổi tin, máy tính trở lại chơngtrình từ điểm dừng
+ Phơng pháp trao đổi theo ngắn chơng trình khắc phục
đợc nhợc điểm của hai phơng pháp đồng bộ và không đồng bộ, nócho phép tận dụng tối đa thời gian làm việc của máy tính
b Trao đổi MDA.
Đây là phơng thức trao đổi trực tiếp với khối nhớ của máy tính
mà không thông qua CPU Khi đó CPU sẽ ở trạng thái treo nhờngquyền điều khiển bù cho ghép nối Thiết bị ngoài và khối nhớ củamáy tính sẽ tiến hành trao đổi (đọc/ghi dữ liệu) Sau khi quá trìnhkết thúc sẽ nhờng lại quyền điều khiển Bus cho CPU
Khoa Điện Tử – Tự Động Hoá 4
Trang 5Chơng ii Tổng quan về họ 8051
I Tóm tắt về lịch sử phát triển của 8051
Năm 1981, hãng Intel cho ra mắt một bộ vi điều khiển đợc gọi là
8051 Bộ vi điều khiển này có 128 byte RAM, 4K byte ROM, hai bộ
định thời, một cổng nối tiếp và 4 cổng vào ra 8 bit Tất cả đều
đợc tích hợp trên một chip Lúc bấy giờ, bộ vi điều khiển nh vậy đợc
coi là một “Hệ thống trên chip” 8051 là bộ xử lý 8 bit, tức là CPU chỉ
có thể làm việc với 8 bit dữ liệu Dữ liệu lớn hơn 8 bit đợc chiathành các dữ liệu 8 bit để xử lý 8051 có tất cả 4 cổng vào - ra(I/O), mỗi cổng rộng 8 bit 8051 có thể có một ROM trên chip cực đại
là 64 K byte Tuy nhiên, lúc đó các nhà sản xuất đã cho xuất xởngchỉ 4K byte ROM trên chip
8051 đã trở nên phổ biến sau khi Intel cho phép các nhà sảnxuất khác sản xuất và bán bất kỳ dạng biến thể nào của 8051 mà họmuốn với điều kiện họ phải để mã chơng trình tơng thích với
8051 Từ đó dẫn đến sự ra đời nhiều phiên bản của 8051 với cáctốc độ khác nhau và dung lợng ROM trên chip khác nhau Tuy nhiên,
điều quan trọng là mặc dù có nhiều biến thể của 8051 (nh khácnhau về tốc độ và dung lợng nhớ ROM trên chip), nhng tất cả cáclệnh đều tơng thích với 8051 ban đầu Điều này có nghĩa là, nếuchơng trình đợc viết cho một phiên bản 8051 nào đó thì cũng sẽchạy đợc với mọi phiên bản khác không phụ thuộc vào hãng sản xuất
II Bộ vi điều khiển 8051
Bộ vi điều khiển 8051 là thành viên đầu tiên của họ 8051 Hãng
Intel ký hiệu là MCS51 Bố trí bên trong của sơ đồ khối 8051
BUS CONTRO L
SERIAL PORT
EXTERNAL
INTERRUPTS
CPU
ON - CHIP RAM
ETC TIMER 0 TIMER 1
Trang 6III Các thành viên khác của họ 8051
Có hai bộ vi điều khiển thành viên khác của họ 8051 là 8052 và
8031
IV Các phiên bản 8051 cải biên
Gồm có các phiên bản UV-PROM(8751), Flash ROM(AT89C51) vàNV-RAM(DS5000) ngoài còncó phiên bản OTP ( lập trình một lần)cũng đợc nhiều hãng sản xuất
Khoa Điện Tử – Tự Động Hoá 6
Trang 7Chơng iii lập trình cho cổng vào ra(i/O)
I Mô tả chân của 8051
Mặc dù các thành viên của họ 8051 (ví dụ 8751, 89C51,DS5000) đều có các kiểu đóng vỏ khác nhau, chẳng hạn nh haihàng chân DIP (Dual In-Line Pakage) dạng vỏ dẹt vuông QFP (QuadFlat Package) và dạng chíp không có chân đỡ LLC (Leadless ChipCarrier) thì chúng đều có 40 chân cho các chức năng khác nhau
nh vào ra I/0, đọc , ghi , địa chỉ, dữ liệu và ngắt Cần phải
lu ý rằng một số hãng cung cấp một phiên bản 8051 có 20 chân với
số cổng vào-ra ít hơn cho các ứng dụng yêu cầu thấp hơn Tuynhiên, vì hầu hết các nhà phát triển chính sử dụng chíp đóng vỏ
40 chân với hai hàng chân DIP nên ta chỉ tập trung mô tả phiên bảnnày
Hình 2.1: Sơ đồ bố trí chân của 8051.
Trên hình 2.1 là sơ đồ bố trí chân của 8051 Ta thấy rằngtrong 40 chân thì có 32 chân dành cho các cổng P0, P1, P2 và P3với mỗi cổng có 8 chân Các chân còn lại đợc dành cho nguồn VCC,
đất GND, các chângiao động XTAL1 và XTAL2 tái lập RST cho phépchốt địa chỉ ALE truy cập đợc địa chỉ ngoài , cho phép cất ch-
ơng trình Trong 8 chân này thì 6 chân VCC , GND, XTAL1,XTAL2, RST và đợc các họ 8031 và 8051 sử dụng Hay nói cách
P1.0 P1.1 P1.2
P1.
3
P1.4 P1.5 P1.6 P1.7 RST
P0.0 (AD0)
Vc c
1 2 3 5 6
4
7 8 9 1 1 2
1 0 1 31 41 5 1 71 8
1 6 1 92 0
4 0 93 8 3 6 5
3 7 3 43 33 2 3 0 9
3 1 2 82 72 6 2 42 3
2 5 2 22 1
8051 (803 1)
P0.1 (AD1)P0.2 (AD2) P0.4 (AD4)P0.5 (AD5)
P0.3 (AD3)
PSEN
P0.6 (AD6)
P2.5 (A13) P2.3 (A11) P2.1 (A9)
P2.7 (A15) P2.4(A12 )
P2.6 (A14)
P2.0 (AB)
P2.2 (A10)
(RXD) P3.0 (TXD) P3.1 (NT0) P3.2 (NT1) P3.3 (T0) P3.4 (T1) P3.5 (WR) P3.6 (RD) P3.7 XTAL 2 XTAL1 GND
P0.6 (AD6) EA/
CPP ALE/
PROG
Trang 8khác là chúng phải đợc nối để cho hệ thống làm việc mà không cầnbiết bộ vi điều khiển thuộc họ 8051 hay 8031 Còn hai chân khác
là và ALE đợc sử dụng chủ yếu trong các hệ thống dựa trên8031
Hình 2.1: Cổng P0 với các điện trở kéo.
Nó có thể đợc dùng nh cổng đầu ra, để sử dụng các châncủa cổng 0 vừa làm đầu ra, vừa làm đầu vào thì mỗi chân phải
đợc nối tới một điện trở kéo bên ngoài 10 K Điều này là do mộtthực tế là cổng P0 là một màng mở khác với các cổng P1, P2 và P3 2.Cổng Port1(P1):
Cổng P1 cũng chiếm tất cả 8 chân (từ chân 1 đến chân 8)
nó có thể đợc sử dụng nh đầu vào hoặc đầu ra So với cổng P0thì cổng này không cần đến điện trở kéo vì nó đã có các điệntrở kéo bên trong Trong quá trình tái lạp thì cổng P1 đợc cấuhình nh một cổng đầu ra
Cổng P1 nh đầu vào: Để biến cổng P1 thành đầu vào thì nóphải đợc lập trình bằng cách ghi một đến tất cả các bit của nó 3.Cổng Port2(P2):
Khoa Điện Tử – Tự Động Hoá 8
Vcc
10 K
P0.0 P0.1 P0.2
P0.
3P0.4P0.5
P0.6 P0.7
DS500 0 8751 8951
Trang 9Cổng P2 cũng chiếm 8 chân (các chân từ 21 đến 28) Nó cóthể đợc sử dụng nh đầu vào hoặc đầu ra giống nh cổng P1, cổngP2 cũng không cần điện trở kéo vì nó đã có các điện trở kéo bêntrong Khi tái lập, thì cổng P2 đợc cấu hình nh một cổng đầu ra.
4.Cổng Port3(P3)
Cổng P3 chiếm tổng cộng là 8 chân (từ chân 10 đến chân17) Nó có thể đợc sử dụng nh đầu vào hoặc đầu ra Cống P3không cần các điện trở kéo cũng nh P1 và P2 Mặc dù cổng P3 đợccấu hình nh một cổng đầu ra khi tái lập, nhng đây không phải làcách nó đợc ứng dụng phổ biến nhất Cống P3 có chức năng bổxung là cung cấp một số tín hiệu quan trọng đặc biệt chẳng hạn
nh các ngắt
5.Chân VCC và chân GND(Chân 40 và chân 20):Chân VCC làchân cấp điện áp nguồn cho chíp Nguồn điện áp là +5V.ChânGND: Chân GND là chân nối mass
6.Chân XTAL1 và XTAL2:
8051 có một bộ giao động trên chíp nhng nó yêu cầu có mộtxung đồng hồ ngoài để chạy nó Bộ giao động thạch anh thờngxuyên nhất đợc nối tới các chân đầu vào XTAL1 (chân 19) và XTAL2(chân 18) Bộ giao động thạch anh đợc nối tới XTAL1 và XTAL2 cũngcần hai tụ điện giá trị 30pF Một phía của tụ điện đợc nối xuống
đất
7.Chân RST
Chân số 9 là chân tái lập RESET Nó là một đầu vào và cómức tích cực cao (bình thờng ở mức thấp) Khi cấp xung cao tớichân này thì bộ vi điều khiển sẽ tái lập và kết thúc mọi hoạt động
Điều này thờng đợc coi nh là sự tái bật nguồn Khi kích hoạt tái bậtnguồn sẽ làm mất mọi giá trị trên các thanh ghi
Lu ý rằng giá trị của bộ đếm chơng trình PC là 0 khi tái lập
để ép CPU nạp mã lệnh đầu tiên từ bộ nhớ ROM tại vị trí ngăn nhớ
0000 Điều này có nghĩa là ta phải đặt dòng đầu tiên của mãnguồn tại vị trí ngăn nhớ 0 của ROM vì đây là mã CPU tĩnh thức vàtìm lệnh đầu tiên Hình 2.5 trình bày hai cách nối chân RST vớimạch bật nguồn
10
F 8.2
30
31 EA/Vpp 19
9 18
K
10
F 11.0592
MHz
Trang 10Hình2.5: a)Mạch tái bật nguồn RESET b)Mạch tái bật nguồn với
Debounce.
Nhằm làm cho đầu vào RESET có hiệu quả thì nó phải có tốithiểu 2 chu kỳ máy Hay nói cách khác, xung cao phải kéo dài tốithiểu 2 chu kỳ máy trớc khi nó xuống thấp
Trong 8051 một chu kỳ máy đợc định nghĩa bằng 12 chu kỳdao động
8.Chân : Cất chơng trình vào ROM nó đợc nối với Vcc đối vớicác phiên bản
8751, 89C51 và đợc nối đất đối với các thành viên nh 8031 và8032
9.Chân :
Đây là chân đầu ra cho phép cất chơng trình (ProgramStore Enable) trong hệ thống dựa trên 8031 thì chơng trình đợccất ở bộ nhớ ROM ngoài thì chân này đợc nối tới chân OE của ROM
Chơng IV bộ đếm/bộ định thời trong 8051
8051 có hai bộ định thời/ bộ đếm Chúng có thể đợc dùng nhcác bộ định thời để tạo một bộ trễ thời gian hoặc nh các bộ đếm
để đếm các sự kiện xảy ra bên ngoài bộ VĐK
3.1 Các thanh ghi cơ sở của bộ định thời.
Cả hai bộ định thời Timer 0 và Timer 1 đều có độ dài 16 bít
đợc truy cập nh hai thanh ghi tách biệt byte thấp và byte cao
3.2 Các thanh ghi của bộ Timer 0.
Thanh ghi 16 bít của bộ Timer 0 đợc truy cập nh byte thấp vàbyte cao Thanh ghi byte thấp đợc gọi là TL0 (Timer 0 bow byte) vàthanh ghi byte cao là TH0 (Timer 0 High byte) Các thanh ghi này cóthể đợc truy cập nh mọi thanh ghi khác chẳng hạn nh A, B, R0, R1,R2 v.v
Khoa Điện Tử – Tự Động Hoá 10
D15 D14D13 D12 D11D10
D9 D8
TH0
D7 D6 D5 D4 D3 D2 D1 D0
TL0
Trang 11Hình 3.1: Các thanh ghi của bộ Timer 0.
3.3 Các thanh ghi của bộ Timer 1.
Bộ định thời gian Timer 1 cũng dài 16 bít và thanh ghi 16 bítcủa nó đợc chia ra thành hai byte là TL1 và TH1 Các thanh ghi này
đợc truy cập và đọc giống nh các thanh ghi của bộ Timer 0 ở trên
Hình 3.2: Các thanh ghi của bộ Timer 1.
3.4 Thanh ghi TMOD (chế độ của bộ định thời).
Cả hai bộ định thời Timer 0 và Timer 1 đều dùng chung mộtthanh ghi đợc gọi là IMOD để thiết lập các chế độ làm việc khácnhau của bộ định thời Thanh ghi TMOD là thanh ghi 8 bít gồm có
4 bít thấp đợc thiết lập dành cho bộ Timer 0 và 4 bít cao dành choTimer 1 Trong đó hai bít thấp của chúng dùng để thiết lập chế độcủa bộ định thời, còn 2 bít cao dùng để xác định phép toán
Hình 3.3: Thanh ghi TMOD.
3.5 Các bít M1, M0:
Là các bít chế độ của các bộ Timer 0 và Timer 1 Chúng chọnchế độ của các bộ định thời: 0, 1, 2 và 3 Chế độ 0 là một bộ
định thời 13, chế độ 1 là một bộ định thời 16 bít và chế độ 2 là
bộ định thời 8 bít Chúng ta chỉ tập chung vào các chế độ thờng
đợc sử dụng rộng rãi nhất là chế độ 1 và 2 Các chế độ đợc thiếtlập theo trạng thái của M1 và M0 nh sau:
TL1
(MSB )
GATE C/T M1 M0
Timer1
GATE C/T M1 M0
Timer0
(MSB )