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

thiết kế mạch đo khoảng thời gian giữa hai sự kiện có hiển thị trên led 7 đoạn

13 839 1

Đ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 13
Dung lượng 282 KB

Nội dung

LỜI NÓI ĐẦU Bộ vi xử lý là hạt nhân của hệ VXL.Nó thực hiện các phép tính logic hoặc số học để điều khiển toàn bộ hoạt động của hệ.. - Có thể được điều khiển từ số tín hiệu bên ngoài để

Trang 1

BỘ GIAO THÔNG VẬN TẢI ĐẠI HỌC HÀNG HẢI VIỆT NAM KHOA ĐIỆN – ĐIỆN TỬ MÔN ĐIỆN TỰ ĐỘNG CÔNG NGHIỆP

BÀI TẬP LỚN MÔN : KỸ THUẬT VI XỬ LÝ

ĐỀ 5: Thiết kế mạch đo khoảng thời gian giữa hai sự kiện có hiển thị trên

LED 7 đoạn

GV HƯỚNG DẪN : PHẠM TUẤN ANH

MÃ SINH VIÊN : 42217

Hải phòng,ngày 20 tháng 4 năm 2014

Trang 2

LỜI NÓI ĐẦU

Bộ vi xử lý là hạt nhân của hệ VXL.Nó thực hiện các phép tính logic hoặc số học

để điều khiển toàn bộ hoạt động của hệ

- Đọc các lệnh từ ô nhớ ,giải mã lệnh và thực hiện lệnh

- Trao đổi số liệu với bộ nhớ và các thiết bị vào ra

- Có thể được điều khiển từ số tín hiệu bên ngoài để thực hiện một số chức

năng đặc biệt như thâm nhập bộ nhớ ,ngắt và treo

Một hệ VXL bao gồm 2 phần :

- Phần cứng

- Phần mềm

Phần cứng là toàn bộ các kết cấu vật lý cấu thành nên hệ như ROM, RAM …

Phần mềm là phần logic bao gồm hệ điều hành và chương trình ứng dụng (do người viết ).Chương trình được lưu trữ trong bộ nhớ bằng mã nhị phân của máy tính Một chương trình viết bằng ngôn ngữ máy là 1 chuỗi các byte nhị phân biểu diễn các lệnh mã máy tính thực hiện được Hợp ngữ thay thế các mã nhị phân của ngôn ngữ máy bằng các mã gợi nhớ giúp chúng ta dễ nhớ hơn và dễ lập trình hơn

Trong quá trình làm bài tập lớn do trình độ còn hạn chế nên không tránh khỏi có sai xót Em mong thầy giáo giúp đỡ và chỉ bảo Em trân thành cảm ơn

Sinh viên : Bùi Thế Cường

Trang 3

CHƯƠNG 1 : GIỚI THIỆU PHẦN CỨNG

1.1 Vi xử lí - AT89C51

a) Chức năng: nhận tín hiệu từ bộ chuyển đổi ADC0804 Sau đó xử lý, chuyển tín hiệu số sang mã ASCII và xuất tín hiệu sang màn hình hiển thị LCD

b) Tổng quát về AT89C51:

AT89C51 là IC vi điều khiển (Microcontroller) do hãng Intel sản xuất IC này có đặc điểm như sau:

- 4k byte ROM,128 byte RAM

- 4 Port I/O 8 bit

- 2 bộ đếm/ định thời 16 bit

- Giao tiếp nối tiếp

- 64k byte không gian bộ nhớ chương trình mở rộng

- 64k byte không gian bộ nhớ dữ liệu mở rộng

- Một bộ xử lý luận lý (thao tác trên các bít đơn)

- 210 bit được địa chỉ hóa

- Bộ nhân / chia trong 4µs

* Tổ chức bộ nhớ RAM

Có 128 byte RAM trong 8051 (một số thành viên có 256 byte RAM) 128 byte RAM trong 8051 được gán địa chỉ từ 00 đến 7FH, chúng được phân chia thành từng nhóm như sau:

- Các bank thanh ghi và ngăn xếp 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

Trang 4

* Sơ đồ chân AT89C51:

Hình 2.3 Sơ đồ chân AT89C51

- Bộ phận dao động của vi xử lý được kết nối như hình dưới: IC 89C51 với tần số làm việc là 12 MHz Chân 18, 19 của 89C51 được nối với thạch anh (cũng có thể thay thế thạch anh bằng tín hiệu xung clock) 1 chu kỳ máy của 89C51 là 1µs

s s

10

12

6  

- Bộ phận Reset được kết nối như hình dưới: khi cấp nguồn, áp trên R2 (chân 9 của 89C51) lên mức cao 5V ( = VCC ) sau đó sẽ xuống 0V do tụ C nạp

Trang 5

1.2 Kết nối Vi điều khiển với LED 7 đoạn :

-Ngõ nhận tín hiệu điều khiển của led 7 đoạn có 8 đường, vì vậy có thể dùng 1 port nào đó của Vi điều khiển để điểu khiển led 7 đoạn Như vậy led 7 đoạn nhận một dữ liệu 8 bit từ VĐK led 7 đoạn thường gọi là “ Mã hiển thị led 7 đoạn ”.Có 2 kiểu mã hiển thị led 7 đoạn :

+ Mã hiện thị cho led 7 đoạn có Anode (cực +) chung

+ Mã hiện thị cho led 7 đoạn có Cathode(cực -)chung

Chẳng hạn :để hiện thị số 1 cần làm cho các led ở vị trí b cà c sáng ,nếu sử dụng led

7 đoạn có Anode chung thì phải đặt vào 2 chân b và c điện áp là 0V (mức 0),các chân còn lại thì đặt điện áp là 5V (mức 1).Nếu sử dụng led 7 đoạn có Cathode chung thì điện áp hoàn toàn ngược lại,tức là phải đặt vào chân b và c điện áp là 5V (mức 1)

-Bảng mã hiện thị led 7 đoạn : phần cứng được kết nối với 1 Port bất kỳ của vi điều khiển ,để thuận tiện cho việc sử lý về sau phần cứng nên được kết nối như sau: Px.0 nối với chân a ,Px.1 nối với chân b ,lần lượt theo thứ tự cho đến Px.7 nối với chân h

-Dữ liệu xuất có dạng nhị phân như sau :hgfedcba

-Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Anode chung (các led đơn sáng ở mức 0 ) :

h g f e d c b a

Trang 6

9 1 0 0 1 0 0 0 0 90

-Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Cathode chung (các led đơn sáng

ở mức 1 ) :

h g f e d c b a

1.3 Giao tiếp Vi điều khiển với nhiều led 7 đoạn

-Nếu kết nối mỗi Port của Vi điều khiển với 1 led 7 đoạn thì tối đa kết nối được 4

led 7 đoạn Mặt khác nếu kết nối như trên sẽ hạn chế khả năng thực hiện các công việc khác nhau của VĐK Cho nên cần phải kết nối,điều khiển nhiều led 7 đoạn với số

Trang 7

lượng chân điều khiển từ VĐK càng ít càng tốt Có 2 giải pháp : - 1 là sử dụng các IC chuyên dụng cho công việc hiện thị led 7 đoạn.-2 là kết nối nhiều led 7 đoạn vào cùng

1 đường xuất tín hiệu hiển thị Nội dụng này sẽ được đề cập cách kết nối nhiều led 7 đoạn theo giải pháp thứ 2

-Mắt người có đặc điểm sinh lý là chỉ thu nhaanh 24 hình/giây để tổng hợp các hình ảnh về thế giới xung quanh Nếu một tín hiệu ánh sáng có chu kỳ sáng tắt hơn 24 lần trong 1 giây,mắt người luôn cảm nhận đó là 1 nguồn sáng lien tục Để minh họa cho điều này ,bạn hãy lấy các chương trình đã thực hiện với led đơn và làm ngắn thời gian delay lại đến ,ột giá trị nào đó bạn sẽ thấy các led đều sáng liên tục

-Để kết nối nhiều led 7 đoạn vào VĐK thực hiện như sau : nối tất cả các chân nhận tín hiệu của tất cả các led 7 đoạn ( chân abcdefgh ) cần sử dụng vào cùng 1 Port, 4 led

7 đoạn có các chân nhận tín hiệu cùng được nối với P0 Dùng các ngõ ra còn lại của VĐK điều khiển on/off cho led 7 đoạn , mỗi ngõ ra điều khiển on/off cho 1 led 7 đoạn -Trong sơ đồ trên, led 7 đoạn được sử dụng là loại có Anode chung ,với tất cả các chân nhận tín hiệu được kết nối với Port 0 đã qua điện trở hạn chế dòng Để điều khiển ON/OFF cho các led 7 đoạn ,Sử dụng Transistor loại PNP , transistor này nhận dòng điều khiển từ một ngõ ra của VĐK ,led 7 đoạn sẽ được ON khi tín hiệu điều khiển đến transistor ở mức 0 Có thể sử dụng transistor loại A564 hoặc 2N3905 hoặc một transistor PNP khác có thông số thích hợp Các điện trở 4.7 K và điện trở treo 4.7K đảm bảo transistor luôn hoạt động ở chế độ ngắt/dẫn (đảm bảo khi led 7 đoạn đang ở trạng thái OFF sẽ bị tắt hoàn toàn ,không bị sáng mờ mờ )

-Tại mỗi thời điểm chỉ nên cho VĐK điều khiển cho 1 led 7 đoạn hoạt động ,do

đó tại mỗi thời điểm chỉ có 1 ngõ ra duy nhất nối với transistor ở mức 0 Tại mỗi thời điểm chỉ có 1 led 7 đoạn được ON nên sẽ không xảy ra tình trạng quá tải và quá tải cho VĐK khi điều khiển nhiều led 7 đoạn

- Trong sơ đồ kết nối trên, chẳng hạn cần hiển thị số 451, qui ước thứ tự các led 7 được đếm từ phải sang trái, như vậy cần làm cho led 7 đoạn thứ nhất hiển thị

Trang 8

số 1, led 7 đoạn thứ hai hiện thị số 5, led 7 đoạn thứ 3 hiện thị số 4, các led còn lại không hiện thị Đầu tiên OFF tất cả các led 7 đoạn Kế tiếp xuất mã hiển thị led 7 đoạn để hiển thị số 1, ON led 7 đoạn thứ nhất, lúc này dòng điện chỉ đi qua led 7 đoạn thứ nhất, làm cho led 7 đoạn thứ nhất hiển thị số 1, thời gian ON trong

khoảng vài chục µs(1µs=1/10-6s) Kế tiếp xuất mã hiển thị led 7 đoạn hiển thị số 5, OFF led 7 đoạn thứ nhất và đồng thời ON led 7 đoạn thứ 2, lúc này chỉ có led 7 đoạn thứ hai hiển thị và hiển thị số 5 Tiếp theo xuất mã hiển thị led 7 đoạn hiện thị

số 4, OFF led 7 đoạn thứ hai và ON led 7 thứ ba, lúc này chỉ duy nhất led 7 đoạn

thứ ba hiển thị số 4 Cứ thế lặp lại quá trình trên liên tục Thời gian ON/OFF chỉ

trong khoảng vài chục µs, và tại mỗi thời điểm chỉ có mỗi một led 7 đoạn hiện thị

số của chính nó, vì vậy mắt người thấy 3 led 7 đoạn không sáng đứt quãng, mà sáng liên tục, mỗi led hiển thị 1 số riêng của nó Thực hiện tương tự để mở rộng số lượng led 7 đoạn cần sử dụng

1.4 Mô hình mô phỏng :

Trang 9

CHƯƠNG 2: LƯU ĐỒ THUẬT TOÁN VÀ CHƯƠNG TRÌNH HỢP NGỮ

2.1 Lưu đồ thuật toán:

Trang 10

2.2 Chương trình hợp ngữ:

#include <sfr51.inc>

ORG 0000H

SJMP MAIN

TOCDO EQU 40H

SAVE1 EQU 41H

SAVE2 EQU 42H

LED1 BIT P3.0

Trang 11

LED2 BIT P3.1

ORG 003H

SJMP NGAT_INT0

ORG 013H

SJMP NGAT_INT1

;=========================================

MAIN:

MOV R1,#1

MOV TMOD,#12H

MOV TH1,#-3

MOV TH0,#0

MOV SCON,#50H

CLR TF0

SETB IT0;

SETB IT1;

MOV IE,#10000101B; cho phep ngat

CJNE R1,#0,$

;======================================= NGAT_INT0:

SETB TR0; khoi dong timer 0

RETI

NGAT_INT1:

LJMP HERE

RETI

‘=======================================

HERE:

CLR TR0; dung timer 0

MOV IE,#00H

Trang 12

SETB TR1; cho timer 1 chay

MOV R1,TH0

LCALL TRUYEN

;================================================

TRUYEN:

MOV R3,#0;gán biến đếm R3=0

MOV DPTR,#MALED7V ;đưa mã led vào thanh ghi DPTR

HERE1: LCALL DECODE ; gọi chương trình giải mã led 7 thanh LCALL DISPLAY ; gọi chương trình hiển thị

INC R3 ; sau khi hiển thị xong thì tăng biến đếm lên 1 đơn vị

CJNE R3,R1,HERE1 ;so sánh R3 với R1

JMP TRUYEN ;

;===============================================

DECODE: ;chương trình giải mã

MOV A,R3

MOV B,#10 ; gán B=10

DIV AB ; lấy A chia B, phần nguyên lưu ở A, phần dư lưu ở B

MOVC A,@A+DPTR ; gán A= mã led tại vị trí A chỉ đến trong DPTR MOV SAVE1,A ; lưu A vào một ô nhớ SAVER1

MOV A,B ; đưa B vào A (A=B)

MOVC A,@A+DPTR ; gán A= mã led tại vị trí A chỉ đến trong DPTR MOV SAVE2,A ; ưu A vào một ô nhớ SAVER2

RET

;==============================================

DISPLAY: ; hiển thị

MOV TOCDO,#50; tần số 50Hz thì quét 50 hình trong 1S, như vậy 1 giây sẻ tăng số đếm lên 1 đơn vị

Trang 13

CLR LED2; tắt led2

MOV P2,SAVE1; đưa saver1 vào P2

SETB LED1; bật led hiển thị

CALL DELAY; gọi chương trình trể 10uS

CLR LED1

CLR LED2

MOV P2,SAVE2; đưa data lưu trong saver2 vào P2

SETB LED2; bật led2

CALL DELAY

DJNZ TOCDO,LAP; giảm biến tốc độ nếu chưa=0 thì cho hiển thị và giảm tiếp đến =0 thì thoát

RET

;===============================================

DELAY: ;delay 10uS

MOV 43H,#20

LAP1: MOV 44H,#250

DJNZ 44H,$

DJNZ 43H,LAP1

RET

;================================================

MALED7V:

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END

Ngày đăng: 13/05/2014, 21:23

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w