Tư liệu nghiên cứu mạch đếm sản phẩm trong thiết kế mạch đếm điện tử dùng vi điều khiển mạch báo p2 doc

9 335 0
Tư liệu nghiên cứu mạch đếm sản phẩm trong thiết kế mạch đếm điện tử dùng vi điều khiển mạch báo p2 doc

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

Thông tin tài liệu

Luận văn tốt nghiệp Trang 10 GVHD Nguyễn Việt Hùng PSEN ở mức thấp trong thời gian 8051 lấy lệnh. Các mã lệnh của chương trình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong 8051 để giải mã lệnh. Khi 8051 thi hành chương trình trong ROM nội PSEN ở mức cao. ALE (Address Latch Enable): Khi 8051 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus đòa chỉ và dữ liệu do đó phải tách các đường dữ liệu và đòa chỉ. Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường đòa chỉ và dữ liệu khi kết nối chúng với IC chốt. Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là đòa chỉ thấp nên chốt đòa chỉ hoàn toàn tự động. EA\ (External Access): Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0. Nếu ở mức 1, 8051 thi hành chương trình từ ROM nội. Nếu ở mức 0, 8051 thi hành chương trình từ bộ nhớ mở rộng. Chân EA\ được lấy làm chân cấp nguồn 21V khi lập trình cho Eprom trong 8051. RST (Reset): Khi ngõ vào tín hiệu này đưa lên mức cao ít nhất 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trò thích hợp để khởi động hệ thống. Khi cấp điện mạch phải tự động reset. Các ngõ vào bộ dao động X1, X2: Bộ tạo dao động được tích hợp bên trong 8051. Khi sử dụng 8051, người ta chỉ cần nối thêm tụ thạch anh và các tụ. Tần số tụ thạch anh thường là 12 Mh b. Cấu trúc bên trong của 8051 b1. Sơ đồ khối bên trong 8051: Luận văn tốt nghiệp Trang 11 GVHD Nguyễn Việt Hùng b2. Khảo sát các khối nhớ bên trong 8051: T1 T0 Điều khiển ngắt Các thanh ghi khác 128 byte RAM MRO nội Timer 2 Timer 1 Timer 0 CPU Oscillator Điều khiển bus Các port I/O rt I/O Port nối tiếp Timer 0 Timer 1 Timer 2 INT0 INT1 EA RST PSEN ALE P0 P2 P1 P3 TxD RxD T2 Luận văn tốt nghiệp Trang 12 GVHD Nguyễn Việt Hùng *Tổ chức bộ nhớ: 7F RAM ĐA DỤNG 30 2F 7F 7E 7D 7C 7B 7A 79 78 2E 77 76 75 74 73 72 71 70 2D 6F 6E 6D 6C 6B 6A 69 68 2C 67 66 65 64 63 62 61 60 2B 5F 5E 5D 5C 5B 5A 59 58 2A 57 56 55 54 53 52 51 50 29 4F 4E 4D 4C 4B 4A 49 48 28 47 46 45 44 43 42 41 40 27 3F 3E 3D 3C 3B 3A 39 38 26 37 36 35 34 33 32 31 30 25 2F 2E 2D 2C 2B 2A 29 28 24 27 26 25 24 23 22 21 20 23 1F 1E 1D 1C 1B 1A 19 18 22 17 16 15 14 13 12 11 10 21 0F 0E 0D 0C 0B 0A 09 08 20 07 06 05 04 03 02 01 00 1F BANK 3 18 17 BANK 2 10 0F BANK 1 08 07 Bank thanh ghi 0 ( mặc đònh cho R0-R7) 00 CẤU TRÚC RAM NỘI F0 F7 F6 F5 F4 F3 F2 F1 F0 E0 E7 E6 E5 E4 E3 E2 E1 E0 D0 D7 D6 6D 6C 6B 6A 69 68 B8 - - - BC BB BA B9 B8 B0 B7 B6 B5 B4 B3 B2 B1 B0 A8 AF AE AD AC AB AA A9 A8 A0 A7 A6 A5 A4 A3 A2 A1 A0 99 Không có đòa chỉ hóa từng bit 98 9F 9E 9D 9C 9B 9A 99 98 90 97 96 95 94 93 92 91 90 8D Không được đòa chỉ hóa từng bit 8C Không được đòa chỉ hóa từng bit 8B Không được đòa chỉ hóa từng bit 8A Không được đòa chỉ hóa từng bit 89 Không được đòa chỉ hóa từng bit 88 8F 8 E 8D 8C 8B 8A 89 88 87 Không được đòa chỉ hóa từng bit 83 Không được đòa chỉ hóa từng bit 82 Không được đòa chỉ hóa từng bit 81 Không được đòa chỉ hóa từng bit 80 87 86 8 5 84 83 82 81 80 THANH GHI CHỨC NĂNG ĐẶC BIỆT Luận văn tốt nghiệp Trang 13 GVHD Nguyễn Việt Hùng Bộ nhớ bên trong 8051 bao gồm ROM và RAM. RAM bao gồm nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ đòa chỉ hóa từng bit, các bank thanh ghi và các thanh ghi chức năng đặc biệt. 8051 có bộ nhớ theo cấu trúc Harvard: có những vùng nhớ riêng biệt cho chương trình và dữ liệu. Chương trình và dữ liệu có thể chứa bên trong 8051 nhưng 8051 vẫn có thể kết nối với 64 k byte bộ nhớ chương trình và 64 k byte bộ nhớ dữ liệu mở rộng. Ram bên trong 8051 được phân chia như sau: - Các bank thanh ghi có đòa chỉ từ 00H đến 1Fh. - Ram đòa chỉ hóa từng bit có đòa chỉ từ 20H đến 2FH. - Ram đa dụng từ 30H đến 7FH. - Các thanh ghi chức năng đặc biệt từ 80H đến FFH. -Ram đa dụng: Mọi đòa chỉ trong vùng ram đa dụng đều có thể được truy xuất tự do dùng kiểu đòa chỉ trực tiếp hay gián tiếp. Ví dụ để đọc nội dung ô nhớ ở đòa chỉ 5FH của ram nội vào thanh ghi tích lũy A : MOV A,5FH. Hoặc truy xuất dùng cách đòa chỉ gián tiếp qua R0 hay R1. Ví dụ 2 lệnh sau sẽ thi hành cùng nhiệm vụ như lệnh ở trên: MOV R0, #5FH MOV A , @R0 -Ram có thể truy xuất từng bit: 8051 chứa 210 bit được đòa chỉ hóa từng bit, trong đó 128 bit chứa ở các byte có đòa chỉ từ 20H đến 2FH, các bit còn lại chứa trong nhóm thanh ghi chức năng đặc biệt. Ýtưởng truy xuất từng bit bằng phần mềm là một đặc tính mạnh của vi điều khiển nói chung. Các bit có thể được đặt, xóa, and, or,… với 1 lệnh đơn. Ngoài ra các port cũng có thể truy xuất được từng bít làm đơn giản phần mềm xuất nhập từng bit. Ví dụ để đặt bit 67H ta dùng lệnh sau: SETB 67H. -Các bank thanh ghi: Bộ lệnh 8051 hỗ trợ 8 thanh ghi có tên là R0 đến R7 và theo mặc đònh (sau khi reset hệ thống), các thanh ghi nàû các đòa chỉ 00H đến 07H. lệnh sau đây sẽ đọc nội dung ở đòa chỉ 05H vào thanh ghi tích lũy: MOV A, R5. Đây là lệnh 1 byte dùng đòa chỉ thanh ghi. Tuy nhiên có thể thi hành bằng lệnh 2 byte dùng đòa chỉ trực tiếp nằm trong byte thứ 2: MOV A, 05H. Lệnh dùng các thanh ghi R0 đến R7 thì sẽ ngắn hơn và nhanh hơn nhiều so với lệnh tương ứng dùng đòa chỉ trực tiếp. Bank thanh ghi tích cực bằng cách thay đổi các bit trong từ trạng thái chương trình (PSW). Giả sủ thanh ghi thứ 3 đang được truy xuất, lệnh sau đây sẽ di chuyển nội dung của thanh ghi A vào ô nhớ ram có đòa chỉ 18H: MOV R0, A. * Các thanh ghi có chức năng đặc biệt: 8051 có 21 thanh ghi chức năng đặc biệt (SFR: Special Funtion Register) ở vùng trên của RAM nội từ đòa chỉ 80H đến FFH. Chú ý: tất cả 128 đòa chỉ từ 80H đến FFH không được đònh nghóa, chỉ có 21 thanh ghi chức năng đặc biệt được đònh nghóa sẵn các đòa chỉ. -Thanh ghi trạng thái chương trình: Luận văn tốt nghiệp Trang 14 GVHD Nguyễn Việt Hùng Thanh ghi trạng thái chương trình PSW (Program Status Word ) ở đòa chỉ DOH chứa các bít trạng thái như bảng sau: Bit Ký hiệu Đòa chỉ Ý nghóa PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 CY AC F0 RS1 RS0 0V _ P D7H D6H D5H D4H D3H D2H D1H D0H Cờ nhớ Cờ nhớ phụ Cờ 0 Bit 1 chọn bank thanh ghi Bit 0 chọn bank thanh ghi 00=bank 0: đòa chỉ 00H – 07H 01=bank 1: đòa chỉ 08H – 0FH 10=bank 2: đòa chỉ 10H – 1FH 11=bank 3: đòa chỉ 18H –1FH Cờ tràn Dự trữ Cờ parity chẵn lẽ. + Cờ nhớ: C = 1 nếu phép toán cộng có tràn hoặc phép toán trừ có mượn và ngược lại C = 0. Ví dụ nếu thanh ghi A có giá trò FF thì lệnh sau: ADD A, #1 Phép cộng này có tràn nên bit C = 1 và kết quả trong thanh ghi A = 00H Cờ nhớ có thể xem là thanh ghi 1 bit cho các lệnh luận lý thi hành trên bit. ANL C, 25H + Cớ nhớ phụ: Khi cộng các số BCD, cờ nhớ phụ AC = 1 nếu kết quả 4 bit thấp trong khoảng 0AH đến 0FH. Ngược lại AC = 0. + Cờ 0: Cờ 0 là một bit cờ đa dụng dành cho các ứng dụng của người dùng. + Các bit chọn bankthanh ghi truy xuất: Các bit chọn bank thanh ghi (RS0 và RS1) xác đònh bank thanh ghi được truy xuất. Chúng được xóa sau khi reset hệ thống và được thay đổi bằng phần mềm nếu cần. Ví dụ lệnh sau cho phép bank thanh ghi 3 và di chuyển nội dung của bank thanh ghi R7 (đòa chỉ bye 1FH) vào thanh ghi A: SETB RS1 SETB RS0 MOV A,R7 -Thanh ghi B: Thanh ghi B ở đòa chỉ F0H được dùng cùng với thanh ghi tích lũy A cho các phép toán nhân và chia. Lệnh MUL AB sẽ nhân các giá trò không dấu 8 bit trong A và B rồi trả kết quả về 16 bit trong A (byte thấp) và B (byte cao). Lệnh DIV AB sẽ chia A cho B rồi trả kết quả nguyên trong A và phần dư trong B. thanh ghi cũng có thể xem như thanh ghi đệm đa dụng. Luận văn tốt nghiệp Trang 15 GVHD Nguyễn Việt Hùng -Con trỏ ngăn xếp: Con trỏ ngăn xếp SP là một thanh ghi 8 bit ở đòa chỉ 18H. Nó chứa đòa chỉ của byte dữ liệu hiện hành trên đỉnh của ngăn xếp. Các lệnh trên ngăn xếp bao gồm các lệnh cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp. Lệnh cất dữ liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu và lệnh lấy dữ liệu ra khỏi ngăn xếp sẽ làm giảm SP. Ngăn xếp của 8051 được giữ trong ram nội và giới hạn các đòa chỉ có thế truy xuất bằng đòa chỉ gián tiếp, chúng là 128 byte đầu của 8051 Để khởi động SP với ngăn xếp bắt đầu tại đòa chỉ 60 H, các lệnh sau đây được dùng: MOV SP,#5FH Khi reset 8051, SP sẽ mang giá trò mặc đònh là 07H và dữ liệu đầu tiên sẽ được cất vào ô nhớ ngăn xếp có đòa chỉ là 08 H. Ngăn xếp được truy xuất trực tiếp bằng các lệnh PUSH và POP để lưu trữ tạm thời và lấy lại dữ liệu hoặc truy xuất ngầm bằng lệnh gọi chương trình con ACALL,LCALL và các lệnh trở về (RET. RETI) để lưu trữ giá trò của bộ đếm chương trình khi bắt đầu thực hiện chương trình con và lấy lại khi kết thúc chương trình con. -Con trỏ dữ liệu Con trỏ dữ liệu DPTR được dùng để truy xuất bộ nhớ ngoài là một thanh ghi 16 bit ở đòa chỉ 82H (DPL: byte thấp) và 83H (DPH: byte cao). 3 lệnh sau sẽ ghi 55H vào ram ngoài ở đòa chỉ 1000H: MOV A,#55H MOV DPTR, #1000H MOVX @DPTR,A -Các thanh ghi port xuất nhập: Các port của 8051 bao gồm port 0 ở đòa chỉ 80H, port 1 ở đòa chỉ 90H, port 2 ở đòa chỉ A0H, và port3 ở đòa chỉ B0H. tất cả các port này đều có thể truy xuất từng bit nên rất thuận tiện trong khả năng giao tiếp. -Các thanh ghi timer: 8051 có chứa 2 bộ đònh thời/ đếm 16 bit được dùng cho việc đònh thời hoặc đếm sự kiện. Timer 0 ở đòa chỉ 8AH (TL0: byte thấp) và 8CH (TH0: byte cao). Timer 1 ở đòa chỉ 8BH (TL1: byte thấp) và 8DH (TH1: byte cao). Việc khởi động timer được Set bởi Timer Mode (TMOD) ở đòa chỉ 89H và thanh ghi điều khiển timer (TCON) ở đòa chỉ 88H, chỉ có TCON được đòa chỉ hóa từng bit. -Các thanh ghi port nối tiếp: 8051 chứa một port nối tiếp dành cho việc trao đổi thông tin với các thiết bò nối tiếp như máy tính, modem hoặc giao tiếp nối tiếp với các IC khác. Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp (SBUF) ở đòa chỉ 99H sẽ giữ cả 2 dữ liệu truyền và dữ liệu nhận. Khi truyền dữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF. Các mode vận hành khác nhau được lập trình qua thanh ghi điều khiển port nối tiếp SCON ở đòa chỉ 98H. -Các thanh ghi ngắt: 8051 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên. Các ngắt bò cấm sau khi reset hệ thống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ngắt (IE) ở đòa chỉ A8H, cả 2 thanh ghi được đòa chỉ hóa từng bit. Luận văn tốt nghiệp Trang 16 GVHD Nguyễn Việt Hùng -Thanh ghi điều khiển công suất: Thanh ghi điều khiển công suất (PCON) ở đòa chỉ 87H chứa các bit điều khiển. -Tín hiệu Reset: 8051 có ngõ vào reset RST tác động ở mức cao trong khoảng thời gian 2 chu kỳ, sau đó xuống mức thấp để 8051 bắt đầu làm việc. RST có thể kích bằng tay bằng một phím nhấn thường mở, sơ đồ mạch reset như hình trên (hình a) sau khi reset hệ thống được tóm tắt như sau: Thanh ghi Nội dung Đếm chương trình PC Thanhghi tích lũy A Thanh ghi B Thanh ghi trạng thái SP DPTR Port 0 đến Port 3 IP IE Các thanh ghi đònh thời 0000H 00H 00H 00H 07H 0000H FFH XXX0000 B 0XX00000 B 00H Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC được Reset tại đòa chỉ 0000H. Khi ngõ vào RST xuống mức thấp, chương trình luôn bắt đầu tại đòa chỉ 0000H của bộ nhớ chương trình. Nội dung của Ram trong chip không bò hay đổi bởi tác động của ngõ vào Reset c.Hoạt động thanh ghi TIMER 8051 có hai timer 16 bit, mỗi timer có bốn cách làm việc. Người ta sử dụng các timer để: - Đònh khoảng thời gian. - Đếm sự kiện. - Tạo tốc độ baud cho port nối tiếp trong 8051. Trong các ứng dụng đònh khoảng thời gian, người ta lập trình timer ở những khoảng đều đặn và đặt cờ tràn timer. Cờ được dùng để đồng bộ hóa chương trình để thực hiện một tác động như kiểm tra trạng thái của các ngõ vào hoặc gửi sự kiện ra các ngõra. Các ứng dụng khác có thể sử dụng việc tạo xung nhòp đều đặn của timer để đo thời gian trôi qua giữa hai sự kiện (ví dụ đo độ rộng xung ). Truy xuất các timer của 8051 dùng sáu thanh ghi chức năng đặc biệt cho trong bảng sau: Luận văn tốt nghiệp Trang 17 GVHD Nguyễn Việt Hùng SFR Mục Đích Đòa chỉ Đòa chỉ hóa từng bit TCON Điều khiển Timer 88H Có TMOD Chế độ Timer 89H Không TL0 Byte thấp của Timer 0 90H Không TL1 Byte thấp của Timer 1 91H Không TH0 Byte cao của Timer 0 92H Không TH1 Byte cao của Timer 1 93H Không Các thanh ghi chức năng của timer trong 8031. Thanh ghi chế độ timer (TMOD): Thanh ghi TMOD chứa hai nhóm 4 bit dùng để đặt chế độ làm việc cho Timer 0, và Timer 1. Bit Tên Timer Mô tả 7 GATE 1 Bit mở cổng, khi lên 1 timer chỉ chạy khi INT1 ở mức cao 6 C/T 1 Bit chọn chế độ Count/Timer 1 = bộ đếm sự kiện 0 = bộ đònh khoảng thời gian 5 M1 1 Bit 1 của chế độ mode 4 M0 1 Bit 0 của chế độ mode 3 GATE 0 Bit mở cổng, khi lên 1 timer chỉ chạy khi INT0 ở mức cao 2 C/T 0 Bit chọn chế độ Count/Timer 1 M1 0 Bit 1 của chế độ mode 0 M0 0 Bit 0 của chế độ mode Tóm tắt thanh ghi chức năng TMOD. Thanh ghi điều khiển timer(TCON) Luận văn tốt nghiệp Trang 18 GVHD Nguyễn Việt Hùng Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho Timer 1, Timer 0. Bit Ký hiệu Đòa chỉ Mô tả TCON.7 TF1 8FH Cờ báo tràn timer 1. Đặt bởi phần cứng khi tràn, được xóa bởi phần mềm, hoặc phần cứng khi bộ xử lý chỉ đến chương trình phục vụ ngắt. TCON.6 TR1 8EH Bit điều khiển timer 1 chạy đặt xóa bằng phần mềm để cho timer chạy ngưng. TCON.5 TF0 8DH Cờ báo tràn Timer 0. TCON.4 TR0 8CH Bit điều khiển Timer 0 chạy TCON.3 IE1 8BH Cờ cạnh ngắt 1 bên ngoài. Đặt bởi phần cứng khi phát hiện một cạnh xuống ở INT1 xóa bằng phần mềm họăc phần cứng khi CPU chỉ đến chương trình phục vụ ngắt. TCON.2 IT1 8AH Cờ kiểu ngắt 1 bên ngoài. Đặt xóa bằng phần mềm để ngắt ngoài tích cực cạnh xuống /mức thấp. TCON.1 IE0 89H Cờ cạnh ngắt 0 bên ngòai TCON.0 IT0 88h Cờ kiểu ngắt 0 bên ngoài Tóm tắt thanh ghi chức năng TCON Khởi động và truy xuất thanh ghi timer: Thông thường các thanh ghi được khởi động một lần đầu ở chương trình để đặt ở chế độ làm việc đúng. Sau đó, trong thân chương trình, các thanh ghi timer được cho chạy, dừng, các bit được kiểm tra và xóa, các thanh ghi timer được đọc và cập nhật…. theo đòi hỏi các ứng dụng. TMOD là thanh ghi thứ nhất được khởi động vì nó đặt chế độ hoạt động. Ví dụ, các lệnh sau khởi động Timer 1 như timer 16 bit (chế độ 1) có xung nhòp từ bộ dao động tên chip cho việc đònh khoảng thời gian: MOV TMOD, #1B Lệnh này sẽ đặt M1 = 1 và M0 = 0 cho chế độ 1, C/ T= 0 và GATE = 0 cho xung nhòp nội và xóa các bit chế độ Timer 0. Dó nhiên, timer không thật sự bắt đầu đònh thời cho đến khi bit điều khiển chạy TR1 được đặt lên 1. . hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường đòa chỉ và dữ liệu khi kết nối chúng với IC chốt. Tín hiệu ở chân ALE là một xung trong khoảng thời gian port. trình và dữ liệu. Chương trình và dữ liệu có thể chứa bên trong 8051 nhưng 8051 vẫn có thể kết nối với 64 k byte bộ nhớ chương trình và 64 k byte bộ nhớ dữ liệu mở rộng. Ram bên trong 8051. sẽ giữ cả 2 dữ liệu truyền và dữ liệu nhận. Khi truyền dữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF. Các mode vận hành khác nhau được lập trình qua thanh ghi điều khiển port nối

Ngày đăng: 29/07/2014, 07:20

Từ khóa liên quan

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

Tài liệu liên quan