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

Nghiên cứu công nghệ vi xử lý IC 8051 chế tạo các dụng cụ đo trong các thí nghiệm vật lí đại cương

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 (270.61 KB, 39 trang )

Lời cảm ơn
Tác giả xin gửi lời cảm ơn chân thành tới Ban chủ nhiệm khoa Vật lý đã
tạo điều kiện cho tôi đợc tham gia nghiên cứu một đề tài khoa học. Trong thời
gian thực hiện đề tài " Nghiên cứu công nghệ vi xử lý IC 8051 chế tạo các
dụng cụ đo trong các thí nghiệm vật lý đại cơng " tôi đã nhận đợc rất nhiều sự
quan tâm giúp đỡ và hớng dẫn của các Thầy giáo, Cô giáo. Tôi bày tỏ lòng biết
ơn chân thành tới Thầy giáo TS. GVC. Võ Thanh Cơng - Ngời đã hớng dẫn tận
tình giúp đỡ tôi và cung cấp nhiều tài liệu để tôi hoàn thành luận văn này. Tôi
xin chân thành cảm ơn Thầy giáo ThS. Nguyễn Văn Phú đã cho tôi nhiều ý kiến
quý báu và bổ ích cho luận văn. Tôi xin cảm ơn sự đóng góp ý kiến bổ sung của
các Thầy, Cô trong khoa Vật lý và trong Hội đồng bảo vệ luận văn tốt nghiệp
Khoa Vật lý để đề tài đợc hoàn thành.
Sau một thời gian tìm hiểu và nghiên cứu, đề tài đã thu đợc một số kết quả
nhất định về kiến thức cũng nh phơng pháp nghiên cứu khoa học. Tuy nhiên đây
là lần đầu tiên tác giả luận văn tham gia nghiên cứu một mảng đề tài khoa học
mới, do đó đề tài chắc vẫn còn một số khiếm khuyết. Tác giả rất mong sự đóng
góp ý kiến của các Thầy Cô giáo cũng nh bạn đồng nghiệp tham dự trong buổi
bảo vệ luận văn Tốt nghiệp để đề tài đợc hoàn thiện hơn. Xin chân thành cảm ơn.
Sinh viên:

1

Nguyễn Đăng Quang


Phần Mở đầu
Trong các thí nghiệm vật lý đại cơng đồng hồ bấm giây là một thiết bị
không thể thiếu đợc. Các đồng hồ bấm giây đợc sử dụng hiện nay chủ yếu là các
đồng hồ cơ học của Liên xô cũ hoặc cuả Đức, do đó có một số nhợc điểm nh
sau: Sai số lớn. Các sai số ở đây cần kể đến các sai số khách quan và sai số chủ
quan.


Sai số khách quan là các sai số do thiết bị cụ thể là do độ rơ, độ bôi trơn
của các bánh xe vv... các sai số này ngày càng tăng khi tần suất sử dụng tăng.
Các loại thiết bị dễ bị hỏng và khó sửa chữa.
Sai số chủ quan. Sai số này là do con ngời sử dụng thiết bị: do cách
quan sát và cách đọc các vạch chia độ, do phản xạ khi bấm giây.
Không thể kết nối các sensor hoặc máy tính. Đây là một trong các yêu
cầu cần thiết trong hớng phát triển khoa học công nghệ giáo dục ngày nay.
Để khắc phục những nhợc điểm đó, hiện nay ngời ta có xu hớng thay thế
các đồng hồ bấm giây cơ học bằng các đồng hồ hiện số điện tử. Các đồng hồ
này đợc tạo tần số bởi các quatz hoặc thạch anh (Xtal) nên rất chính xác và đo đợc những khoảng thời gian rất nhỏ (10-6 s). Một trong các xu hớng phát triển của
thế hệ này trong thời gian qua là phơng hớng chế tạo các thiết bị số (DIGITAL),
các vi mạch đợc sử dụng là các cổng logic. Mặc dù có nhiều u điểm hơn thế hệ
bán dẫn rời nhng cũng có nhiều nhợc điểm nh: mạch cồng kềnh (với công nghệ
ngày nay trên 1 cm2 có thể có đến 10.000 cổng), khó sửa chữa vì đã bị cứng hoá
và khó kết nối trực tiếp đợc máy tính. Để có thể kết nối trực tiếp với máy tính
các tín hiệu vào hoặc ra phải thể hiện dới dạng các file BIN (nhị phân) hoặc file
HEX (thập lục phân). Do đó xu hớng hiện nay ngời ta sử dụng các IC vi xử lí
(còn gọi là các chip) để chế tạo. Đối với loại thiết bị này, công nghệ chế tạo
nh sau:

2


Các CHIP đợc hoạt động nh một máy tính nhỏ có thể lập trình đợc và có
các bộ nhớ đọc đợc (ROM), bộ nhớ đọc ghi đợc (RAM) có các lệnh ngầm định,
các vùng nhớ trên hoạt động nh một đĩa cứng (HARD DISK), có nhiều cổng vào
ra (PORTS) song song (R232) nối tiếp (SERIAL PORTS hoặc USB). Các thanh
ghi có thể ghi nhiều lần (trên 1000 lần) thuận tiện cho việc sửa chữa và dao động
chủ nhờ thạch anh có thể đạt tới 24 MHz, suy ra tốc độ truyền dữ liệu cho phép
đạt đến 10 MB trên giây.

Thiết bị chế tạo đợc mềm hoá, trên một thiết bị có thể có thể sử dụng rất
nhiều chức năng khác nhau. Ví dụ nh: trên mạch của đồng hồ hiện số ta có thể
lập trình để thiết bị có thể thành: hoặc máy phát tần số hoặc máy đếm tần số,
máy đo phóng xạ vv... mà không cần thay đổi sơ đồ mạch. Khi h hỏng chỉ việc
nạp lại chơng trình rất thuận tiện.
Để nâng cao chất lợng đào tạo thực hành thì việc nâng cao chất lợng các
bài thí nghiệm vật lý là không thể thiếu đợc. Điều đó đợc thực hiện nhờ hiện đại
hoá các thiết bị đo các đại lợng vật lý.
Để khắc phục những nhợc điểm của các dụng cụ đo cùng với tầm quan
trọng của nó chính là lý do mà tôi chọn đề tài này. Đây là một đề tài rất mới, rất
lý thú và bổ ích.
Trong luận văn này tác giả nghiên cứu hai phơng pháp: Phơng pháp chế
tạo đồng hồ hiện số bằng các cổng logic cơ bản (kỹ thuật số) và phơng pháp mô
tả phần cứng (lập trình CHIP). Sau đó làm quen với phần mềm này tự lập trình
một chơng trình đơn giản chế tạo một đồng hồ đếm giây. Sau cùng là nghiên
cứu phần mềm của TS. Võ Thanh Cơng về sản phẩm hoàn chỉnh của thiết bị.

3


Do đó luận văn đợc chia làm 4 phần:
Phần mở đầu.
Chơng I

bộ đếm bằng các mạch lôgic cơ bản.

Trong chơng này tác giả luận văn đã tổng quan các mạch đếm xung cơ
bản bằng các cổng logic. Từ đó đa ra các các giải pháp chế tạo mạch đếm
thời gian.
Chơng II


CHIP vi xử lí họ 8051

Trong chơng này tác giả luận văn đã trình bày phần cứng của IC vi xử lí họ
8051 và một số lệnh cơ bản.
Chơng III

Đồng hồ bấm giây điện tử.

Trong phần này tác giả đã thử

lập trình một chơng trình đơn giản sử dụng IC 8051 để đếm 0,1 giây. Trong
phần này chúng tôi trình bày sản phẩm và cách sử dụng đồng hồ hiện số điện tử
với CHIP ATM 52 là một IC vi xử lí họ 8051 do hãng Intel sản xuất.
Phần kết luận.
Phần phụ lục là một số phần mềm có thể chạy trên mạch điện trên do
Thầy giáo TS. GVC Võ Thanh Cơng lập trình.

4


Chơng I
bộ đếm bằng các mạch lôgic cơ bản
1.1. Khái niệm chung về bộ đếm.

1.1.1. Khái niệm.
Bộ đếm là một mạch dãy tuần hoàn có một đầu vào đếm và nhiều lối ra.
Mạch có số trạng thái trong bằng chính hệ số đếm. Dới tác dụng của tín hiệu đầu
vào đếm, mạch sẽ chuyển từ trạng thái trong này đến trạng thái trong khác theo
một thứ tự nhất định. Cứ sau N lần tín hiệu vào đếm mạch sẽ trở lại trạng thái

xuất phát (N là hệ số đếm ).
Sơ đồ khối của bộ đếm đợc mô tả nh hình vẽ dới.
Các đầu ra trạng thái
1

2

n


X(đếm)



Bộ đếm
Hệ số đếm N



Y(đầu ra điều khiển )

1.1.2. Phân loại bộ đếm.
Trong kỹ thuật điện tử số ngời ta có thể dùng rất nhiều cách để phân loại
bộ đếm. Dới đây sẽ giới thiệu một số cách phân loại thông dụng.

5


1.1.2.1. Phân loại theo cách làm việc của bộ đếm.
Dựa vào cách làm việc của bộ đếm ta có thể phân bộ đếm làm 2 loại:

Bộ đếm đồng bộ và bộ đếm dị bộ.
Bộ đếm đồng bộ là bộ đếm mà trong nó các Triger (FF) đều chịu tác động
điều khiển đồng thời của một xung đồng hồ duy nhất, đó là xung đếm đầu vào
(X). Các trạng thái trong của bộ đếm thay đổi cùng một lúc, và mọi sự chuyển
đổi trạng thái (từ Si đến Sj ) đều thông qua trạng thái trung gian.
Bộ đếm không đồng bộ hay còn gọi là bộ đếm dị bộ, là bộ đếm mà trong
nó có FF chịu tác động trực tiếp của xung đếm đầu vào (X) nhng cũng có FF
chịu tác động điều khiển của xung đầu ra của FF khác. Vậy sự chuyển đổi trạng
thái của các FF là không cùng một lúc tức là không đồng bộ.
1.1.2.2. Phân loại theo hệ số đếm N.
Căn cứ vào sự khác biệt về hệ số đếm ngời ta phân bộ đếm thành các
loại.
-Bộ đếm nhị phân. N=2n (n N*)
-Bộ đếm thập phân N =10
-Bộ đếm N phân
Chú ý: Bộ đếm nhị phân và bộ đếm thập phân là trờng hợp riêng của bộ
đếm N phân.
1.1.2.3. Phân loại theo hớng đếm.
Căn cứ vào tác động của xung đếm đầu vào mà hệ số đếm của bộ đếm có
thể tăng hay giảm, từ đó ngời ta phân bộ đếm thành các loại:
Bộ đếm tiến.
Bộ đếm lùi .
Bộ đếm tiến lùi.
Bộ đếm tiến ( hay còn gọi là bộ đếm thuận) là bộ đếm mà mỗi khi có tín
hiệu đếm X thì trạng thái trong của bộ đếm tăng lên 1.

6


Bộ đếm lùi (hay còn gọi là bộ đếm nghịch) là bộ đếm mà mỗi khi có tín

hiệu đếm X thì trạng thái của bộ đếm giảm đi 1.
Bộ đếm vừa có khả năng đếm tiến và đếm lùi gọi là bộ đếm tiến lùi (T/L).
1.1.2.4. Phân loại theo khả năng lập trình.
Căn cứ vào khả năng lập trình của bộ đếm, ngời ta phân làm hai loại:
Bộ đếm có khả năng lập trình hoá.
Bộ đếm không có khả năng lập trình hoá.
Bộ đếm có khả năng lập trình hoá là bộ đếm có thể sử dụng hệ số
đếm khác nhau tuỳ thuộc tín hiệu điều khiển đa vào nó. Do vậy bộ
đếm này "mềm dẻo" và đa năng hơn các bộ đếm khác là những bộ
đếm chỉ có một hệ số đếm nhất định.
Ngợc lại gọi là bộ đếm không có khả năng lập trình.
1.1.3. Mã của bộ đếm.
Quá trình đếm của bộ đếm, là một quá trình thay đổi từ trạng thái trong
này đến trạng thái trong khác, và các trạng thái của bộ đếm đợc mã hoá bởi
một mã cụ thể.
Dới đây sẽ dới thiệu một số mã thờng dùng để mã hoá bộ đếm.
1.1.3.1. Mã nhị phân.
Mã nhị phân là loại mã các bít của nó có trọng số 1-2-4-8... bít trẻ nhất
ứng với 20= 1, bớc tiếp theo ứng với 21 = 2... và bít già nhất ứng với 2n-1 .
1.1.3.2. Mã Grây.
Mã Grây là loại mã không có trọng số. Trong đó 2 từ mã kề nhau chỉ
khác nhau một biến.

7


1.1.3.3. Mã BCD.
Hệ 10
0
1

2
3
4
5
6
7
8
9

Mã BCD là mã nhị phân mã hoá số thập
phân. Bảng (1.1) là mã BCD. Mã này
dùng 4 chữ số nhị phân để mã hoá 1 chữ
số thập phân, nhóm 4 chữ số nhị phân gọi
là một Decard.
Để mã hoá các số thập phân nhiều
chữ số ngời ta dùng các decard khác nhau.
Ví dụ: Decard:
Hàng đơn vị - hàng chục - hàng trăm ...
(118)10 = (0001.0001.1000)BC
ở đây ta dùng 3 Decard.

Mã BCD
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1

1 0 0 0
1 0 0 1
Bảng.1.1

(0001)BCD: (1)10

1.2. Xây dựng và phân tích bộ đếm.

(0001)BCD: (0)10
1.2.1. Nguyên tắc xây dựng bộ đếm.
(1000)BCD: (8)10
Mạch đếm đợc xây dựng từ các Triger và các mạch logic cơ bản. Nó là
thành phần cơ bản của hệ thống số và đợc sử dụng để đếm xung chia tần số đồng
thời để điều khiển các mạch lôgic khác .Sự ghép nối các Triger cho phép ta biểu
diễn kết quả dới dạng số nhị phân có số bít đúng bằng số Triger của bộ đếm
đồng thời có thể thu đợc các mạch đếm khác nhau.

Khi có xung tác động vào bộ
đếm thì nó sẽ thay đổi trạng thái theo
từng nhịp xung và thiết lập cho ta
một bộ đếm nhị phân biểu diễn số l8

N

Q3 Q2 Q1 Q0
8
4
2 1
0
0

0
0 0
1
0
0
0 1
2
0
0
1 0
3
0
0
1 1
4
0
1
0 0
5
0
1
0 1
6
0
1
1 0
7
0
1
1 1

ợng xung8 tác 1động0vào 0bộ đếm.
Một
0
9
1 có
0 thể0 đếm1 đợc (nbộ đếm tổng
quát
10 1
0
1 0
1) xung 11
còn xung
thứ
n
1
0
1thì nó
1 đa bộ
12 trạng
1 thái
1 ban
0 đầu
0 (gọi là
đếm trở về
13 1
1
0 1
14 1
1
1 0

15 1
1
1 1
16 0
0
0 0

Bảng 1.2.


trạng thái nghỉ )và khi này bộ đếm
có dung lợng đếm là
n-1 hay bộ đếm mođun n.

Ví dụ nh: Triger đếm T là bộ đếm modun 2 và nó là cơ sở để tạo ra các bộ
đếm có modun bất kỳ. Nếu ghép liên tiếp 4 Triger ta sẽ có một bộ đếm với
modun đếm là 24=16 và dung lợng đếm là 15 xung. Từ lí luận trên ta có bảng
trạng thái đối với bộ đếm 4 bít ( bảng 1.2).
Từ bảng 1.2 ta thấy: Lối ra Q 0 thay đổi trạng thái theo mỗi xung vào. Nói
cụ thể hơn: Xung thứ nhất xác lập Q0 lên 1, xung thứ hai xoá Q0 về 0 và cứ
nh thế tiếp tục ở các xung sau.
ứng với 2 xung vào, đầu ra Q 0 thiết lập đợc 1 xung, nh vậy Q0 là phép
nhân chu kỳ của xung vào lên 2 hay là phép chia tần số của xung vào đi 2.
- Lối ra Q1 chỉ lật trạng thái từ 0 1 (hoặc ngợc lại) khi Q0 chuyển từ
1 0 (tại sờn âm của xung ra Q0). Hiện tợng xảy ra tơng tự đối với Q2 và Q3 .
Nói một cách tổng quát: Trạng thái của Triger bất kỳ sẽ chuyển khi Triger cấp
thấp hơn chuyển trạng thái từ giá trị 1 về giá trị 0.
Rõ ràng, xung vào kích thích cho phần tử có lối ra Q 0, Q0lại kích thích
cho phần tử có lối ra là Q1 v.v... Mỗi phần tử đếm lại có lật trạng thái tại sờn âm
của xung vào và chia hai tần số xung vào này. Chức năng logic nh thế hoàn toàn

đợc thực hiện nhờ FF-MS nh loại JK-MS hoặc D - MS. Đơng nhiên có thể sử

9


dụng FF thông thờng khác nhng khi đó phải thực hiện các phép đấu sao cho đầu
ra có mã không đổi.
Bộ đếm thực hiện theo nguyên tắc này đợc gọi là bộ đếm nối tiếp hay bộ
đếm không đồng bộ (dị bộ).
Trạng thái của Triger bất kỳ sẽ chuyển khi tất cả các Triger cấp thấp hơn
nó đã ở trạng thái giá trị 1. V dụ Q2 sẽ lật trạng thái khi Q1, Q0 đã đều ở mức 1.
Nhận xét này là cơ sở để xây dựng bộ đếm song song hay bộ đếm đồng bộ.
Đồ thị xung mô tả bảng trạng thái (bảng1.2) ở hình 1.1. Từ đồ thị dạng
sóng một lần nữa thấy lại các nhận xét đã nêu ở trên. Đồng thời đồ thị cũng làm
sáng tỏ một điều là bộ đếm đồng thời là bộ chia tần. Sự khác nhau giữa bộ đếm
và bộ chia tần là ở chỗ: Với bộ đếm kết quả đợc lấy ra trên tất cả đầu ra, còn
đối với bộ chia tần chỉ lấy 1 ở đầu ra.Ví dụ ta lấy Q 1 có kết quả chia 4, Q3 có kết
quả chia 16.
Cần chú ý rằng: Bộ chia tần cha hẳn là bộ đếm. Sau đây là hình 1.1
1 2 3
4 5 6 7 8 9 10 11 12 13 14 15
C
Q0
Q1
Q2
Q3

10



1.2.2. Bộ đếm nhị phân:
ở mục trớc đã có định nghĩa về bộ đếm nhị phân vì mod đếm nhị phân tơng ứng với vòng đếm 2n nên bảng 1.2 và đồ thị hình 1.1 vừa mang tính tổng
quát chung vừa mang đặc trng riêng của bộ đếm nhị phân. Trong mục này ta sẽ
đi sâu xét một số bộ đếm nhị phân.
1.2.2.1. Bộ đếm nhị phân nối tiếp.
Nh đã nói ở mục 1.1.2.3, phân tử đếm sẽ là các FF có khả năng chia tần số
xung vào ra 2. Bộ đếm nối tiếp đợc tạo ra bằng cách lấy xung ra của FF trớc kích
thích cho các FF sau. Hình 1.2 là sơ đồ bộ đếm nhị phân 4 bít dùng FF-JK.
Để đóng chức năng chia đôi tần số xung vào, 4 FF trong bộ đếm đều có
mức cao (H) là mức 1 trên các cực J, K.
Q0

1

J1
C

O>

Q1

Q0

J2
O>

C
K1

Q2


Q1

J3
O>

C
K2

R
Xung xoá R F1



Q2

F2

Q3

C
K4

R

F



J4

O>

C
K3

R

Q3

R

3

F4



Hình 1.2
Đây là FF kích thích tại sờn âm, nên F1 làm nhiệm vụ chia đôi tần số xung
nhịp đầu vào. Sờn âm của xung nhịp thứ nhất lập Q 0 từ 1 về 0. FF F 2 lại tiếp tục
chia đôi tần số xung ra trên Q 0 của F1. Việc chia nh thế đợc thực hiện một cách
nối tiếp lần lợt từ F1 cho đến F4. Điều này đã đợc trình bày ở phần nguyên tắc
xây dựng bộ đếm.

11


1.2.2.2. Bộ đếm nhị phân song song.
Trong bộ đếm nhị phân song song hay còn gọi là bộ đếm đồng bộ đợc xây
dựng theo nhận xét thứ hai từ bảng 1.2.

Điểm khác cơ bản giữa bộ đếm song song và bộ đếm nối tiếp là: xung
đếm đợc đa vào trực tiếp đồng thời đến các lối vào đồng bộ của các FF. Con đờng tín hiệu phải đi bây giờ chỉ từ đầu vào tới đầu ra của mỗi phân tử. Nhờ vậy
mà bộ đếm nhị phân song song đã giảm đợc trễ truyền lan đi N lần, khắc phục đợc nhợc điểm cơ bản của bộ đếm nối tiếp.
Hình 1.3 là mạch điện của bộ đếm nhị phân 2 bít dùng FF-JK.
Q0

1

J1
O>

Q1

Q0

J2
O>

C
K1

C

R

R



Q1


C
K2
R

F1

F2

Hình 1.3



Về thực chất nguyên tắc hoạt động của bộ đếm này cũng giống bộ đếm
nối tiếp, đều tuân theo bảng trạng thái bảng 1.2. Các FF: F 1 và F2 đều lật trạng
thái khi thoả mãn 2 yếu tố: có xung vào trên cực C và có J = K = 1.
ở trạng thái đầu, các lối ra Q0, Q1 đều bị xoá về 0.
Xung thứ nhất đều tác động lên F1 và F2, tuy nhiên F1 do có J1 = K1 = 1
nên Q0 lật từ 0 lên 1. Trong khi đó F 2 có J2 = K2 = 0 (tại thời điểm tác động) nên
lối ra Q1 của nó giữ nguyên trạng thái 0 ban đầu.
12


Với xung nhịp thứ 2: Trigơ F 1 chuyển Q0 từ 1 về 0 (Hai xung vào cho một
xung ra). Trigơ F2 chuyển từ 0 lên 1 do J2 = K2 = Q0 = 1.
Khi có xung nhịp thứ 3: Hiện tợng xảy ra giống nh đối với xung nhịp thứ
nhất nghĩa là Q0 từ 0 chuyển lên 1 còn Q1 giữ nguyên trạng thái trớc đó. Tác
động của xung thứ 4 đồng thời xoá cả Q0 và Q1 về 0.
Bảng 1.3 và hình 1.4 là bảng trạng thái và đồ thị thời gian về hoạt động
của bộ đếm nhị phân đồng bộ hai bít.

n
0
1
2
3
4

Q1
0
0
1
1
0

1

Q0
0
1
0
1
0

3

2

4

C

Q0
Q1

Bảng1.3
Trễ LH do F
Hình
Trễ 1.4
do F1
LH

Nhận xét:

Trễ LH do F2

Trong đồ thị hình 1.4 ta giả định HL và LH của mỗi phần tử là nh nhau. Đồng thời đồ
Trễ LH do F2

thị cũng chỉ ra rằng thời gian trễ của xung ra Q1 không tăng lên.
Nhợc điểm của bộ đếm đồng bộ là sơ đồ phức tạp hơn khi số bít tăng lên, các phân tử
cuối sẽ đòi hỏi nhiều lối vào J, K để nối với các lối ra trớc. Các cổng phụ này cũng gây ra một độ
trễ nhất định làm tăng trễ truyền lan chung của cả mạch. Hình 1.5 là sơ đồ bộ đếm nhị phân đồng
bộ 4 bít đợc tổ chức theo cách vừa nói.
Q0
H

Q1

Q3

CE0


Q2
J1 Q0
O>

O>

C
K1
R

J3 Q2
O>

C
K2
R

J4 Q3
O>

C
K3
R

C
K4
R

13


C
R

J2 Q1

F1



F2

F3

F4

CE1


Hình 1.5
Từ hình 1.5 dễ nhận thấy khi số bít tăng lên, số lối vào cổng AND sẽ tăng theo,
nhất là ở phần tử cuối cùng. Nếu số bít là N thì cổng AND cuối cùng phải có (N1) lối vào. Để khắc phục nhợc điểm này ngời ta chế tạo bộ đếm đồng bộ với số
bít hạn chế. Dung lợng cần thiết sẽ đợc thoả mãn bằng cách nối tiếp các bộ đếm
đồng bộ lại với nhau. Lối vào CE0 và lối ra CE1 là để phục vụ cho mục đích này.
1.2.3. Bộ đếm modun bất kỳ M.
Một mạch đếm trở về trạng thái đầu, hay một trạng thái xác định trớc, sau
M xung đếm gọi là bộ đếm modun bất kỳ, hay bộ đếm modun M.
Các đặc tính chung của bộ đếm modun bất kỳ.
Khi thiết kế các mạch đếm mod M ta cần lu ý một số điểm sau:
Sau khi đã xác định M (tuỳ theo yêu cầu sử dụng) ta chọn một số N FF

Tất cả phương pháp đã đề cập đều
tốicóthiểu
cho để
2N xây
M.dựng bộ đếm Mod
thể sửsao
dụng
N
10. Với N FF có 2 trạng thái nhng ta chỉ sử dụng M trạng thái do đó số
trạng thái
không
sử này
dụngbiểu
sẽ diễn
là 2 Ntrạng
- M. thái
Vấn đề chọn trạng thái nào, bỏ trạng thái
Loại
mạch
đếm
bít ngời
với trọng
bít sao thoả mãn đợc yêu cầu sử dụng
nào
là dưới
tuỳ dạng
thuộc4 vào
thiết số
kế,các
miễn

thay đổi
tuỳ cầu
theovềmãdạng
sử dụng.
(chẳng
hạn yêu
mã sửThông
dụng) và nhất là để tạo ra đợc một mạch
dụng nhất là loại mã BCD 8421. Mạch
càng đơn giản thì càng tốt. Vì vậy với cùng M và N có thể có rất nhiều dạng
cần dùng 4 FF, nghĩa là ta có tất cả 16
mạch khác nhau.
trạng thái khác nhau, tuy nhiên ta chỉ cần
1.2.4.
Bộ đếm
phân diễn các số từ 0
10 trạng
thái thập
để biểu
đếm
thập
phânbỏhay
đếmthái.
mod 10 thực chất là bộ đếm modun bất kỳ.
đến 9Bộcho
nên
ta phải
đi 6bộtrạng
Loại mạch đếm BCD cũng có thể được
Tuy nhiên nó rất thờng gặp nên ta xét thêm ở đây một mục riêng.

kích thích đồng bộ hoặc không đồng bộ.
Vì vậy, Có thể tạo ra nhiều dạng mạch
khác nhau. Dưới đây ta chỉ xét một trư
ờng hợp tiêu biểu cho loại mã BCD 14
8421.
Bảng 1.4. Mạch đếm BCD kích thước không đồng bộ.


n
0
1
2
3
4
5
6
7
8
9
10

15

Q3
0
0
0
0
0
0

0
0
1
1
0

Q2
0
0
0
0
1
1
1
1
0
0
0

Q1
0
0
1
1
0
0
1
1
0
0

0

Q0
0
1
0
1
0
1
0
1
0
1
0


Bảng chân lý cho mạch đếm BCD 8421 nối tiếp nh bảng B.1.4. Quan sát
bảng chân lý ta thấy:
Sau lần kích thứ 10 mạch trở về trạng thái 0000. Còn trong khoảng từ 0
đến 9, các trạng thái có dạng số nhị phân.
Q0 chuyển đổi trạng thái sau mỗi lần kích thích.
Q1 chỉ chuyển đổi trạng thái khi Q0 từ 1 xuống 0. Trừ trờng hợp cuối
cùng khi Q3 =1 .
Q2 chuyển đổi trạng thái theo Q1 khi Q1 từ 1 xuống 0 .
Có thể coi Q3 chuyển đổi trạng thái theo Q0 khi Q0 từ 1 xuống 0. Nhng
Q3 kìm trong suốt thời gian từ 0 đến 7.
Từ các nhận xét và lập luận nh trên ta có thể tạo ra mạch đếm BCD
8421 không đồng bộ nh hình 1.6a. Đồ thị dạng sóng của bộ đếm mod 10 nh
hình 1.6b.
1


J1
C

O>

Q0

Q1

Q0

J2
O>

C
K1
R

Xung xoá R F1



Q1

Q2

J3

1

O>

C
K2

1

F2

Q0
Q1
Q2
Q3

1

F



J4
O>

R

Hình1.6a
C

Q2


C
K3

R

Q3

Q3

C
K4
R

3

F4




Hình 1.6b
Trong sơ đồ trên F1 kích thích cả F2 và F4. Tuy nhiên, F4 có Q3 chỉ lên
1 khi Q1 = Q2=1. Ngợc lại khi Q3 = 1 thì Q2, Q1 bị kìm ở trạng thái 0.
1.2.5. Bộ đếm tiến, lùi, tiến lùi.
Bộ đếm tiến, lùi hay còn gọi là bộ đếm thuận, nghịch đã đợc định nghĩa
ở phần 1.2c trong mục này ta sẽ đi sâu xét cấu tạo của chúng. Về phơng diện
mạch điện, bộ đếm tiến cũng đã đợc xét trong các ví dụ trớc do vậy ở đây ta
chỉ xét bộ đếm lùi và bộ đếm tiến lùi.
1.2.5.1. Bộ đếm lùi.
Nh đã biết mỗi FF đều có 2 lối ra đối nhau là Q và Q . Để thiết lập bộ

đếm lùi ta sử dụng lối ra Q nh là lối ra kích thích.
Hình 1.7 là bộ đếm lùi nhị phân nối tiếp. Trong sơ đồ này các lối ra
đếm vẫn nh bộ đếm nhị phân thông thờng. Để có đếm lùi lối ra kích thích cho
các FF sau lấy từ Q . Đồ thị thời gian mô tả hoạt động của bộ đếm cho hình
trên hình 1.8.
1

C

O>

J1

Q0

Q0

C
K1

Q1

O>

J2

Q1

Lối vào lập 1
PRE


O>

C
K2
R
F1



J3

Q2

Q3

C
K4

Q1

Q2

R
F2



J4
O>


C
K3

Q0

Q3

Q2

R
F3

Hình 1.7.



Q3

R
F4




1

2

3


4

5

6

7

8

10 11 12 13 14 15

9

C
Q0
Q1
Q2
Q3
Hình 1.8
Trong hình 1.8 Q0 là trạng thái đợc kích thích tại mỗi sờn âm xung nhịp
C. Các FF còn lại do có cực C nối với Q của FF trớc kề nó, tức là lật trạng thái ở sờn dơng
các đầu ra Q của FF trớc liền kề nó.. Để có trạng thái đầu là 1111, trong mạch điện bộ đếm
còn có lối vào phụ PRE (lập 1).
Bộ đếm lùi cũng có thể đợc thiết lập bằng cách lấy Q của các phần tử đếm làm đầu
ra đếm nh hình 1.9. ở trạng thái đầu nếu Q0 = Q1 = Q2 = 0 thì Q 0 = Q 1 =Q 2 = 1. Nếu tổ
hợp Q2Q1Q0 tăng lên 1 thì tổ hợp Q 2 Q 1 Q 0 giảm đi 1 tơng ứng.
1
J1 Q0

C

J2 Q1

J2 Q1
O>

O>

O>C

C

K1

C

K2

R

Q0

K2

R

Q1

R


Q2


Hình .1.9
1.2.5.2. Bộ đếm tiến lùi.
Từ phơng pháp thứ 2 tạo ra bộ đếm lùi nh hình vẽ 1.9 ta thấy rằng trên
cùng một bộ đếm có thể tạo ra bộ đếm tiến nếu đầu ra lấy ở Q và có thể tạo ra
bộ đếm lùi nếu đầu ra đếm lấy ở Q . Tức là về nguyên tắc ta có thể dùng phơng pháp này để tạo ra bộ đếm vừa có tính năng đếm tiến vừa có tính năng
đếm lùi. Tuy nhiên, khi đó số lối ra sẽ tăng gấp đôi - Đây là một điều không
mong muốn. Trong thực tế kỹ thuật để giảm bớt số lối ra ngời ta lắp thêm một
khoá điều khiển T/L để chuyển đổi kích thích cho bộ đếm. Các đầu ra vẫn cố
định ở Q. Một bộ đếm nh thế gọi là bộ đếm tổng hợp hay bộ đếm tiến lùi
(thuận/ngịch).
Hình 1.10 là sơ đồ bộ đếm tiến lùi đồng bộ 3 bít.

Q0

Q1

Q2

T/L điều khiển
1

J1
O> C

J2


O> C

K1

K2

J3
O>

C
K3

O

C

Hình 1.10.

Đối với sơ đồ này khi T/L = 1 ta có bộ đếm tiến. Khi T/L = 0 ta có bộ
đếm lùi.


H×nh 1.11 lµ s¬ ®å bé ®Õm tiÕn/lïi nhÞ ph©n 4 bÝt nèi tiÕp (kh«ng ®ång
bé).
Q0

Q3

Q2


Q1

T/L ®iÒu khiÓn

1

J1
O>
C
K1

J2
C
O>
K2

J3
O>C
K3

C
O

H×nh 1.11.

Ch¬ng II

J4
C
K4


O>


Chip Vi xử lý 8051
2.1. Họ IC vi xử lý 8051.

2.1.1. Thông số kỹ thuật cơ bản.
MC51 là IC vi xử lý có các đặc trng sau:
Xử lý trung tâm và các ứng dụng 8 bít.
Có thể thao tác đợc các phép toán của đại số Boole (đại số nhị phân).
Bộ nhớ 64Kb cho các địa chỉ.


Bộ nhớ 64 Kb cho các số liệu.

Bộ nhớ số liệu động RAM 128 byte.
32 cổng giao tiếp ngoài.


Hai bộ đếm thời gian16-bít .



5 ngắt (interrupt).



Một bộ dao động thạch anh chuẩn tần số lớn.




4Kb lập trình trong chip.

2.1.2. Sơ đồ của IC 8051 của hãng Intel.
Internal interrupts

ngắt trong.

external interrupts

ngắt ngoài.

OSC

Bộ dao động thạch anh.

4K ROM

Bộ xử lý trung tâm chỉ đọc đợc.

128 K bytes RAM

Bộ nhớ số liệu có thể ghi và đọc đợc.

CPU

bộ xử lý trung tâm.

Bus control


Các đờng dẫn.

I/O ports

Các cổng vào và ra.

Serial ports

Cổng nối tiếp

Timer 1, timer 0

Bộ đếm thời gian


Các bộ nhớ của IC 8051.
RAM ( Random Access Memory)
Trong IC 8051 RAM đợc cấu tạo bởi các thanh nhớ với các địa từ 0FH
đến 7FH đợc chỉ trình bày nh sau: 4 dải (bank) đầu tiên, mỗi dải là một
thanh ghi 8 bít có địa chỉ từ 00H đến 17FH đợc sử dụng làm các thanh
ghi có địa chỉ (INTOO , INTO1, INTO2,

Từ địa chỉ 18H đến 1FH là

INTO3. Từ địa chỉ 20H đến địa chỉ 2FH làm các thanh ghi địa chỉ, từ địa
chỉ 30H đến địa chỉ 7FH gồm 80 bytes để ghi các thông tin với các mục
đích khác nhau.
Ngoài ra có một số địa chỉ đặc biệt nh sau:
Thanh ghi

Port 0 latch
Stack Pointer
Data Pointer
Data pointer low bytes
Data pointer high bytes
Power control
Time-counter control
Time counter/mode control
Timer/counter 0 low byte
Timer/counter 1 low byte
Timer/counter 0 high byte
Timer/counter 1 high byte
Port 1 Latch
Serial port control
Serial data port
Port 2 latch
Interrupt Enable
Port 3 latch
Interrupt Prỉoity control
Program status word
Accumulator
B register
Chú ý:

ký hiệu địa chỉ
PO
SP
DPTRT
DPL
DPH83H

PCON
TCOL
TMOD
TLO
TL1
TH0
TH1
P1
SCON
SBUF
P2
IE
P3
IP
PSW
ACC
B

địa chỉ
80H
81H
82H-83H
82H
83H
87H
88H
89H
8AH
8BH
8CH

8DH
90H
98H
99H
A0H
A8H
B0H
B8H
D0H
E0H
F0H


Các bytes SP, DPTR, DPL, DPH, PCON, TMOD, TLO,TL1, TH0, TH1
và SBUF là các bytes có thể chỉ là địa chỉ. Có nghĩa các thanh ghi này có
thể ghi đọc, lệnh và so sánh với các bytes khác.
Các bytes ACC, B, PSW, PO, P1,P2, P3, IE, IP, SCON vad TCON là
các bít địa chỉ. Có nghĩa các thanh ghi này có thể ghi đọc, lệnh và so sánh
với các bít khác.
ROM (Read only memory)
Trong IC 8051 có 8K ROM. Có một số loại có thể có tới 32K ROM nh:
80C51 7A-5. Chân (pin) EA# (External Enable) khi để ở chế độ cao (H)
cho phép truy cập vào ROM. Trong ROM thờng các đặt các lệnh ngầm
định.
2.2. CHIP điều khiển AT89C52

Cùng họ 8051, hiện nay trên thị trờng lu hành họ vi điều khiển AT89C52.
IC AT89C52 là CHIP cùng họ với họ vi điều khiển 8051 có giá thành rẻ
và tốc độ xử lý của CHIP nhanh 24 Mhz.
Miêu tả các chân của AT89C52

2.2.1. Port 0 (từ chân 32 đến chân 39)
+ Là cổng vào ra hai chiều, hở collecter, khi giá trị 1 đợc viết lên Port0
thì các chân này đợc sử dụng nh một đầu vào trở kháng cao.
+ Trong khi truy nhập bộ nhớ ngoài, port 0 đợc cấu tạo là một bus phân
chia thời gian địa chỉ/dữ liệu (địa chỉ thấp). Trong chế độ này port 0 đợc kéo
lên nguồn bởi một điện trở treo nguồn bên trong CHIP.
+ Port 0 nhận các byte mã lệnh để ghi lên Flash Rom trên CHIP và trả
lại các byte mã trong quá trình kiểm tra lại chơng trình trên CHIP (verifying).
2.2.2. Port 1
+ Cũng là cổng vào ra hai chiều có điện trở treo nguồn bên trong, bộ
đệm đầu ra của port 1 có thể nối đợc với 4 đầu vào TTL.
+ Các chân của port 1 sẽ trở thành nguồn dòng khi treo điện áp bên
ngoài xuống thấp


2.2.3. Port 2
+ Port 2 là cổng vào ra 2 chiều 8 bít có điện trở treo nguồn bên trong.
+ Port 2 đa ra các byte địa chỉ cao khi đọc bộ nhớ chơng trình bên ngoài
và khi truy cập dữ liệu bên ngoài sử dụng 16 bít địa chỉ( MOVX @DPTR).
Khi truy nhập bộ nhớ ngoài sử dụng 8 bít địa chỉ (MOVX @RI), port 2 gửi ra
nội dung của P2 trong các thanh ghi chức năng đặc biệt.
+ Port 2 cũng đợc sử dụng để nhận các bít địa chỉ cao và một vài tín
hiệu điều khiển trong khi lập trình và kiểm tra Flash Rom trên CHIP.
2.2.4. Port 3
Port 3 đợc sử dụng để thực hiện các chức năng rất linh động của
AT89C52 nh ở bảng sau:
Chân cổng Port 3
P3.0
P3.1
P3.2

P3.3
P3.4
P3.5
P3.6
P3.7

Chức năng
RxD ( Đầu vào nối tiếp)
TxD ( Đầu ra nối tiếp)
INT0 (Đầu vào ngắt ngoài số 0)
INT1 (Đầu vào ngắt ngoài số 1)
T0 (Đầu vào Timer 0)
T1 (Đầu vào Timer 1)
WR( Xung ghi dữ liệu bộ nhớ ngoài)
RD ( Xung đọc dữ liệu bộ nhớ ngoài)

2.2.5. RST
Đầu vào Reset. Khi đầu vào này đợc dâng lên cao 2 chu kỳ máy trong
khi bộ dao động đang chạy thì CHIP sẽ bị reset.
2.2.6. ALE/PROG
Xung ra để chốt byte thấp của địa chỉ khi truy cập bộ nhớ ngoài. Chân
này cũng là chân vào xung lập trình trong khi lập trình Flash Rom trên CHIP.
Khi hoạt động bình thờng, xung ALE đợc phát ra với tốc độ cố định khoảng
1/16 tần số dao động chủ. Tuy nhiên một xung ALE bị bỏ qua trong khi truy
nhập bộ nhớ ngoài.


2.2.7. PSEN
Xung PSEN đợc sử dụng làm xung đọc bộ nhớ chơng trình bên ngoài
CHIP.

Khi AT89C52 đang chạy các mã lệnh từ bộ nhớ chơng trình bên ngoài,
PSEN đợc kích hoạt 2 lần trong mỗi chu kỳ máy trừ khi 2 lần kích hoạt bị bỏ
qua khi truy cập bộ nhớ dữ liệu bên ngoài.
2.2.8. EA/VPP
Cho phép truy cập bộ nhớ chơng trình bên ngoài. EA đợc nối với GND
để cho phép CHIP có thể nhận đợc các lệnh từ bộ nhớ chơng trình bên ngoài
từ địa chỉ 0000H đến FFFFH. EA đợc nối với nguồn khi truy cập bộ nhớ bên
ngoài. Chân này nhận điện áp +12 Vôn khi lập trình Flash Rom nếu loại
AT89C52 là loại lập trình 12 Vôn.
2.2.9. XTAL1, XTAL2
XTAL1 là đầu vào đảo cho bộ dao động, và nó cũng là đầu vào cho các
mạch dao động bên trong.
XTAL2 là đầu ra đảo cho bộ dao động nằm trên CHIP, để có chíp với
bộ dao động bên ngoài thì chân XTAL1 phải bỏ trống còn chân XTAL2 đợc
nối với nguồn dao động bên ngoài.
2.3. Cấu trúc phần cứng bên trong bộ vi điều khiển AT89C52.

2.3.1. Địa chỉ bộ nhớ của AT89C52.
Bản đồ bộ nhớ dữ liệu bên trong của AT89C52 nh sau:
Không gian bộ nhớ bị chia thành 3 khối vùng thấp 128 byte vùng cao 128 byte
và vùng SFR. Địa chỉ để truy cập bộ nhớ bên trong có độ rộng là 1byte tức là
nó chỉ có thể định đợc địa chỉ của 256 byte. Tuy nhiên nhờ có các chế độ
định địa chỉ cho RAM bên trong nên chúng ta có thể định địa chỉ đợc 384
byte. Địa chỉ trực tiếp lớn hơn 7Fh truy cập vào một vùng bộ nhớ, và truy cập
bằng địa chỉ gián tiếp ở địa chỉ lớn hơn 7Fh truy cập vào một vùng nhớ khác.
Do đó ở bản đồ bộ nhớ trên vùng không gian địa chỉ bộ nhớ bên trong lớn hơn


×