Tải bản đầy đủ (.doc) (32 trang)

Thiết kê mô hình đo gia tốc của một vật chuyển động tịnh tiến

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (534.52 KB, 32 trang )

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA ĐIỆN TỬ
--------------

Đồ án môn: VI ĐIỀU KHIỂN
Đề tài: Thiết kê mô hình đo gia tốc của một vật chuyển
động tịnh tiến
Giáo viên hướng dẫn: VŨ THỊ THU HƯƠNG
Sinh viên thực hiện:

Lớp: CNKT Điện Tử 3 Khóa 4
Hà Nội 04-2012

1


LỜI NÓI ĐẦU
Ngày nay cùng với sự phát triển của cá ngành khoa hoc kỹ thuật, mà KT Điện
tử đóng vai trò quan trọng trong các lĩnh vực khoa học kỹ thuận, quản lý, công
nghiệp tự động hóa, thông tin liên lạc…. do đó chúng ta phải nắm bắt và vận dụng
nó một cách có hiệu quả nhằm góp phần vào sự phát triển của khoa học kỹ thuật
thế giới nói chung và khoa học kỹ thuật điện tử nói riêng.
Xuất phát từ nhu cầu thực tế của các doanh nghiệp việc đo gia tốc là rất cần
thiết trong các thiết bị như xe máy, ô tô, tàu hỏa, tàu thủy, máy bay…hay máy
móc động cơ thiết bị công nghiệp, một thiết bị khá quan trọng trong các sản phẩm
nghành công nghiệp nặng. Từ thực tế đó góp phần giúp người vận hành có thêm
chút thông tin quan trọng.
Do đó trong khuôn khổ đề tài này chúng em thiết kế bộ đo gia tốc hiển thị
trên LCD.
Mặc dù chúng em rất cố gắng để hoàn thành đồ án này, nhưng không tránh
khỏi những thiếu sót mong quý thầy cô có những ý kiến giảng giải quý giá. Chúng


em mong được đón nhận những ý kiến đóng góp của thầy cô. Cuối cùng xin chân
thành cảm ơn quý thầy cô và các bạn sinh viên.
Chúng em xin trân thành cảm ơn!

Nhóm sinh viên

2


MỤC LỤC
PHẦN I: GIỚI THIỆU KHÁI QUÁT........................................................................4
A/ PHÂN TÍCH BÀI TOÁN...........................................................................................4
B/ GIỚI THIỆU LINH KIỆN TRONG MẠCH..............................................................4
1, IC AT89S52.............................................................................................................4
1.1.Cấu tạo IC..............................................................................................................5
1.2.Các chân chức năng của IC8051............................................................................8
1.3.Cấu tạo và chức năng các khối của AT89S52.......................................................9

PHẦN II. Sơ đồ nguyên lý.......................................................................................24
A. Thiết kế phần cứng..............................................................................................25
B. Mạch in......................................................................................................................26
C . Nguyên lý hoạt động của mạch................................................................................26
D. Thiết kế phần mềm....................................................................................................26
A, lưu đồ thuật toán.......................................................................................................26
........................................................................................................................................31

PHẦN III: KẾT LUẬN............................................................................................31
Tài liệu tham khảo.....................................................................................................32

3



PHẦN I: GIỚI THIỆU KHÁI QUÁT
A/ PHÂN TÍCH BÀI TOÁN
Bài toán đặt ra là thiết kế một bộ đo gia tốc của vật chuyển động, vì thế phải
có:
 Cảm biến để nhận biết vật đi qua
 Khối sử lý trung tâm 89S52
 Khối hiển thị LCD.


Sơ đồ khối của hệ thống được minh hoạ theo hình sau:

VI ĐIỀU
KHIỂN

LCD

CẢM BIẾN

B/ GIỚI THIỆU LINH KIỆN TRONG MẠCH
1, IC AT89S52
Một số hình ảnh at89s52:

4


Hình 1: Hình dạng thực tế IC 89S52
 Sơ đồ chân:


1.1.

Cấu tạo IC

 CPU( CPU centra lprocessing unit):
-

8- bit data bus; 16- bit address bus; không gian địa chỉ 64Kbyte

-

Thanh ghi tích lũy A;

-

Thanh ghi tích lũy phụ B;

-

Đơn vị logic học (ALU);

5


-

Thanh ghi từ trạng thái chương trình;

-


Bốn băng thanh ghi;

-

Con trỏ ngăn xếp

 Bộ nhớ (Memory):
-

Bộ nhớ chương trình( ROM) gồm 8Kbyte Flash, ghi xóa hàng nghìn lần.

-

Bộ nhớ dữ liệu( dạng SRAM) gồm 256 byte (chứa ngăn xếp – Stack)

-

Vùng thanh ghi có chức năng đặc biệt SFR (Special Funtion Register).

-

Bộ UART, có chức năng truyền nhận nối tiếp.3 bộ Timer/Counter 16 bit thực hiện
chức năng định thời và đếm sự kiện.Khối điều khiển ngắt với 2 nguồn ngắt ngoài
và 4 nguồn ngắt trong.Bộ lập trình (ghi chương trình lên Flash ROM) cho phép
người sử dụng có thể nạp các chương trình cho chíp mà không cần các bộ nạp
chuyên dụng.4 cổng xuất nhập song song 2 chiều 8- bit với 32 chân.

6





Port 0( P0.0=>P0.7)

Port 0 gồm 8 chân, ngoài chức năng xuất nhập, port 0 còn là bus đa hợp dữ liệu và địa
chỉ( AD0-AD7), chức năng này sẽ được sử dụng khi AT89S52 giao tiếp với các thiết
bị ngoài có kiến trúc Bus như các vi mạch nhớ, mạch PIO…


Port 1( P1.0=>P1.7)

Chức năng duy nhất của Port 1 là chức năng xuất nhập cũng như các Port khác. Port1
có thể xuất nhập theo bit và theo byte.


Port 2( P2.0=>P2.7)

Port 2 ngoài chức năng là cổng vào/ra như Port 0 và Port 1, Port 2 còn là byte cao của
bus địa chỉ khi sử dụng bộ nhớ ngoài.
 Port 3( P3.0=>P3.7)

7


Mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có một chức năng riêng, cụ thể
như sau:
Bit

Tên


Chức năng

P3.0

RXD

Dữ liệu nhận cho Port nối tiếp

P3.1

TXD

Dữ liệu truyền cho Port nối tiếp

P3.2

INT0

Ngắt ngoài 0

P3.3

INT1

Ngắt ngoài 1

P3.4

T0


Ngõ vào của Timer/counter0

P3.5

T1

Ngõ vào của Timer/counter1

P3.6

/WR

Xung ghi bộ nhớ dữ liệu ngoài.

P3.7

/RD

Xung đọc bộ nhớ dữ liệu ngoài.

 Chân /PSEN (pin 29): là chân điều khiển đọc chương trình ở bộ nhớ ngoài.
 Chân ALE (pin 30): ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần
số dao động của vi điều khiển. Tín hiệu ALE được dùng để cho phép vi mạch
chốt bên ngoài như 7473.

1.2.

Các chân chức năng của IC8051

 Chân /EA (pin 31): Tín hiệu /EA cho phép chọn bộ nhớ chương trình là bộ nhớ

trong hay ngoài. EA=1 thì thực hiện chương trình trong ROM nội. EA=0 thực
hiện ở RAM ngoài.
 RST( Reset: pin 9): Ngõ vào reset trên chân số 9. khi RST=1 (là ngắt cứng có mức
ưu tiên cao nhất) thì bộ vi điều khiển sẽ được khởi động lại thiết lập ban đầu.
 XTAL1, XTAL2 (pin 18, 19): Hai chân này được nối song song với thạch anh tần
số max=33 Mhz. Để tạo dao động cho bộ vi điều khiển.
 Vcc,GND: cung cấp nguồn nuôi cho bộ vi điều khiển cấp qua chân 20 và 40.

8


1.3.

Cấu tạo và chức năng các khối của AT89S52
 Đơn vị xử lý trung tâm CPU:
 Bộ nhớ:

-

Bộ nhớ chương trình và bộ nhớ dữ liệu có không gian địa chỉ riêng biêt.

-

Bộ nhớ chương trình có địa chỉ từ 0x0000 đến 0xFFFF (64Kbyte). Người sử
dụng có thể thiết kế để chip hoạt động với bộ nhớ chương trình tích hợp sẵn
trên chip bằng cách nối tín hiệu EA (31) lên Vcc, hoặc hoạt động với bộ nhớ
chương trình bên ngoài bằng cách nối tín hiệu EA (31) xuống GND. Thông
thường , tín hiệu EA được nối cố định lên Vcc hoặc GND nên chỉ chạy với
một trong hai loại bộ nhớ chương trình.


-

Bộ nhớ chương trình dùng để chứa mã chương trình hướng dẫn CPU thực
hiện một nhiệm vụ nào đó. AT89S52 có bộ nhớ chương trình 8Kbyte dạng
Flash, không bị mất dữ liệu khi ngừng cung cấp nguồn nuôi.Bộ nhớ chương
trình bên ngoài có dung lượng tối đa là 64Kbyte.

-

Bộ nhớ dữ liệu dùng để chứa dữ liệu (bao gồm các tham số, các biến tạm
thời…). AT89S52 có 256byte bộ nhớ dữ liệu dạng SRAM, mất dữ liệu khi cắt
nguồn nuôi. Ngoài ra có thể ghép nối với bộ nhớ SRAM bên ngoài với dung

9


lượng tối đa la 64Kbyte. RAM ngoài và RAM trong có thể cùng được sử dụng
trong cùng một thiết kế.
-

Vùng thanh ghi có chức năng đặc biệt: SFR (special function register)

 Cổng vào ra song song (Parallel I/O Port)
-

AT89S52 có 4 cổng vào ra song song, tên lần lượt là P0, P1, P2, P3. Mỗi cổng có
8 tín hiệu (nên còn gọi là cổng 8- bit), mỗi tín hiệu gọi là một bit và có tên la Px.y.
Trong đó x là số thứ tự của cổng (0→3), y là số thứ tự của bit ( 0→7).

-


Hầu hết các cổng đều tích hợp, kiêm nhiệm thêm một số tính năng nào đó (ví dụ:
ngắt ngoài, cổng truyền thông nối tiếp, đầu vào đếm sự kiện..). Trong phần lớn
trường hợp, khi sử dụng các tính năng kiêm nhiệm, người dùng không nên sử
dụng cổng đó ở chức năng vào/ra thong thường nữa. Ngoại vi on- chip sẽ nắm
quyền điều khiển mức logic tại cổng đó.

10


-

Tất cả các cổng đều là cổng hai chiều (bi-directional), tức là có thể dùng làm cổng
vào hoặc cổng ra.

-

Cổng vào dùng để đọc dữ liệu từ bên ngoài, cổng ra dùng để điều khiển ngoại vi
bên ngoài.

-

Chiều vào/ ra là độc lập giữa các cổng, thậm chí độc lập giữa các bit trong cùng
một cổng.

-

Sau khi reset, tất cả các cổng đều là cổng vào.

-


Các thanh ghi SFR liên quan: mỗi cổng liên quan đến một thanh ghi chức năng
đặc biệt 8-bit (SFR) có tên trùng với tên của cổng, lần lượt là P0, P1, P2, P3.

-

Trước khi sử dụng cổng, phải cấu hình hướng vào/ra cho cổng.

-

Để cấu hình cổng vào (input port), người dùng phải ghi giá trị logic “1” lên bit
trong thanh ghi SFR tương ứng. Sau đó có thể đọc mức logic tại cổng bằng cách
đọc thanh ghi cổng (SFR) tương ứng.

-

Để cấu hình làm cổng ra (output port), người dùng không phải thực hiện them bất
kỳ thao tác nào. Đơn giản, chỉ cần ghi mức logic mong muốn vào thanh ghi cổng
tương ứng.

-

Đặc tính điện:

Mức logic 0: U<= 0.45V; I= 1.6mA
Mức logic 1: U>= 2.4V; I= 60µA

 Cổng Vào Ra Nối Tiếp(Serial Port)
-


8051 có 1 cổng vào ra nối tiếp(UART)

-

Tín hiệu liên quan:RxD(P3.0, chân số 10) va TxD(P3.1, chân số 11)

-

Dữ liệu đi và về hoàn toàn độc lập với nhau, do đó có thể truyền nhận đồng thời,
và cổng nối tiếp có đặc tính như vâyj được gọi là song công(Full duplex)
 Các thanh ghi liên quan:
Dữ liệu nhận về thong qua RxD, tới 1 thanh ghi chức năng đặc biệt(8-bit) tên là
SBUF

11


Dữ liệu truyền thong qua TxD, từ 1 thanh ghi chức năng đặc biệt(8-bit) cũng tên
là SBUF
 Thanh ghi điều khiển SCON:
SM0-SM1


0-0=mode0:chế độ đồng bộ 8 bit,clock =1/12 Fosc



0-1=mode1:chế độ dị bộ 8-bit, clock thay đổi được tùy ý




1-0=mode2:chế độ dị bộ 9-bit,clock= 1/64 Fosc hoặc 1/32 Fosc



1-1=mode3:chế độ dị bộ 9-bit,clock thay đổi được tùy ý

SM2:bit cho phép chế độ gioa tiếp đa vi xử lý(multimicroprocessor),mode 2 hoặc
mode3.Trong các chế độ thong thường,SM2=0.
REN:bit cho phép nhận dữ liệu nếu ghi vào đó giá trị logic 1.Giá trị logic 0 tại bit
này sẽ”khóa cổng “ với các dự lieuj gửi đến.
TB8:bit dữ liệu thứ 9 phát đi trong các chế độ truyền nhận 9-bit(mode 2 và 3)
RB8: bit dữ liệu thứ 9 nhận về trong các chế độ truyền nhận 9-bit(mode 2 và 3)
TI:cờ báo ngắt truyền ,khi =1 báo hiệu rằng 1 khung dữ liệu (8 hay 9 bit tùy chế
độ) đã được truyền xong. Cờ này không tự động xóa về 0 khi chương trình phục
vụ ngắt thực hiện.User phải xóa bằng lệnh.
RI:cờ báo ngắt nhận,khi =1 báo hiệu rằng 1 khung dữ liệu (8 hay 9-bit tùy chế
độ) đã được nhận về đầy đủ,Cờ này không tự động xóa về 0 khi chương trình
phục vụ ngắt thực hiện.User phải xóa bằng lệnh
Với cổng nối tiếp các bit dữ liệu được truyền lần lượt trên cùng 1 đường tín hiệu
thay vì truyền cùng một lúc trên các đường tín hiệu khác nhau.Thông thường thì việc
truyền dữ liệu bằng cổng nối tiếp phải tuân theo một cơ chế, một giao thức hay một
nguyen tắc nhất định .Có thể kể ra một số giao thức như SPI,I2C,SCI..
Cổng nối tiếp có 2 kiểu truyền dữ liệu chính:
Truyền đồng bộ(synchronous):thiết bị truyền và nhận đều dung chung một xung
nhịp (clock)

12



Truyền dị bộ(asynchronous):thiết bị truyền và thiết bị nhận sử dụng hai nguồn
xung nhịp riêng .Tuy nhiên hai nguồn xung này không đươc khác nhau quá nhiều
Xung nhịp là yếu tố không thể thiếu trong truyền dữ liệu nối tiếp và nó có vai trò
xác định giá trị của bit dữ liệu
Cổng nối tiếp có thể có một trong các tính năng sau:
Đơn công: thiết bị chỉ có thể hoặc truyền hoặc nhận dữ liệu
Bán song công:thiết bị có thể truyền và nhận dữ liệu nhưng tại một thời điểm có
thể làm 1 trong 2 việc đó
Song công:thiết bị có thể truyền và nhận dữ liệu đồng thời
 Ngắt (Interrupts)
Ngắt là những yêu cầu do ngoại vi (là các phần cứng tích hợp trên IC hoặc các tác
động từ bên ngoài) guwit tới CPU nhằm đòi hỏi những đáp ứng nhất định. Mục đích
của việc thiết kế cơ chế ngắt trong vi xử lý nhằm tiết kiệm thời gian cho CPU. Trong
hầu hết các trường hợp, vi xử lý cần pahir thực hiện nhiều nhiệm vụ trong thời gian
rất ngắn và liên tục. Để đáp ứng kịp thợi với các sự kiện cần xử lý, CPU có thể tiến
hành thăm dò (polling) liên tục các sự kiện để xem khi nào chúng xảy ra thì xử lý,
đáp ứng lại.Tuy nhiên nếu làm như vậy thì lãng phí rất nhiều thời gian của CPU trong
khi còn có rất nhiều nhiệm vụ khác đang chờ được thực hiện, ngoài ra CPU không thể
thăm dò liên tục nhiều sự kiện trong cùng một lúc được. Người ta tạo ra ngắt để CPU
không phải thăm dò liên tục một hay nhiều sự kiện đó. Bằng cách ghép các sự kiện
cần đáp ứng với các cơ chế ngắt khác nhau, khi một sự kiện nào đó xảy ra, phần cứng
phụ trách ngắt tích hợp trên CPU sẽ tự động báo cho CPU biết rằng sự kiện đã xảy ra.
CPU dừng công việc đang làm lại ( nhưng phải thực hiện xong lệnh đang thực hiện,
dù mới chỉ ở giai đoạn tìm nạp mã lệnh), và chuyển sang xử lý xong sự kiện gây ngắt,
CPU sẽ tiếp tục quay lại lam tiếp công việc đang dang dở (nhờ hoạt động của ngăn
xếp). Nói đến ngắt không thể không nói đến mức ưu tiên của các loại ngắt khác nhau.
Có 2 loại mức ưu tiên ngắt cơ bản là ưu tiên giữa các ngắt xảy ra đồng thời và ưu tiên
giữa các ngắt xảy ra khác thời điểm, chen vào nhau. Trong cả hai trường hợp, ngắt có
ưu tiên cao hơn sẽ luôn được phục vụ ngay lập tức.


13


AT89S52 có 6 nguyên nhân gây ngắt:

Tên ngắt

Nguyên nhân gây ra
ngắt

Địa chỉ
vector
ngắt

Mức độ
ưu tiên
cứng

Cờ báo ngắt

Ngắt ngoài 0

Tín hiệu INT0 thay đổi
mức logic 1→0, hoặc giữ
ở mức logic 0

0x0003

1


IE0(TCON)

Ngắt
Timer/Counter0 đếm tràn
timer/counter 0 trên

0x000B

2

TF0(TCON)

Tín hiệu INT1 thay đổi
mức logic 1→0, hoặc giữ
ở mức logic 0

0x0013

3

IE1(TCON)

Ngắt
Timer/Counter1 đếm tràn
timer/counter 1 trên

0x001B

4


TF1(TCON)

0x0023

5

TI,RI

Ngắt ngoài 1

Ngắt cổng nối
tiếp

Cổng nối tiếp nhận được
hoặc truyền xong một

14


khung dữ liệu đầy đủ
Ngắt
timer/counter2

Timer/Counter2 đếm tràn
trên hoặc tín hiệu T2EX
thay đổi mức logic 1→0

(SCON)
0x002B


TX2,EXF2

6

(T2CON)

Các cờ báo ngắt do INT0, INT1, Timer 0, Timer 1 bị xóa khi CPU xử lý
chương trình ngắt. Còn cờ ngắt của cổng nối tiếp và ngắt do Timer 2 không tự
động xóa, người dùng phải xóa bằng phần mềm.
Thanh ghi cho phép ngắt IE (Interrupt Enable):

 EA: bít cho phép hoặc cấm tất cả các ngắt. Để cho phép một ngắt thì bít tương ứng
với ngắt đó và bít EA phải được đặt bằng 1. Nếu EA=0 tất cả các ngắt đều bị cấm.
 ET2: bít cho phép ngắtt do Timer 2.
 ES: bít cho phép ngắt truyền thong nối tiếp.
 ET1: bít cho phép ngắtt do Timer 1.
 EX1: bít cho phép ngắt ngoài INT1.
 ET0: bít cho phép ngắtt do Timer 0.
 EX0: bít cho phép ngắt ngoài INT0.
Mức ưu tiên của ngắt là chỉ số giúp CPU phân xử xem sẽ xử lý ngắt nào trước khi
hai hay nhiều ngắt đồng thời xảy ra, hoặc sẽ dừng việc xử lý một ngắt lại hay không
khi bị một ngắt khác chen vào. Khi xảy ra ngắt đồng thời,CPU sẽ phân xử theo trình
tự ưu tiên cứng liệt kê ở bảng trên. Khi một ngắt xảy ra chen vào quá trình xử lý dang
dở của một ngắt khác, CPU sẽ phân xử theo mức độ ưu tiên quy định bởi người dùng
thông qua thanh ghi đặt mức ưu tiên ngắt IP.
 Thanh ghi ưu tiên ngắt IP (Interrupt Priority):
-

-


PT2

PS

15

PT1

PX1

PT0

PX0


MSB

LSB

 PT2: bít ưu tiên ngắt do timer 2.
 PS: bít ưu tiên ngắt truyền thông nối tiếp.
 PT1: bít ưu tiên ngắt do timer 1.
 PX1: bít ưu tiên ngắt ngoài INT1.
 PT0: bít ưu tiên ngắt do timer 0.
 PX0: bit ưu tiên ngắt ngoài INT0.
 Bộ định thời/ Bộ đếm (Timers/ Counters)
Timer/Counter là các ngoại vi có chức năng đếm xung nhịp (clock).
Khi đếm xung nhịp bên trong chip gọi là bộ đinh thời hay timer.
Khi đếm xung nhịp bên ngoài chip đưa và gọi là bộ đếm sự kiện hay counter.
Mỗi xung nhịp xuất hiện them, giá trị của timer/counter sẽ tự động tăng thêm 1.

Khi timer/counter đếm vượt quá giá trị giới hạn mà nó có thể biểu diễn, giá trị đếm sẽ
tự động xóa về 0 và đếm lại từ đầu. Sự kiện này được gọi là tràn trên (overflow).
Giá trị lớn nhất tùy thuộc vào chế độ hoạt động.
Khi dừng đếm, giá trị đếm của timer/counter vẫn giữ nguyên, trừ khi mất nguồn nuôi,
reset hay người dùng chủ định xóa bằng lệnh.
Khi được cho phép đếm, timer/counter sẽ đếm từ giá trị hiện đang giữ.
AT89S52 có 3 timer/counter 16bit lần lượt là timer/counter 0, timer/counter 1,
timer/counter 2.
Các timer đều có ngắt:
Timer 0 có ngắt do tràn.
Timer 1 có ngắt do tràn.
Timer 2 có ngắt do tràn hoặc do sự kiện capture.

 Các thanh ghi liên quan:

16


 Thanh ghi dữ liệu (hay thanh ghi giá trị đếm): TH0, TL0 (Timer0) TH1, TL1
(Timer1) TH2, TL2 (Timer2) đều là các thanh ghi 8 bit.

 Thanh ghi điều khiển TMOD (Sử dụng cho timer/counter 0 và timer/counter 1):

-

GATE: bit quy định yếu tố cho phép timer/counter đếm hay dừng. Nếu GATE=0,
timer/counter sẽ đếm hay dừng phụ thuộc vào trạng thái bit TRx (thanh ghi TCON).
Nếu GATE=1, timer/counter sẽ đếm nếu bit TRx=1 (thanh ghi TCON) và tín hiệu
ngắt ngoài INTx ở mức cao. Trong trường hợp này, nếu TRx-0 hoặc tín hiệu ngắt
ngoài INTx ở mức thấp, timer/counter sẽ dừng đếm.


-

C/T: bit lựa chọn xung nhịp đưa vào đếm. Nếu C/T = 0, xung nhịp đưa vào đếm
chính là xung nhịp của CPU (lúc này gọi là bộ định thời – timer). Nếu C/T = 1,
xung nhịp đưa vào đếm là xung nhịp lấy từ bên ngoài vào qua tín hiệu T0 và T1
(lúc này gọi là bộ đếm sự kiện – counter).

-

M1:M0
 0:0 = Mode 0: timer/counter 13bit ghép bởi <5bit thấp TL>:<thanh ghi TH>
 0:1 = Mode 1: timer/counter 16bit ghép bởi <thanh ghi TH>:<thanh ghi TL>
 1:0 = Mode 2: timer/counter 8bit, đếm bằng TL,khi tràn tự động nạp TH vào TL.
 1:1 = Mode 3: TL0 là timer/counter 8bit, sử dụng các bit điều khiển của timer0.TH0 là
timer 8bit, sử dụng các bit điều khiển của timer 1. Timer 1 không hoạt động ở chế độ này.

 Thanh ghi TCON (Sử dụng cho timer/counter 0 và timer/counter 1):

17


-

TF1: Cờ ngắt của timer/countet 1, khi =1 báo hiệu rằng timer/counter 1 đã đếm
vượt quá trị lớn nhất mà nó có thể biểu diễn (255 đối với chế độ 8bit và 65535 đối
với chế độ 16bit).

-


TR1: bit cho phép timer/counter 1 hoạt động đếm hoặc dừng.

-

TF0: Cờ ngắt của timer/countet 0, khi =1 báo hiệu rằng timer/counter 0 đã đếm
vượt quá trị lớn nhất mà nó có thể biểu diễn (255 đối với chế độ 8bit và 65535 đối
với chế độ 16bit).

-

TR0: bit cho phép timer/counter 0 hoạt động đếm hoặc dừng.

-

IE1: Cờ ngắt của ngắt ngoài 1.

-

IT1: Bit cho phép chọn loại ngắt ngoài cho INT1.

-

IE0: Cờ ngắt của ngắt ngoài 0.

-

IT0: Bit cho phép chọn loại ngắt ngoài cho INT0.

 Thanh ghi T2CON (Sử dụng cho Timer/counter 2):


-

TF2: Cờ báo tràn của Timer 2. TF2 không được thiết lập khi TCLK hoặc RCLK
được đặt bằng 1.

-

EXF2: Cờ ngắt ngoài của Timer 2. EXF2 =1 khi xảy ra sự nạp lại hoặc thu nhận.
EXF2=1 cũng gây ra ngắt do Timer 2 nếu như ngắt này được lập trình cho phép.

-

RCLK: Bit chọn Timer cung cấp xung nhịp cho đường nhận của cổng nối tiếp.

-

TCLK: Bit chọn Timer cung cấp xung nhịp cho đường truyền của cổng nối tiếp.

-

EXEN2: Bit điều khiển hoạt động của Timer2, khi EXEN2=1 việc nạp lại hoặc
thu nhận (capture) diễn ra khi có sự chuyển trạng thái từ 1 sang 0 ở chân T2EX
nếu Timer2 không sử dụng để cung cấp tốc độ baud cho cổng nối tiếp.

-

TR2: Bit điều khiển hoạt động của Timer 2.

18



-

C/T2: Bit lựa chọn xung nhịp đưa vào đếm (tương tự TR0 và TR1).

-

CP/RL2: Bit chọn chế độ capture hay nạp lại của Timer 2. Khi CP/RL2=1 việc thu
nhận được thực hiện khi có sườn xuống ở chân T2EX và bit EXEN2 được đặt bằng
1. Khi CP/RL2=0 việc nạp lại được thực hiện khi hoặc là Timer2 tràn hoặc khi có
sương xuống ở chân T2EX và bit EXEN2 được đặt bằng 1.Nếu RCLK hoặc
TCLK=1, bit này được bỏ qua, Timer 2 tự nạp khi tràn.

 Các chế độ của Timer 2:

 Thanh ghi điều khiển T2MOD (Sử dụng cho Timer 2):

-

T2OE: Bit cho phép đầu ra khi sử dụng Timer 2 để tạo

xung (chế độ Clock

Out).
-

DCEN: Bit cho phép Timer 2 hoạt động như một bộ đếm tiến/lùi.

-


Thanh ghi chứa giá trị nạp lại (chế độ Auto- Reload) hoặc chứa giá trị capture (chế
độ Capture) (Sử dụng cho Timer 2): RCAP2H và RCAP2L: là các thanh ghi 8bit.

2. MÀN HÌNH LCD
2.1. Cấu tạo và nguyên tắc hiển thị kí tự trên LCD
 Cấu tạo

19


2.2. Phân loại

Phân loại LCD :Có thể chia các module LCD làm 2 loại chính là:
 Loại hiển thị ký tự
 Loại hiển thị đồ họa
Một chương trình hiển thị ký tự trên LCD sẽ đi theo bốn bước sau:
-

Xóa toàn bộ màn hình.

-

Đặt chế độ hiển thị.

-

Đặt vị trí con trỏ (nơi bắt đầu của ký tự hiển thị).

-


Hiển thị ký tự.

Chú ý:

20


-

Các bước 3, 4 có thể lặp lại nhiều lần nếu cần hiển thị nhiều ký tự.

-

Mỗi khi thực hiện ghi lệnh hoặc ghi dữ liệu hiển thị lên LCD cần phải kiểm
tra cờ bận trước. Vì vậy, cần phải chủ động phân phối thời gian khi ra lệnh
cho LCD( ví dụ sau khi xóa màn hình sau khoảng 2ms mới ra lệnh khác vì
thời gian để LCD xóa màn hình là 1,64ms).+chế độ hiển thị mặc định sẽ là
hiển thị dịch, vị trí con trỏ mặc định sẽ là đầu dòng thứ nhất.

mã lệnh của LCD HD4480
Lệnh

Mã lệnh
Mô tả

Thời
gian
thi
hành


RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Xóa màn
hình

0

0

0

0

0

0

0

0

0

1

Xóa màn
hình đưa
con trỏ về
vị trí đầu

1.64ms


Đưa con
trỏ về vị
trí đầu

0

0

0

0

0

0

0

0

1

x

Đưa con
trỏ về vị
trí đầu

1.64ms


Thiết lập
chế độ

0

0

0

0

0

0

0

1

I/D

S

Thiết lập
hướng
dịch
chuyển
con
trỏ(I/D),

dịch hiển
thị(S)

40us

Bật tắt
hiển thị

0

0

0

0

0

0

1

D

C

B

Bật tắt
hiển thị,

con trỏ;
bật tắt
chế độ
nhấp
nháy con
trỏ

40us

Dịch con
trỏ hiển

0

0

0

0

0

1

S/C

R/L

*


*

Thiết lập
chiều

40us

21


thị

dịch
chuyển
của con
trỏ và
hiển thị

Thiết lập
chức
năng

0

0

0

0


1

DL

N

F

*

Thiết lập
địa chỉ
CGRAM

0

0

0

1

Thiết lập
địa chỉ
DDRAM

0

0


1

Đọc cờ
báo bận
và địa chỉ
CGRAM
/

0

1

BF

1

0

Write data

Ghi dữ
liệu vào
CGRAM
hoặc
DDRAM.

40us

1


1

Read data

Đọc dữ
liệu từ
CGRAM
hoặc
DDRAM

40us

CGRAM address

DDRAM address

CGRAM/ DDRAM address

DDRAM

Ghi
CGRAM
/
DDRAM
Đọc
CGRAM
/
DDRAM

Tên bit


Mô tả

22

*

Thiết lập
độ dài
của dữ
liệu, số
dòng và
font chữ

40us

Thiết lập
địa chỉ
CGRAM

40us

Thiết lập
địa chỉ
DDRAM

40us

Đọc cờ
40us

báo bận
và địa chỉ
của
CGRAM
hoặc
DDRAM(
tùy vào
lệnh
trước đó)


I/D

0=không dịch chuyển vị trí con

1=dịch chuyển vị trí con trỏ

trỏ
S

=0 không dịch chuyển hiển thị

=1 dịch chuyển hiển thị

D

0=tắt hiển thị

=1 bật hiển thị


C

0=tắt con trỏ

=1 bật con trỏ

B

0=con trỏ không nhấp nháy

=1 con trỏ nhấp nháy

S/C

0=di chuyển con trỏ

=1 dịch chuyển hiển thị

R/L

0= dịch trái

=1 dịch phải

DL

0=chế độ 4bit dữ liệu

=1 chế độ 8bit dữ liệu


N

0=1 dòng

1= 2 dòng

F

0= font 5x7

1= font 5x10

BF

0= không bận

1= đang bận

các bit viết tắt trong mã lệnh.

23


PHẦN II. Sơ đồ nguyên lý
A, phân tích và thiết kế
* yêu cầu của đề bài:
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.
Hệ thống sử dụng 03 cảm biến phát hiện vật đặt tại 3 vị trí khác nhau trên
hướng chuyển động của vật.
Gia tốc (m/s2) của vật khi di chuyển được hiển thị trên màn hình tinh thể lỏng

(LCD)
*Hướng thiết kế:
- Mạch đực thiết kế trên phần mềm altium
- Trong mạch sử dụng Vi Điều khiển 89s52, 3 opto chữ U làm mắt cảm biến, màn hình
hiển thị LCD,và một số linh kiện khác.
- sử dụng thuật toàn đo gia tốc như sau:

t1 là thời gian từ lúc phát hiện cảm biến 1 tới lúc phát hiện cảm biến 2.
t2 là thời gian từ lúc phát hiện cảm biến 1 tới lúc phát hiện cảm biến 3.
Theo thiết kế : S1= 4 Cm ; S2= 2*S1 = 8 Cm
Khi đó theo lý thuyết thì ta có:
S1= V0*t1 +1/2 a*t12
S2= V0*t1 +1/2 a*t12
Suy ra :
V0=(S1-1/2 a*t12) / t1
V0=(S2-1/2 a*t22) / t2
Cân bằng 2 vế của V0 ta được : (S1-1/2 a*t12) / t1 =(S2-1/2 a*t22) / t2
=> a=(2S1*(2t1-t2)) / (t1*t2(t2-t1))
Ta hoàn toàn có thể tính toán dc gia tốc của vật bằng 1 quãng đường nhưng
ko thể biết được gia tốc âm hay dương . ta cần phải đo trên hai quãng
đường S1, S2. Từ sự thay đổi về thời gian di truyển của vật trên quãng
đường như nhau mà ta biết đươc dấu của gia tốc.

Khối Nguồn

Khối
hiển thị

Khối Xử



24

Khối so
sánh

Khối
cảm
biến


A. Thiết kế phần cứng

25


×