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.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: 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:
- giao_trinh_ky_thuat_vi_xu_ly.pdf