Lập trình cho vi điều khiển trao đổi dữ liệu nối tiếp với PC

Một phần của tài liệu Bài giảng Vi xử lý 1 - ĐH Sư Phạm Kỹ Thuật Nam Định (Trang 174 - 180)

6.8. Lập trình điều khiển cổng nối tiếp

6.8.3. Lập trình cho vi điều khiển trao đổi dữ liệu nối tiếp với PC

1. Sơ đồ giao tiếp VĐK với máy tính truyền thông qua cổng COM ( Serial Port ).

Ta phải sử dụng vi mạch chuyển đổi MAX232 để chuyển thành vào ra TTL cho các chân RD và TD vì vi điều khiển tương thích mức TTL , giao tiếp với PC qua hai chân đó là RXD ( nhận ) và TXD ( phát ).

TD RD

L8 L7 L6 L5 L4 L3 L2 L1

L1L2 L3L4 L5L6 L7L8

8051 AND PC INTERFACE

16 27 38 49 5

TO PC

CONN-D9F

11 T1IN R1OUT 12 10 T2IN

R2OUT 9

T1OUT 14 R1IN 13 T2OUT 7

R2IN 8

C2+

4

C2- 5 C1+

1

C1- 3

VS+ 2

VS- 6

U1

MAX232

C1

1uF

C2

1uF

C3

1uF

C4

1uF

X1CRYSTAL 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/WR 16 P3.5/T1 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

U2

AT89C51

IN

C51u

R110k

D1LED-RED

R2100

D2LED-RED

R3100

D3LED-RED

R4100

D4LED-RED

R5100

D5LED-RED

R6100

D6LED-RED

R7100

D7LED-RED

R8100

D8LED-RED

R9100

OUT INDICATOR

IN TEST

Hình 6.20 Sơ đồ mạch giao tiếp cổng Com và vi điều khiển 2. VÝ dô:

Viết chương trình cho VĐK 8051 nhận dữ liệu nối tiếp từ một giao diện trên máy tính và hiển thị ký tự nhận được ra các led đơn nối với PORT2 biết:

- Khung dữ liệu có 10 bít: 1 bit start, 8 bit data, 1 bít stop.

- Tốc độ truyền là 1200

- Tần số thạnh anh sử dụng là 11.0592Mhz.

- Truyền thông nối tiếp qua cổng COM1.

Giải:

Trước tiên ta cần phải tạo một giao diện trên máy tính. Để tạo giao diện ta có thể sử dụng nhiều phần mềm khác nhau như: Delphi, Visual Basic, C++...

ở đây tôi giới thiệu tạo ra giao diện trên Visual Basic.

* Tạo giao diện.

- Khởi động Visual Basic mở dự án mới

- Lấy Label, Text box, Command button để tạo ra giao diện như sau:

Hình 6.21 Giao diện khởi động Visual Basic

- Để thay tổi tên các đối tượng trên giao diện ta chọn vào đối tượng đó sau đó chọn caption trong hộp thoại Properties ở bên phải của phần mềm.

- Thay đổi cớ chữ, Font chữ ta chọn Font trong Properties.

- §Ó phôc

* Viết lệnh cho các đối tượng trên giao diện.

- Để viết lệnh cho các đối tượng trên ta nháy đúp chuột vào đối tượng đó.

Private Sub Command1_Click() 'su kien khi nhan nut truyen

MSComm1.Output = Text1.Text 'gui gia tri tai text1 ra cong com End Sub

Private Sub Command2_Click() 'su kien khi nhan nut thoat

MSComm1.PortOpen = False 'dong cong com End 'ket thuc chuong trinh End Sub

Private Sub Form_Load() ' Su kien khi load form

MSComm1.CommPort = 1 'chon cong com 1

MSComm1.Settings = "1200,n,8,1" 'chon toc do truyen la 1200, khong kiem tra chan le

‘ mot bit dung MSComm1.PortOpen = True 'chon mo cong

Text1.Text = "" 'gan text1 bang mot khoang trang End Sub

- Sau đó ta chọn File/Make project1.exe la có được một file chạy như sau:

* Viết chương trình cho VĐK.

;chuong trinh viet cho VDK 8051 nhan du lieu noi tiep tu may tinh

;va gui ra cac led don noi voi port2

;tan so thanh anh su dung la 11.0592

;khung du lieu la: 1200,n,8,1

;chuong trinh su dung ngat noi tiep de nhan

;--- org 0

jmp start

;--- khai bao dia chi vec to ngat noi tiep org 23h

mov a,sbuf ;doc du lieu tu bo dm noi tiep vao A

mov p2,a ;dua A ra port2

clr ri ;xoa co nhan

reti

;--- start:

mov ie,#10010000b ;cho phep ngat noi tiep

mov scon,#01010000b ;du lieu noi tiep 8bit UART va cho phep nhan mov tmod,#00100000b ;chon timer1 mode 8 bit tu dong nap lai

mov th1,#0e8h ;to do la 1200 voi crystal=11.0592Mhz

setb tr1 ;khoi dong timer1

mov p2,#0 ;tat led

jmp $ ;dung tai cho

end

Lúc này ta nạp chương trình cho VĐK và kết nối với máy tính để chạy thử nghiệm.

Khi ta truyền một ký tự nào đó thì trên các led đơn nối với Port 2 sẽ có mã ASCII của ký tự đó.

Câu hỏi và bài tập chương 6

Bài tập 1: Viết chương trình cho VĐK họ 8051 điều khiển 8 led đơn nối với Port 1 có một điểm sáng chạy.

Bài tập 2: Viết chương trình cho VĐK họ 8051 điều khiển 8 led đơn nối với Port 3 sáng dần tắt dần.

Bài tập 3: Viết chương trình cho VĐK họ 8051 điều khiển 8 led đơn nối với Port 3 sáng dần tắt dần 5 lần rồi dừng lại.

Bài tập 4: Viết chương trình cho VĐK họ 8051 điều khiển 16 led đơn nối với Port 2 và Port 3 sáng dần tắt dần.

Bài tập 5: Viết chương trình cho VĐK họ 8051 điều khiển 8 led đơn nối với Port 2 thực hiện theo yêu cầu sau:

+ Sáng dần tắt dần 2 lần

+ Có một điểm sáng chạy 5 lần

+ Chớp tắt 20 lần sau đó lặp lại từ đầu.

Bài tập 6: Viết chương trình cho VĐK họ 8051 điều khiển một trò chơi đơn giản cho 5 người chơi là: A,B,C,D,E và một người dẫn chương trình là: MC thực hiện theo yêu cÇu sau:

+ Khi một trong 5 thí sinh nhấn phím trả lời câu hỏi thì đèn báo của thí sinh đó sáng lên và chuông kêu đồng thời các thí sinh còn lại bị mất quyền.

+ Chỉ có người dẫn chương trình mới có quyền xác lập lại từ đầu ( tắt đèn và chuông ).

Bài tập 7: Viết chương trình cho VĐK họ 8051 điều khiển các led đơn nối với Port 2 thực hiện theo yêu cầu sau:

+ Khi chân P1.0=0 các led nối với Port 2 chớp tắt + Khi P1.0=1 các led nối với Port 2 sáng dần tắt dần.

Bài tập 8: Viết chương trình cho VĐK họ 8051 đếm xung ngoài từ 10-60 sử dụng bộ

đếm 0 ( T0) , hiển thị giá trị số đếm trên led 7 đoạn. Biết Port0 nối với các đoạn a,b,c..h của led 7 đoạn, Port 2 quét led.

Bài tập 9: Viết chương trình cho VĐK họ 8051 đếm xung ngoài từ 0-245 sử dụng bộ

đếm 0 ( T0) , hiển thị giá trị số đếm trên led 7 đoạn. Biết Port0 nối với các đoạn a,b,c..h của led 7 đoạn, Port 2 quét led.

Bài tập 10: Viết chương trình cho VĐK họ 8051 đếm xung ngoài từ 0-65 sử dụng bộ

đếm 1 ( T1) , hiển thị giá trị số đếm trên led 7 đoạn. Biết Port0 nối với các đoạn a,b,c..h của led 7 đoạn, Port 2 quét led.

Bài tập 11: Viết chương trình cho vi điều khiển 8051 điều khiển đèn giao thông tại một ngã tư gồm 3 đèn xanh, đỏ, vàng theo thời gian như sau: Đèn đỏ: 20 giây, đèn xanh 16 giây. Biết tần số thạch anh sử dụng là 12MHZ.

Bài tập 12: Viết chương trình cho vi điều khiển 8051 tính thời gian của 1 phút ( 0 - 59 giây ) sử dụng ngắt timer1, hiển thị thời gian trên led 7 đoạn anốt chung.

Biết tần số thạch anh sử dụng là 12Mhz Port 0 nối với các đoạn a,b,...g P2.0, P2.1 chọn led

Bài tập 13: Viết chương trình cho vi điều khiển 8051 tính thời gian phút, giây sử dụng ngắt timer0, hiển thị thời gian trên led 7 đoạn anốt chung..

Biết tần số thạch anh sử dụng là 12Mhz Port 0 nối với các đoạn a,b,...g P2.0, P2.1 chọn led

Bài tập 14: Viết chương trình cho vi điều khiển 8051 tính thời gian giờ, phút, giây sử dụng ngắt timer0, hiển thị thời gian trên led 7 đoạn anốt chung..

Biết tần số thạch anh sử dụng là 11,0592Mhz Port 0 nối với các đoạn a,b,...g P2.0, P2.1 chọn led

Bài tập 15: Viết chương trình cho vi điều khiển 8051 đếm xung ngoài từ 0- 55 sử dụng ngắt ngoài 1 ( INT1).Hiển thị thời gian trên led 7 đoạn anốt chung.

Port 0 nối với các đoạn a,b,...g P2.0, P2.1 chọn led

Bài tập 16: Viết chương trình cho vi điều khiển 8051 đếm xung ngoài từ 25- 0 sử dụng ngắt ngoài 0 ( INT0).Hiển thị thời gian trên led 7 đoạn anốt chung.

Port 0 nối với các đoạn a,b,...g P2.0, P2.1 chọn led

Bài tập 17: Viết chương trình cho vi điều khiển 8051 Lập đếm xung ngoài từ 0- 125 sử dụng ngắt ngoài 1 ( INT1).Hiển thị thời gian trên led 7 đoạn anốt chung.

Port 0 nối với các đoạn a,b,...g P2.0, P2.1 chọn led

Một phần của tài liệu Bài giảng Vi xử lý 1 - ĐH Sư Phạm Kỹ Thuật Nam Định (Trang 174 - 180)

Tải bản đầy đủ (PDF)

(210 trang)