Sơ đồ nguyên lý và giải thuật chơng trình

Một phần của tài liệu Thiết kế bộ xử lý cân điện tử dùng vi điều khiển 8051 hiển thị dữ liệu ra màn LCD,có giao tiếp với máy tính qua cổng RS232. (Trang 94)

b) Sơ đồ nối ghép của MAX232 với 8051 theo moden không

4.4.Sơ đồ nguyên lý và giải thuật chơng trình

4.4.1. Sơ đồ nguyên lý. . OEC ALE OE KA ALE OEC RXD OE TXD GND VR CK GND VAO1 D1 D2 D3 D4 D5 D6 D7 D8 ALE VCC D1 D2 D3 D4 D5 D6 D7 D8 VDD VDD KA KB KC KB KC RXD TXD CK 1 2 3 4 5 6 7 8 e rw rs rs rw e 2 -1MSB 21 ADD B 24 ADD A 25 ADD C 23 VREF(+) 12 VREF(-) 16 IN3 1 IN4 2 IN5 3 IN6 4 IN7 5 START 6 2 -5 8 EOC 7 OUTPUT ENABLE 9 CLOCK 10 VCC 11 2 -2 20 GND 13 2 -7 14 2 -6 15 2 -8LSB 17 2 -4 18 2 -3 19 IN2 28 IN1 27 IN0 26 ALE 22 U2 ADC0809 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WRP3.5/T1 16 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U4 AT89C51 NOT1 74LS04 NOT2 74LS04 NOT3 NOT R? 3.3K R? 3.3K C 102 VI 1 VO 3 G N D 2 U2 7805 C4 1000UF/50V C5 470UF C6 104P +5V TR2 TRAN-2P2S 220vAC 12vAC L B82412A1332K000 L B82412A1332K000 C10 102P C11 102P D DIODE 103 T1IN 11 R1OUT 12 T2IN 10 R2OUT 9 T1OUT 14 R1IN 13 T2OUT 7 R2IN 8 C2+ 4 C2- 5 C1+ 1 C1- 3 VS+ 2 VS- 6 U2 MAX232 C1 1uF C2 1uF 1 6 2 7 3 8 4 9 5 J1 com 9m C7 1uF C3 1uF

mach can dien tu giao tiếp máy tính dùng loadcell

D 7 14 D 6 13 D 5 12 D 4 11 D 3 10 D 2 9 D 1 8 D 0 7 E 6 R W 5 R S 4 V S S 1 V D D 2 V E E 3 LCD1 LM032L +5v RV1 R14 10k 3 2 6 7 4 U1 OP77P R110k R2 10k R3 100k RV2 10k

Hình 4.10 Sơ đồ nguyên lý của hệ thống

4.4.2.Chơng trình

a. Giải thuật chơng trình

Giải thuật chơng trình viết cho vi điều khiển.

Bắt đầu Nhảy đến chương trình chính Nhảy đến trình ngắt nối tiếp Chương trình chính Khởi tạo ngắt Khởi tạo LCD Gọi CT chuyển đổi ADC

Gọi hiển thị LCD Gửi lên bộ đệm truyền

RAM 30H

=1 1

Hình 4.11 Giải thuật chơng trình viết cho vi điều khiển

Giải thích la đồ: Bắt đầu, bỏ qua không gian vecter ngắt nhảy đến chơng trình chính. Trong chơng trình chính vi điều khiển thực hiện khởi tạo ngắt RS232 và khởi tạo LCD, sau đó gọi các chơng trình con chuyển đổi ADC và hiển thị LCD. Dữ liệu sẽ đợc gửi lên bộ đệm truyền và tiến hành kiểm tra ô nhớ 30H trong RAM, nếu ô nhớ 30H có giá trị bằng 1 thì tiếp tục quay trở lại gọi các chơng trình con chuyển đổi ADC và hiển thị LCD và dữ liệu sẽ tiếp tục đợc gửi lên bộ đệm truyền và tiếp tục tiến hành kiểm tra ô nhớ 30H nếu ô nhớ vẫn có giá trị bằng 1 thì tiếp tục vòng lặp còn nếu giá trrị của ô nhớ

30H khác một thì chơng trình sẽ nhảy tại chỗ và liên tục kiểm tra ô nhớ 30H cho đến khi ô nhớ có giá trị bằng 1 thì tiếp tục vòng lặp. Khi chơng trình chính đang làm việc nếu có tín hiệu ngắt thì chơng trình sẽ nhảy đến trình phục vụ ngắt RS232 để thực hiện.

-La đồ giải thuật trình ngắt RS232

Hình 4.12 Giải thuật trình ngắt 232

Giải thích la đồ trình ngắt 232: Bắt đầu kiểm tra cờ RI , nếu RI=1 nhận dữ liệu từ máy tính và la vào ô nhớ 30H trong RAM sau đó xoá cờ TI và kết thúc ngắt. Nếu cờ RI=0 thì thực hiện xoá cờ TI và kết thúc ngắt ngay.

Bắt đầu

Cờ RI

Nhận dữ liệu từ máy tính

Lưa vào ô nhớ RAM 30H

Xoá cờ TI

Kết thúc ngắt

=1 =0

- Giải thuật viết giao diện cho máy tính:

Giải thuật cho timer nhận và hiển thị:

Hình 4.13 Giải thuật cho timer nhận(a) và hiển thị (b) Giải thích la đồ:

- Timer nhận: Đọc dữ liệu từ bộ đệm nhận sau đó cắt đi 2 khoảng trống của bộ đệm nhận và chuyển đổi dữ liệu dạng HEX sang hệ ASCII .

- Timer hiển thị: Xuất biến ra text1 sau đó xuất chữ KG và kết thúc

Giải thuật FORM:

Chọn cổng COM1 Bắt đầu (adsbygoogle = window.adsbygoogle || []).push({});

Chọn giao thức truyền thông

Khai báo đọc vào dạng text

Khai báo bộ đệm 1 byte

Mở cổng COM

Cấm timer đọc bộ đệm Cấm timer hiển thị

Kết thúc

Xuất biến ra text 1 Bắt đầu

Xuất chữ KG

Kết thúc Đọc bộ đệm nhận

Bắt đầu

Cắt đi 2 khoảng trống của bộ đệm

Chuyển đổi sang hệ ASCII

Kết thúc

Hình 4.14 Giải thuật FORM

Giải thích la đồ: Khai báo chọn cổng COM1 , sau đó khai báo dạng truyền thông và đọc vào dạng text , khai báo bộ đệm 1byte.Tiếp theo khai báô mở cổng COM1 và cấm timer đọc và hiển thị (khi cha có dữ liệu) sau đó kết thúc.

b. Chơng trình.

- Chơng trình cho vi điều khiển

ale equ p2.1 oec equ p2.0 oe equ p2.2 ka equ p2.3 kb equ p2.4 kc equ p2.5 rs equ p1.0 rw equ p1.1 e equ p1.2 org 0000h jmp main org 23h jmp isr_com main: jb p1.3, $

mov ie,#10010000b ;ngat com 232,ngat timer0

mov tmod,#00100000b ;timer1 che do 2 tao nhip cho toc do buad mov th1,#0fdh ;9600 . ta 11.0592mhz

mov scon ,#50h ;1start ,8,n,,cho phép ren mov p0,#0ffh ;xac lap cong doc vao

setb tr1 lap_ko_xuat_data_len_pc: call doc_loadcell call delay call hien_thi_lcd mov 30h,a cjne a,#'s',lap_ko_xuat_data_len_pc co_ket_noi_may_tinh:

call doc_loadcell call delay mov a,40h

mov sbuf,a ;xuat len may tinh call hien_thi_lcd mp co_ket_noi_may_tinh doc_loadcell: clr ka clr kb clr kc clr oe setb ale nop nop nop nop clr ale

;cho cho chuyen doi xong call delay clr p1.0 setb oe nop nop mov a,p0 mov 40h,a clr oec ret tach_chuyen_doi_ma_thap_phan_to_ascii:

mov a,40h mov b,#100

div ab

mov 41h,a ;luu hang tram mov a,b

mov b,#10 div ab

mov 42h,a ;luu hang chuc mov 43h,b ;luu hang don vi mov r0,#40h mov r1,#50h giai_ma_tiep: mov a,@r0 clr c add a,#48 mov @r1,a inc r0 inc r1 cjne r1,#53h,giai_ma_tiep ret khoi_tao_lcd: (adsbygoogle = window.adsbygoogle || []).push({});

mov a,#38h ;chonn lcd hien thi 2dong matrix5*7 call guilenh ;truong trinh con nap lenh

call delay

mov a,#0ch ;hienthi man hinh va nhap nhay con tro call guilenh

call delay

call guilenh call delay ret

hien_thi_lcd:

mov a,#'k' ;chu k call hienthi

call delay

mov a,#'h' ;chu h call hienthi

call delay

mov a,#'o' ;chu o call hienthi

call delay

mov a,#'i' ;chu i call hienthi

call delay

mov a,#'L' ;chu l call hienthi

call delay

mov a,#'u' ;chu u call hienthi

call delay

mov a,#'o' ;chu o call hienthi

call delay

mov a,#'n' ;chu n call hienthi

call delay

call hienthi call delay

mov a,50h ;con so hang nghin call hienthi

call delay

mov a,50h ;con so hang van call hienthi

call delay

mov a,50h ;con so hang tram call hienthi

call delay

mov a,#'0' ;con so hang chuc call hienthi (adsbygoogle = window.adsbygoogle || []).push({});

call delay

mov a,#'0' ;con so hang dv call hienthi

call delay

mov a,#'k' ;don vi kg call hienthi

call delay

mov a,#'g' ;don vi kg call hienthi

call delay ret guilenh:

mov p1,a ;dua ma lenh ra p1

clr rs ;dat rs=0 de thuc hien gui lenh clr rw ;dat rw =0 de thuc hien ghi

clr e ;cho xong xuon de chot ret

hienthi:

mov p1,a

setb rs ;thuc hien ghi du lieu ht clr rw setb e clr e ret delay: mov r7,#50 del1: mov r6,#0ffh djnz r6,$ djnz r7,del1 ret isr_com: jnb ri,trans mov a,sbuf mov 30h,a clr ri reti trans: clr ti reti END

- Chơng trình cho máy tính: Dim khoiluong As Double

Private Sub Command1_Click() Timer3.Enabled = True

Timer4.Enabled = True End Sub

________________________________________________________________ Private Sub Command2_Click()

End End Sub

__________________________________________________________________ Private Sub Form_Load()

MSComm1.CommPort = 1 MSComm1.Settings = "9600,N,8,1" MSComm1.InputLen = 0 MSComm1.InputMode = comInputModeText MSComm1.InBufferSize = 1 MSComm1.PortOpen = True Timer3.Enabled = False Timer4.Enabled = False End Sub _________________________________________________________________ Private Sub Form_Unload(Cancel As Integer)

If MSComm1.PortOpen = True Then MSComm1.PortOpen = False End If

_________________________________________________________________

Private Sub Picture1_Click()

MsgBox " giao dien phan mem ket noi voi modem can dinh luong hien thi tren may tinh.dung loadcell.phien ban v1.0 demo. voi giao thuc truyen la com1. buad 900,n,8,1.", vbOKOnly, "gioi thieu so bo ve phan mem! "

End Sub

Private Sub Picture2_Click()

MsgBox " do an tot nghiep dai hoc su pham ki thuat nam dinh. de tai can dinh luong dung loadcell va vdk 89c51 ket noi voi may tinh", vbOKOnly, "gioi thieu so bo ve phan mem! " End Sub

___________________________________________________________________ Private Sub Timer1_Timer()

Text2.Text = "com1 9600,N,8,1 " End Sub (adsbygoogle = window.adsbygoogle || []).push({});

Private Sub Timer2_Timer() Text2.Text = ""

End Sub

__________________________________________________________________ Private Sub Timer3_Timer()

Dim klTest As String 'Tao mot bien de luu du lieu tam thoi tu com truyen ve klTest = MSComm1.Input

klTest = Trim$(klTest) 'Cat khoang trang 2 dau khoiluong = Asc(klTest) 'Convert to Interger MSComm1.InputLen = 0 'Xoa bo dem End Sub

__________________________________________________________________ Private Sub Timer4_Timer()

Text1.Text = khoiluong & "Kg" End Sub

Sau bảy tuần thực hiện đồ án này với sự hớng dẫn tận tình của thầy Phạm Xuân Bách cùng các thầy cô trong Khoa Điện - Điện tử, cộng với sự cố gắng nỗ lực của bản thân và sự giúp đỡ của các bạn, em đã hoàn thành đồ án này đúng thời gian quy định theo yêu cầu của đề tài là: Thiết kế cân điện tử dùng vi điều khiển 8051 hiển thị ra màn hình LCD và giao tiếp với máy tính qua cổng RS232

Để thực hiện đợc các yêu cầu trên em đã nghiên cứu, tìm hiểu các vấn đề về vi điều khiển, vi xử lý, các phơng pháp đo khối lợng, các vấn đề liên quan đến truyền thông nối tiếp và các vấn đề khác có liên quan đến đề tài.

Nội dung chính của đề tài này bao gồm những phần chính sau: - Phần kiến thức:

+Nghiên cứu về hệ thống cân điện tử.

+Nghiên cứu cấu trúc và tập lệch của 8051, ADC 0809, LCD, và các bộ khuếch đại.

+ Nghiên cứu các vấn đề về truyền thông nối tiếp . - Phần thiết kế, thi công:

+ Xây dựng sơ đồ khối toàn mạch. + Xây dựng lu đồ giải thuật.

+ Viết chơng trình điều khiển.

+ Xây dựng sơ đồ nguyên lý mạch đo

+ Mô phỏng mạch đo trên phẫn mềm Proteus.

+ Mô phỏng chơng trình giao tiếp với máy tính trên phẫn mềm VB6.0 Trên đây là những nội dung mà em đã thực hiện đợc trong đồ án này.

Theo nhận định chủ quan của em thì tập đồ án này đã trình bày tơng đối đầy đủ các nội dung, những kiến thức liên quan, giải quyết đợc những yêu cầu đặt ra.

Song do kiến thức còn hạn chế và thời gian thực hiện không đợc nhiều nên đề tài của em còn nhiều hạn chế. Mặc dù đã tính toán và thiết kế chi tiết mạch và các thông số của mạch nhng do điều kiện đồ án của em mới chỉ dừng lại ở việc mô phỏng trên máy nên còn mang nặng tính lý thuyết và có thể khác thực tế, hơn nữa chỉ giải quyết đợc yêu cầu là : đo khối lợng và hiển thị trên LCD và chơng trình giao tiếp với máy tính mới chỉ

thực hiện đợc phần khối lợng của đối tợng .Em mong có sự góp ý và sửa chữa của các thầy cô để đề tài này có tính khả thi hơn về cả phơng diện kinh tế cũng nh kĩ thuật.

Để đề tài này thêm phong phú và tăng hiệu quả sử dụng thì cần đáp ứng đợc những yêu cầu sau:

- Có thể cân đợc dải khối lợng lớn hơn. - Sử dụng các thiết bị khác để cân.

- Có thể giao tiếp với máy tính để thực hiện các chức năng khác nh tính tiền tự động, in hoá đơn tính tiền, phiếu cân hàng, la trữ số liệu để báo cáo...

Đó là những yêu cầu mà em cha có điều kiện thực hiện, mong rằng đề tài này sẽ đợc các bạn sinh viên khoá sau tiếp tục thực hiện những yêu cầu trên và khắc phục đợc những hạn chế của đề tài này, để tạo ra một sản phẩm có chất lợng cao phục vụ cho sản xuất và đời sống xã hội.

Sau cùng một lần nữa em xin chân thành cảm ơn thầy Phạm Xuân Bách cùng quý thầy cô Khoa Điện - Điện tử đã tận tình hớng dẫn và tạo điều kiện cho em trong suốt những năm học vừa qua và hoàn thành đồ án này!

Xin chân thành cảm ơn các bạn sinh viên đã đóng góp những ý kiến quý báu để cho đồ án của tôi hoàn thành tốt đẹp!

Sinh viên thực hiện Nguyễn Thị Hơng Cúc

Tài liệu tham khảo

1 .Kỹ thuật vi điều khiển- Lê văn Doanh - Phạm Khắc Chơng-NXB khoa học kỹ thuật. 2. Đo lờng và điều khiển bằng máy tính –Ngô Diên Tập-NXB Khoa học kỹ thuật 3. Giáo trình vi mạch số-Nguyên Hữu Phơng-Trờng ĐH KH Tự Nhiên TP HCM 4. Thiết kế hệ thống với họ 8051 – Tống Văn On – NXB KHKT (adsbygoogle = window.adsbygoogle || []).push({});

5. Cấu trúc và lập trình họ VĐK 8051 – Nguyễn Tăng Cờng, Phan Quốc Thắng – NXB KHKT

6. Cấu trúc-Lập trình-Ghép nối và ứng dụng VĐK – Nguyễn Mạnh Giang – NXB Giáo Dục

7. Giáo trình đo lờng các đại lợng điện và không điện-Nguyễn Văn Hoà- Nhà XB Giáo Dục

8. Vi điều khiển 8051-Nguyễn Tăng Cờng-Nhà xuất bản khoa học kĩ thuật

9. Giáo trình nhập môn lập trình VB6.0 –Phạm Hữa Khang/Đoàn Thiện Nhân-Nhà xuát bản Lao Động Xã Hội

10. Bài giảng kĩ thuật số-Đào Thanh Toản/ Phạm Thanh Toàn-NXB ĐH GTVT 11. Kĩ thuật số –Nguyễ Thuý Vân- Nhà xuất bản khoa học kĩ thuật

12. The 8051 Microcontroller –University of Guelph-I.SCOTT MACKENZIE. 13. Digital Systems Principles andApplications-RONALD J. TOCCI.

14. Microcomputer for engineer and Scientists-Glenn A. Gibson,Ya Cheng Liu. Instrumebts. Trang Web: - 3c.com.vn - Dientuvietnam.net - Picvietnam.com - Google.com.vn - Cânđiệntử .com.vn - loadcellsystems.co.za - loadcells.com

Một phần của tài liệu Thiết kế bộ xử lý cân điện tử dùng vi điều khiển 8051 hiển thị dữ liệu ra màn LCD,có giao tiếp với máy tính qua cổng RS232. (Trang 94)