Báo Cáo Mạch Đếm Sản Phẩm Sử Dụng Cổng COM

25 528 0
Báo Cáo Mạch Đếm Sản Phẩm Sử Dụng Cổng COM

Đ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

Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry A CƠ SỞ LÝ THUYẾT I VI ĐIỀU KHIỂN AT89S52 Trong thập niên cuối kỉ XX, từ đời công nghệ bán dẫn, kĩ thuật điện tử có phát triển vượt bậc Các thiết bị điện tử sau tích hợp với mật độ cao cao diện tích nhỏ, nhờ thiết bị điện tử nhỏ nhiều chức Các thiết bị điện tử ngày nhiều chức giá thành ngày rẻ hơn, điện tử có mặt khắp nơi Bước đột phá công nghệ điện tử, công ty trẻ tuổi Intel cho đời vi xử lý Đột phá chỗ: "Đó kết cấu logic mà thay đổi chức chương trình không phát triển theo hướng tạo cấu trúc phần cứng thực theo số chức định trước Tức phần cứng đóng vai trò thứ yếu, phần mềm đóng vai trò chủ đạo chức cần thực Nhờ vi xử lý có mềm dẻo hóa chức Ngày vi xử lý có tốc độ tính toán cao khả xử lý lớn Để vi xử lý hoạt động cần có chương trình kèm theo, chương trình điều khiển mạch logic từ vi xử lý xử lý liệu cần thiết theo yêu cầu Chương trình tập hợp lệnh để xử lý liệu thực lệnh lưu trữ nhớ, công việc thực hành lệnh bao gồm: nhận lệnh từ nhớ, giải mã lệnh thực lệnh sau giải mã Để thực công việc với thiết bị cuối cùng, chẳng hạn điều khiển động cơ, hiển thị kí tự hình đòi hỏi phải kết hợp vi xử lý với mạch điện giao tiếp với bên gọi thiết bị I/O (nhập/xuất) hay gọi thiết bị ngoại vi Bản thân vi xử lý đứng nhiều hiệu sử dụng, phần máy tính, hiệu ứng dụng Vi xử lý lớn Vi xử lý kết hợp với thiết bị khác sử hệ thống lớn, phức tạp đòi hỏi phải xử lý lượng lớn phép tính phức tạp, có tốc độ nhanh Chẳng hạn hệ thống sản xuất tự động công nghiệp, tổng đài điện thoại, robot có khả hoạt động phức tạp v.v Bộ Vi xử lý có khả vượt bậc so với hệ thống khác khả tính toán, xử lý, thay đổi chương trình linh hoạt theo mục đích người dùng, đặc biệt hiệu toán hệ thống lớn.Tuy nhiên ứng dụng nhỏ, tầm tính toán không đòi hỏi khả tính toán lớn việc ứng dụng Khoa Điện Tử Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry vi xử lý cần cân nhắc Bởi hệ thống dù lớn hay nhỏ, dùng vi xử lý đòi hỏi khối mạch điện giao tiếp phức tạp Các khối bao gồm nhớ để chứa liệu chương trình thực hiện, mạch điện giao tiếp ngoại vi để xuất nhập điều khiển trở lại, khối liên kết với vi xử lý thực công việc Để kết nối khối đòi hỏi người thiết kế phải hiểu biết tinh tường thành phần vi xử lý, nhớ, thiết bị ngoại vi Hệ thống tạo phức tạp, chiếm nhiều không gian, mạch in phức tạp vấn đề trình độ người thiết kế Kết giá thành sản phẩm cuối cao, không phù hợp để áp dụng cho hệ thống nhỏ Cấu trúc, chức 1.1 Sơ đồ khối - CPU(central processing unit) bao gồm: + Thanh ghi tích lũy A + Thanh ghi tích lũy phụ B + Đơn vị lôgic học (ALU: Arithmetic Logical Unit) + Từ trạng thái chương trình(PSW: Program Status Word) + Bốn băng ghi + Con trỏ ngăn xếp - Bộ nhớ chương trình (ROM) gồm 8Kb Flash - Bộ nhớ liệu(RAM) gồm 256 bytes - Ba Timer/Counter 16 bít thực chức định thời đếm kiện - Bộ UART(Universal Ansynchronous Receiver And Transmitter) làm chức truyền nhận nối tiếp ,nhờ khối AT89S52 giao tiếp với cổng com máy tính - WDM (watch dog timer ) dùng để phục hồi lại hoạt động CPU bị treo nguyên nhân 1.2 Chức chân họ 8051 1.2.1 Port Port bao gồm chân, chức xuất nhập, port bus đa hợp liệu địa (ADo-AD7).chức sử dụng 8051 giao tiếp với thiết bị có kiến trúc bus vi mạch nhớ … Khoa Điện Tử Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry Sơ đồ khối AT89S52 1.2.2 Port Port có chức xuất nhập port khác, port xuất nhập theo byte theo bit Riêng dòng 89Sxx ba chân P1.5, P1.6, P1.7 dùng để nạp Rom theo chuẩn ISP, hai chân P1.0, P1.1 dùng cho timer Khoa Điện Tử Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry 1.2.3 Port Ngoài chức cổng vào/ra port port byte cao bus địa sử dụng nhớ 1.2.4 Port Mỗi chân port chức xuất nhập port khác có chức riêng Cụ thể sau: Bit P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Tên RXD TXD INT0 INT1 T0 T1 /WR /RD Chức Dữ liệu nhận cho port nối tiếp Dữ liệu truyền cho port nối tiếp Ngắt bên Ngắt bên Ngõ vào timer/counter Ngõ vào timer/counter Xung ghi nhớ Xung đọc nhớ liệu 1.2.5 Chân /PSEN (Program store enable) /PSEN chân điều khiển ghi đọc chương trình nhớ ngoài, nối với chân /OE phép đọc byte mã lệnh Rom /PSEN mức thấp thời gian đọc mã lệnh Mã lệnh đọc từ nhớ qua bus liệu để giải mã Khi thực chương trình Rom nội /PSEN mức cao 1.2.6 Chân ALE (Address Latch Enable) ALE tín hiệu điều khiển chốt địa có tần số 1/6 tần số dao động vi điều khiển Tín hiệu ALE dùng phép vi mạch chốt bên 74373, 74573 chốt byte địa thấp khỏi bus đa hợp địa chỉ/dữ liệu 1.2.7 Chân /EA (External Access) Tín hiệu /EA cho phép chọn nhớ chương trình nhớ hay vi điều khiển Nếu /EA mức cao vi điều khiển thi hành chương trình Rom nội Nếu /EA mức thấp vi điều khiển thi hành chương trình từ nhớ 1.2.8 RST (Reset) Ngõ vào reset chân ngõ reset 8051 tín hiệu đưa lên mức cao ghi vi điều khiển tải giá trị thích hợp để khởi động hệ thống 1.2.9 XTAL1, XTAL2 AT89S52 có giao động, thường nối với dao động thạch anh có tần số lớn 33MHz, thông thường 12MHz Khoa Điện Tử Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry 1.2.10 Vcc, GND AT89S52 dùng nguồn chiều có dải điện áp từ 4V đến 5.5V cấp qua chân 40 20 1.2.11 Mạch dao động reset - Mạch dao động AT89S52 có chia tần số bên chíp ,bộ cấp xung clock cho khối chíp từ nguồn dao động bên hai chân XTAL1 ,ATAL2 - Mạch Reset Có cách để reset AT89S52: + Khi cấp nguồn + Reset WDT (Watch dog timer) + Reset phần mềm + Reset mạch thông qua chân RST Hoạt động định thời Các định thời (timer) sử dụng rộng rãi ứng dụng đo lường điều khiển Có thể coi định thời n bit đếm n bit tạo n flip-flop mắc nối tiếp với Đầu vào định thời đầu vào flip-flop đầu tiên, đầu báo tràn(over flow) định thời phản ánh trạng thái tràn Đầu flip-flop phản ánh giá trị thời đếm Tùy thuộc vào ứng dụng, đầu vào định thời nguồn xung lấy từ xung nhịp vi điều khiển nguồn xung từ bên đưa đến Vi điều khiển AT89s52 có định thời 16 bit hai timer timer co bốn chế độ hoạt động, timer có chế độ hoạt động Các đinh thời sử dụng để định khoảng thời gian (hẹn giờ), đếm kiện xảy bên vi điều khiển tạo tốc độ baud cho cổng nối tiếp vi điều khiển Trong ứng dụng định khoảng thời gian, timer lập trình cho tràn sau khoảng thời gian thiết lập cờ tràn Cờ tràn sử dụng chương trình để thực hành động tương ứng kiểm tra trạng thái ngõ vào gửi kiện ngõ Đếm kiện dùng để xác định số lần xảy kiện Trong ứng dụng người ta tìm cách quy kiện thành chuyển mức từ xuống chân T0 T1 để dùng timer tương ứng đếm kiện Dựa hai chức này, định thời lập trình để tạo xung nhịp, đo thời gian trôi qua hai kiện Các ghi định thời 2.1.1 Các ghi timer timer Thanh ghi chế độ định thời (TMOD: Khoa Điện Tử Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry Thanh ghi TMOD chứa hai nhóm bit dùng để đặt chế độ làm việc cho timer timer GATE C/#T1 M1 M0 GATE0 C/#T0 M1 M0 Chức bit Bit Tên Timer Mô tả GATE Bit mở cổng cho timer 1, timer chạy chân INT1 mức cao Nếu bit đặt hoạt động timer không bị ảnh hưởng mức logic chân INT1 C/#T1 Bit chọn chế độ counter/timer timer 1 = đếm kiện = định khoảng thời gian M1 Bit chọn chế độ timer M0 Bit chọn chế độ timer 00: Chế độ 0- timer 13 bit 01: Chế độ 1- timer 16 bit 10: Chế độ 2- timer bit tự động nạp lại 11: Chế độ – tách timer GATE Bit mở cổng cho timer 0, đặt timer chạy chân INT0 mức cao C/#T0 Bit chọn chế độ counter/timer timer M1 Bit chọn chế độ timer 0 M0 Bit chọn chế độ timer Thanh ghi điều khiển timer(TCON): Thanh ghi TCON chứa bit trạng thái bit điều khiển Timer Timer TCON7 TF1 TCON6 TR1 TCON5 TF0 TCON4 TR0 TCON3 IT1 TCON2 IT0 TCON1 IE1 TCON0 IE0 Đặc điểm bit Bit Ký Địa Mô tả hiệu TCON7 TF1 8FH Cờ báo tràn timer đặt phần cứng xảy tràn, xóa băng phần mềm phần cứng xử lý đến chương trình phục vụ ngắt TCON6 TR1 8EH Bit điều khiển timer hoạt động, đặt, xóa phần mềm để điều khiển cho timer chạy/dừng TCON5 TF0 8DH Cờ báo tràn timer TCON4 TR0 8CH Bit điều khiển timer hoạt động TCON3 IT1 Khoa Điện Tử 8BH Cờ ngắt timer Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry TCON2 IE1 8AH Cờ ngắt TCON1 IT0 89H Cờ ngắt timer TCON0 IE0 88H Cờ ngắt Các ghi chứa giá trị định thời Các Timer Timer Timer 16 bit, ghi chứa timer dùng để chứa giá trị khởi tạo giá trị thời timer Cụ thể Timer có TH0 TL0; Timer có TH1 TL1 2.1.2.Các ghi Timer Thanh ghi T2CON: T2CON T2CON.6 T2CON.5 T2CON.4 T2CON.3 T2CON.2 T2CON.1 T2CON TF2 EXF2 RCLK TCLK EXEN2 TR2 C/#T2 CP/#RL2 Chức bit Bit Ký Hiệu T2CON.7 TF2 Địa CFH TCON.6 EXF2 CEH TCON.5 RCLK CDH T2CON4 TCLK CCH T2CON3 EXEN2 CBH T2CON.2 T2CON.1 TR2 C/#T2 CAH C9H Khoa Điện Tử Mô Tả Cờ báo tràn timer 2, TF2 đặt timer tràn xóa phần mềm TF2 không thiết lập TCLK RCLK đặt Cờ ngắt timer EXF2=1 xảy nạp lại thu nhận, EXF2=1 gây ngắt timer ngắt lập trình cho phép , EXF2 xóa phần mềm Bit chon timer cung cấp xung nhịp cho port nối tiếp RCLK=1 timer cung cấp tốc độ baud cho cổng nối tiếp RCLK=0 timer cung cấp tốc độ baud cho cổng nối tiếp Bit chọn timer cung cấp cho đường truyền nối tiếp TCLK=1 timer cung cấp TCLK=0 timer cung cấp Bit điều khiển hoạt động timer EXEN2=1 việc nạp lại thu nhận diễn có chuyển trạng thái từ sang chân T2EX T2 không sử dụng để cung cấp tốc độ baud Bit điếu khiển hoạt động timer Bit chọn chế độ đếm định thời timer Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính T2CON.0 CP/#RL2 C8H Hanoi University of Industry Bit chọn chế độ thu nhận hay nạp lại timer Khi CP/#RL2 set băng việc thu nhận thực có sườn xuống chân T2Exvaf bit EXEN2 set băng Khi CP/#RL=0 việc nạp lại thực timer tràn có sườn xuống chân T2EX bit EXEN2 set Nếu RCLK TCLK bit bỏ qua timer tự động nạp lại tràn Thanh ghi T2MOD: T2MOD có địa 09CH, ghi không định địa bit Bit Ký hiệu Mô tả T2MOD.7 Không sử dụng T2MOD.6 Không sử dụng T2MOD.5 Không sử dụng T2MOD.4 Không sử dụng T2MOD.3 Không sử dụng T2MOD.2 Không sử dụng T2MOD.1 T2OE T2MOD.0 DCEN Cho phép đầu sử dụng timer để tạo xung Bit cho phép timer hoạt động đếm tiến /lùi Thanh ghi TH2 TL2, RCAP2H RCAP2L: chúng chứa giá trị đếm timer Tuy nhiên Timer Timer dùng THx TLx để chứa giá trị nạp lại cho Timer dùng RCAP2H RCAP2L chứa giá trị cần nạp lại Các chế độ hoạt động định thời 3.1 Các chế độ timer timer 3.1.1 Chế độ Chế độ chế độ định thời 13 bit, chế độ tương thích với vi điều khiển trước đó, ứng dụng chế độ không phù hợp Trong chế độ định thời dùng 13 bit (8 bit TH bit TL) để chứa giá trị đếm, bit thấp TL không sử dụng 3.1.2 Chế độ Trong chế độ timer dùng ghi TH TL để chứa giá trị đếm, chế độ gọi chế độ định thời 16 bit Bit MSB D7 TH bit LSB D0 TL 3.1.3 Chế độ Trong chế độ định thời dùng TL để chứa giá trị đếm dùng TH để chứa giá trị nạp lại chế độ gọi chế độ tự động nạp lại Khoa Điện Tử Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry bit Sau đếm 255 xảy tràn TF set băng đồng thời giá trị timer tự động nạp lại nội dung TH 3.1.4 Chế độ Trong chế độ timer chia thành timer hoạt động độc lập với nhau: Bộ Timer thứ với nguồn xung clock lấy từ chia tần chip từ tạo xung bên qua chân T0 tùy thuộc vào giá trị bit C-/T0 Việc điều khiển hoạt động thứ bit GATE, bit TR0 mức logic chân INT0 Giá trị đếm timer chứa TL0, xảy tràn cờ TF0 đặt gây ngắt timer Bộ Timer thứ hai có nguồn xung clock lấy từ chia tần chíp Việc điều khiển hoạt động timer thứ hai việc đặt giá trị bit TR0 Giá trị đếm timer chứa TH0 Khi xảy tràn cớ TF1 set gây ngắt timer Khi Timer tách thành Timer bit Timer hoạt động bình thường chế độ 0, 1, nhiên xảy tràn cờ TF1 không thiết lập băng Như trường hợp Timer sử dụng ứng dụng không cần thiết đến ngắt 3.2 Các chế độ timer Timer có chế độ hoạt động chế độ thu nhận, chế độ nạp lại, chế độ cung cấp tốc độ baud cho cổng nối tiếp Bảng chế độ hoạt động Timer RCLK + TCLK TR2 CP/#RL2 Chế độ 0 16 bit tự động nạp lại 1 16 bit thu nhận x Cung cấp tốc độ baud x X Off 3.2.1 Chế độ thu nhận Khi chân CP/#RL2 =1, chế độ thu nhận Timer chọn bit EXEN2 xung clock cấp cho timer lấy từ nguồn điều khiển C/#T2 Điều khiển hoạt động Timer TR2 Giá trị đếm timer chứa TH2 TL2 Khi xảy tràn TF2 đặt Giá trị thời Timer nằm TH2 TL2 chuyển tương ứng vào RCAP2H RCAP2L bit EXEN2 đặt có chuyển mức từ chân T2EX, chuyển mức kết hợp với việc đặt bit EXF2 gây ngắt Timer 3.2.2 Chế độ tự nạp lại Trong chế độ này, bit DCEN=0 timer hoạt động timer 16 bit tự nạp lại chứa RCAP2H RCAP2L Sự kiện nạp lại xảy khi: - Hoặc xảy tràn tức có chuyển số đếm từ FFFFH sang l0 Khoa Điện Tử Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry - Hoặc có chuyển mức từ xuống chân T2EX EXEN2 thiết lập Sự chuyển mức đồng thời set EXF2=1 Khi bit DCEN=1 timer hoạt động timer 16 bit tự nạp lại, có cách tự nạp lại: + Cách thứ nhất: Khi chân T2EX đặt mức logic 1, timer đếm tiến từ giá trị xuất phát có chuyển số đếm từ FFFFH sang xảy tràn Sự kiện trà thiết lập cờ TF2 đồng thời nạp lại giá trị cho timer, Giá trị nạp lại chứa RCAP2H RCAP2L + Cách thứ 2: Khi chân T2EX set mức 0, timer đếm lùi từ giá trị xuất phát giá trị đặt RCAP2H RCAP2L xảy tràn Sự kiện tràn thiết lập cờ TF2, đồng thời nạp lại giá trị cho timer, giá trị nạp lại FFFFH 3.2.3 Tạo tốc độ baud Timer dùng để tạo tốc độ baud cho đường truyền đường nhận cổng nối tiếp tùy thuộc vào bit TCLK RCLK ghi T2CON 3.2.4 Tạo xung vuông dùng Timer Tần số xung vuông tạo F = FOSC / (4*(65536 –[RCAP2H, RCAP2L])) Trong đó: [RCAP2H,RCAP2L] nội dung ghi RCAP, tính công thức: [RCAP2H, RCAP2L] = RCAP2H*256 + RCAP2L 3.3 Nguồn xung clock Nguồn xung clock cấp cho định thời lấy từ qua chân T0,T1, T2 cho timer 0, timer 1, timer 2, lấy từ chia tần chip với tần số 1/12 tần số dao động thạch anh tùy thuộc vào bit C/#T Nhìn chung với ứng dụng định thời xung clock thường lấy từ chip, với ứng dụng đếm nguồn xung lấy từ qua chân T0, T1, T2 Cổng nối tiếp AT89S52 có cổng nối tiếp chíp hoạt động nhiều chế độ khác với tốc độ khác Chức chủ yếu cổng nối tiếp thực chuyển đổi song song sang nối tiếp với liệu xuất chuyển đổi từ nối tiếp sang song song với liệu nhập để giao tiếp với máy tính qua cổng nối tiếp thiết bị tương tự Cổng nối tiếp hoạt động song công(thu phát đồng thời) đệm lúc thu cho phép thu giữ ký tự thứ hai nhận Nếu CPU đọc ký tự thứ trước ký tự thứ hai thu đầy đủ file liệu không bị 4.1 Các ghi cổng nối tiếp Có hai ghi chức đặc biệt cho phép phần mềm truy xuất đến cổng nối tiếp SUBF SCON Thanh ghi điều khiển cổng nối tiếp SCON Thanh ghi địa 98H ghi có địa bit, chứa bít trạng thái bít điều khiển liên quan đến cổng nối tiếp Các bít điều khiển đặt chế Khoa Điện Tử 10 Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry độ hoạt cho cổng nối tiếp, bít trạng thái báo cáo kết thúc việc phát thu ký tự Các bit trạng thái kiểm tra phần mềm lập trình để tạo ngắt Bit Ký Địa Mô Tả Hiệu Chỉ SCON.7 SM0 9FH Bit chọn chế độ cho cổng nối tiếp SCON.6 SM1 9EH SCON.5 SM2 9DH SCON.4 REN 9CH SCON.3 TB8 9BH SCON.2 RB8 9AH SCON.1 TI 99H SCON.0 RI 98H Bit chọn chế độ cho cổng nối tiếp SM0SM1= 00 cổng nối tiếp hoạt động chế độ SM0SM1= 01 cổng nối tiếp hoạt động chế độ SM0SM1= 10 cổng nối tiếp hoạt động chế độ SM0SM1= 11 cổng nối tiếp hoạt động chế độ Bit chọn chế độ cho cổng nối tiếp, bit cho phép truyền thông đa xử lý Bit cho phép thu, REN phải đặt phép nhận ký tự Bit truyền thứ sử dụng chế độ UART bit Bit nhận thứ sử dụng chế độ UART bit Cờ ngắt truyền TI phải đặt phần cứng kết thúc việc truyền ký tự TI xóa phần mềm Cờ ngắt truyền, RI phải đặt phần cứng kết thúc việc nhận ký tự, RI xóa phần mềm Trước sử dụng cổng nối tiếp, phải khởi động SCON để chọn chế độ 4.2 Các chế độ hoạt động 4.2.1 Chế độ Chế độ chế độ mà cổng nối tiếp dùng ghi dịch bit Dữ liệu truyền/nhận chân RXD, Chân TXD dùng để phát xung clock dịch bit Khi truyền nhận byte liệu bit, bit có giá trị thấp (LSB) truyền nhận trước tiên bit MSB truyền nhận sau Việc truyền nhận liệu bắt đầu việc ghi byte liệu vào SUBF, việc nhận liệu bắt đầu bit REN đặt cờ thu RI = Tốc độ baud chế độ cố định FOSC /12 4.2.2 Chế độ Trong chế độ 1, cổng nối tiếp hoạt động UART bit có tốc độ thay đổi Dữ liệu truyền nối tiếp chân TXD nhận nối tiếp chân RXD, chế độ cung cấp cho AT89S52 công cụ giao tiếp với máy tính qua cổng COM Ở chế độ 1, khung truyền gồm 10 bit, bit liệu có bit start mức thấp bit stop mức cao, LSB truyền trước MSB truyền sau Khoa Điện Tử 11 Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry Tốc độ baud cổng nối tiếp chế độ cung cấp Timer 1, Timer đồng thời Timer muốn tốc độ truyền tốc độ nhận khác Khi sử dụng timer để cung cấp tốc độ baud cho cổng nối tiếp thi dùng thach anh 11,0592MHz dùng loại tạo tốc độ baud chuẩn với sai số Khác với Timer 1, Timer cấp xung clock có tần số ½ tần số dao động thạch anh Khi cần có tốc độ baud khác cho đương truyền đường nhận sử dụng timer Nếu đặt TCLK =1 RCLK=0 tốc độ baud đường truyền cung cấp timer 1, tốc độ baud đường nhận cung cấp timer 4.2.3 Chế độ Trong chế độ cổng nối tiếp hoạt động UART bit, khung truyền gồm 11 bit, bit bit start,tiếp theo bit liệu, bit liệu thứ 9, cuối bit stop Chế độ dùng cần chèn thêm bit kiểm tra chẵn lẻ vào khung truyền để giảm bớt lỗi đường truyền 4.2.4 Chế độ Chế độ kết hợp chế đọ chế độ 2, nghĩa cổng nối tiếp hoạt động UART bit tốc độ baud UART thay đổi giống chế độ Trao đổi liệu qua cổng nối tiếp Thao tác trao đổi liệu qua cổng nối tiếp không đơn việc ghi đọc liệu trao đổi trực tiếp qua cổng mà bao gồm thao tác sau: +Khởi tạo cổng nối tiếp -Truy suất SCON để đặt thông số chế độ hoạt động, cho phép thu -Thiết lập xóa bit SMOD ghi Pcon để dặt hệ số chia tốc độ baud -Truy suất ghi timer timer để đặt tốc độ baud cho cổng nối tiếp + Kiểm tra cờ TI(khi truyền) cờ RI(khi nhận) + Ghi đọc byte liệu SUBF Nếu cổng nối tiếp hoạt động chế độ chế độ thao tác có thao tác ghi / đọc bit liệu thứ 9vaof twfTB9/RB9 Ngắt xử lý ngắt Trong thực tế người ta muốn tận dụng khả CPU để làm thêm nhiều công việc khác nữa, cần có trao đổi liệu yêu cầu CPU tạm dừng công việc để phục vụ việc trao đổi liệu Sau hoàn thành việc trao đổi liệu CPU lại phải quay để làm tiếp công việc bị gián đoạn Cách làm việc theo kiểu gọi ngắt đáp ứng nhanh yêu cầu trao đổi liệu làm nhiều công việc khác 5.1 Tổ chức ngắt AT89S52 AT89S52 có nguồn ngắt: Khoa Điện Tử 12 Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry + Ngắt đến từ chân #INT0 + Ngắt đến từ chân #INT1 + Ngắt timer + Ngắt timer + Ngắt timer + Ngắt port nối tiếp nguonf ngắt xóa reset đặt phần mềm bit ghi cho phép ngắt(IE), ghi ưu tiên ngắt(IP) * Thanh ghi cho phép ngắt IE EA ET2 ES ET1 EX1 ET0 EX0 Bit Ký hiệu Địa bit Mô tả IE.7 EA AFH Cho phép cấm toàn IE.6 -AEH Không định nghĩa IE.5 ET2 ADH Cho phép ngắt từ timer 2(8052) IE.4 ES ACH Cho phép ngắt từ port nối tiếp IE.3 ET1 ABH Cho phép ngắt từ timer IE.2 EX1 AAH Cho phép ngắt IE.1 ET0 A9H Cho phép ngắt từ timer IE.0 EX0 A8H Cho phép ngắt Thanh ghi ưu tiên ngắt IP: Mỗi nguồn ngắt lập trình riêng để đặt vào hai mức ưu tiên qua ghi chức đặc biệt đượ địa bit IP(interrup priolity: ưu tiên ngắt) địa B8H - PT2 PS PT1 PX1 PT0 PX0 Bit Ký hiệu Địa bit Mô tả IP7 -Không định nghĩa IP.6 -Không định nghĩa IP.5 PT2 BDH Ưu tiên cho ngắt từ timer IP.4 PS BCH Ưu tiên cho ngắt port nối tiếp IP.3 PT1 BBH Ưu tiên cho ngắt từ timer IP.2 PX1 BAH Ưu tiên cho ngắt IP.1 PT0 B9H Ưu tiên cho ngắt từ timer IP.0 PX0 B8H Ưu tiên cho ngắt 5.1.1 Ngắt timer Các ngắt timer xảy kiện tràn timer, cờ tràn TFx đặt Khi IRS đáp ứng cờ TFx tự động xóa phần mềm Khung chương trình có sử dụng ngắt: #include #include // chương trình Khoa Điện Tử 13 Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry Void main(void) { //Khởi tạo ghi cho phép ngắt ưu tiên ngắt … } //Các chương trình phục vụ ngắt Void ngắt Tx(đối số) interrup x { // Các câu lệnh chương trình } Trong x số hiệu ngắt tương ứng với vector ngắt tương ứng 5.1.2 Ngắt cổng nối tiếp Ngắt cổng nối tiếp xảy cờ ngắt phát (TI) cờ ngắt thu(RI) đặt lên Ngắt phát xảy đệm rỗng, ngắt thu xảy ký tự nhận xong đợi SUBF để đọc Các ngắt cổng nối tiếp khác với ngắt timer.Cờ gây ngắt port nối tiếp không bị xóa phần cứng CPU chuyển tới chương trình phục vụ ngắt có hai nguồn ngắt cổng nối tiếp TI RI, nguồn ngắt phải xác định IRS cờ tạo ngắt xóa phần mềm 5.1.3 Ngắt Các ngắt xảy có mức thấp cạnh xuống chân /INT0 /INT1 vi điều khiển Các cờ ngắt bit IE0 IE1 TCON Khi quyền điều khiển chuyển đến IRS cờ tạo ngắt xòa ngắt tích cực cạnh xuống, ngắt dduocj tích cực theo mức, nguồn yêu cầu ngắt bên điều khiển mức cờ thay cho phần cứng Các mức tích cực đặt mức Itx ghi SCON Nếu Itx =0 ngắt tích cực theo mức thấp, Nếu Itx =1 ngắt tích cực theo sườn âm Nếu ngắt tác động cạnh xuống nguồn bên phải giữ chân /INTx mức cao tối thiểu chu kỳ máy giữ mức thấp chu kỳ máy CPU phát cạnh xuống Nếu ngắt tác động theo mức nguồn bên phải giữ tín hiệu yêu cầu chân /INTx(ở mức thấp) ngắt đáp ứng không tác động IRS hoàn thành, không ngắt khác nặp lại II CỔNG NỐI TIẾP ( COM/ RS232) Đặc trưng cổng nối tiếp: Điện áp: Mức logic 1: –3V đến –12V; Mức logic : +3V đến +12V Tốc độ truyền liệu chuẩn: 300, 600, 1200, 2400, 4800, 9600,19200, 28800, 56600 baud (bit/s) Khoa Điện Tử 14 Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry Độ dài cực đại cáp kết nối là: 15m (trong trường hợp đệm, lặp ) Chân Tín hiệu Mô tả Ý nghĩa Trạng thái CD Carrier detect Tín hiệu phát mang liệu Vào RD Receive data Nhận liệu Vào TD Tranfer data Truyền liệu DTR Data terminal ready Dữ liệu đầu cuối sẵn sàng SG Signal ground GND DSR Data set ready Dữ liệu sẵn sàng gửi Vào RTS Request to send Tín hiệu yêu cầu gửi Ra CTS Clear to send Tín hiệu yêu cầu xóa để gửi tiếp Vào RI Ring indicator Chuông báo Vào Ra Trên PC có cổng nối tiếp, nhiên lý kinh tế nên ngày thường có cổng Com Com Com địa : 3F8H, Com địa : 2F8H, Com địa : 3E8H, Com địa : 2E8H Sự trao đổi đường dẫn tín hiệu: Trên máy tính có vi mạch đảm bảo việc truyền nhận liệu qua cổng nối tiếp vi mạch gọi UART ( Universal Asynchronous Receive/Transmiter) Bộ truyền nhận nối tiếp không đồng UART phổ biến vi mạch 8250 Intel phiên cao 16450, 16550,16570… Việc trao đổi liệu qua cổng nối tiếp thực chất việc truy xuất ghi vi mạch - Thanh ghi điều khiển modem ( Địa sở + 4): D7 D6 D5 D4 D3 D2 D1 D0 × × × Loop × × RTS STR Trạng thái bít D0 & D1 có liên quan trực tiếp đến đường dẫn RTS DTR D0=D1=1 chân RTS & DTR có mức điện áp tương ứng mức -12V ngược lại Khoa Điện Tử 15 Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry LOOP =1 8250 hoạt động chế độ vòng TXD nối với RXD cho phép kiểm tra đường truyền nhận cổng com PC - Thanh ghi trạng thái modem ( Địa sở +6) D7 D6 D5 D4 D3 D2 D1 D0 × R1 DSR CTS × × × × Thông báo trạng thái đường dẫn bắt tay - Thanh ghi điều khiển đường truyền ( địa sở +3) DLAB C6 C5 C4 C3 C2 C1 C0 Chức đặt thông số đường truyền: Bít Chức Ý nghĩa C1,C0 Đặt số bít byte 00: 5bit, 01 : bit 11: bit, 11: bit C2 Đặt số bít dừng 0- bit dừng 1- 1,5 bit dừng C3 Bít kiểm tra chẵn/lẻ 0: không kiểm tra 1: có kiểm tra C4 Loại parity 0: parity lẻ 1: parity chẵn C5 Bít đánh dấu khung cần kiểm tra chẵn 0: Stick bit lẻ (Stick bit) 1: Stick bit C6 Bít điều khiển đường truyền( Break bit 0: truyền nhận bình thường ( mức cao -12V) 1: không truyền nhận DLAB Divisor Latch Access Bit: Bít phân chia truy nhập cho ghi có địa ( 8250 có địa có ghi) - Thanh ghi trạng thái đường truyền ( Địa sở +5) Phản ánh trạng thái đường truyền nối tiếp: S6 S5 S4 S3 S2 S1 S0 S0 =1 có byte nhận S1 =1 ký tự trước chưa đọc, ký tự đến xóa ký tự cũ đệm S2=1 có lỗi chẵn lẻ S3= có lỗi khung truyền S4 =1 có gián đoạn đường truyền S5= truyền rỗng cổng nối tiếp truyền nhận S6= đệm rỗng - Thanh ghi đệm đọc/ghi ( Địa sở): Lưu trữ tạm thời liệu truyền nhận từ chân TXD & RXD - Thanh ghi chứa số chia tốc độ Baud ( byte thấp- Địa sở) Gồm bít, chứa phần thấp số chia tốc độ baud Số chia tốc độ baud = 1843200/(16*tốc độ baud thiết lập) VD: Tốc độ baud 9600 số chia tương úng 3, byte thấp số chia tốc độ baud nạp 3, byte cao Khoa Điện Tử 16 Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry - Thanh ghi chứa số chia tốc độ Baud ( byte cao- địa sở +1) Thanh ghi phép ngắt ( địa sở +1) × × × × D3 D2 D1 D0 Dx =1 đặt ngắt tương ứng, Dx=0 không đặt ngắt tương ứng D0: đặt ngắt nhận ký tự D1: đặt ngắt đệm truyền rỗng D2: đặt ngắt thay đổi trạng thái đường truyền D3: đặt ngắt thay đổi trạng thái modem - Thanh ghi nhận dạng ngắt ( Địa sở +2) × × × × × D2 D1 D0 D2 D1 D0 Mức ưu tiên Nguồn gây ngắt 0 Không kiểm tra ngắt 1 Cao Lỗi đường nhận liệu 0 Thứ Có nhận liệu Thứ Thanh ghi đệm truyền rỗng 0 Thứ Các trạng thái modem III Đặt lại ngắt Đọc ghi trạng thái đường truyền Đọc ghi đệm Đọc ghi trạng thái modem MAX 232 Do mức logic vi điều khiển cổng COM khác Khắc phục vấn đề người ta sử dụng vi mạch MAX232 để chuyển đổi mức điện áp hai chuẩn Vi mạch chứa chuyển đổi mức logic từ TTL sang RSMAX232 ngược lại Bảng so sánh diện áp mức logic giưa RS232 TTL Đối Tượng Mức logic Cổng COM (mức RS232C) Vi điều khiển (mức TTL) Mức điện áp tương ứng -12V đến -3V +3V đến +12V +5V 0V Bảng trạng thái Khoa Điện Tử 17 Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry Sơ đồ logic: Điện áp giớ hạn: Điện áp nguồn vào Vcc: -0.3V÷6V Dải điện áp dương Vs+: -0.3V÷15V Dải điện áp âm Vs-: -0.3V÷-15V Dải điện áp vào Vi: Driver: -0.3V ÷ Vcc +0.3v Receive: ±30V Dải điện áp Vo: T1out, T2out: Vs 0.3V ÷ Vs++0.3V R1out, R2out: -0.3V ÷ Vcc +0.3V B NỘI DUNG THIẾT KẾ SẢN PHẨM Nhiệm vụ thiết kế Thiết kế đếm sản phẩm sử dụng cổng nối tiếp (Com) Mạch điện tử thiết kế máy tính phần mềm chuyên dụng Số sản phẩm đếm hiển thị hình máy tính Phần mềm viết ngôn ngữ lập trình Windows (VB, C++ …) Khoa Điện Tử 18 Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry Khi nhấn phím (chẳng hạn Ctrl+S) số sản phẩm đếm lưu lại ổ cứng với thông tin thời gian (giây, phút, giờ, ngày, tháng, năm) thời điểm lưu Quá trình thực 1) Thiết kế sơ đồ nguyên lý 2) Mô phần mềm Proteus cắm mạch test bo đa 3) 4) 5) 6) 7) Viết code cho chip AT89S52 Thiết kế giao diện Visual Basic 6.0 Vẽ mạch in phần mềm Protell Thiết kế mạch in tiến hành lắp ráp linh kiện Hoàn thiện kiểm tra mạch sau hoàn thành theo yêu cầu đặt Sơ đồ nguyên lý Khoa Điện Tử 19 Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry Sơ đồ mạch in Giao diện máy tính Code cho giao diện máy tính Private Sub Command1_Click() Khoa Điện Tử 20 Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry kt = "@IR" send (kt) End Sub Private Sub Command2_Click() If MSComm1.PortOpen = True Then MSComm1.PortOpen = False End If End End Sub Private Sub Form_Load() Dim kt As String Sanpham.Caption = "" MSComm1.CommPort = MSComm1.Settings = "9600,N,8,1" MSComm1.RThreshold = MSComm1.SThreshold = MSComm1.InputLen = ‘ Moi lan nhan byte MSComm1.InputMode = ‘ Mode text =0 doc ma ASCII, chuoi MSComm1.PortOpen = True End Sub Private Sub form_unload(Cancel As Integer) If (MSComm1.PortOpen) Then MSComm1.PortOpen = False End If End Sub Private Sub MSComm1_OnComm() Dim x, y, z As String Dim a, b, c As Integer x = y = z = "" If MSComm1.CommEvent = comEvReceive Then x = MSComm1.Input If Left(x, 1) = "a" Then If Len(x) = Then y = Left(Right(x, 2), 1) ‘ byte cao z = Right(Right(x, 2), 1) ‘ byte thap c = Asc(y) + Asc(z) * 256 Sanpham.Caption = c End If End If x = y = z = "" End If End Sub Khoa Điện Tử 21 Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry Sub send(BF As String) If MSComm1.PortOpen = True Then MSComm1.Output = BF End If End Sub Private Sub Timer1_Timer() Time = Format(Now(), "ddd dd, mmm, yyyy hh:nn:ss") 'Time = Format(Now(), "ddd dd,mmm,yyyy hh:nn:ss AM/PM") End Sub Private Sub Command1_KeyPress(KeyAscii As Integer) Dim fileNo, myLocalFolder, myFileName myLocalFolder = App.Path If KeyAscii = 19 Then If Right(myLocalFolder, 1) "\" Then myLocalFolder = myLocalFolder & "\" End If fileNo = FreeFile myFileName = myLocalFolder & "Sanpham.txt" If Dir(myFileName) "" Then ‘ neu file sanpham.txt hien huu Open myFileName For Append As #fileNo Else Open myFileName For Output As #fileNo End If Print #fileNo, "Number of Product:" & Sanpham & ";"; Format(Now, " hh:nn:ss, dd/mm/yyyy") Close #fileNo End If End Sub Code cho vi điều khiển #include #include unsigned int i; unsigned int sp; unsigned char M[10]; void ngat0 (void) interrupt { unsigned int j; for(j=0;j[...]... +0.3v Receive: ±30V Dải điện áp ra Vo: T1out, T2out: Vs 0.3V ÷ Vs++0.3V R1out, R2out: -0.3V ÷ Vcc +0.3V B NỘI DUNG THIẾT KẾ SẢN PHẨM 1 Nhiệm vụ thiết kế Thiết kế bộ đếm sản phẩm sử dụng cổng nối tiếp (Com) Mạch điện tử được thiết kế trên máy tính bằng phần mềm chuyên dụng Số sản phẩm đếm được hiển thị trên màn hình máy tính Phần mềm được viết bằng 1 ngôn ngữ lập trình trên Windows (VB, C++ …) Khoa Điện... RI Ring indicator Chuông báo Vào Ra Trên PC có thể có 4 cổng nối tiếp, tuy nhiên vì lý do kinh tế nên ngày nay thường có 2 cổng là Com 1 và Com 2 Com 1 địa chỉ cơ bản : 3F8H, Com 2 địa chỉ cơ bản : 2F8H, Com 3 địa chỉ cơ bản : 3E8H, Com 4 địa chỉ cơ bản : 2E8H Sự trao đổi các đường dẫn tín hiệu: Trên máy tính có 1 vi mạch đảm bảo việc truyền nhận dữ liệu qua cổng nối tiếp vi mạch đó gọi là UART ( Universal... sản phẩm cùng thời gian thì ta nhấn tổ hợp phím Ctrl +S C KẾT LUẬN Ưu nhược điểm của sản phẩm: Ưu điểm: Sản phẩm đơn giản, dễ thiết kế Nhỏ gọn, dễ lắp đặt Giá thành rẻ Có thể đếm sản phẩm với tốc độ cao, số lượng lớn Nhược điểm: Khả năng chống nhiễu kém Tính ổn định không cao Khoa Điện Tử 23 Hanoi University of Industry Đo Lường Và Điều Khiển Máy Tính Hanoi University of Industry Trên sản phẩm có sử. .. Trên sản phẩm có sử dụng MAX232, linh kiện này phải biến đổi mức tín hiệu liên tục nên rất dễ bị hư hỏng Giao diện còn sơ sài, quá đơn giản, thiếu thẩm mỹ Tính thực tế, và hướng cải tiến sản phẩm: Đây chỉ là mô hình đồ án, để sản phẩm có thể hoạt động trên thực tiễn ta cần thay đổi cảm biến, sử dụng các loại cảm biến trong công nghiệp có khoảng cách xa Sản phẩm có thể dùng để đếm sản phẩm trên các băng... (kt) End Sub Private Sub Command2_Click() If MSComm1.PortOpen = True Then MSComm1.PortOpen = False End If End End Sub Private Sub Form_Load() Dim kt As String Sanpham.Caption = "" MSComm1.CommPort = 1 MSComm1.Settings = "9600,N,8,1" MSComm1.RThreshold = 1 MSComm1.SThreshold = 1 MSComm1.InputLen = 3 ‘ Moi lan nhan 3 byte MSComm1.InputMode = 0 ‘ Mode text =0 doc ma ASCII, 1 chuoi MSComm1.PortOpen = True... qua cổng COM tới vi điều khiển AT89S52 Khi Vi điều khiển nhận đủ 3 ký tự trên sẽ thực hiện gửi lên máy tính ký tự “a” và 2 byte nửa cao và nửa thấp của số sản phẩm mà vi điều khiển đếm được Khi có sản phẩm đi qua cảm biến IR sẽ gây ra một sườn (+) tác động lên chân số 12, ngắt INT0 của vi điều khiển, lúc này vi điều khiển sẽ thực hiện chương trình con phục vụ ngắt 0, và tăng sản phẩm lên 1 Số sản phẩm. .. Sản phẩm có thể dùng để đếm sản phẩm trên các băng truyền trong nhà máy, đếm lượng người hay xe cộ ra vào một khu vực nào đó Sản phẩm còn có nhiều hạn chế, cần thiết kế giao diện sao cho dễ sử dụng có đầy đủ chức năng hơn Tận dụng tối đa kha năng của vi điều khiển Trên vi điều khiển mới sử dụng có một ngắt ngoài, ta có thể sử dụng ngắt còn lại để tiết kiệm chi phí, mà vẫn đạt được yêu cầu hệ thống... trạng thái modem MAX 232 Do mức logic của bộ vi điều khiển và ở cổng COM khác nhau Khắc phục vấn đề này người ta sử dụng vi mạch MAX232 để chuyển đổi mức điện áp giữa hai chuẩn Vi mạch này chứa 2 bộ chuyển đổi mức logic từ TTL sang RSMAX232 và ngược lại Bảng so sánh diện áp của các mức logic giưa RS232 và TTL Đối Tượng Mức logic Cổng COM 1 (mức RS232C) 0 Vi điều khiển 1 (mức TTL) 0 Mức điện áp tương... doc ma ASCII, 1 chuoi MSComm1.PortOpen = True End Sub Private Sub form_unload(Cancel As Integer) If (MSComm1.PortOpen) Then MSComm1.PortOpen = False End If End Sub Private Sub MSComm1_OnComm() Dim x, y, z As String Dim a, b, c As Integer x = y = z = "" If MSComm1.CommEvent = comEvReceive Then x = MSComm1.Input If Left(x, 1) = "a" Then If Len(x) = 3 Then y = Left(Right(x, 2), 1) ‘ byte cao z = Right(Right(x,... hoạt động ở chế độ 0 SM0SM1= 01 cổng nối tiếp hoạt động ở chế độ 1 SM0SM1= 10 cổng nối tiếp hoạt động ở chế độ 2 SM0SM1= 11 cổng nối tiếp hoạt động ở chế độ 3 Bit 2 chọn chế độ cho cổng nối tiếp, bit này cho phép truyền thông đa xử lý Bit cho phép thu, REN phải được đặt bằng 1 để cho phép nhận ký tự Bit truyền thứ 9 sử dụng trong chế độ UART 9 bit Bit nhận thứ 9 sử dụng trong chế độ UART 9 bit Cờ ngắt

Ngày đăng: 30/09/2016, 10:42

Từ khóa liên quan

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

Tài liệu liên quan