1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận Văn Số Hoá Bài Thí Nghiệm Mạch Điện (Kèm File Program)

98 525 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 98
Dung lượng 1,12 MB
File đính kèm Program Kèm Theo.rar (65 KB)

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG *********** LUẬN VĂN TỐT NGHIỆP ĐỀ TÀI : SỐ HOÁ BÀI THÍ NGHIỆM MẠCH ĐIỆN MỤC LỤC PHẦN : LÝ THUYẾT CHUNG .1 LUẬN VĂN TỐT NGHIỆP A ĐẶT VẤN ĐỀ : I MỤC ĐÍCH YÊU CẦU CỦA ĐỀ TÀI : II GIỚI HẠN CỦA ĐỀ TÀI : III SƠ ĐỒ KHỐI TỔNG QUÁT : 5 B.GIỚI THIỆU AT89C51: .5 I TÓM TẮT PHẦN CỨNG : Giới thiệu họ MCS51 : Sơ lược chân AT89C51 : .7 Tổ chức nhớ : 10 Các ghi chức đặc biệt : 14 Bộ nhớ : .18 Ngõ vào tín hiệu RESET: .21 II HOẠT ĐỘNG CỦA BỘ ĐỊNH THÌ TIMER: 22 Giới thiệu : 22 Thanh ghi chế độ Timer (TMOD) : 23 Thanh ghi điều khiển timer (TCON) : 24 Chế độ timer : 24 Nguồn tạo xung nhòp : .26 Bắt đầu, dừng điều khiển Timer: 27 Khởi động truy xuất ghi timer : 28 Các khoảng ngắn khoảng dài: 29 III HOẠT ĐỘNG CỦA BỘ NGẮT (INTERRUPT): 29 Giới thiệu : 29 Tổ chức ngắt AT89C51: 30 Các ngắt ΧAT89C51: 30 Đònh interrupt: .31 IV HOẠT ĐỘNG PORT NỐI TIẾP : 32 Giới thiệu : 32 Thanh ghi điều khiển port nối tiếp : .33 Các chế độ hoạt động : .34 Khởi động truy xuất ghi cổng nối tiếp : 36 Truyền thông đa xử lý : 38 Tốc độ baud cổng nối tiếp : .38 V TẬP LỆNH CỦA ΧAT89C51: 40 Các chế độ đánh đòa : Trong tập lệnh có chế độ đánh đòa chỉ: 40 C.BIẾN ĐỔI A/D VÀ D/A : 44 I GIỚI THIỆU ADC0809 : 44 1.Sơ đồ khối : .44 2.Sơ đồ chân : 45 3.Khả : 45 4.Đặc tính kỹ thuật : 45 5.Mô tả chức : 46 GIẢN ĐỒ THỜI GIAN : 47 II GIỚI THIỆU DAC0808 : 48 1.Sơ đồ khối : .49 2.Sơ đồ chân : 49 3.Khả : 49 4.Trò số tối đa : 49 5.Hoạt động : 49 D.CỔNG NỐI TIẾP RS 232 : .51 E.NGÔN NGỮ LẬP TRÌNH VISUAL BASIC VỚI TRUYỀN THÔNG NỐI TIẾP : 52 F.GIAO TIẾP VÀ HIỂN THỊ KẾT QUẢ ĐO : 53 G.KHUYẾCH ĐẠI THUẬT TOÁN (OPERATION AMPLIFIER) : 54 I SƠ ĐỒ KHỐI VÀ PHÂN TÍCH MỘT MẠCH OP – AMP ĐƠN GIẢN : 54 II IC KHUYẾCH ĐẠI THUẬT TOÁN (OP AMP) : 54 Các đặc tính : .54 Op Amp lý tưởng : 56 3.Mạch đo dùng IC Op-Amp (mạch khuyếch đại thuật toán ) : 57 A.THIẾT KẾ PHẦN CỨNG : 58 III ĐO ÁP, DÒNG, TỤ, CẢM VÀ ĐIỆN TRỞ : 58 Đo điện áp : .58 Đo dòng điện : 59 Đo điện dung : 59 Đo điện cảm : 60 Đo điện trở : 60 IV ĐO TẦN SỐ, COSϕ, CÔNG SUẤT : 61 Đo tần số : .61 Đo cosϕ : .61 Đo công suất : 62 V BỘ NGUỒN LẬP TRÌNH DAC : 62 H GIỚI THIỆU CÁC IC TRÊN KIT : 62 1.µCAT89C51 : .62 2.Vi mạch MAX 232 : .63 3.ADC0809 : 63 4.DAC0808 : 63 5.LM741 LF353 : 63 IC 74HC573 : Đệm dòng 65 7.Rơ le : 65 I.GIAO DIỆN TRÊN MÁY TÍNH VÀ SỬ DỤNG : 67 J LƯU ĐỒ GIẢI THUẬT VÀ CHƯƠNG TRÌNH VI XỬ LÝ : 73 I LƯU ĐỒ GIẢI THUẬT : 73 Chương trình : 73 Chương trình Inchar, Outchar: .82 Chương trình đo độ rộng xung : 82 Chương trình delay2ms : (delay 2.5 ms) .83 II CHƯƠNG TRÌNH VI XỬ LÝ CHO AT89C51 : 84 III MẠCH THIẾT KẾ : 96 97 Tài liệu tham khảo Tài liệu Vi Xử Lý _Giảng viên Hồ Trung Mỹ The 8051 Microcontroller _I.Scott MacKenzie Hướng dẫn thí nghiệm Vi Xử Lý Đo lường điều khiển máy tính Ngô Diên Tập Lập trình ghép nối máy tính Windows Ngô Diên Tập Kỹ thuật đo Nguyễn Ngọc Tân Tài liệu hướng dẫn thí nghiệm mạch điện tử PHẦN : LÝ THUYẾT CHUNG A ĐẶT VẤN ĐỀ : Ngày với phát triển ngành khoa học kỹ thuật, kỹ thuật điện tử ma øtrong việc ứng dụng máy vi tính vào kỹ thuật đo lường điều khiển đem lại kết đầy tính ưu việt Để tiến hành điều khiển giám sát, đo lường trình thực máy tính, trước hết phải có mối liên hệ cần thiết máy tính giới bên Với phát triển mạnh nghành kỹ thuật số đặc biệt cho đời họ vi xử lí vi điều khiển đa chức việc dùng kỹ thuật vi xử lí, kỹ thuật vi điều khiển kết hợp với máy tính giải bế tắc kinh tế mà phương pháp dùng IC rời kết nối lại không thực Các thiết bò, hệ thống đo lường điều khiển ghép nối với máy tính có độ xác cao, thời gian thu thập số liệu ngắn, điều đáng quan tâm mức độ tự động hoá việc thu thập xử lý kết đo, kể việc lập bảng thống kê in kết I Mục đích yêu cầu đề tài : Trong luận văn này, em thiết kế mô hình thí nghiệm mạch điện đo đại lượng điện, có giao diện nối tiếp với máy tính để hiển thò vẽ dạng tín hiệu đo lên hình Mạch vi xử lý nhận giá trò đại lượng điện (điện áp, dòng điện, điện trở, điện dung, cảm kháng tần số, công suất) sau qua mạch đệm chuyển thành điện áp thích hợp tương ứng với ngõ vào analog biến đổi ADC Các giá trò đo truyền máy tính để xử lý thò lên hình Yêu cầu : -Giá trò đo phải xác, thay đổi tầm đo cách linh hoạt -Mạch điện không phức tạp, bảo đảm an toàn, dễ sử dụng -Giá thành không mắc Giới hạn đề tài : II Do mạch thiết kế đo đại lượng điện mạch thí nghiệm điện nên bò giới hạn giá trò đo áp (tối đa 12 V DC, 24 Vpp AC), dòng (0.1 A), giá trò điện kháng, tần số, công suất bò giới hạn tầm đo Ta mở rộng để đo giá trò lớn thông qua biến dòng, biến áp, mạch phân tầm đo với tỷ số biến đổi thích hợp III Sơ đồ khối tổng quát : Khối mạch đệm Khối xử lý B GIỚI THIỆU AT89C51: I TÓM TẮT PHẦN CỨNG chuyển: đổi Máy tính & Giới thiệu họ MCS51 : MCS51 họ IC vi điều khiển (microcontroller) hãng Intel sản xuất Các IC tiêu biểu cho họ MCS51 8031 8051 Cùng với thời gian, người cho đời nhiều loại vi xử lí từ bit đến 64 bit với cải tiến ngày ưu việt tùy theo mục đích sử dụng mà vi xử lí bit tồn Trong luận văn, em sử dụng vi điều khiển AT89C51 AT89C51 vi xử lí bit có chứa nhớ bên có thêm đònh thời, giao tiếp nối tiếp trực tiếp với máy tính Với nhớ trong, AT89C51 thích hợp cho chương trình có quy mô nhỏ, nhiên AT89C51 kết hợp với nhớ cho chương trình có quy mô lớn Sau giới thiệu em vi điều khiển AT89C51 có đặc điểm chung sau : − Kbyte ROM − 128 byte RAM − port I/O bit − đònh thời 16 bit − Giao tiếp nối tiếp − 64 K không gian nhớ chương trìng mở rộng − 64 K không gian nhớ liệu mở rộng − Một xử lý luận lý (thao tác bit đơn ) − 210 bit đòa hoá − Bộ nhân/chia µ s INT1\ INT0\ SERIAL PORT TEMER0 TEMER1 TEMER2 8032\8052 128 byte RAM 8032\8052 INTERRUPT CONTROL OTHER REGISTER ROM 0K: 8031\8032 4K: 8031 8K:8052 128 byte RAM TEMER2 8032\8052 TEMER1 TEMER1 CPU BUS CONTROL SERIAL PORT I/O PORT OSCILATOR EA\ RST ALE\ PSEN\ P0 P1 P2 P3 TXD RXD Address\Data Sơ đồ khối AT89C51 Sơ lược chân AT89C51 : AT89C51 có tất 40 chân có chức đường xuất nhập Trong có 24 chân có công dụng kép, đường hoạt động đường xuất nhập đường điều khiển thành phần bus liệu bus đòa Sơ đồ chân AT89C51 : 40 Vcc P0.7 32 AD7 30pF 19 XTAL1 18 XTAL2 12MHz 30pF P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 33 34 35 36 37 38 39 28 27 26 25 24 23 22 21 AD6 AD5 AD4 AD3 AD2 AD1 AD0 AT89C51 RST P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 17 16 15 14 13 12 11 10 P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 29 O PSEN 30 ALE 31 O EA RD WR T1 T0 INT1 INT0 TXD RXD Vss A15 A14 A13 A12 A11 A10 A9 A8 a Port : Port port có hai chức chân 32 – 39 Trong thiết kế cỡ nhỏ ( không dùng nhớ mở rộng ) có chức đường I/O Đối với thiết kế lớn với nhớ mở rộng, hợp kênh bus đòa bus liệu b Port : Port port I/O chân – Các chân ký hiệu P1.0 , P1.1, P1.2 , … dùng cho giao tiếp với thiết bò cần Port chức khác, chúng dùng cho giao tiếp với thiết bò c Port : Port port có công dụng kép chân 21 – 28 dùng đường xuất nhập byte cao bus đòa thiết kế dùng nhớ mở rộng d Port : Port port công dụng kép chân 10 – 17 Các chân port có nhiều chức năng, công dụng chuyển đổi có liên hệ với đặc tính đặc biệt AT89C51 bảng sau : Bit Tên Chức chuyển đổi P3.0 RXD Dữ liệu nhận cho port nối tiếp P3.1 TXD Dữ liệu phát cho port nối tiếp P3.2 INT0 Ngắt bên P3.3 INT1 Ngắt bên P3.4 T0 Ngõ vào timer/counter P3.5 T1 Ngõ vào timer/counter P3.6 WR Xung ghi nhớ liệu P3.7 RD Xung đọc nhớ liệu e PSEN ( Program Store Enable ) : AT89C51 có tín hiệu điều khiển PSEN tín hiệu chân 29 Nó tín hiệu điều khiển phép nhớ chương trình mở rộng thường nối đến chân OE (Output Enable ) EPROM phép đọc byte mã lệnh PESEN mức thấp thời gian lấy lệnh Các mã nhò phân chương trình đọc từ EPROM qua bus liệu chốt vào ghi lệnh AT89C51 để giải mã lệnh Khi thi hành chương trình ROM nội ( AT89C51 ) PSENsẽ mức thụ động ( mức cao ) f ALE (Adress Latch Enable ) : Tín hiệu ALE chân 30 tương hợp với thiết bò làm việc với vi xử lý 8085, 8086, 8088 AT89C51 dùng ALE cách tương tự cho việc giải kênh bus đòa liệu Khi port dùng chế độ chuyển đổi : vừa bus liệu vừa byte thấp bus đòa chỉ, ALE tín hiệu để chốt đòa vào ghi bên đầu chu lỳ nhớ Sau đường port dùng đểxuất nhập liệu nửa sau chu kỳ nhớ Các xung tín hiệu ALE có tốc độ 1/6 lần tần số dao động chip dùng làm nguồn xung nhòp cho phần khác hệ thống Nếu xung nhòp AT89C51 12 MHz ALE có tần số MHz Chỉ ngoại trừ hình thành lệnh MOVX , xung ALE bò Chân làm ngõ vào cho xung lập trình cho EPROM AT89C51 g EA (External Access): Tín hiệu vào EA chân 31 thường mắc lên mức cao (+5V )hoặc mức thấp (GND ) Nếu mức cao, AT89C51 thi hành chương trình từ ROM nội khoảng đòa thấp ( 4K) Nếu mức thấp, chương trình thi hành từ nhớ mở rộng Khi dùng 8031, EA nối mức thấp nhớ chương trình chip Nếu EA nối mức thấp nhớ bên chương trình AT89C51 bò cấm chương trình thi hành từ EPROM mở rộng Người ta dùng EA làm chân cấp điện áp 21V lập trình cho EPROM AT89C51 h RST ( Reset ): Ngõ vào RST chân ngõ reset AT89C51 Khi tín hiệu đưa lên mức cao ( chu kỳ máy ) , ghi bên AT89C51 tải giá trò thích hợp để khởi động hệ thống i Các ngõ vào dao động chíp : Như thấy hình , AT89C51 có dao động chip Nó thường nối với thạch anh hai chân 18 19 Các tụ giữ cần thiết vẽ Tần số thạch anh thông thường 12 MHz j Các chân nguồn : AT89C51 vận hành với nguồn đơn +5V V cc nối vào chân 40 Vss (GND) nối vào chân 20 Tổ chức nhớ : AT89C51 có nhớ theo cấu trúc Harvard : có vùng nhớ riêng biệt cho chương trình liệu Như nói , chương trình liệu bên ( AT89C51); dù chúng mở rộng thành phần lên đến tối đa 64 Kbyte nhớ chương trình 64 Kbyte nhớ liệu Bộ nhớ bên bao gồm ROM RAM chip , RAM chip bao gồm nhiều thành phần : phần lưu trữ đa dụng , phần lưu trữ đòa hoá bit , bank ghi ghi chức đặc biệt II CHƯƠNG TRÌNH VI XỬ LÝ CHO AT89C51 : ;******************* Bắt đầu chương trình ************************* org 0h main: mov scon,#52h ;Cổng nối tiếp,mode mov tmod,#21h ;Timer mode 1, timer mode mov th1,#-3 ;Số đếm nạp lại cho 9600 baud mov a,87h ;Gấp đôi tốc độ baud setb acc.7 mov 87h,a setb tr1 ;Cho timer chạy cung cấp xung nhòp tốc độ baud clr p1.0 clr p1.1 clr p1.2 clr p1.3 clr p1.4 nhan: acall inchar next1: cjne a,#'V',next2 ljmp doV next2: cjne a,#'A',next3 ljmp doA next3: cjne a,#'R',next4 ljmp doR next4: cjne a,#'P',next5 ljmp doP next5: cjne a,#'F',next6 ljmp doF next6: cjne a,#'L',next7 ljmp doCL next7: cjne a,#'C',next8 ljmp doCL next8: cjne a,#'S',nhan ljmp Dsong sjmp nhan ;******************** Dạng sóng tín hiệu ******************************* Dsong: acall inchar cjne a,#'4',ds0 mov r4,#240 sjmp ds3 ds0: cjne a,#'3',ds1 mov r4,#110 sjmp ds3 ds1: cjne a,#'2',ds2 mov r4,#65 sjmp ds3 ds2: sjmp ds4 ds3: clr p3.2 ;chọn kênh setb p3.3 clr p3.4 setb p1.2 ;RL4 call delay2ms mov dptr,#0000h mov r0,#6 mov 30h,r4 tiep0: mov r4,30h tiep1: movx @dptr,a ;tạo xung Start ALE mov r2,#60 djnz r2,$ ;chờ EOC lên movx a,@dptr ;Đọc data acall outchar djnz r4,tiep1 djnz r0,tiep0 tiep3: ljmp nhan ds4: mov r4,#110 mov r0,#10h clr p3.2 ;chọn kênh setb p3.3 clr p3.4 setb p1.2 ;RL4 call delay2ms tiep4: mov r1,#50 mov dptr,#0000h movx @dptr,a ;tạo xung Start ALE mov r2,#60 tiep5: tiep6: djnz r2,$ movx a,@dptr mov @r0,a inc r0 djnz r1,$ djnz r4,tiep4 mov r0,#10h mov r4,#110 mov a,@r0 inc r0 acall outchar djnz r4,tiep5 ljmp nhan ;chờ EOC lên ;Đọc data ;******************* Đo điện áp ************************************* doV: acall inchar cjne a,#'a',vdc vac: setb p3.2 ;chọn kênh setb p3.3 clr p3.4 clr p1.2 ;RL4 call delay2ms jmp v vdc: clr p3.2 ;chọn kênh setb p3.3 clr p3.4 setb p1.2 ;RL4 call delay2ms v: mov dptr,#0000h movx @dptr,a ;tạo xung Start ALE acall delay120us ;chờ EOC lên movx a,@dptr ;Đọc data acall outchar ;; ljmp nhan ;****************** Đo dòng điện ************************************ doA: acall inchar cjne a,#'a',adc aac: setb p3.2 ;chọn kênh adc: a0: a1: a2: a3: a4: a5: a6: clr p3.3 clr p3.4 clr p1.1 call delay2ms jmp a0 clr p3.2 clr p3.3 clr p3.4 setb p1.1 call delay2ms acall inchar cjne a,#'1',a2 setb p1.0 call delay2ms jmp a3 cjne a,#'2',a4 clr p1.0 call delay2ms mov dptr,#0000h movx @dptr,a acall delay120us movx a,@dptr acall outchar ljmp nhan mov dptr,#0000h movx @dptr,a acall delay120us movx a,@dptr cjne a,#22,a5 jc a6 jb p1.0,a7 mov r4,a mov a,#'2' acall outchar mov a,r4 acall outchar ljmp nhan jb p1.0,a81 setb p1.0 acall delay2ms ;RL2 ;chọn kênh ;RL2 ;Chọn tầm đo ;RL1 ;RL1 ;tạo xung Start ALE ;chờ EOC lên ;Đọc data ;; ;tạo xung Start ALE ;chờ EOC lên ;Đọc data ;(255*0.45/5) a7: a8: a81: a9: a10: mov dptr,#0000h movx @dptr,a acall delay120us movx a,@dptr sjmp a81 cjne a,#202,a8 jnc a9 mov r4,a mov a,#'1' acall outchar mov a,r4 acall outchar sjmp a10 clr p1.0 acall delay2ms mov dptr,#0000h movx @dptr,a acall delay120us movx a,@dptr mov r4,a mov a,#'2' acall outchar mov a,r4 acall outchar ljmp nhan ;tạo xung Start ALE ;chờ EOC lên ;Đọc data ;(255*4/5) ;tạo xung Start ALE ;chờ EOC lên ;Đọc data ;****************** Đo điện trở ************************************ doR: clr p3.2 ;chọn kênh setb p3.3 setb p3.4 acall inchar cjne a,#'1',rr1 clr p1.4 ;RL5 call delay2ms jmp rr3 rr1: cjne a,#'2',rr4 rr2: setb p1.4 ;RL5 call delay2ms rr3: mov dptr,#0000h rr4: rr6: rr7: rr8: rr9: rr10: movx @dptr,a acall delay120us movx a,@dptr acall outchar ljmp nhan mov dptr,#0000h movx @dptr,a acall delay120us movx a,@dptr jb p1.4,rr8 cjne a,#202,rr6 jc rr7 setb p1.4 acall delay2ms mov dptr,#0000h movx @dptr,a acall delay120us movx a,@dptr mov r4,a mov a,#'2' acall outchar mov a,r4 acall outchar ljmp nhan mov r4,a mov a,#'1' acall outchar mov a,r4 acall outchar ljmp nhan cjne a,#22,rr9 jc rr10 mov r4,a mov a,#'2' acall outchar mov a,r4 acall outchar ljmp nhan clr p1.4 acall delay2ms mov dptr,#0000h ;tạo xung Start ALE ;chờ EOC lên ;Đọc data ;tạo xung Start ALE ;chờ EOC lên ;Đọc data ;tạo xung Start ALE ;chờ EOC lên ;Đọc data movx @dptr,a acall delay120us movx a,@dptr mov r4,a mov a,#'1' acall outchar mov a,r4 acall outchar ljmp nhan ;tạo xung Start ALE ;chờ EOC lên ;Đọc data ;****************** Đo điện dung cảm kháng ************************* doCL: clr p1.3 ;Đo Z ,RL3 setb p3.2 clr p3.3 ;chọn kênh setb p3.4 mov dptr,#0000h movx @dptr,a ;tạo xung Start ALE acall delay120us ;chờ EOC lên movx a,@dptr ;Đọc data acall outchar ljmp nhan ;****************** Đo công suất hệ số công suất ********************** doP: mov r1,#0 mov r0,#0 acall inchar cjne a,#'a',Pdc ;DC /AC Xv: mov b,#1 ;sớm pha mov th0,#high(-50176) mov tl0,#low(-50176) jb p1.6,$ ;Đo độ rộng xung áp jnb p1.6,$ setb tr0 jb p1.5,c1 ;Nếu dòng sớm pha b=1 mov b,#2 ;trễ pha c1: acall T1_on mov a,r1 acall outchar mov a, th0 acall outchar c2: Pac: mov a,tl0 acall outchar mov th0,#high(-50176) mov tl0,#low(-50176) jb p1.5,$ ;Đo độ rộng xung lệch pha jnb p1.5,$ setb tr0 acall T2_on mov a,r0 acall outchar mov a, th0 acall outchar mov a,tl0 acall outchar mov a,b acall outchar setb p3.2 setb p3.3 clr p3.4 clr p1.2 call delay2ms mov dptr,#0000h movx @dptr,a acall delay120us movx a,@dptr push acc setb p3.2 clr p3.3 clr p3.4 setb p1.0 call delay2ms clr p1.1 call delay2ms mov dptr,#0000h movx @dptr,a acall delay120us movx a,@dptr acall outchar pop acc acall outchar ;chọn kênh ,đo áp xoay chiều ;tạo xung Start ALE ;chờ EOC lên ;đọc data ;chọn kênh ,đo dòng xoay chiều ;tạo xung Start ALE ;chờ EOC lên ;đọc data ;Dòng xoay chiều ;Áp xoay chiều jmp nhan ; Pdc: clr p3.2 ;chọn kênh ,đo áp chiều setb p3.3 clr p3.4 setb p1.2 call delay2ms mov dptr,#0000h movx @dptr,a ;tạo xung Start ALE acall delay120us ;chờ EOC lên movx a,@dptr ;đọc data push acc clr p3.2 ;chọn kênh ,đo dòng chiều clr p3.3 clr p3.4 setb p1.0 setb p1.1 call delay2ms mov dptr,#0000h movx @dptr,a ;tạo xung Start ALE acall delay120us ;chờ EOC lên movx a,@dptr ;đọc data acall outchar ; Dòng chiều pop acc acall outchar ; Áp chiều ljmp nhan ;******************* Đo tần số ************************************* doF: mov r1,#0 mov r2,#0 mov th0,#high(-50176) mov tl0,#low(-50176) jb p1.7,$ jnb p1.7,$ setb tr0 acall Tf_on acall Tf_off cjne r1,#20,F1 mov a,#'n' acall outchar jmp F2 F1: F2: mov a,#'y' acall outchar mov a,r1 acall outchar mov a, r4 acall outchar mov a,r3 acall outchar mov a,r2 acall outchar mov a, r6 acall outchar mov a,r5 acall outchar ljmp nhan ; r1 chứa bội số ; byte cao ; byte thấp ; bội số ; byte cao ; byte thấp ;******************* Chương trình ******************************** inchar: jnb ri,$ clr ri mov a,sbuf ret outchar: jnb ti,$ clr ti mov sbuf,a ret T1_on: t10: t11: t12: T2_on: t20: t21: Tf_on: t22: jnb tf0,t11 clr tr0 clr tf0 inc r1 mov th0,#high(-50176) mov tl0,#low(-50176) setb tr0 jb p1.6, t10 clr tr0 clr tf0 ret jnb tf0,t21 clr tr0 clr tf0 inc r0 mov th0,#high(-50176) mov tl0,#low(-50176) setb tr0 jb p1.5, t20 clr tr0 clr tf0 ret jnb tf0,t23 t23: t26: Tf_off: t24: t25: t27: clr tr0 clr tf0 inc r1 ; r1 chứa bội số mov th0,#high(-50176) mov tl0,#low(-50176) setb tr0 cjne r1,#20,t23 ;Nếu 2s xem chiều jmp t26 jb p1.7, t22 clr tr0 clr tf0 mov r3,tl0 ;byte thấp mov r4,th0 ;byte cao ret mov th0,#high(-50176) mov tl0,#low(-50176) setb tr0 jnb tf0,t25 clr tr0 clr tf0 inc r2 ; r2 chứa bội số mov th0,#high(-50176) mov tl0,#low(-50176) setb tr0 cjne r2,#20,t25 jmp t27 jnb p1.7,t24 clr tr0 clr tf0 mov r6,th0 ;byte cao mov r5,tl0 ;byte thấp ret delay120us: delay: mov r2,#60 djnz r2,delay ret delay2ms: mov r3,#10 lap: mov r2,#124 djnz r2,$ djnz r3,lap ret end III MẠCH THIẾT KẾ : ;250us ;2.5ms +5V SW4 P35 P34 P33 P32 15 14 13 12 30p C18 15k 40 RESET CLK12 18 X2 12M C19 GND 30p 31 X1 EA/VP VSS GND 19 P1 DCD DSR RXD RTS TXD CTS DTR RI C7 +5V C5 1u 1u JP10 C2- 15 GND V- SGA15 A14 A13 MAX232 32 33 34 35 36 37 38 39 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 C1R1OUT T2IN C2+ C6 +5V 25 24 23 +5V GND JP1 U20A /WR A CLR GND CLK12 +12V -12V U43 74LS393 ADC0809 +5V /CS0 /RD U20B VREF 74LS02/SO /CS0 +12V 2k7 -12v +5V JP17 R2OUT T1IN 10 11 12 13 14 15 16 17 29 30 20 P3.0/RXD P3.1/T XD P3.2/INTO P3.3/INT1 P3.4/T O P3.5/T P3.6/WR P3.7/RD P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 PSEN 19 18 XTAL1 XTAL2 RST ALE/P ROG GND DA8 DA7 DA6 DA5 DA4 DA3 DA2 DA1 DA1 DA2 DA3 DA4 DA5 DA6 DA7 DA8 14 15 R57 2k7 AT89C51 R85 IOUT 16 COMP VV+ +5V +12v -12v C23 0.1u -5V +5V R79 R JP18 13 C24 C15 SW3 CAP 1 R58 +5V JP2 +5V 30p LM741 C22 0.0 1u VR+ VR- C21 0.1u 4K7 JP19 IOUT DAC0808 R56 2k7 30p +5V A8 A7 A6 A5 A4 A3 A2 A1 C25 12M Y3 31 EA/V PP JP12 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 U19 12 11 10 40 VCC 39 38 37 36 35 34 33 32 P0.0 /AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6 /AD6 P0.7/AD7 JP13 P2.0/A8 P2.1/A P2.2/A 10 P2.3/A 11 P2.4/A 12 P2.5/A 13 P2.6/A14 P2.7/A 15 U26 U17 21 22 23 24 25 26 27 28 D20 C37 74LS02/SO R59 R86 R R87 74LS138 JP22 LM741_0 1 14 VCC /CS0 QA QB QC QD 13 15 14 13 12 11 10 9 OE EOC HEADER 3X2 G1 G2A G2B Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 +5V U15A VREF 10 CLK 14 16 VCC A B C R80 R GND Mạch vi xử lý giao tiếp máy tính HEADER JP26 JP14 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 12 16 REF+ REF- START ALE 22 +5V U11 GND 3 HEADER 3X2 26 27 28 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 A0 A1 A2 +5V A13 A14 A15 +12V GND -12V D0 D1 D2 D3 D4 D5 D6 D7 +12V GND -12V JP25 18 19 20 21 P32 P33 P34 JP20 +5V GND -5V +5V GND -5V HEADER 3X2 JP21 14 17 14 15 VCC JP5 D0 D1 D2 D3 D4 D5 D6 D7 11 U14 4K7 -5V HEADER 3X2 20 R84 +5V GND +12V GND -12V 8051 +5V JP15 +5V GND -5V 1u D7 D6 D5 D4 D3 D2 D1 D0 + 4 /WR /RD 28 27 26 25 24 23 22 21 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 12 10 JP16 - 10 11 30 29 16 17 RXD TXD ALE/P PSEN WR RD T1 T0 INT1 INT0 10u P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 R2OUT T1OUT RXD TXD TXD T1IN - 100 R55 10 12 14 16 14 13 11 R2OUT T1OUT T2OUT R1IN R2IN T1IN V+ P10 P17 P16 P15 P14 P13 P12 P11 P10 VCC 11 13 15 JP8 C+ C4 1u + P17 P16 P15 P14 P13 P12 P11 +5V U8 JP7 U9 VCC 16 +5V 4 +12V GND -12V C13 JP12 R75 +12V D18 +12V R101 220n 10K R79 Q2 R72 U2 - + LM741_0 C26 D15 2 D16 U1B I+ - D11 R74 R RL3 Q4 D17 R90 XDO RELAY SPDT K5 R89 R R R64 RL4 Q5 D44TD3 R +12V R63 R37 1K +12V R39 10K JP11 D13 R54 OP07_0 R91 Q3 IN2 R77 +5V R 20 R18 RELAY SPDT K4 HEADER 2X2 - P16 -12V XAP U39A C29 D20 + C IN3 R +12V -12V + LF353 JH1 1 R17 U29 R93 R R103 + P17 OP07_0 - 1N1183A Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 U31 74LS373 D0 D1 D2 D3 D4 D5 D6 D7 OC G 13 14 17 18 R R102 R +12V + P15 P16 P17 11 +5V IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 11 13 15 10 12 14 16 P10 P11 P12 P13 P14 P15 P16 P17 HEADER 8X2 R100 JP6 11 13 15 10 12 14 16 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 HEADER 8X2 +12V GND -12V U4B JP5 P10 P11 P12 P13 P14 -12V -12V XAP JP7 +12V GND -12V HEADER 3X2 LF353_0 R19 C28 C U+ D21 U3B 12 15 16 19 R94 1N1183A P15 SN7408 LF353_2 +12V RL0 RL1 RL2 RL3 RL4 GND U4A 10 +12V XDO LF353 +5V R92 R R 14 +12V R81 -12V R R16 IN6 U7 + 2 HEADER 2X2 R85 RL2 +12V R JP10 R U38 + OP07_0 LF353_0 +12V -12V + IN4 - R U3A R97 +12V 3 U8B + R82 R R -12V U- +12V -12V R R C30 C 1N1183A + LF353 IN5 R D23 RELAY SPDT -12V C -12V R86 C27 R98 1N1183A +12V IN1 C -12V R88 LF353_0 R87 R R C 10K 220n R73 RELAY SPDT +12V C14 +12V R61 D22 R44 10K R41 10R -12V K2 C31 - 4 LF353 R40 1R LM741_0 R - R +12V + R R U8A + + R84 3 R49 K3 VCC R83 U5 - K1 U1A +12V 1 +12V 10K IN0 R76 R43 10K +12V R R71 I- R60 R80 1K RL1 RL0 1K 1 RELAY SPDT HEADER 2X2 Q1 1 3 JP9 R D19 R99 R -12V +5V GND -5V JP8 HEADER 3X2 Mạch đệm lấy tín hiệu từ vi xử lý +5V GND -5V R95 R R96 R [...]... P3 A8 IE A0 P2 99 không được đòa chỉ hoá bit 98 SBUF SCON 90 P1 8D 8C 8B 8A 89 88 87 không được đòa chỉ hoá bit không được đòa chỉ hoá bit không được đòa chỉ hoá bit không được đòa chỉ hoá bit không được đòa chỉ hoá bit không được đòa chỉ hoá bit TH1 TH0 TL1 TL0 TMOD TCON PCON 83 82 81 80 không được đòa chỉ hoá bit không được đòa chỉ hoá bit không được đòa chỉ hoá bit 87 86 85 84 83 82 81 80 DPH DPL... một số nhớ sinh ra bởi phép cộng hoặc có một số mượn bởi phép trừ Ví dụ , nếu thanh ghi tích luỹ chứa FFH , thì lệnh sau : ADD A, #1 sẽ trả về thanh ghi tích luỹ kết quả 00H và set cờ nhớ trong PSW Cờ nhớ cũng có thể xem như một thanh ghi 1 bit cho các lệnh luận lý thi hành trên bit Ví dụ , lệnh sau sẽ AND bit 25H với cờ nhớ và đặt kết quả trở vào cờ nhớ : ANL C, 25H  Cờ nhớ phụ : Khi cộng các số. .. tương tự Hơn nữa, các port I/O cũng được đòa chỉ hoá từng bit làm đơn giả phần mềm xuất nhập từng bit Có 128 bit được đòa chỉ hoá đa dụng ở các byte 20H đến 2FH Các đòa chỉ này được truy xuất như các byte hoặc như các bit phụ thuộc vào lệnh được dùng Ví dụ , để đặt bit 67H , ta dùng lệnh sau : SETB 67H Chú ý rằng “đòa chỉ bit 67H “ là bit có trọng số lớn nhất (MSB) ở “ đòa chỉ byte 2CH “ Lệnh trên... như đã nói, đa số các SFR được truy xuất dùng đòa chỉ trực tiếp Chú ý rằng một vài SFR có thể được đòa chỉ hoá bằng bit hoặc byte Người thiết kế phải thận trọng khi truy xuất bit và byte Ví dụ lệnh sau SETB 0E0H sẽ set bit 0 trong thanh ghi tích luỹ , các bit khác không thay đổi Ta thấy rằng E0H đồng thời là đòa chỉ byte của cả thanh ghi tích luỹ và là đòa chỉ bit của bit có trọng số nhỏ nhất trong... thanh ghi tích luỹ b RAM đòa chỉ hoá từng bit : AT89C51 chứa 210 bit được đòa chỉ hoá , trong đó 128 bit là ở các đòa chỉ byte 20H đến 2FH , và phần còn lại là trong các thanh ghi chức năng ghi đặc biệt Ý tưởng truy xuất từng bit riêng lẻ bằng các phần mềm là một đặc tính tiện lợi của vi điều khiển nói chung Các bit có thể được đặt, xoá, AND, OR, … với một lệnh đơn Đa số các vi xử lý đòi hỏi một chuỗi... phép toán bò tràn Khi các số có dấu được cộng hoặc trừ với nhau , phần mềm có thể kiểm tra bit này để xác đònh xem kết quả có nằm trong tầm xác đònh không Khi các số không dấu được cộng , bit OV có thể được bỏ qua Các kết quả lớn hơn +127 hoặc nhở hơn –128 sẽ set bit OV Ví dụ , phép cộng sau bò tràn và bit OV được set : + 0F Hex Thập phân + 15 7F 127 8E 142 Kết quả là một số có dấu 8EH được xen như... kiểm tra nó bằng phần mềm hoặc nó tạo ra interrupt (flip - flop cờ) Giá trò nhò phân trong các flip - flop của timer có thể xem như số đếm số xung nhòp (hoặc các sự kiện) từ khi khởi động timer Ví dụ timer 16 bit sẽ đếm lên từ 0000H đến FFFFH Cờ báo tràn sẽ lên 1 khi số đếm tràn từ FFFFH đến 0000H µCAT89C51 có hai timer 16 bit, mỗi timer có 4 cách làm việc Người ta sử dụng các timer để: a Đònh khoảng... được dùng cho việc đònh khoảng thời gian Lúc đó, timer lấy xung nhòp từ bộ dao động trên chip Bộ chia 12 được thêm vào để giảm tần số xung nhòp đến giá trò thích hợp cho các ứng dụng Như vậy, thạch anh 12 MHz sẽ cho tốc độ xung nhòp timer 1 MHz Báo tràn timer xảy ra sau một số (cố đònh) xung nhòp, phụ thuộc vào giá trò ban đầu được nạp vào các thanh ghi timer TLx/THx ♦ Đếm sự kiện (Event Couting): Nếu... khoảng ngắn và các khoảng dài: Dãy các khoảng thời gian có thể đònh thời là bao nhiêu? vấn đề này được khảo sát với AT89C51 hoạt dộng với tần số 12 Mhz Như vậy xung nhòp của các timer có tần số là 1MHz Khoảng thời gian ngắnnhất có thể bò giới hạn không chỉ bởi tần số xung nhòp của timer mà còn bởi phần mềm Do ảnh hưởng của thời khoảng thời gian thực hiện một lệnh, lệnh ngắn nhất của µC8031/8051 là một... 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) Đếm sự kiện dùng để xác đònh số lần xảy ra của một số sự kiện Một “sự kiện” là bất cứ tác động ngoài nào có thể cung cấp một chuyển trạng thái 1 xuống 0 trên một chân của AT89C51.Các timer cũng có thể cung cấp xung nhòp tốc độ baud cho port

Ngày đăng: 20/11/2016, 20:33

HÌNH ẢNH LIÊN QUAN

Sơ đồ khối AT89C51 - Luận Văn Số Hoá Bài Thí Nghiệm Mạch Điện (Kèm File Program)
Sơ đồ kh ối AT89C51 (Trang 7)
Hình vẽ sau đây sẽ mô tả cách kết nối 1ù EPROM với AT89C51: - Luận Văn Số Hoá Bài Thí Nghiệm Mạch Điện (Kèm File Program)
Hình v ẽ sau đây sẽ mô tả cách kết nối 1ù EPROM với AT89C51: (Trang 18)
Hình : cho chạy và dừng các timer - Luận Văn Số Hoá Bài Thí Nghiệm Mạch Điện (Kèm File Program)
nh cho chạy và dừng các timer (Trang 28)
Bảng 6-3 : Tóm tắt tốc độ baud . - Luận Văn Số Hoá Bài Thí Nghiệm Mạch Điện (Kèm File Program)
Bảng 6 3 : Tóm tắt tốc độ baud (Trang 40)
Hình : Sắp xếp chân của cổng nối tiếp ở máy tính PC. - Luận Văn Số Hoá Bài Thí Nghiệm Mạch Điện (Kèm File Program)
nh Sắp xếp chân của cổng nối tiếp ở máy tính PC (Trang 52)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w