Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
162,8 KB
Nội dung
Xung & Hoi1 1.Giớithiệu 2.Sơđồ khốivàchân 3.Tổchứcbộnhớ 4.Cácthanhghichứcnăng đặcbiệt(SFR) 5.Dao độngvàhoạt độngreset 6.Tậplệnh 7.Cácmode định địachỉ (addressing modes) 8.LậptrìnhIO 9.Tạotrễ 10.LậptrìnhTimer/Counter 11. 11. L L ậ ậ p p tr tr ì ì nh nh giaogiao ti ti ế ế p p n n ố ố i i ti ti ế ế p p (serial (serial comm comm programming) programming) 12.Lậptrìnhngắt(interrupt programming) 13.Lậptrìnhhợpngữ Xung & Hoi2 11-1. Giớithiệu •Port nốitiếphoạt độngsong công(full duplex), nghĩalàcó khả năngthuvàphát đồngthời •Sửdụng2 thanhghichứcnăng đặcbiệt SBUF (địachỉ byte là 99H) & SCON (địachỉ byte là98H) để truyxuấtport nốitiếp •Việc ghilênSBUF sẽ nạpdữliệu để phát, vàviệc đọcSBUF sẽ truyxuấtdữliệu đãnhận được à thựcracó2 SBUF riêng rẽ •SCON chứacácbit trạngtháivà điềukhiển, thanhnày được định địachỉ bit •Tầnsốhoạt độngcủaport nốitiếphay còngọilà tốc độ baud (baud rate) cóthể cốđịnhhoặcthay đổi Xung & Hoi3 Clk SBUF Q (write only) SBUF (read only) D Shift Register Clk Baud rate clock (phát) Baud rate clock (thu) TXD (P3.1) 8051 internal bus RXD (P3.0) Xung & Hoi4 11-2. Thanhkhi điềukhiểnport nốitiếp SM1, SM0: chọnchếđộ củaport nốitiếp SM2: chophéptruyềnthông đaxửlý REN: chophépthu, phải đượcset để nhậncáckýtự TB8:bit thứ 9 đượcphát ở chếđộ 2 & 3 RB8:bit thứ 9 nhận được TI: cờ ngắtphát, đượcset ngaysaukhikếtthúcviệcphát1 kýtự; đượcxóabởiphầnmềm RI: cờ ngắtthu, đượcset ngaysaukhikếtthúcviệcthu1 kýtự; đượcxóabởiphầnmềm SM0 SM1 SM2 REN RB8TB8 RITI SCON Xung & Hoi5 11-3. Cácchếđộ hoạt động SM0SM1ModeMôtả Tốcđộ baud 000ThanhghidịchCốđịnh(f OSC /12) 011UART 8-bit Thay đổi (thiếtlập bởibộđịnhthời) 102UART 9-bitCốđịnh(f OSC /12 hoặcf OSC /64) 113UART 9-bit Thay đổi (thiếtlập bởibộđịnhthời) Xung & Hoi6 11-3-1. Thanhghidịch8-bit (mode 0) •Khiphátvàthudữliệu8-bit, bit LSB đượcpháthoặcthutrước tiên •Tốcđộ baud cốđịnh= f OSC /12 •ChânRxDdùngchocảviệcthuphátdữliệutrongkhiTxD dùnglàmchânxuấtclock dịchbit •Phát: –GhivàoSBUF –Dữliệu đượcdịchrangoàitrênchânRxD(P3.0) –Xungclock dịchbit đượcgửiratrênchânTxD(P3.1) –Mỗibit hợplệtruyền đitrênRxDtrong1 chukỳmáy Xung & Hoi7 •Thu: –Chỉđượckhởi độngkhiREN = 1 & RI = 0, nghĩalàphảiset REN = 1 ở thời điểmbắtđầuchươngtrình& xóaRI để bắt đầucôngviệcthudữliệu –Dữliệu đượcdịchvàochânRxDbởixungclock dịchbit (tác độngsườnlên) •1 Ứngdụngcủamode 0: –Mởrộngthêmcácngõracho8051 8051 TxD(P3.1) RxD(P3.0) Clock Shift Regsiter Data 8 ngõramởrộng Xung & Hoi8 11-3-2. UART 8-bit cótốcđộ baud thay đổi(mode 1) •UART làbộthuphátdữliệunốitiếpvớimỗikýtựdữliệu được đứngtrướcbởi1 bit start và đứngsaubởi1 bit stop. Thỉnhthoảng1 bit parity đượcchènvào. •Hoạt độngchủ yếucủaUART làbiếndữliệupháttừ// thành ntvàbiếndữliệuthutừntthành// •CờngắtphátTI đượcset bằng1 ngaykhibit stop xuấthiện trênTxD 1 / baud rate D0D1D2D3D4D5D6D7 Start bit Stop bit TI (ready for more data) TxD TI Xung & Hoi9 •Việcnhận đượckhởi độngbởi1 chuyểntrạngtháitừ1 xuống 0 trên đườngRxD(bit start) •Bit start sau đó đượcbỏqua & 8 bit dữ liệusau đó đượcnhận tuầntựvàothanhghidịchbit củaport nốitiếp. Khicả8 bit đượcnhận, tacó: –Bit thứ 9 (bit stop) à RB8 củaSCON –8 bit dữ liệu đượcnạpvàoSBUF –CờngắtthuRI đượcset •Note: Các điềutrênchỉ xảyranếutrước đócờRI = 0 Xung & Hoi10 11-4. Khởi độngvàtruyxuấtcácthanhghi •Chophépnhận: REN trongSCON phải đượcset bởiphần mềm để chophépnhậnkýtự SETBREN Hoặc MOVSCON, #xxx1xxxxB •Thêmvàobit chẵnlẻ:bit P trongPSW đượcset hoặcxóa ở mỗichukỳmáy để thiếtlậpviệckiểmtrachẵncho8 bit chứa trongA MOVC, P; đưabit kiểmtrachẵnvàoTB8 MOVTB8, C; bit nàytrở thànhbit thứ 9 MOVSBUF, A; dichuyển8 bit dữ liệuvàoSBUF [...]... Port nốitiếp mode 1 or 3 2 Timer 1 hoạt động mode 2 (8-bit auto-reload) 3 Set TH1 bằng 253 4 Set PCON.7 (SMOD) Xung & Hoi 16 Các bài toán • EBT11.1 Khởi động port nt: Viết chuỗi lệnh khởi động port nốitiếp hoạt động như 1 UART 8-bit với tốc độ baud 2400 Dùng timer 1 để cung cấp xung clock tốc độ baud? • EBT11.2 CTC xuất ký tự: Viết CTC mang tên OUTCHAR phát mã ASCII 7-bit chứa trong A ra port nối tiếp. ..• Các cờ ngắt: RI và TI được set bằng phần cứng nhưng phải xóa bằng phần mềm CTC nhận 1 ký tự qua port nốitiếp như sau: INCHAR: JNB RI, $ CLR RI MOV A, SBUF RET CTC phát 1 ký tự qua port nt: OUTCHAR: JNB TI, $ CLR TI MOV SBUF, A RET Xung & Hoi 11 11-5 Tốc độ baud của port nốitiếp On-chip OSC Baud rate clock ¸12 Mode 0 ¸64 On-chip OSC SMOD=0 Timer 1 overflow Mode 1 & 3 ¸32 SMOD=1 ¸32 Mode... trong A ra port nốitiếp với bit kiểm tra chẵn là bit thứ 8 Việc trở về từ CTC phải không làm thay đổi nội dung thanh chứa A? • EBT11.3 CTC thu ký tự: Viết CTC mang tên INCHAR để thu 1 ký tự từ port nốitiếp & trả về mã ASCII 7-bit trong A Sử dụng kiểm tra chẵn trong bit thứ 8 thu được và set cờ nhớ bằng 1 nếu có lỗi chẵn lẻ? Xung & Hoi 17 MAX 232 Xung & Hoi 18 Xung & Hoi 19 . modes) 8.LậptrìnhIO 9.Tạotrễ 10.LậptrìnhTimer/Counter 11. 11. L L ậ ậ p p tr tr ì ì nh nh giao giao ti ti ế ế p p n n ố ố i i ti ti ế ế p p (serial (serial comm comm programming) programming) 12.Lậptrìnhngắt(interrupt. (serial comm comm programming) programming) 12.Lậptrìnhngắt(interrupt programming) 13.Lậptrìnhhợpngữ Xung & Hoi2 11-1. Giớithiệu •Port nốitiếphoạt độngsong công(full duplex), nghĩalàcó khả. clock (thu) TXD (P3.1) 8051 internal bus RXD (P3.0) Xung & Hoi4 11-2. Thanhkhi điềukhiểnport nốitiếp SM1, SM0: chọnchếđộ củaport nốitiếp SM2: chophéptruyềnthông đaxửlý REN: chophépthu, phải đượcset để nhậncáckýtự TB8:bit