Giáo trình Kỹ thuật vi xử lý

Nội dung:

1. Cấu trúc máy tính

1.1. Sơ đồ cấu trúc máy tính điện tử

Sơ đồ cấu trúc của máy tính

CPU: Bộ xử lý trung tâm

Thiết bị I/O : Đầu vào/ đầu ra

Memory: vùng nhớ

RAM: Random acces memory: Vùng nhớ tạm thời của chương trình lưu giữ khi

máy tính đang thực thi, dữ liệu sẽ bị mất khi máy tính tắt.

ROM

1.2. Chức năng của các khối.

- Bus hệ thống: tập hợp các đường dây để CPU có thể liên kết Với các bộ phận

khác

1.2.1. Bộ nhớ trung tâm

Khối xử lý trung tâm (CPU – Central Processing Unit): nhận và thực thi các

lệnh. Bên trong CPU gồm các mạch điều khiển logic, mạch tính toán số học,

1.2.2. Khối tính toán số học – Lô gíc:

Thực hiện các phép toán số học cơ sở +, -, x, /.

- Thực hiện các phép toán logic AND, OR, NOT, XOR.

- Tất cả các phép toán được thực hiện ở cơ số 2 (hệ nhị phân).

Điều khiển quá trình xử lý thông tin bằng cách tạo ra các lệnh điều khiển.

- Điều khiển hệ thống theo trình tự thời gian, liên quan đến các khối khác, quyết

định tốc độ hoạt động của máy tính.

d. Khối nhớ ngoài.6

e. Khối vào ra.

Giáo trình Kỹ thuật vi xử lý trang 1

Trang 1

Giáo trình Kỹ thuật vi xử lý trang 2

Trang 2

Giáo trình Kỹ thuật vi xử lý trang 3

Trang 3

Giáo trình Kỹ thuật vi xử lý trang 4

Trang 4

Giáo trình Kỹ thuật vi xử lý trang 5

Trang 5

Giáo trình Kỹ thuật vi xử lý trang 6

Trang 6

Giáo trình Kỹ thuật vi xử lý trang 7

Trang 7

Giáo trình Kỹ thuật vi xử lý trang 8

Trang 8

Giáo trình Kỹ thuật vi xử lý trang 9

Trang 9

Giáo trình Kỹ thuật vi xử lý trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 123 trang duykhanh 9121
Bạn đang xem 10 trang mẫu của tài liệu "Giáo trình Kỹ thuật vi xử lý", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình Kỹ thuật vi xử lý

Giáo trình Kỹ thuật vi xử lý
ủa SCON . 
- Các cờ ngắt : 
+ Cờ ngắt khi thu là RI được set bằng phần cứng khi kết thúc việc nhận 1 ký 
tự và chỉ ra rằng bộ đệm thu đã đầy , nhưng phải được xóa bằng phần mềm , sau đó 
là lệnh đọc ký tự vào từ SBUF . Điều này được thể hiện bằng đoạn chương trình 
sau : 
 WAIT : JNB RI,WAIT ; đợi cờ RI bằng 1 
 CLR RI ; xóa cờ RI 
 MOV A,SBUF ; đọc ký tự 
+ Cờ ngắt khi phát TI được set bằng 1 khi kết thúc việc phát 1 ký tự và chỉ ra 
rằng bộ đệm phát rỗng . Nếu muốn phát tiếp 1 ký tự cho thiết bị ghép nối Với cổng 
nối tiếp , phần mềm phải chờ cho TI bằng 1 sau đó xóa TI và khi đó mới phát được 
ký tự tiếp theo . Điều này được thể hiện bằng đoạn chương trình sau : 
 WAIT : JNB TI,WAIT ; đợi cờ TI bằng 1 
 CLR TI ; xóa cờ TI 
 MOV SBUF,A ; phát ký tự 
Ví dụ1 : Truyền dữ liệu nối tiếp 
Viết chương trình truyền nối tiếp liên tục chữ “ KHOA DIEN DIEN TU “, 
tốc độ truyền 9600 baud với Thạch anh tần số 11.0592MHz 
Chương trình : 
108 
MOV TMOD, #20H ; Timer 1 chế độ 2 
MOV TH1, #253; tốc độ 9600 baud 
MOV SCON, #50H ; truyền 8 bit dữ liệu, 1 bit stop 
 ; và cho phép thu 
SETB TR1 ; khởi động Timer 1 
AGAIN: MOV A, #"K" ; truyền ký tự “K” 
ACALL TRUYEN 
MOV A, #"H" ; truyền ký tự “H” 
ACALL TRUYEN 
MOV A, #"O" ; truyền ký tự “O” 
ACALL TRUYEN 
MOV A, #"A" ; truyền ký tự “A” 
ACALL TRUYEN 
MOV A, #"D" ; truyền ký tự “D” 
ACALL TRUYEN 
MOV A, #"I" ; truyền ký tự “I” 
ACALL TRUYEN 
MOV A, #"E" ; truyền ký tự “E” 
ACALL TRUYEN 
MOV A, #"N" ; truyền ký tự “N” 
ACALL TRUYEN 
MOV A, #"D" ; truyền ký tự “D” 
ACALL TRUYEN 
MOV A, #"I" ; truyền ký tự “I” 
ACALL TRUYEN 
MOV A, #"E" ; truyền ký tự “E” 
ACALL TRUYEN 
MOV A, #"N" ; truyền ký tự “N” 
ACALL TRUYEN 
MOV A, #"T" ; truyền ký tự “T” 
ACALL TRUYEN 
MOV A, #"U" ; truyền ký tự “U” 
109 
ACALL TRUYEN 
SJMP AGAIN ; lap lai 
;--------chuong trinh con truyen du lieu noi tiep 
TRUYEN: MOV SBUF, A ; nạp SBUF 
HERE: JNB TI, HERE ; kiểm tra cờ TI 
CLR TI ; xóa cờ để truyền ký tự tiếp theo 
RET ; trở về chương trình chính 
Ví dụ2 : Nhận dữ liệu nối tiếp 
Lập trình cho 8051 nhận các byte dữ liệu nối tiếp và chuyển chúng đến cổng 
P0 , tốc độ 9600 baud , 8 bít dữ liệu và 1 bít Stop 
Chương trình : 
MOV TMOD,#20H; chọn Timer 1 chế độ 2 
MOV TH1,#253; chọn tốc độ 9600 baud 
MOV SCON,#50H ;khung dữ liệu 8 bit, 1 stop 
SETB TR1 ; khởi động Timer 1 
HERE: JNB RI,HERE ; kiểm tra RI 
MOV A, SBUF ; lưu ký tự vào thanh ghi A 
MOV P0, A ; gửi ra cổng P0 
CLR RI ; xóa cờ RI 
SJMP HERE ; tiếp tục nhận dữ liệ 
5.4. Các chế độ hoạt động 
 a.Chế độ 0 : Thanh ghi dịch 8 bít 
Khi ghi 00 vào bít SM0 , SM1 thì chế độ 0 được xác lập . 
- Chân RxD : Để thu hoặc phát dữ liệu nối tiếp 
- Chân TxD : Để xuất xung Clock dịch bít 
- Bít có ý nghĩa nhỏ nhất ( LSB ) được thu hoặc phát trước tiên . Tốc độ baud 
bằng 1/12 tần số mạch dao động trên chip . 
- Việc phát dữ liệu được bắt đầu bằng việc ghi dữ liệu vào SBUF . dữ liệu được 
dịch ra ngoài trên chân RxD , chân TxD sẽ phát xung dịch bít . Mỗi bít được truyền 
đi trong 1 chu kỳ máy ( 12 xung nhịp ) 
110 
Giản đồ thời gian phát dữ liệu như sau : 
- Việc thu dữ liệu được bắt đầu khi bít REN = 1 và RI = 0 . 
Giản đồ thời gian thu dữ liệu nối tiếp như sau : 
111 
- Một ứng dụng cụ thể của chế độ 0 là mở rộng thêm cổng ra cho 8051 : ghép 
Với chân RxD và TxD một vi mạch thanh ghi dịch nối tiếp – song song để tạo thêm 
8 đường ra như sau : 
b. Chế độ 1 : UART 8 bit có tốc độ baud thay đổi 
Trong chế độ 1 cổng nối tiếp của 8051 hoạt động như một bộ thu phát không 
đồng bộ 8 bít có tốc độ baud thay đổi . 
- Mỗi ký tự dữ liệu được bắt đầu bằng 1 bít START = 0 và kết thúc bằng 1 bít 
STOP = 1 . 
- Bít chẵn lẻ đôi khi được đưa vào giữa bít dữ liệu sau cùng và bít Stop . 
- 10 bít dữ liệu được thu ở chân RxD và 10 bít dữ liệu được phát ở chân TxD 
gồm : 1 bít start = 0 ; 8 bít dữ liệu ; 1 bít stop = 1 
Ta có giản đồ truyền nhận dữ liệu ở chế độ 1 như sau : 
112 
- Khi hoạt động thu , bít stop được gán cho bít RB8 của SCON . Hoạt động thu 
được bắt đầu khi có sự chuyển trạng thái từ 1 xuống 0 ở chân RxD ( Bít start ) , bít 
start được bỏ qua và 8 bít dữ liệu được nhận tuần tự vào thanh ghi dịch bít của cổng 
nối tiếp . Bít thứ 9 được đưa đến RB8 , cờ ngắt RI được sét bằng 1 . hoạt động thu 
chỉ xẩy ra khi trước đó RI = 0 ( để đảm bảo phần mềm đã đọc ký tự trước đó ) và 
bít stop nhận được = 1 hoặc SM2 = 0 
- Hoạt động phát được khởi động bằng cách ghi dữ liệu vào SBUF , và thực sự 
bắt đầu khi bộ đếm cung cấp tốc độ baud bị tràn . 
- Tốc độ baud ở chế độ 1,2 và 3 được cung cấp bởi bộ Timer 1 ( Với 8051 ) 
hoặc Timer 1 , 2 hay cả 1 và 2 ( Với 8052 ) trong đó một Timer cho tốc độ baud thu 
, 1 Timer cho tốc độ baud phát nếu tốc độ thu và phát khác nhau . 
+ Khi dùng Timer 1 cung cấp tốc độ baud 
Dùng Timer 1 cung cấp tốc độ baud cho cổng nối tiếp 
Khi sử dụng các bộ Timer cung cấp tốc độ baud cho Port nối tiếp thì thạch 
anh có tần số 11.0592 Mhz được khuyến cáo nên dùng vì Với tần số này sẽ tạo 
được các tốc độ baud chuẩn Với sai số bằng 0. 
Ví dụ : Muốn có tốc độ baud là 9600 thì chế độ Timer 1 là thế nào Với Thạch 
anh tần số 11.0592MHz ? 
Tốc độ tràn của Timer 1 sẽ là f1=9600x32=307 200 (Hz). ( Hoặc nhân Với 
16 nếu bít SMOD của thanh ghi PCON = 1 ) 
Chu kỳ của xung clock cấp cho Timer 1 sẽ là : 
f2=11059200 /12 (Hz) = 921 600 Hz . 
Để tốc độ tràn của Timer 1 có tần số là 307 200Hz thì Timer 1 đếm 3 xung 
tần số f2 ( = f2/f1 = 921 600/307 200 = 3 ) sẽ tràn 1 lần . 
ố
c
113 
Nếu Timer 1 làm việc ở chế độ 2 ( tự nạp lại ) thì giá trị nạp cho TH1 là 253 
( chế độ 2 đếm tối đa 8bit là : 256 – 3 = 253 ) 
 + Khi dùng Timer 2 cung cấp tốc độ baud 
Khác Với Timer 1, Timer 2 được cấp xung clock có tần số bằng 1/2 tần số của 
bộ dao động thạch anh. 
 theo hình trên , giả sử cần tốc độ baud là 9600 thì giá trị nạp cho Timer 2 sẽ là 
-(11059200/2)/(9600x16) = -36 hay giá trị nạp cho TH2 , TL2 là FFDC ( 65535+1-
36 = 65500 ) 
c. Chế độ 2 : UART 9 bit có tốc độ baud cố định 
ở chế độ 2, Port nối tiếp hoạt động như 1 bộ UART 9 bit, một khung truyền sẽ 
gồm 11 bit, trong đó bắt đầu là bit Start, tiếp theo là 8 bit dữ liệu, tiếp theo là bit dữ 
liệu thứ 9 (là bit TB8 nếu là khung truyền, là bit RB8 nếu là khung nhận), cuối 
cùng là bit Stop. Chế độ này thường được dùng khi cần chèm thêm bit kiểm tra 
chẵn lẻ vào trong khung truyền để giảm bớt lỗi đường truyền. 
Tốc độ baud cố định như hình vẽ: 
d. Chế độ 3: Chế độ 3 là sự kết hợp của chế độ 1 và chế độ 2, nghĩa là Port nối 
tiếp hoạt động như 1 bộ UART 9 bit và tốc độ baud của UART là thay đổi giống 
như chế độ 1 (được cung cấp bởi Timer 1 và Timer 2). 
ố
c
ố
c
ố
c
114 
5.5. Truyền thông đa xử lí 
Truyền thông đa xử lí là một môi trường mạng sử dụng nhiều 8051 được sắp 
xếp theo mô hình chủ tớ, sử dụng chế độ 2 và 3 của port nối tiếp. 
Khi bộ xử lí chủ muốn truyền dữ liệu đến một bộ xử lí tớ, nó sẽ gửi đi một byte 
xác định địa chỉ bộ xử lí tớ, byte địa chỉ có bit thứ 9 bằng 0. Các bộ xử lí khác bị 
ngắt.Bộ xử lí được định địa chỉ sẽ set bit SM2 và bắt đầu nhận dữ liệu. 
Bit SM2 không ảnh hưởng đến chế độ 0, và trong chế độ 1 bit này có thể được 
dùng để kiểm tra tính hợp lệ của bit stop. Khi SM2 bằng 1, ngắt thu sẽ không được 
tích cực trừ khi bit stop la hợp lệ. 
5.6. Ghép nối 8051 Với RS232 : 
a. Chuẩn RS232 : 
Ghép nối qua cổng nối tíếp RS-232 là một trong những kỹ thuật được sử dụng 
rộng rãi để ghép nối các thiết bị truyền thông dữ liệu được sản xuất bởi các hãng 
khác nhau . 
Chuẩn RS-232 dùng một đường dẫn để truyền dữ liệu và một đường dẫn khác 
để nhận dữ liệu. 
Chuẩn RS-232 (RS = Recommended Standard) khi mới chỉ là chuẩn không 
chính thức đó được nhiều công ty máy tính và thiết bị đo lường chấp nhận. Sau 
đấy, Hiệp hội các nhà công nghiệp Điện tử (EIA: The Electronic Industries 
Association) đó xây dựng thành một tiêu chuẩn chính thức vào năm 1962 . Nhược 
điểm của tiêu chuẩn này chỉ cho phép sử dụng đường truyền ngắn Với tốc độ bit 
thấp , thí dụ như tốc độ bit là 19600 bps (bits per second) và khoảng cách cực đại là 
20 mét. Các tiêu chuẩn truyền thông nối tiếp ra đời sau như RS-422, RS-449 và 
RS-485 cho phép truyền trên đường cáp rất dài Với tốc độ bit cao. Chẳng hạn RS-
115 
422 cho phép truyền Với tốc độ lên đến 10 Mbps và khoảng cách hơn 1000 mét, 
đồng thời có thể sử dụng cáp xoắn 2 sợi, cáp đồng trục và cáp quang. 
Có hai phiên bản RS-232 được lưu hành trong thời gian tương đối dài là RS-232B 
và RS-232C. Cho đến nay, RS-232B là phiên bản đã cũ, nay đã ít được sử dụng. 
Còn RS-232 C hiện vẫn còn tồn tại và thường được gọi ngắn gọn là chuẩn RS-232 
(nhưng đây không phải là phiên bản ban đầu năm 1962). Ở một số nước Tây Âu, 
người ta còn gọi chuẩn ghép nối RS-232 là chuẩn V24. 
Việc thiết kế giao tiếp Với cổng RS-232 cũng tương đối dễ dàng, đặc biệt khi chọn 
chế độ hoạt động là không đồng bộ và tốc độ truyền dữ liệu thấp. 
Tuy nhiên do chuẩn RS-232 được thiết lập trước chuẩn logic họ TTL rất lâu nên 
điện áp đầu vào và đầu ra của nó không tương thích Với mức TTL 
RS-232 sử dụng phương thức truyền không đối xứng , tức là sử dụng tín hiệu 
điện áp chênh lệch giữa một dây dẫn và đất , mức điện áp sử dụng dao động trong 
khoảng từ -15v đến 15V . Khoảng từ 3V đến 15V ứng Với giá trị logic 0 , khoảng 
từ -15V đến -3V ứng Với giá trị logic 1 . Trong khoảng điện áp từ -3V đến +3V là 
khoảng không xác định . Do đó để kết nối chuẩn RS-232 đến bất kỳ hệ vi điều 
khiển nào ta phải dùng các bộ biến đổi điện áp như MAX232 để chuyển đổi các 
mức logic TTL về mức điện áp RS-232 và ngược lại 
Sơ đồ chân của cáp RS232 được gọi là đầu nối DB-25 như hình vẽ . 
Số chân Mô tả DB-25 
1 
2 
3 
Đất cách ly (Protective Cround) 
Dữ liệu được truyền TxD (Transmitted data) 
Dữ liệu được nhận RxD (Received data) 
116 
4 
5 
6 
7 
8 
9/10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
Yêu cầu gửi RTS (Request To Send) 
Xóa để gửi CIS (Clear To Send) 
Dữ liệu sẵn sàng DSR (Data Set Ready) 
Đất của tín hiệu GND (Signal Ground) 
Tách tín hiệu mang dữ liệu DCD (Data Carrier Detect) 
Nhận để kiểm tra dữ liệu (Received for data testing) 
Chưa dùng 
Tách tín hiệu mang dữ liệu thứ cấp (Secondary data 
carrier detect) 
Xóa để nhận dữ liệu thứ cấp (Secondary Clear to Send) 
Dữ liệu được truyền thứ cấp (Secondary Transmit Signal 
Element Timing) 
Truyền phân chia thời gian phần tử tín hiệu (Transmit 
Signal Element Timing) 
Dữ liệu được nhận thứ cấp(Secondary Received data) 
Nhận phân chia thời gian phần tử tín hiệu (Receiveo 
Signal Element Timing) 
Chưa dựng 
Yêu cầu để nhận thứ cấp (Secondary Request to Send) 
Đầu dữ liệu sẵn sàng (Data Terminal Ready) 
Phát hiện chất lượng tín hiệu (Signal Qualyty Detector) 
Báo chuông (Ring Indicator) 
Chọn tốc độ tín hiệu dữ liệu (Data Signal Rate Select) 
Truyền phân chia thời gian tín hiệu (Transmit Signal 
Element Timing) 
Chưa dựng 
Do không phải tất cả các chân đều được sử dụng nên IBM đưa ra chuẩn vào ra 
nối tiếp chỉ sử dụng 9 chân gọi là DB – như sau : 
117 
Số chân Mô tả DB-9 
1 
2 
3 
4 
5 
6 
7 
8 
9 
Data carrier detect (DCD) 
Received data (RxD) 
Transmitted data (TxD) 
Data terminal ready (DTR) 
Signal ground (GND) 
Data set ready (DSR) 
Request to send (RTS) 
Clear to send (CTS) 
Ring indicator (RL 
Tách tín hiệu mang dữ liệu 
Dữ liệu được nhận 
Dữ liệu được gửi 
Đầu dữ liệu sẵn sàng 
Đất của tín hiệu 
Dữ liệu sẵn sàng 
Yêu cầu gửi 
Xóa để gửi 
Báo chuông 
b. Ghép nối 8051 Với RS232 : 
Bộ điều khiển MAX232 có hai bộ điều khiển để nhận và truyền dữ liệu . 
118 
Các bộ điều khiển được dùng cho TxD được gọi là T1 và T2 , trong nhiều 
trường hợp chỉ một cặp được dùng , ví dụ T1 và R1 được dùng đối Với các chân 
TxD và RxD của 8051 . 
 Các bộ điều khiển đường T1 có gán T1in và T1 out trên các chân số 11 và 
14 tương ứng , trong đó chân T1 in ở phía TTL và được nối Với chân TxD của vi 
điều khiển , còn chân T1 out ở phía RS232 và được nối tới chân RxD của đầu nối 
DB . 
 Bộ điều khiển đường R1 cũng được gán R1 in và R1 out trên chân 13 và 12 
tương ứng . Chân R1 in ( chân số 13 ) là phía RS232 được nối tới chân TxD của 
đầu nối DB của RS232 và chân R1 out ( chân số 12 ) là phía TTL và được nối tới 
chân RxD của vi điều khiển . 
119 
THỰC HÀNH GIAO TIẾP VÀO RA I/O 
Cơ bản về giao tiếp vào ra I/O 
- Các cổng trong P89V51RB2 và cơ bản về chức năng của các cổng 
- Cách cấu hình vào ra I/O 
- Viết chương trình nháy led 
1. Giới thiệu giao tiếp vào ra I/O 
Lập trình I/O là lập trình đơn giản và cơ bản nhất, nhưng lại được sử dụng 
nhiều nhất, chúng ta điều khiển on/off bóng đèn, động cơ, hay 1 thiết bị nào đó 
cũng là 1 dạng của điều khiển I/O. 
Để giảm bớt số chân ra, một số chân của P89V51RB2 là các chân đa chức 
năng, nó phục vụ cho các thiết bị ngoại vi. Ở đây khái niệm thiết bị ngoại vi không 
có nghĩa là 1 chip khác mua rời bên ngoài mà là các mô đun được tích hợp sẵn 
trong chip như các mô đun ADC, Counter.... Khi các thiết bị ngoại vi này được 
enable thì các chân này không được sử dụng như các chân của các cổng I/O thông 
thường nữa. 
P89V51RB2 có 4 cổng vào ra là P0, P1, P2, P3. Tất cả các cổng này đều có 
thể cấu hình làm chức năng vào/ra cơ bản. 
Ví dụ chương trình nhấp nháy led 
Nhấp nháy led là một ví dụ kinh điển cho những người mới tiếp xúc Với một loại 
vi điều khiển nào đó. Ví dụ sau đây sẽ làm nhấp nháy led nối vào chân RB1 của vi 
điều khiển 
LED là viết tắt của chữ Light Emitting Diode, có nghĩa là diode phát quang, 
loại diode này khi được phân cực thuận Với đủ điều kiện điện áp và dòng điện thì 
sẽ phát ra ánh sáng. 
LED có ứng dụng rất rộng rãi, chúng ta thường thấy led được dùng trong đèn 
báo nguồn, đèn nháy, bảng quang báo, gần đây, người ta đang phát triển led làm 
đèn chiếu sáng, do dùng LED tiết kiệm được điện và hiệu quả cao trong chiếu 
sáng. 
Sơ đồ mạch 
Sơ đồ ghép nối một led : 
120 
Trong ví dụ sau, chúng ta sẽ nối 8 led vào cổng P1, sơ đồ nối như hình trên. 
Sau đây là sơ đồ thuật toán 
121 
BÀI 2: LED 7 THANH 
Có 2 loại led 7 thanh 
• Anod chung 
• Catot chung 
Bố trí vị trí các thanh trên Led 7 thanh 
122 
3
7 6 4 2 1 10 9 5
A B C D E F G DP
8
D12A
Catot chung
3
7 6 4 2 1 10 9 5
8
D13A
Anot chung
Led ma trận là một loạt các led đơn được sắp xếp thành các hàng và các cột 
dạng ma trận, các led có cùng hàng thì sẽ chung 1 chân, chân còn lại nối chung 
Với các led nằm cùng cột. 
Ma trận led được ứng dụng rất nhiều trong thực tế, điển hình là các bảng 
quang báo. 
123 
Bài 1: Hiển thị từng số trên Led 7 thanh 
Bài 2 : Đếm từ 0->9 
Bài 3 : Đếm từ 00->99. 
Bài 4 : Hiển thị số 2010 ( quét led ) 
• Bài tập 
• Viết chương trình hiển thị số 1234 led 4 led 7 thanh theo như gợi ý trên. 
• Viết chương trình đếm trong 1 khoảng bất kì nhỏ hơn 9999, ví dụ từ 1000 
đến 65535. Số đếm được hiển thị lên 4 led 7 thanh. 

File đính kèm:

  • pdfgiao_trinh_ky_thuat_vi_xu_ly.pdf