Bài Bài giảng Kỹ thuật Vi xử lý - Chương 4

20 835 2
Bài Bài giảng Kỹ thuật Vi xử lý - Chương 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Là loại máy tính được thiết kế để giải các bài toán lớn với tốc độ rất nhanh -Nó làm việc với số liệu có độ dài từ 64 bit hoặc hơn và được trang bị bộ nhớ rất lớn, vì vậy kích thước lớn. -Chúng thường được dùng để điều khiển các hệ thống thiết bị dùng trong quân sự hoặc các hệ thống máy móc của chương trình nghiên cứu vũ trụ, để xử lý thông tin trong ngành ngân hàng, vv… Ví dụ : IBM 4381, Honeywell DSP8 Loại mạnh nhất trong các máy tính lớn gọi là siêu máy tính (supercomputer). Ví dụ : Y-MP/832 của Gray.

Bài giảng VI XỬ Chương 4: Các chức năng của họ MCS-51 http://www.ebook.edu.vn 1 CHƯƠNG 4: CÁC CHỨC NĂNG CỦA HỌ VI ĐIỀU KHIỂN MCS-51 I. TIMER 1. Giới thiệu - Một bộ đònh thời (timer) là một chuỗi các Flip Flop (FF) với mỗi FF là một mạch chia 2. Chuỗi này nhận một tín hiệu ngõ vào làm xung clock kích cho tầng đầu tiên, ngõ ra của tầng đầu lại trở thành nguồn xung clock cho tầng kế tiếp. Ngõ ra của tầng cuối cùng làm xung clock cho một FF báo tràn timer hay còn gọi là cờ tràn (overflow flag). Cờ tràn này sẽ được kiểm tra bởi phần mềm hay tạo ra một ngắt (interrupt). Hình 4.1 minh họa một timer đơn giản 3-bit. - Giá trò nhò phân trong các FF của timer được dùng để tính số xung clock (số chu kì) của tín hiệu ngõ vào từ khi timer bắt đầu đếm. Hình 4.1 - 8051/8031 có 2 timer 16 bit: + Timer 0: số đếm chứa trong thanh ghi TH0 (byte cao) và TL0 (byte thấp) + Timer 1: số đếm chứa trong thanh ghi TH1 (byte cao) và TL1 (byte thấp) Ngoài ra, các chip 8032/8052 còn có thêm timer 2. - Các timer chỉ đếm lên (0000H ÷ FFFFH). Khi số đếm tràn từ FFFFH xuống 0000H, cờ tràn sẽ được đặt lên 1. 2. Các thanh ghi của timer: a. Thanh ghi chế độ đònh thời (TMOD): MSB LSB Gate T/C M1 M0 Gate T/C M1 M0 Timer 1 Timer 0 - Không được đònh đòa chỉ bit. - Được dùng để đònh chế độ hoạt động cho các timer. - Chức năng từng bit: + M1, M0: chọn chế độ hoạt động. M1 M0 Chế độ (Mode) 0 0 0 0 1 1 1 0 2 1 1 3 + T/C : bit chọn chức năng đếm hoặc đònh thời cho timer. + Gate: bit điều khiển cổng cho bộ đònh thời. D/Q Q D/Q Q D/Q Q D /Q Q Flag Clock LSB MSB Bài giảng VI XỬ Chương 4: Các chức năng của họ MCS-51 http://www.ebook.edu.vn 2 b. Thanh ghi điều khiển đònh thời (TCON): MSB LSB TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 Timer Interrupt - Chứa các bit điều khiển và trạng thái của timer 0 và 1 ở 4 bit cao, 4 bit thấp được dùng cho chức năng ngắt (interrupt). - Được đònh đòa chỉ bit. - Chức năng từng bit: + TFx: cờ tràn của timer x (x là 0 hay 1) + TRx = 0: không cho phép timer chạy. TRx = 1: cho phép timer chạy. 3. Điều khiển các bộ đònh thời Hình 4.2 - T/C (Counter/Timer): + T/C = 0: timer nhận xung clock từ bộ dao động nội (sau khi qua bộ chia 12). → Ứng dụng: thường dùng cho việc đònh thời một khoảng thời gian (mỗi số đếm tương ứng với 1 chu kỳ máy). + T/C = 1: timer nhận xung clock từ chân Tx (P3.4 đối với timer 0 và P3.5 đối với timer 1). → Ứng dụng: thường dùng để đếm sự kiện bên ngoài. Mỗi sự kiện tạo ra một xung kích vào chân Tx (tích cực cạnh xuống). Số các sự kiện được xác đònh trong phần mềm bằng cách đọc các thanh ghi đònh thời (THx/TLx), giá trò 16-bit trong các thanh ghi này tăng theo mỗi sự kiện. - Gate: + Gate = 0: việc điều khiển timer x chỉ phụ thuộc vào TRx. TRx = 0: không cho phép timer x chạy. TRx = 1: cho phép timer x chạy. ÷12 On-chip Osc. T/C TRx Gate 0: trên 1: dưới 0: trên 1: dưới TLx THx TFx Tx INTx 8051 Bài giảng VI XỬ Chương 4: Các chức năng của họ MCS-51 http://www.ebook.edu.vn 3 + Gate = 1: việc điều khiển timer x phụ thuộc vào TRx và xINT . TRx = 1 và xINT = 1: cho phép timer chạy. → Ứng dụng: thường dùng để đo độ rộng xung (thời gian xung ở mức cao) đưa vào ở chân xINT . Độ rộng xung tương ứng với số đếm trong THx/TLx. 4. Các chế độ đònh thời a. Chế độ 0 - Xác lập M1M0 = 00 - Là chế độ đònh thời 13-bit tương thích với bộ vi điều khiển 8048 trước đó. Chế độ này thường ít dùng. b. Chế độ 1 - Xác lập M1M0 = 01 - Là chế độ đònh thời 16-bit: số đếm 16-bit chứa trong cặp thanh ghi THx/TLx → khoảng đếm tối đa là 65536 chu kì máy. - Giá trò bắt đầu đếm được nạp vào THx và TLx. Khi timer tràn, để nạp lại giá trò bắt đầu đếm cần phải dừng timer. dụ 1.1: Viết 1 đoạn chương trình khởi động timer 0 ở chế độ 1 và dùng timer 0 để tạo ra 1 xung mức cao rộng 1ms ở chân P1.0. Giả sử dùng thạch anh 12MHz. Giải: MOV TMOD,#00000001B ; khởi động timer 0 ở chế độ 1 CLR P1.0 ; xóa P1.0 MOV TH0,#HIGH(-1000) ; nạp byte cao của -1000 (FCH) vào TH0 MOV TL0,#LOW(-1000) ; nạp byte thấp của -1000 (18H) vào TL0 SETB TR0 ; cho timer 0 chạy SETB P1.0 ; đặt P1.0 lên mức cao JNB TF0,$ ; chờ cho đến khi timer tràn (TF0 = 1) CLR P1.0 ; xóa P1.0 CLR TF0 ; xóa cờ tràn TF0 để dùng cho các lần sau dụ 1.2: Viết chương trình con tạo trễ 200ms dùng timer 1. Giả sử f OSC = 12MHz. Giải: f OSC = 12MHz → chu kỳ máy s1 f 12 T OSC M μ== Nếu dùng timer 1 ở chế độ 1 thì thời gian đònh thời tối đa là 65536 μ s < 200.000 μ s = 200ms → phải dùng thêm vòng lặp ngoài. Để đơn giản, mỗi vòng lặp sẽ delay 50.000 μ s → số lần lặp là 4. Chương trình: DELAY_200MS: MOV TMOD,#10H MOV R7,#4 LOOP: MOV TH1,#HIGH(-50000) MOV TL1,#LOW(-50000) SETB TR1 JNB TF1,$ CLR TR1 CLR TF1 DJNZ R7, LOOP RET Bài giảng VI XỬ Chương 4: Các chức năng của họ MCS-51 http://www.ebook.edu.vn 4 dụ 1.3: Viết chương trình dùng timer tạo sóng vuông đối xứng có tần số 1KHz trên chân P1.0. Giải: f = 1KHz → chu kỳ s1000s10 10 1 f 1 T 3 3 μ==== − → t H = t L = 500 μ s Tần số thạch anh: f OSC = 12MHz → chu kỳ máy s1 f 12 T OSC M μ== → t H = t L = 500T M Chương trình: (sử dụng timer 0) ORG 0 MOV TMOD,#01H LOOP: MOV TH0,#HIGH(-500) MOV TL0,#LOW(-500) SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 CPL P1.0 SJMP LOOP END c. Chế độ 2 - Xác lập M1M0 = 10 - Là chế độ đònh thời 8 bit tự động nạp lại. + TLx: bộ đếm 8 bit → khoảng đếm tối đa là 256 chu kì máy. + THx: lưu giá trò bắt đầu đếm được cài đặt. - Mỗi khi timer tràn từ FFH xuống 00H, không chỉ cờ tràn được đặt lên 1 mà giá trò lưu trong THx còn được tự động nạp vào cho TLx (không cần dừng timer) và việc đếm sẽ tiếp tục từ giá trò này cho đến khi xảy ra lần tràn kế tiếp rồi lặp lại… dụ 1.4: Viết chương trình con delay 100 μ s dùng timer. Giả sử f OSC = 12MHz. Giải: Do khoảng thời gian tạo trễ là 100 μ s = 100 T M < 256 → có thể dùng timer ở chế độ 2. Chương trình: DELAY_100US: MOV TMOD,#02H ; khởi động timer 0 ở chế độ 2 MOV TH0,#-100 ; nạp giá trò bắt đầu đếm –100 vào TH0 MOV TL0,TH0 SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 RET t H t L T Bài giảng VI XỬ Chương 4: Các chức năng của họ MCS-51 http://www.ebook.edu.vn 5 Lưu ý: thông thường lệnh khởi động chế độ timer được đặt trong chương trình chính. dụ 1.5: Viết chương trình dùng timer 1 để tạo sóng vuông đối xứng, tần số f = 10KHz tại chân P1.7 (giả sử f OSC = 6MHz). Giải: f = 10KHz → chu kỳ s100s10 10.10 1 f 1 T 4 3 μ==== − → t H = t L = 50 μ s Tần số thạch anh: f OSC = 6MHz → chu kỳ máy s2 f 12 T OSC M μ== → t H = t L = 25T M Chương trình: ORG 0 MOV TMOD,#20H MOV TH1,#-25 SETB TR1 LOOP: JNB TF1,$ CPL P1.7 CLR TF1 SJMP LOOP END 4. Chế độ 3 - Xác lập M1M0 = 11 - Là chế độ tách timer: timer 0 16-bit được chia thành 2 timer 8-bit riêng lẽ TL0 và TH0 với cờ tràn tương ứng là TF0 và TF1 (TF1 lúc này không còn là cờ tràn của timer 1 nữa). - Timer 1 không hoạt động ở chế độ 3 nhưng có thể được dùng trong các chế độ khác (không sử dụng cờ tràn TF1). Chú ý: Các kỹ thuật thường được dùng để tạo các khoảng thời gian đònh thời khác nhau Khoảng thời gian (chu kỳ máy) Kỹ thuật ≈ 10 Điều chỉnh phần mềm 256 Bộ đònh thời 8 bit tự động nạp lại 65536 Bộ đònh thời 16 bit Không giới hạn Bộ đònh thời 16 bit + các vòng lặp II. PORT NỐI TIẾP 1. Giới thiệu - Chức năng cơ bản của port nối tiếp là chuyển đổi dữ liệu từ song song thành nối tiếp khi phát và từ nối tiếp thành song song khi thu. - Truy xuất port nối tiếp thông qua 2 chân: + RxD (P3.0): chân thu của port nối tiếp. + TxD (P3.1): chân phát của port nối tiếp. - Có khả năng hoạt động song công (full duplex), tức là thu và phát đồng thời. Ngoài ra port nối tiếp còn có chức năng đệm dữ liệu khi thu cho phép một tự được nhận và lưu giữ trong bộ đệm thu trong khi tự tiếp theo được nhận vào. Nếu vi điều khiển đọc tự thứ nhất trước khi tự thứ hai được thu đầy đủ, dữ liệu sẽ không bò mất. - Các thanh ghi liên quan đến port nối tiếp: + SCON: chứa các bit trạng thái và các bit điều khiển port nối tiếp. + SBUF: là bộ đệm của port nối tiếp. Thực tế, port nối tiếp gồm 2 bộ đệm riêng cho phát và thu. Bài giảng VI XỬ Chương 4: Các chức năng của họ MCS-51 http://www.ebook.edu.vn 6 - Tần số hoạt động của port nối tiếp, hay còn gọi là tốc độ baud (baud rate), có thể cố đònh hoặc thay đổi. Khi dùng tốc độ baud thay đổi, timer 1 được lập trình để cung cấp xung clock tốc độ baud phù hợp. Hình 4.3 2. Thanh ghi điều khiển port nối tiếp SCON MSB LSB SM0 SM1 SM2 REN TB8 RB8 TI RI - Đòa chỉ 99H. - Đònh đòa chỉ bit. - Chức năng các bit: + SM0, SM1: chọn chế độ hoạt động của port nối tiếp SM0 SM1 Chế độ (Mode) Mô tả 0 0 0 Thanh ghi dòch 0 1 1 UART 8 bit tốc độ thay đổi 1 0 2 UART 9 bit tốc độ cố đònh 1 1 3 UART 9 bit tốc độ thay đổi + SM2: chọn chế độ hoạt động của port nối tiếp. SM2 = 1: cho phép truyền thông đa xử ở các chế độ 2 và 3; bit RI sẽ không được tích cực nếu bit thứ 9 nhận được là 0. + REN: bit cho phép thu. REN = 1: cho phép thu. REN = 0: không cho phép thu. + TB8: bit phát thứ 9 (ở chế độ 2 và 3), có thể đặt và xóa bằng phần mềm. + RB8: bit thu thứ 9 (ở chế độ 2 và 3), có thể đặt và xóa bằng phần mềm. SBUF Q (write-only) CLK D Thanh ghi dòch CLK SBUF (read-only) TXD (P3.1) RXD (P3.0) Xung clock tốc độ baud (thu) Xung clock tốc độ baud (phát) Bus nội 8051 Bài giảng VI XỬ Chương 4: Các chức năng của họ MCS-51 http://www.ebook.edu.vn 7 + TI: cờ ngắt phát. Cờ này được đặt lên 1 bằng phần cứng khi phát xong 1 tự (để báo bộ đệm phát đã rỗng), được xóa bằng phần mềm. + RI: cờ ngắt thu. Cờ này được đặt lên 1 bằng phần cứng khi thu xong 1 tự (để báo bộ đệm thu đã đầy), được xóa bằng phần mềm. 3. Các chế độ hoạt động của port nối tiếp a. Chế độ 0 (thanh ghi dòch 8 bit) - Xác lập SM0 SM1 = 0 0 - Dữ liệu nối tiếp được thu/phát thông qua chân RxD. - Chân TxD phát xung clock để dòch bit. - Khi thu/phát dữ liệu 8 bit, bit LSB được thu/phát trước tiên. - Tốc độ baud cố đònh và bằng 1/12 tốc độ dao động trên chip (f = f M = f OSC /12). Một ứng dụng khả thi của chế độ 0 là mở rộng thêm các ngõ ra cho 8051. Một vi mạch thanh ghi dòch nối tiếp-song song có thể được nối với các chân TxD và RxD của 8051 để cung cấp thêm 8 đường xuất. Các thanh ghi dòch khác có thể ghép cascade với thanh ghi dòch đầu tiên để mở rộng thêm nữa. Hình 4.4 b. Chế độ 1 (UART 8 bit tốc độ baud thay đổi) - Xác lập SM0 SM1 = 0 1 - Port nối tiếp hoạt động như một bộ thu/phát bất đồng bộ (universal asynchronous receiver/transmitter) UART 8 bit có tốc độ baud thay đổi được. - Truyền 10 bit: 1 bit Start + 8 bit data + 1 bit Stop (luôn mức 0) (bit LSB trước) (luôn mức 1) - Tốc độ baud = (tốc độ tràn của timer 1) / 32 (nếu bit SMOD = 0) = (tốc độ tràn của timer 1) /16 ( nếu bit SMOD = 1) * Khi phát: - Trước tiên, dữ liệu được ghi vào SBUF (phát). - Dữ liệu được dòch bit để xuất ra trên đường TxD sẽ bắt đầu bằng bit Start , tiếp theo là 8 bit dữ liệu với LSB phát trước và cuối cùng là bit Stop. Bit Start và Stop do phần cứng tự động chèn vào. Thời gian của mỗi bit là nghòch đảo của tốc độ baud. - Cờ ngắt TI sẽ được tự động đặt bằng 1 bởi phần cứng ngay khi bit Stop xuất hiện trên đường TxD (tức là đã phát xong 1 tự dữ liệu) để báo bộ đệm phát đã rỗng. * Khi thu: - Việc thu được khởi động bởi sự chuyển trạng thái từ 1 xuống 0 trên đường RxD (bắt đầu bit Start). - Khi 1 bit Start hợp lệ được phát hiện, bit Start được bỏ qua và 8 bit dữ liệu được nhận tuần tự vào thanh ghi dòch bit của port nối tiếp. Sau khi thu xong cả 8 bit, các điều sau sẽ xảy ra: + Bit thứ 9 (bit Stop) được đưa đến bit RB8 trong SCON. 8051 TXD (P3.1) RXD (P3.0) CLOCK Data Thanh ghi dòch 8 ngõ ra mở rộng Bài giảng VI XỬ Chương 4: Các chức năng của họ MCS-51 http://www.ebook.edu.vn 8 + 8 bit data được nạp vào SBUF (thu). + Cờ ngắt thu RI được đặt lên 1 bởi phần cứng. Tuy nhiên các điều trên chỉ xảy ra nếu tồn tại các điều kiện sau: + REN = 1 + RI = 0 (báo bộ đệm thu chưa đầy). + SM2 = 0 hoặc SM2 = 1 và bit Stop nhận được bằng 1. c. Chế độ 2 (UART 9 bit, tốc độ baud cố đònh) - Xác lập SM0 SM1 = 1 0 - Port nối tiếp hoạt động ở chế độ UART 9 bit có tốc độ baud cố đònh. - Truyền 11 bit: 1 bit Start + 8 bit data + bit data thứ 9 + 1 bit Stop (luôn mức 0) (bit LSB trước) (lập trình được) (luôn mức 1) - Tốc độ baud = f OSC / 64 (nếu bit SMOD = 0) hay f OSC / 32 (nếu bit SMOD = 1) - Khi phát, bit data thứ 9 là bit bất kỳ đặt ở TB8 trong thanh ghi SCON. - Khi thu, bit data thứ 9 nhận được sẽ đặt vào RB8 trong thanh ghi SCON. d. Chế độ 3 (UART 9 bit, tốc độ baud thay đổi được) - Xác lập SM0 SM1 = 1 0 - Port nối tiếp hoạt động ở chế độ UART 9 bit có tốc độ baud thay đổi được, tương tự như chế độ 2 nhưng tốc độ baud được lập trình và được cung cấp bởi timer 1. - Tốc độ baud = (tốc độ tràn của timer 1) / 32 (nếu bit SMOD = 0) = (tốc độ tràn của timer 1) / 16 (nếu bit SMOD = 1) * Giải thuật chương trình con thu và phát một byte: * Chương trình: INCHAR: ; CT con thu 1 byte OUTCHAR: ; CT con phát 1 byte JNB RI,$ JNB TI,$ CLR RI CLR TI MOV A,SBUF MOV SBUF,A RET RET 4. Tốc độ baud cho port nối tiếp Ở chế độ 1 và 3, tốc độ baud cho port nối tiếp được lập trình bởi timer 1: Tốc độ baud = (tốc độ tràn timer 1) / 32 (SMOD = 0) / 16 (SMOD = 1) INCHAR RI = 1 ? Xóa cờ RI Đọc SBUF RET OUTCHAR TI = 1 ? Xóa cờ TI Ghi ra SBUF RET YY NN Bài giảng VI XỬ Chương 4: Các chức năng của họ MCS-51 http://www.ebook.edu.vn 9 → tốc độ tràn timer 1 (f tràn ) = tốc độ baud x 32 (hay x16) → thời gian tràn timer 1 (T tràn ) = 1 / (tốc độ tràn timer 1) tràn M M tràn f f T T 1 timer cho nạp cần Số == dụ: Viết 1 đoạn chương trình tạo tốc độ baud 2400 (với f OSC = 12MHz, SMOD = 0) f tràn timer 1 = 2400 x 32 = 76800 Hz → T tràn timer 1 = 1/76800 = 13,021 μ s f OSC = 12MHz → T M = 1 μ s → Thời gian tràn timer 1 = 13,021/1 ≈ 13 μ s → sai số: (13,021 – 13)/13 = 0,16% MOV TMOD,#00100000B ; khởi động timer 1 ở mode 2 MOV TH1,#-13 ; thời gian tràn là 13T M SETB TR1 dụ: Tạo tốc độ baud 9600 (với f OSC = 12MHz, SMOD = 0) 3≈= × == 3,255 329600 12MHz/12 f f 1 timer cho nạp cần Số tràn M → sai số: (3,255 – 3) / 3 = 8,5% : khá lớn. dụ: Tạo tốc độ baud 1200 (với f OSC = 12MHz, SMOD = 0) 2626,042 321200 12MHz/12 f f 1 timer cho nạp cần Số tràn M ≈= × == → sai số: (26,042 – 26) / 26 = 0,16% Bảng tóm tắt một số tốc độ baud Tốc độ baud Tần số thạch anh SMOD Giá trò nạp cho TH1 Tốc độ baud thực tế Sai số 9600 12,000MHz 1 -7 (F9H) 8923 7% 2400 12,000MHz 0 -13 (F3H) 2404 0,16% 1200 12,000MHz 0 -26 (E6H) 1202 0,16% 19200 11,059MHz 0 -3 (FDH) 19200 0 9600 11,059MHz 0 -3 (FDH) 9600 0 2400 11,059MHz 0 -12 (F4H) 2400 0 1200 11,059MHz 0 -24 (E8H) 1200 0 → Cần truyền với tốc độ chính xác thì sử dụng thạch anh 11,059MHz. 5. Các dụ dụ 2.1: Viết chương trình phát 1 chuỗi mã ASCII kết thúc bằng tự null (có mã ASCII là 00H) ra port nối tiếp (không gởi tự null). Biết rằng chuỗi mã ASCII nằm trong RAM ngoài bắt đầu tại đòa chỉ 2000H. Giả sử truyền UART 8 bit, tốc độ baud 2400, f OSC = 12MHz. Giải: ORG 0 ; khởi động port nối tiếp MOV SCON,#01010010B ; port nối tiếp ở mode 1 MOV TMOD,#20H ; timer 1 ở mode 2 MOV TH1,#-13 ; tốc độ baud = 2400 SETB TR1 ; cho phép timer 1 chạy để tạo xung clock tốc độ baud Bài giảng VI XỬ Chương 4: Các chức năng của họ MCS-51 http://www.ebook.edu.vn 10 ; phát chuỗi mã ASCII MOV DPTR,#2000H ; trỏ đến đòa chỉ RAM ngoài 2000H LOOP: MOVX A,@DPTR ; lấy nội dung ô nhớ RAM ngoài vào A CJNE A,#00H,CONT ; kiểm tra xem có phải tự null không SJMP EXIT ; nếu đúng, kết thúc chương trình CONT: ; nếu không, phát tự đó ACALL OUTCHAR ; gọi chương trình con OUTCHAR INC DPTR ; tăng nội dung con trỏ SJMP LOOP ; lặp lại việc phát tự ; chương trình con OUTCHAR phát 1 byte dữ liệu (1 tự) OUTCHAR: JNB TI,$ ; chờ cờ TI bằng 1 báo bộ đệm phát rỗng CLR TI ; xóa cờ TI MOV SBUF,A ; chuyển nội dung thanh ghi A ra SBUF RET EXIT:NOP ; thêm lệnh NOP do END không phải là lệnh của 8051 END dụ 2.2: Viết chương trình nhập 1 chuỗi mã ASCII từ port nối tiếp và cất vào RAM nội bắt đầu từ đòa chỉ 30H. Chuỗi mã ASCII kết thúc bằng tự CR (có mã ASCII là 13H). Cất cả tự CR vào RAM nội và kết thúc chuỗi bằng cách thêm tự null. Giả sử truyền UART 8 bit, tốc độ baud 2400, f OSC = 12MHz, bit SMOD = 0. Giải: ORG 0 ; khởi động port nối tiếp MOV SCON,#01010010B ; port nối tiếp ở mode 1 MOV TMOD,#20H ; timer 1 ở mode 2 MOV TH1,#-13 ; tốc độ baud = 2400 SETB TR1 ; cho phép timer 1 chạy để tạo xung clock tốc độ baud ; nhập chuỗi mã ASCII MOV R0,#30H ; trỏ đến ô nhớ RAM nội 30H LOOP: ACALL INCHAR ; nhập 1 byte từ port nối tiếp vào A MOV @R0,A ; cất byte tự vào ô nhớ RAM nội INC R0 ; tăng nội dung con trỏ CJNE A,#13H,LOOP ; kiểm tra tự thu được có phải là CR không, ; nếu không thì lặp lại MOV @R0,#0 ; nếu đúng, kết thúc và chèn thêm tự null SJMP EXIT INCHAR: JNB RI,$ CLR RI MOV A,SBUF RET EXIT:NOP END

Ngày đăng: 27/08/2013, 14:21

Hình ảnh liên quan

CHƯƠNG 4: CÁC CHỨC NĂNG CỦA HỌ VI ĐIỀU KHIỂN MCS-51  - Bài Bài giảng Kỹ thuật Vi xử lý - Chương 4

4.

CÁC CHỨC NĂNG CỦA HỌ VI ĐIỀU KHIỂN MCS-51 Xem tại trang 1 của tài liệu.
Hình 4.1 - Bài Bài giảng Kỹ thuật Vi xử lý - Chương 4

Hình 4.1.

Xem tại trang 1 của tài liệu.
Hình 4.2 - Bài Bài giảng Kỹ thuật Vi xử lý - Chương 4

Hình 4.2.

Xem tại trang 2 của tài liệu.
Hình 4.3 2. Thanh ghi điều khiển port nối tiếp SCON  - Bài Bài giảng Kỹ thuật Vi xử lý - Chương 4

Hình 4.3.

2. Thanh ghi điều khiển port nối tiếp SCON Xem tại trang 6 của tài liệu.
Hình 4.4 - Bài Bài giảng Kỹ thuật Vi xử lý - Chương 4

Hình 4.4.

Xem tại trang 7 của tài liệu.
Bảng các vector ngắt: - Bài Bài giảng Kỹ thuật Vi xử lý - Chương 4

Bảng c.

ác vector ngắt: Xem tại trang 13 của tài liệu.
4.6. Giả sử có một hệ thống đếm số người đi vào một siêu thị như trong hình vẽ B4.6. Bộ cảm biến sẽ tạo ra 1 xung (kích cạnh xuống) đưa vào chân T1 của 8051 (P3.5) khi có 1 người đi  vào siêu thị - Bài Bài giảng Kỹ thuật Vi xử lý - Chương 4

4.6..

Giả sử có một hệ thống đếm số người đi vào một siêu thị như trong hình vẽ B4.6. Bộ cảm biến sẽ tạo ra 1 xung (kích cạnh xuống) đưa vào chân T1 của 8051 (P3.5) khi có 1 người đi vào siêu thị Xem tại trang 19 của tài liệu.
Hình B4.20 - Bài Bài giảng Kỹ thuật Vi xử lý - Chương 4

nh.

B4.20 Xem tại trang 20 của tài liệu.
4.20. Giả sử có một hệ thống đếm sản phẩm như hình B4.20. Cứ mỗi sản phẩm chạy qua bộ cảm biến sẽ tạo ra một xung vuông (kích cạnh xuống) đưa vào chân INT0(P3.2) của 8051 - Bài Bài giảng Kỹ thuật Vi xử lý - Chương 4

4.20..

Giả sử có một hệ thống đếm sản phẩm như hình B4.20. Cứ mỗi sản phẩm chạy qua bộ cảm biến sẽ tạo ra một xung vuông (kích cạnh xuống) đưa vào chân INT0(P3.2) của 8051 Xem tại trang 20 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan