Mục lục
Lời nói đầu 2
Chương 1: Tổng quan về đo tần số, chuẩn giao tiếp máy tính RS232 3
1.1.Giới thiệu về đo tần số 3
1.2.Chuẩn giao tiếp máy tính RS232 5
Chương 2:Cơ sở thiết kế phần cứng 12
2.1.Sơ đồ khối, chức năng 12
2.2.Các thiết bị 12
2.3.Sơ đồ nguyên lý 20
Chương 3:Thiết kế phần mềm 23
3.1.Thuật toán điều khiển 23
3.2.Chương trình điều khiển 24
Kết luận 29
Tài liệu tham khảo 30
1
LỜI NÓI ĐẦU
Trong mấy chục năm qua , khoa học máy tính và xử lý thông tin có những bước
tiến vược bậc và ngày càng có những đóng góp to lớn vào cuộc cách mạng khoa
học kỹ thuật hiện đại. Đặc biệt sự ra đời và phát triển nhanh chóng của kỹ thuật
số làm cho ngành điện tử trở nên phong phú và đa dạng hơn. Nó góp phần rất
lớn trong việc đưa kỹ thuật hiện đại thâm nhập rộng rãi vào mọi lĩnh vực của
hoạt động sản xuất ,kinh tế và đời sống xã hội. Từ những hệ thống máy tính lớn
đến nhứng hệ thống máy tính cá nhân , từ những việc điều khiển các máy công
nghiệp đến các thiết bị phục vụ đời sống hằng ngày của con người. Với mong
muốn tìm hiểu , ứng dụng những tiến bộ của khoa học kỹ thuật hiện đại vào
phục vụ sản xuất và phục vụ đời sống con người , hơn nữa được sự hướng dẫn
và gíúp đỡ của thầy Phạm Tuấn Anh. Em đã thực hiện đề tài : “Điều khiển thiết
bị gia dụng bằng máy tính sử dụng tia hồng ngoại” .Do trình độ hiểu biết còn
hạn chế , nên dù cố gắng hết sức trong việc thực hiện đề tài cũng không tránh
khỏi thiếu sót . Mong thầy và các bạn có thể bổ sung thêm để em hiểu vấn đề
được sâu sắc hơn.
2
1. Tổng quan về đo tần số và chuẩn giao tiếp máy tính RS232
1.1. Tổng quan về đo tần số
- Tần số (f: frequency): được xác định bởi số các chu kỳ lặp lại của sự thay
đổi tín hiệu trong một đơn vị thời gian. Tần số là một trong các thông số quan
trọng nhất của quá trình dao động có chu kỳ.
- Chu kỳ (Time period, Time cycle): là khoảng thời gian nhỏ nhất mà giá trị
của tín hiệu lặp lại độ lớn của nó (tức là thoả mãn phương trình u(t) = u(t + T) ).
Quan hệ giữa tần số và chu kỳ của tín hiệu dao động là:
1
[ ]
[ ]
f hz
T s
=
- Tần số góc tức thời (ω): được xác định như là vi phân theo thời gian của
góc pha của tín hiệu, tức là:
( )
d
t
dt
ω
Ψ
=
.
Vì pha tín hiệu đa hài sẽ tăng theo quy luật tuyến tính, cho nên tần số f là một
đại lượng không đổi.
1
.
2 2
d
f
dt
ω
π π
=
Ψ
=
Khoảng tần số được sử dụng trong các lĩnh vực khác nhau như: vô tuyến điện tử,
tự động hoá, vật lý thí nghiệm, thông tin liên lạc với dải tần từ một phần Hz
đến hàng nghìn GHz.
- Tần số kế: là dụng cụ để đo tần số. Ngoài ra còn có thể đo tỉ số giữa hai tần số,
tổng của hai tần số, khoảng thời gian, độ dài các xung
- Các phương pháp đo tần số: việc lựa chọn phương pháp đo tần số được xác
định theo khoảng đo, theo độ chính xác yêu cầu, theo dạng đường cong và công
suất nguồn tín hiệu có tần số cần đo và một số yếu tố khác.
Để đo tần số của tín hiệu điện có hai phương pháp: phương pháp biến đổi thẳng
và phương pháp so sánh:
a) Đo tần số bằng phương pháp biến đổi thẳng: được tiến hành bằng các loại
tần số kế cộng hưởng, tần số kế cơ điện, tần số kế tụ điện, tần số kế chỉ thị số:
3
| Các tần số kế cơ điện tương tự (tần số kế điện từ, điện động, sắt điệnđộng):
được sử dụng để đo tần số trong khoảng từ 20Hz ÷ 2,5kHz trong các mạch
nguồn với cấp chính xác không cao (cấp chính xác 0,2; 0,5; 1,5; 2,5).
Các loại tần số kế này nói chung hạn chế sử dụng vì tiêu thụ công suất khá lớn
và bị rung.
| Các tần số kế điện dung tương tự: để đo tần số trong dải tần từ 10Hz ÷
500kHz, được sử dụng khi hiệu chỉnh, lắp ráp các thiết bị ghi âm và rađiô v.v
| Tần số kế chỉ thị số : được sử dụng để đo chính xác tần số của tín hiệu
xung và tín hiệu đa hài trong dải tần từ 10Hz ÷ 50GHz. Còn sử dụng để đo tỉ số
các tần số, chu kỳ, độ dài các xung, khoảng thời gian.
b) Đo tần số bằng phương pháp so sánh: được thực hiện nhờ ôxilôscôp, cầu
xoay chiều phụ thuộc tần số, tần số kế đổi tần, tần số kế cộng hưởng :
| Sử dụng ôxilôscôp: được thực hiện bằng cách đọc trực tiếp trên màn hình
hoặc so sánh tần số cần đo với tần số của một máy phát chuẩn ổn định (dựa trên
đường cong Lítsazua). Phương pháp này dùng để đo tần số các tín hiệu xoay
chiều hoặc tín hiệu xung trong dải tần từ 10Hz đến 20MHz.
| Tần số kế trộn tần: sử dụng để đo tần số của các tín hiệu xoay chiều, tín hiệu
điều chế biên độ trong khoảng từ 100kHz ÷ 20GHz trong kĩ thuật vô tuyến điện
tử.
| Cầu xoay chiều phụ thuộc tần số: để đo tần số trong khoảng từ 20Hz -
20kHz.
| Tần số kế cộng hưởng: để đo tần số xoay chiều tần số tín hiệu điều chế biên
độ, điều chế xung trong khoảng từ 50kHz ÷ 10GHz; thường sử dụng khi lắp
thiết bị thu phát vô tuyến.
Trong những năm gần đây tần số kế chỉ thị số được sử dụng rộng rãi và còn cài
đặt thêm µP để điều khiển và sử dụng kết quả đo nữa
Dưới đây sẽ tiến hành xét một số phương pháp và dụng cụ đo tần số phổ biến
nhất, bao gồm:
| -Đo tần số bằng phương pháp cộng hưởng.
| -Tần số kế điện từ.
4
| - Cầu đo tần số.
| - Tần số kế chỉ thị số. ( Trích [1] Trang 89-90)
Như vậy để đo tần số trong vi điều khiển, ta có thể thực hiện theo cách đếm số
xung mà nguồn phát xung trong 1 khoảng thời gian nhất định(ví dụ là 1s), từ
đó tìm ra tần số của nguồn cần đo.
1.2. Tổng quan giao tiếp máy tính RS232.
1.2.1 Đặt vấn đề
Vấn đề giao tiếp giữa PC và vi điều khiển rất quan trọng trong các ứng dụng
điều khiển, đo lường Ghép nối qua cổng nối tiếp RS232 là một trong những kỹ
thuật được sử dụng rộng rãi để ghép nối các thiết bị ngoại vi với máy tính.Nó là
một chuẩn giao tiếp nối tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất
là 2 thiết bị , chiều dài kết nối lớn nhất cho phép để đảm bảo dữ liệu là 12.5 đến
25.4m, tốc độ 20kbit/s đôi khi là tốc độ 115kbit/s với một số thiết bị đặc biệt. Ý
nghĩa của chuẩn truyền thông nối tiếp nghĩa là trong một thời điểm chỉ có một
bit được gửi đi dọc theo đường truyền.
Có hia phiên bản RS232 được lưu hành trong thời gian tương đối dài là RS232B
và RS232C. Nhưng cho đến nay thì phiên bản RS232B cũ thì ít được dùng còn
RS232C hiện vẫn được dùng và tồn tại thường được gọi là tên ngẵn gọn là
chuẩn RS232
Các máy tính thường có 1 hoặc 2 cổng nối tiếp theo chuẩn RS232C được gọi là
cổng Com. Chúng được dùng ghép nối cho chuột, modem, thiết bị đo
lường Trên main máy tính có loại 9 chân hoặc lại 25 chân tùy vào đời máy và
main của máy tính. Việc thiết kế giao tiếp với cổng RS232 cũng tương đối dễ
dàng, đặc biệt khi chọn chế độ hoạt động là không đồng bộ và tốc độ truyền dữ
liệu thấp.
1.2.2 Ưu điểm của giao diện nối tiếp RS232
+ Khả năng chống nhiễu của các cổng nối tiếp cao
+ Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện
5
+ Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua công nối
tiếp
1.2.3 Những đặc điểm cần lưu ý trong chuẩn RS232
+ Trong chuẩn RS232 có mức giới hạn trên và dưới (logic 0 và 1) là +-12V.
Hiện nay đang được cố định trở kháng tải trong phạm vi từ 3000 ôm - 7000 ôm
+ Mức logic 1 có điện áp nằm trong khoảng -3V đến -12V, mức logic 0 từ +-3V
đến 12V
+ Tốc độ truyền nhận dữ liệu cực đại là 100kbps ( ngày nay có thể lớn hơn)
+ Các lối vào phải có điện dung nhỏ hơn 2500pF
+ Trở kháng tải phải lớn hơn 3000 ôm nhưng phải nhỏ hơn 7000 ôm
+ Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối
tiếp RS232 không vượt qua 15m nếu chúng ta không sử model
+ Các giá trị tốc độ truyền dữ liệu chuẩn :
50,75,110,750,300,600,1200,2400,4800,9600,19200,28800,38400 56600,1152
00 bps
1.2.4 Các mức điện áp đường truyền
RS 232 sử dụng phương thức truyền thông không đối xứng, tức là sử dụng tín
hiệu điện áp chênh lệch giữa một dây dẫn và đất. Do đó ngay từ đầu tiên ra đời
nó đã mang vẻ lỗi thời của chuẩn TTL, nó vấn sử dụng các mức điện áp tương
thích TTL để mô tả các mức logic 0 và 1. Ngoài mức điện áp tiêu chuẩn cũng cố
định các giá trị trở kháng tải được đấu vào bus của bộ phận và các trở kháng ra
của bộ phát.
Mức điện áp của tiêu chuẩn RS232C ( chuẩn thường dùng bây giờ) được mô tả
như sau:
+ Mức logic 0 : +3V , +12V
+ Mức logic 1 : -12V, -3V
Các mức điện áp trong phạm vi từ -3V đến 3V là trạng thái chuyển tuyến. Chính
vì từ - 3V tới 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi
giá trị logic từ thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua
quãng quá độ trong một thơì gian ngắn hợp lý. Điều này dẫn đến việc phải hạn
6
chế về điện dung của các thiết bị tham gia và của cả đường truyền. Tốc độ
truyền dẫn tối đa phụ thuộc vào chiều dài của dây dẫn. Đa số các hệ thống hiện
nay chỉ hỗ trợ với tốc độ 19,2 kBd .
1.2.5 Cổng RS232 trên PC
Hầu hết các máy tính cá nhân hiện nay đều được trang bị ít nhất là 1 cổng Com
hay cổng nối tiếp RS232. Số lượng cổng Com có thể lên tới 4 tùy từng loại main
máy tính. Khi đó các cổng Com đó được đánh dấu là Com 1, Com 2, Com
3 Trên đó có 2 loại đầu nối được sử dụng cho cổng nối tiếp RS232 loại 9 chân
(DB9) hoặc 25 chân (DB25). Tuy hai loại đầu nối này có cùng song song nhưng
hai loại đầu nối này được phân biệt bởi cổng đực (DB9) và cổng cái (DB25)
Ta xét sơ đồ chân cổng Com 9 chân:
Trên là các kí hiệu chân và hình dạng của cổng DB9
Chức năng của các chân như sau:
+ chân 1 : Data Carrier Detect (DCD) : Phát tín hiệu mang dữ liệu
+ chân 2: Receive Data (RxD) : Nhận dữ liệu
+ chân 3 : Transmit Data (TxD) : Truyền dữ liệu
+ chân 4 : Data Termial Ready (DTR) : Đầu cuối dữ liệu sẵn sàng được kích
hoạt bởi bộ phận khi muốn truyền dữ liệu
+ chân 5 : Singal Ground ( SG) : Mass của tín hiệu
+ chân 6 : Data Set Ready (DSR) : Dữ liệu sẵn sàng, được kích hoạt bởi bộ
7
truyền khi nó sẵn sàng nhận dữ liệu
+ chân 7 : Request to Send : yêu cầu gửi,bô truyền đặt đường này lên mức hoạt
động khi sẵn sàng truyền dữ liệu
+ chân 8 : Clear To Send (CTS) : Xóa để gửi ,bô nhận đặt đường này lên mức
kích hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận tín hiệu
+ chân 9 : Ring Indicate (RI) : Báo chuông cho biết là bộ nhận đang nhận tín
hiệu rung chuông
Còn DB28 bây giờ hầu hết các main mới ra đều không có cổng này nữa. Nên tôi
không đề cập đến ở đây.
1.2.6 Quá trình dữ liệu
a) Quá trình truyền dữ liệu
Truyền dữ liệu qua cổng nối tiếp RS232 được thực hiện không đồng bộ. Do vậy
nên tại một thời điểm chỉ có một bit được truyền (1 kí tự). Bộ truyền gửi một bit
bắt đầu (bit start) để thông báo cho bộ nhận biết một kí tự sẽ được gửi đến trong
lần truyền bit tiếp the . Bit này luôn bắt đầu bằng mức 0 Tiếp theo đó là các bit
dữ liệu (bits data) được gửi dưới dạng mã ASCII( có thể là 5,6,7 hay 8 bit dữ
liệu) Sau đó là một Parity bit ( Kiểm tra bit chẵn, lẻ hay không) và cuối cùng là
bit dừng - bit stop có thể là 1, 1,5 hay 2 bit dừng.
b) Tốc độ Baud
Đây là một tham số đặc trưng của RS232. Tham số này chính là đặc trưng cho
quá trình truyền dữ liệu qua cổng nối tiếp RS232 là tốc độ truyền nhận dữ liệu
hay còn gọi là tốc độ bit. Tốc độ bit được định nghĩa là số bit truyền được trong
thời gian 1 giây hay số bit truyền được trong thời gian 1 giây. Tốc độ bit này
phải được thiết lập ở bên phát và bên nhận đều phải có tốc độ như nhau ( Tốc độ
giữa vi điều khiển và máy tính phải chung nhau 1 tốc độ truyền bit)
Ngoài tốc độ bit còn một tham số để mô tả tốc độ truyền là tốc độ Baud. Tốc độ
Baud liên quan đến tốc độ mà phần tử mã hóa dữ liệu được sử dụng để diễn tả
bit được truyền còn tôc độ bit thì phản ánh tốc độ thực tế mà các bit được
truyền.Vì một phần tử báo hiệu sự mã hóa một bit nên khi đó hai tốc độ bit và
tốc độ baud là phải đồng nhất
8
Một số tốc độ Baud thường dùng: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800,
9600, 19200, 28800, 38400, 56000, 115200 … Trong thiết bị họ thường dùng
tốc độ là 19200
Khi sử dụng chuẩn nối tiếp RS232 thì yêu cầu khi sử dụng chuẩn là thời gian
chuyển mức logic không vượt quá 4% thời gian truyền 1 bit. Do vậy, nếu tốc độ
bit càng cao thì thời gian truyền 1 bit càng nhỏ thì thời gian chuyển mức logic
càng phải nhỏ. Điều này làm giới hạn tốc Baud và khoảng cách truyền.
c) Bit chẵn lẻ hay Parity bit
Đây là bit kiểm tra lỗi trên đường truyền. Thực chất của quá trình kiểm tra lỗi
khi truyền dữ liệu là bổ xung thêm dữ liệu được truyền để tìm ra hoặc sửa một
số lỗi trong quá trình truyền . Do đó trong chuẩn RS232 sử dụng một kỹ thuật
kiểm tra chẵn lẻ.
Một bit chẵn lẻ được bổ sung vào dữ liệu được truyền để ch thấy số lượng các
bit "1" được gửi trong một khung truyền là chẵn hay lẻ.
Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi chả hạn như 1,3,,5,7,9 Nếu
như một bit chẵn được mắc lỗi thì Parity bit sẽ trùng giá trị với trường hợp
không mắc lỗi vì thế không phát hiện ra lỗi. Do đó trong kỹ thuật mã hóa lỗi này
không được sử dụng trong trường hợp có khả năng một vài bit bị mắc lỗi.
Còn cách thức truyền dẫn. Phần này tôi không đề cập các bạn vui lòng xem
trong giáo trình.
1.2.7 Sơ đồ ghép nối RS232
Có rất nhiều mạch giao tiếp của RS232 giữa vi điều khiển hay các thiết bị khác.
Dưới đây là những mạch giao tiếp thường được dùng.
a) Mạch chuẩn giao RS232 dùng IC Max232
Max232 là IC chuyên dùng cho giao tiếp giữa RS232 và thiết bị ngoại vi.
Max232 là IC của hãng Maxim. Đây là IC chay ổn định và được sử dụng phổ
biến trong các mạch giao tiếp chuẩn RS232. Giá thành của Max232 phù hợp
(12K hay 10K) và tích hợp trong đó hai kênh truyền cho chuẩn RS232. Dòng
tín hiệu được thiết kế cho chuẩn RS232 . Mỗi đầu truyền ra và cổng nhận tín
hiệu đều được bảo vệ chống lại sự phóng tĩnh điện ( hình như là 15KV). Ngoài
9
ra Max232 còn được thiết kế với nguồn +5V cung cấp nguồn công suất nhỏ.
Mạch giao tiếp như sau :
Đây là mạch giao tiếp 1 kênh dùng Max232. Còn giao tiếp 2 kênh thì tương tự.
Mạch này được sử dụng khá nhiều trong chuẩn giao tiếp RS232.
b) Mạch chuẩn giao tiếp RS232 dùng DS275
Đây cũng là IC của hãng Maxim. DS275 được dùng trong các mạch giao tiếp
của chuẩn RS232 nhưng do nó chỉ là bán song công và dùng trong các thiết kế
công suất nhỏ.
10
Mạch giao tiếp khá đơn giản. Do bán song công nên trong các ứng dụng ít được
dùng.
c) Mạch chuẩn giao tiếp RS232 dùng transitor
Mạch sử dụng 2 transior để giao tiếp RS232.
1.2.8 Phần mềm giao tiếp
Giao tiếp chuẩn giữa RS232 và vi điều khiển phải thông qua phần mềm giao diện để nhận biết
được dữ liệu truyền lên và nhận xuống như thế nào. Hiện tại có rất nhiều cách lập trình giao
tiếp cho RS232 với vi xử lý nhưng mà hay dùng nhất là bộ công cụ Visual C++. Bộ công cụ
này lập trình giúp lập trình giao diện thông qua cổng RS232.Ngoài bộ công cụ này còn có bộ
công cụ của Delphi cũng được dùng khá nhiều.
Trong trường hợp người dùng mà không biết lập trình giao diện thì có thể sử dụng công cụ
trực tiếp của windown. Đó là Hyper Terminal. Công cụ này cho ta giao diện khá đơn giản chỉ
truyền nhận dữ liệu thông qua cổng RS232. Đối với Win XP thì các bạn có thể vào đây để lấy
nó ra : Start/All Program/Accessories/communations/Hyper Terminal/. Thiết lập thông số
quan trọng là ok.
Bộ công cụ Hyper Terminal có giao diện khá cổ điện nên người dùng khó kiểm soát được dữ
liệu truyền lên nhận xuống như thế nào. Do vậy trên mạng bây giờ có bộ công cụ lập trình sẵn
cho giao tiếp cổng com. Đó là phần mềm Terminal. Phần mềm này có giao diện khá hơn
Hyper Terminal nhưng nó chỉ có box nhận dữ liệu và truyền dữ liệu. (Trích từ [2])
11
2. Cơ sở thiết kế phần cứng
2.1. Sơ đồ khối chức năng:
- Khối giao tiếp nút ấn: giao tiếp với vi xử lý, khởi động và ngắt hệ thống
- Khối nguồn: cung cấp nguồn cho hệ thống.
- Khối hiển thị: lấy tín hiệu ra từ vi điều khiển, thực hiện giao tiếp với vi điều
khiển để hiển thị kết quả trên màn hình máy tính.
- Vi xử lí : nhận tín hiệu từ khối tạo xung dao động, đếm số xung phát ra và
khoảng thời gian, phục vụ cho việc tính toán tần số.
- Khối tạo xung dao động: tạo ra xung dao động, làm tín hiệu vào cho vi điều
khiển.
2.2 Lựa chọn linh kiện
2.2.1. Nguồn 5V lấy từ ắcquy
2.2.2 Vi điều khiển AT89C51
AT89C51 là một bộ vi xử lý 8 bit, loại CMOS, có tốc độ cao và công suất thấp
với bộ nhớ Flash có thể lập trình được. Nó được sản xuất với công nghệ bộ nhớ
Khối Xử
lý
Khối giao tiếp
nút ấn
Khối hiển
thị
Khối
tạo
xung
dao
động
Khối nguồn
12
không bay hơi mật độ cao của hãng Atmel, và tương thích với họ MCS-51
TM
về
chân ra và tập lệnh.
AT89C51 có các đặc trưng cơ bản như sau: 4 K byte Flash, 128 byte RAM, 32
đường xuất nhập, hai bộ định thời/đếm 16-bit, một cấu trúc ngắt hai mức ưu tiên
và 5 nguyên nhân ngắt, một port nối tiếp song công, mạch dao động và tạo xung
clock trên chip. AT89C51 được thiết kế với logic tĩnh cho hoạt động có tần số
giảm xuống 0 và hỗ trợ hai chế độ tiết kiệm năng lượng được lựa chọn bằng
phần mềm. Chế độ nghỉ dừng CPU trong khi vẫn cho phép RAM, các bộ định
thời/đếm, port nối tiếp và hệ thống ngắt tiếp tục hoạt động. Chế độ nguồn giảm
duy trì nội dung của RAM nhưng không cho mạch dao động cung cấp xung
clock nhằm vô hiệu hoá các hoạt động khác của chip cho đến khi có reset cứng
tiếp theo.
Sơ đồ khối của AT89C51
13
Sơ đồ các chân 89C51
Như vậy AT89C51 có tất cả 40 chân với các chức năng như sau:
- Vcc (40)
Chân cung cấp điện (5V)
- GND (20)
Chân nối đất (0V)
- Port 0 (32-39)
Port 0 là port xuất nhập 8-bit hai chiều. Port 0 còn được cấu hình làm bus
địa chỉ (byte thấp) và bus dữ liệu đa hợp trong khi truy xuất bộ nhớ dữ liệu
ngoài và bộ nhớ chương trình ngoài. Port 0 cũng nhận các byte mã trong khi lập
trình cho Flash và xuất các byte mã trong khi kiểm tra chương trình (Các điện
trở kéo lên bên ngoài được cần đến trong khi kiểm tra chương trình).
- Port 1(1-8)
Port 1 là port xuất nhập 8-bit hai chiều. Port 1 cũng nhận byte địa chỉ
thấp trong thời gian lập trình cho Flash.
14
- Port 2 (21-28)
Port 2 là port xuất nhập 8-bit hai chiều. Port 2 tạo ra các byte cao của bus
địa chỉ trong thời gian tìm nạp lệnh từ bộ nhớ chương trình ngoài và trong thời
gian truy xuất bộ nhớ dữ liệu ngoài sử dụng các địa chỉ 16-bit. Trong thời gian
truy xuất bộ nhớ dữ liệu ngoài sử dụng các địa chỉ 8-bit, Port 2 phát các nội
dung của thanh ghi chức năng đặc biệt P2. Port 2 cũng nhận các bít địa chỉ cao
và vài tín hiệu điều khiển trong thời gian lập trình cho Flash và kiểm tra chương
trình.
- Port 3 (10-17)
Port 3 là Port xuất nhập 8-bit hai chiều. Port 3 cũng còn làm các chức
năng khác của AT89C51. Các chức năng này được liệt kê như sau:
Chân Tên Chức năng
P3.0 RxD Ngõ vào Port nối tiếp
P3.1 TxD Ngõ ra Port nối tiếp
P3.2
INT0
Ngõ vào ngắt ngoài 0
P3.3
INT1
Ngõ vào ngắt ngoài 1
P3.4 T0 Ngõ vào bên ngoài của bộ định thời 1
P3.5 T1 Ngõ vào bên ngoài của bộ định thời 0
P3.6
WR
Điều khiển ghi bộ nhớ dữ liệu ngoài
P3.7
RD
Điều khiển đọc bộ nhớ dữ liệu ngoài
Port 3 cũng nhận một vài tín hiệu điều khiển cho việc lập trình Flash và
kiểm tra chương trình.
- RST (9)
Ngõ vào reset. Mức cao trên chân này trong 2 chu kỳ máy trong khi bộ
dao động đang hoat động sẽ reset AT89C51.
Mạch reset tác động bằng tay và tự động reset khi khởi động máy
15
RST
- ALE/
PROG
(30)
ALE là một xung ngõ ra để chốt byte thấp của địa chỉ trong khi truy xuất
bộ nhớ ngoài. Chân này cũng làm ngõ vào xung lập trình (
PROG
) trong thời
gian lập trình cho Flash.
Khi hoạt động bình thường, xung ngõ ra ALE lu«n có tần số không đổi là
1/6 tần số của mạch dao động, có thể được dùng cho các mụch đích định thời từ
bên ngoài vµ tạo xung clock. Tuy nhiên, lưu ý là một xung ALE sẽ bị bỏ qua
trong mỗi một chu kỳ truy xuất bộ nhớ dữ liệu ngoài.
Khi cần, hoạt động ALE có thể được vô hiệu hoá bằng cách set bit 0 của
thanh ghi chức năng đặc biệt có địa chỉ 8Eh. Khi bit này được set, ALE chỉ tích
cực trong thời gan thực hiện lệnh MOVX hoặc MOVC. Ngược lại, chân này sẽ
được kéo lên cao. Việc set bit không cho phép hoạt động chốt byte thấp của địa
chỉ sẽ không có tác dụng nếu bộ vi điều khiển đang ở chế độ thực thi chương
trình ngoài.
-
PSEN
(29)
PSEN
(Program Store Enable) là xung điều khiển truy xuất bộ nhớ
chương trình ngoài. Khi AT89C52 đang thực thi chương trình từ bộ nhớ chương
trình ngoài,
PSEN
được kích hoạt hai lần mỗi chu kỳ máy, nhưng hai hoạt động
PSEN
sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu ngoài.
-
EA
/Vpp (31)
EA
(External Access Enable) là chân cho phép truy xuất bộ nhớ chương
trình ngoài ( bắt đầu từ 0000H đến FFFFH).
EA
= 0 cho phép truy xuất bộ nhớ chương trình ngoài, ngược lại
EA
=1
sẽ thực thi chương trình bên trong chip
Tuy nhiên, lưu ý rằng nếu bit khoá 1 (lock-bit 1) được lập trình,
EA
sẽ
được chốt bên trong khi reset.
16
Chân này cũng nhận điện áp cho phép lập trình Vpp=12V khi lập trình
Flash
- XTAL1 và XTAL2
XTAL1 và XTAL2 là hai ngõ vào và ra của một bộ khuếch đại đảo của
mạch dao động, được cấu hình để dùng như một bộ dao động trên chip.
Không có yêu cầu nào về chu kỳ nhiệm vụ của tín hiệu xung clock bên
ngoài do tín hiệu này phải qua một flip-flop chia hai trước khi đến mạch tạo
xung clock bên trong, tuy nhiên các chi tiết kỹ thuật về thời gian mức thấp và
mức cao, điện áp cực tiểu và cực đại cần phải được xem xét.
2.2.3 IC 555
555 là một loại linh kiện khá là phổ biến bây giờ với việc dễ dàng tạo được xung
vuông và có thể thay đổi tần số tùy thích, với sơ đồ mạch đơn giản,điều chế
được độ rộng xung. Nó được ứng dụng hầu hết vào các mạch tạo xung đóng cắt
hay là những mạch dao động khác.Đây là linh kiện của hãng CMOS sản xuất
.Sau đây là bảng thông số của 555 có trên thị trường :
+ Điện áp đầu vào : 2 - 18V ( Tùy từng loại của 555 : LM555, NE555,
NE7555 )
+ Dòng điện cung cấp : 6mA - 15mA
+ Điện áp logic ở mức cao : 0.5 - 15V
+ Điện áp logic ở mức thấp : 0.03 - 0.06V
+ Công suất lớn nhất là : 600mW
* Các chức năng của 555:
17
+ Là thiết bị tạo xung chính xác
+ Máy phát xung
+ Điều chế được độ rộng xung (PWM)
+ Điều chế vị trí xung (PPM) (Hay dùng trong thu phát hồng ngoại)
Đấy chỉ là những thông số cơ bản của 555. Còn những thông số khác các bạn
tham khảo datasheet![3]
Ký hiệu
U 1
L M 5 5 5
3
4 8
1 5
2 6
7
O U T
R S T V C C
G N D C V
T R G T H R
D S C H G
*) Chức năng của các chân IC555
chân số ký hiệu chức năng
1 GND Chân mass
2 TRG Ngõ vào xung nảy
3 OUT Ngõ ra
4 RST Reset (hồi phục)
5 CV Điện áp điều khiển
6 THR Thềm – ngưỡng
7 DSCHG Xả điện
8 VCC Nguồn dương
2.2.4 Max232
Chuyển đổi mức điện áp giữa cổng COM và vi điều khiển.
2.2.5 Thạch anh 12 MHz
18
Trong mạch ta sẽ sử dụng hai thạch anh, một loại 12Mhz để tạo dao động cho
AT89C51
2.2.6 Tụ điện
Tụ điện là linh kiện điện tử thụ động được sử dụng rất rộng rãi trong các mạch
điện tử, chúng được sử dụng trong các mạch lọc nguồn, lọc nhiễu, mạch truyền
tín hiệu xoay chiều, mạch tạo dao động.Trong mạch này ta sẽ sử dụng một tụ
hóa cho khối reset, và hai tụ gốm cho khối dao động.
Tụ gốm Tụ hóa
2.2.7 Điện trở
Trong thiết bị điện tử điện trở là một linh kiện quan trọng, chúng được làm từ
hợp chất cacbon và kim loại tuỳ theo tỷ lệ pha trộn mà người ta tạo ra được các
loại điện trở có trị số khác nhau.
Hình dạng của điện trở trong thiết bị điện tử.
2.2.8 Nút bấm button
Trong mạch này ta sử dụng 3 nút bấm để điều khiển menu, tăng , giảm cho
việc cài đặt giờ , ngày, tháng, năm.
19
Nút bấm
2.3 Sơ đồ nguyên lý:
Trong đó có:
-Phần tạo xung dao động: cấp tín hiệu vào cho Vi điều khiển, gồm 1
IC555, 1 biến trở để điều chỉnh tần số cần đo.
Chân 3 tức đầu ra của IC555 nối với chân P3.5/T1 của AT89C51
20
- Thành phần hiển thị: gồm một con IC Max 232, 1 cổng com ảo, và một
màn hình hiển thị ảo
21
- Khối Xử lý: gồm 1 Vi điều khiển AT89C51, 1 khối điện trở băng, 1 bộ
tạo dao động thạch anh
3. Thiết kế phần mềm
3.1 Thuật toán điều khiển.
3.1.1 Thuật toán tổng thể
22
3.1.2 Thuật toán chi tiết
23
3.2 Chương trình điều khiển.
;code do tan so
#include <sfr51.inc>
org 0H
;tao nut bat dau
START:JB P3.7,START ;doi den luc nut bat dau duoc an xuong muc
thap
sjmp main
org 0BH ;TMR0 ISR
ajmp TMR0_ISR
Timer 1 đếm số xung
Timer 2 đếm khoảng thời gian 1s
Begin
Ñ
Ñ
S
Hiển thị trên màn hình máy tính
E
Truyền dữ liệu qua cổng COM
Đếm số xung của có trong 1s
24
org 1BH ;TMR1 ISR
ajmp TMR1_ISR
main:
mov SP,#50H; Khoi tao ngan xep
mov R6, #20; nap so lan lap la 20 lan
mov tmod, #51H; khoi dong timer 1, che do 16-bit
mov R7, #00; tan so ban dau la 0
setb ET0; bat ngatTimer 0
setb ET1; Bat ngat Timer 1
setb EA; Bat tat ca cac ngat
clr TF0
mov a,#'T'; truyen chu T ra man hinh
Acall TRANS; goi ham truyen du lieu ra man hinh
mov a,#'A';truyen chu A ra man hinh
Acall TRANS
mov a,#'N'
Acall TRANS
mov a,#'S'
Acall TRANS
mov a,#'O'
Acall TRANS
mov a,#':'
Acall TRANS
mov a,#' '
again:
mov TH0, #3CH
mov TL0, #0BAH
mov R6, #20
25