- Sử dụng cổng song song để ghép nối với mạch ngoài - Hệ thống có các đèn Xanh, Đỏ, Vàng điều khiển xe cộ, các đèn xanh, đỏ dành cho ngời đi bộ trên 2 hớng đi độc lập; có 02 đồng hồ đ
Trang 1Lời nói đầu
Giao thông là vấn đề rất thực tế mà nhiều ngời đều biết đến hàng ngày nhng để hiểu rõ hơn về việc điều khiển đèn giao
thông ở ngã t,thì nhóm chúng em nhận làm bài lớn về điều
khiển đèn giao thông ở ngã t Đợc sử dụng IC89s52 và một số linh kiện khác.
Kết thúc môn ghép nối máy tính chúng em đã nhận đề tài
Thiết kế mô hình điều khiển đèn giao thông ở ngã t.
Yêu cầu:
- 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.
- Sử dụng cổng song song để ghép nối với mạch ngoài
- Hệ thống có các đèn Xanh, Đỏ, Vàng điều khiển xe cộ, các
đèn xanh, đỏ dành cho ngời đi bộ trên 2 hớng đi độc lập; có
02 đồng hồ đếm ngợc hiển thị thời gian sáng của các đèn Xanh, Đỏ điều khiển xe cộ trên 2 hớng đi độc lập.
- Hệ thống có thể chạy ở các chế độ khác nhau trong ngày dựa vào đồng hồ thời gian thực trên máy tính:
+Chế độ thờng: Từ 6h đến 23h: Các đèn Xanh, Đỏ, Vàng sáng theo quy luật nh thực tế.
+Chế độ nghỉ: Thời gian còn lại trong ngày: Chỉ có đèn vàng nhấp nháy.
THIẾT KẾ Mễ HèNH ĐẩN ĐIỀU KHIỂN GIAO THễNG Ở NGÃ TƯ (SỬ DỤNG CỔNG SONG SONG)
Trang 2I Giới thiệu về cổng song song
1) Cổng m¸y in(LPT):
Cổng song song được thiết kế đầu tiªn bởi c«ng ty Centronics nhằmmục đÝch ghÐp nối m¸y tÝnh với m¸y in Sau này cổng này được tiªuchuẩn hãa và cã mặt ở hầu hết c¸c m¸y tÝnh Tªn gọi của cổng song songbắt nguồn từ kiểu truyền dữ liệu qua cổng này ,c¸c bÝt truyền song songcòng c¸c byte th× nối tiếp Ngoài tªn gọi này ra cổng song song còng cãtªn là cổng LPT hoặc cổng Centronics
Cấu tróc cổng song song gồm 8 đường dữ liệu , 4 đường dẫn điều khiển
và 5 đường dẫn trạng th¸i .C¸c đừờng dẫn này đều tương thÝch mứcTTL(0;5) do vậy khã thuận tiện, đơn giản cho vỉệc ghÐp nối víi nhiều linhkiện ,mạch điện tương thÝch với mức điện ¸p trªn
Khoảng c¸ch truyền của cổng song song bị hạn chế do điện dung kÝsinh, hiện tượng cảm ứng và bị suy giảm c«ng suất Khoảng c¸ch này bịgiới hạn trong khoảng c¸ch là 2m Nếu cần ghÐp nối ở khoảng c¸ch xahơn cần cã c¸c bộ đệm ,c¸c phương ph¸p làm giảm điện dung kÝ sinh,hiện tượng cảm ứng (chẳng hạn kẹp mass giữa c¸c đường tÝn hiệu ) Nếumuốn có khoảng c¸ch xa hơn nữa, nªn chọn giải ph¸p kh¸c ( cổng nốitiếp chẳng hạn)
Cæng LPT
Trong c¸c m¸y tÝnh thế hệ cũ , cổng song song cã tới 36 ch©n nhưng ngàynay để giảm chi phÝ, người ta đã chuẩn hãa thành 25 ch©n, trong số 25ch©n này chỉ cã 18 ch©n cã ý nghĩa thực thụ, số còng lại đều là c¸c ch©nnối mass , kÝ hiệu và ý nghĩa của c¸c ch©n cắm trªn cổng song song nhưsau:
Trang 3C¸c đường dẫn tÝn hiệu này được chia thành 3 nhãm:
- C¸c đường dẫn tÝn hiệu xuất ph¸t ra từ m¸y tÝnh và điều khiển m¸y
in được gọi là c¸c đường dẫn điều khiển
- C¸c đường dẫn tÝn hiệu đưa c¸c th«ng b¸o ngược lại từ m¸y in vềm¸y tÝnh được gọi là c¸c đường dẫn trạng th¸i
- C¸c đường dẫn dữ liệu :Truyền c¸c bytes kÝ tự cần in.
C¸c nhãm đường dẫn tÝn hiệu trªn cã liªn quan trực tiếp với c¸c thanhghi trong Để cã thể ghÐp nối c¸c thiết bị ngoại vi, c¸c mạch điện ứngdụng trong đo lường và điều khiển với cổng song song ta phải t×m hiểuc¸ch trao đổi với c¸c thanh ghi th«ng qua c¸ch sắp xếp đường dẫn địa chỉcủa c¸c thanh ghi cũng như c¸c phần mềm liªn quan Có 3 thanh ghi nhưsau
- Thanh ghi dữ liệu (cã điạ chỉ cơ sở )
- Thanh ghi trạng th¸i ( có địa chỉ cơ sở +1)
Trang 4- Thanh ghi điều khiển (có địa chỉ cơ sở +2).
Qua cấu tróc c¸c thanh ghi ta thấy có 8 đường dẫn dữ liệu tới 8 « nhưtrªn thanh ghi dữ liệu cïng 4 đường dẫn điều khiển Strobe, AutoLinefeed, Reset, Select Input dẫn tới 4 « nhớ trªn thanh ghi điều khiển ,cuối cïng là đường dẫn trạng th¸i Acknowledge, Busy, Paper Empty,Select , Error nối tới 5 « trªn thanh ghi trạng th¸i Riªng ở thanh ghi điềukhiển cần chó ý tới 1 bit nữa được sử dụng cho mục đÝch ghÐp nối nhưnglại không được nối với ổ cắm 25 ch©n , bÝt này cã thể được sử dụng đểxãa 1 ngắt cã liªn quan với đường dẫn Acknowledge
Ta cã thể trao đổi với 3 thanh ghi này như thế nào? Hệ điều hành DOS
dự tÝnh đến 4 cổng song song đặt tªn là: LPT1, LPT2, LPT3 và LPT4 Tuyvậy hầu hết c¸c m¸y vi tÝnh PC đều chỉ cã nhiều là 2 cổng song song thậmchÝ là 1 lý do kinh tế Khi bật m¸y , BIOS sẽ kiểm tra trªn m¸y cã mấycổng song song C¸c cổng song song được BIOS t×m thấy sẽ được sắptheo c¸c tªn lần lợt là LPT1, LPT2… phần lớn c¸c phiªn bản của BIOSchạy trong giai đoạn khởi động (Boot phase) của m¸y tÝnh , khi đó c¸cth«ng số về phần cứng cũng như c¸c cổng song song t×m thấy sẽ hiÓn thịtrong khung h×nh chữ nhật Ta cã thể dừng lại qu¸ tr×nh khởi động của
Trang 5máy tính bằng phím Pause để quan sát kỹ các thông số được liệt kê trongbảng.
Các địa chỉ của cổng song song trên máy tính PC:
2, IC 89s52:
Hình:Sơ đồ chân AT89s52
Trang 6Bộ vi điều khiển AT89S52 gồm các khối chức năng chính sau
đây:
CPU( Central Processing Unit) bao gồm:
- Thanh ghi tích luỹ A
- Thanh ghi tích luỹ phụ B, dùng cho phép nhân và phép chia
- Đơn vị logic học( ALU: Arithmetic Logical Unit)
- Từ trạng thái chơng trình( PSW: Progam Status Word)
- Bốn băng thanh ghi
- Con trỏ ngăn xếp
Bộ nhớ chơng trình( Bộ nhớ ROM) gồm 8Kb Flash.
Bộ nhớ dữ liệu( Bôn nhớ RAM) gồm 256 bytes.
Bộ UART( Universal Ansynchronous Receiver and Tranmitter) làm chức năng truyền nhận nối tiếp, nhờ khối này, AT89S52 có thể giao tiếp với máy tính qua cổng COM.
3 bộ Timer /Counter 16 bít thực hiện các chức năng định thời và đếm sự kiện.
WDM( Watch Dog Timer) đợc dùng để phục hồi lại hoạt động của CPU khi nó bị treo bởi một nguyên nhân nào đó WDM ở AT89S52 gồm một bộ Timer 14 bít, một bộ Timer 7 bít, thanh ghi WDTPRG( WDT programable) điều khiển Timer 7 bit và một thanh ghi chớc năng WDTRST( WDM register) Bình thờng WDT không hoạt động( bị cấm), để cho phép WDT, các giá trị 1EH và E1H cần phải đợc ghi liên tiếp vào thanh ghi WDTRST Timer 14 bit của WDT sẽ đếm tăng dần sau mỗi chu
kỳ đồng hồ cho đến giá trị 16383 thì xảy ra tràn Khi xảy ra tràn, chân RTS sẽ đợc đặt ở mức cao trong thời gian 96.Tosc (Tossc=1/ Fosc) và AT89S52 sẽ đợc reset Khi WDT hoạt động, ngoại trừ reset phần cứng và reset do WDT tràn thì không có cách nào cấm đợc WDT, vì vậy khi sử dụng WDT thì các đoạn mã chơng trình phải đợc đặt trong các khe thời gian từ khi giữa các lần WDT đợc khởi tạo lạ:
Trang 7Hình : sơ đồ điều khiển 89s52
1.4- Sơ đồ các chân và chức năng
Trang 81.Port 0(P0.0-P0.7 hay từ chân 32 đến chân 39): Gồm 8 chân, ngoài chức năng xuất nhập ra, 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 thiết bị ngoài có kiến trúc Bus
Trang 9
2.Port 1( P1.0-P1,7 hay từ chân 1 đến chân 8) : Có chức năng xuất
nhập theo bit và byte Ngoài ra, 3 chân P1.5, P1.6, P1.7 đợc dùng
để nạp ROM theo chuẩn ISP, 2 chân P1.0 và P1.1 đợc dùng cho
bộ Timer 2
3.Port 2( P2.0- P2.7 hay từ chân 21 đến chân 28): Là một port có công dụng kép: là đờng xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết kế dùng bộ nhớ mở rộng.
Trang 104.Port 3( P3.0- P3.7 hay từ chân 10 đến chân 17): Mỗi chân trên port
3 ngoài chức năng xuất nhập ra còn có một chức năng riêng:
Bit Tên Chức năng
P3.0 RXD Dữ liệu nhận cho port nối tiếpP3.1 TXD Dữ liệu phát cho port nối tiếpP3.2 INT0 Ngắt 0 bên ngoài
P3.3 INT1 Ngắt 1 bên ngoài
P3.4 T 0 Ngõ vào của Timer/Counter 0P3.5 T 1 Ngõ vào của Timer/Counter 1P3.6 WR Xung ghi bộ nhớ dữ liệu bênngoài
P3.7 RD Xung đọc bộ nhớ dữ liệu bênngoài
Trang 11RST( Reset- chân 9):
Mức tích cực của chân này là mức 1, để reset ta phải đa mức1(5V) đến chân này với thời gian tối thiểu 2 chu kỳ máy( tơng đơng2uS đối với thạch anh 12MHz
Trạng thái của các thanh ghi khi reset, khi reset thì trạng tháicủa các thanh ghi không thay đổi
6.XTAL1, XTAL2:
AT89S52 có một bộ dao động trên chip, nó thờng đợc nồi với một bộ dao động thạch anh có tần số lớn nhất là 33MHz, thông thờng là 12MHz.
Trang 127 EA( External Access):
EA thờng đợc mắc lên mức cao(+5V) hoặc mức thấp( GND) Nếu ở mức cao, bộ vi điều khiển thi hành chơng trình từ ROM nội Nếu ở mức thấp, chơng trinh chỉ đợc thi hành
từ bộ nhớ mở rộng.
8.ALE( Address Latch Enable):
ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoài trong nửa đầu của chu kỳ bộ nhớ Sau đó các đờng port 0 dùng để xuất hoặc nhập dữ liệu trong nửa chu kỳ sau của bộ nhớ.
9.PSEN( Program Store Enable):
PSEN là điều khiển để cho phép bộ nhớ chơng trình mở rộng và trờng đợc nối đến chân /OE ( Output Enable) của một EPROM để cho phép đọc các bytes mã lệnh.
PSEN sẽ ở mức thấp trong thừi gian đọc lệnh Các mã nhị phân của chơng trình đợc đọc từ EPROM qua Bus và đợc chốt vào thanh ghi lệnh của bộ vi điều khiển để giải mã lệnh Khi thi hành chơng trình trong ROM nội, PSEN sẽ ở mức thụ
AT89S52 có 8Kb Flash Rom trên chip, khi chân EA( Chân 31)
đ-ợc đặt ở mức logic cao(+5V), bộ vi điều khiển sẽ thực hiện chơng trình trong ROM nội bắt đầu từ địa chỉ 0000H Số lần ghi cho bộ nhớ này khoảng 1000 lần( trên lý thuyết).
Khi chân EA đợc đặt ở mức thấp, bộ vi điều khiển sẽ thực hiên chơng trình ở bộ nhớ chơng trình ngoài (EPROM ngoài), tuy nhiên để có ợc điều này thì phải có một mạch phối ghép AT89S52 với EPROM đợc lựa chọn.
Hình dới là một vi mach chốt (Latch) sẽ tách riêng bus đa hợp
địa chỉ và dữ liệu AD0- AD7; Tuỳ theo dung lợng của EPROM sẽ
có số đờng địa chỉ tơng ứng đợc dung; EPROM đợc đọc nhờ tín hiệu PSEN
Trang 132.Bộ nhớ dữ liệu
AT89S52 có 256 bytes RAM nội đợc phân chia nh sau:
Các bank thanh ghi có địa chỉ từ 00H đến 1FH:
32 byte thấp của bộ nhớ nội đợc dành cho các bank thanh ghi Bộ lệnh AT89S52 hỗ trợ 8 thanh ghi có tên là R0-R7 và theo mặc định sau khi reset hệ thống, các thanh ghi này có các địa chỉ từ 00H đến 07H.
Các lệnh dùng các thanh ghi R0-R7 sẽ ngắn hơn và nhanh hơn so với các lệnh có chức năng tơng ứng dùng kiểu địa chỉ trực tiếp Các dữ liệu đợc dung thờng xuyên nên dùng một trong các thanh ghi này.
Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghi đợc truy xuất bởi các thanh ghi R0-R7, để chuyển đổi việc truy xuất thanh ghi ta phải thay đổi các bit chọn bank trong thanh ghi trạng thái.
RAM địa chỉ hoá từng bit có địe chỉ từ 20H đến 2FH:
AT89S52 có 128 bits có chứa các byte định địa chỉ theo bit từ 20H
đến 2FH ý tởng truy xuất từng bit bằng phần mềm là các đặc tính mạnh của các bộ vi điều khiển nói chung Các bit có thể đợc đặt xoá, AND, OR , với một lệnh đơn.
RAM đa dụng từ 30H đến FFH.
Các thanh ghi chức năng đặc biệt từ 80H đến FFH
89S52 P2
ALE P0
PSEN #
Flash EPRROM A15:8
A7:0
D7:0 OE Latch
Trang 143 Bé nhí d÷ liÖu ngoµi:
Trang 15Sơ đồ ghép nối AT89S52 với RAM
Bộ nhớ dữ liệu ngoài là bộ nhớ RAM đợc đọc hoặc ghi bởi tín hiệu /RD và WR Các RAM có thể giao tiếp với AT89S52 tơng tự cách thức nh EPROM
ngoại trừ chân /RD của AT89S52 nối với chân /OE của RAM và chân /WR của AT89S52 nối với chân /WE của RAM.
Nếu có nhiều vi mạch RAM hoặc ROM sùng đợc ghép nối với AT89S52 thì có thể dùng thêm vi mạch giải mã 74LS138.
4.Các thanh ghi chức năng
Từ trạng thái chơng trình( PSW: Program Status Word)
Thanh ghi B
Con trỏ ngăn xếp SP( Stack pointer)
Con trỏ dữ liệu DPTR( Data poiner)
Các thanh ghi Port( Port register)
Các thanh ghi của các bộ Timer( Timer register)
Các thanh ghi Port nối tiếp(Serial Port register)
Các thanh ghi ngắt( Interrupt register)
Thanh ghi điều khiển nguồn( Power Control register)
5 Mạch tạo dao động và Reset
* Mạch tạo dao động:
AT89S52 có một bộ chia tần số trong chip, bộ này sẽ cấp xung clock cho các khối bên trong chip từ nguồn dao động bên ngoài qua 2 chân XTAL1 và XTAL2
Port 0
EA ALE Port 2 89S52
RD
WR
D0-D7 A0-A7
RAM A8-A15
OE WE
74HC373
O D G
Trang 16* Mạch Reset:
Có 4 cách để reset AT89S52 lần lợt là: Reset khi cấp nguồn, Reset bởi WDT, Reset bằng phần mềm và Reset bằng mạch ngoài qua chân RST.
Trang 17AT89S52 có một port nối tiếp trong chip có thể hoạt động ở nhiều chế độ khác nhau, nhiều tốc độ khác nhau Chức năng chủ yếu của một port nói tiếp là thực hiện chuyển đổi song song sang nối tiếp với dữ liệu xuất ra và chuyển đổi nói tiếp sang song song với dữ liệu nhập để có thể giao tiếp với máy tinh qua cổng nối tiếp hoặc các thiết
bị tơng tự
Mô tả hoạt động của Port nối tiếp
Port nối tiếp có thể hoạt động song công( full duplex: thu và phát
đồng thời) và đệm lúc thu( receiver buffering) cho phép một kí tự sẽ
đợc thu và đợc giữ trong khi kí tự thứ 2 đợc nhận Nếu CPU đọc kí tự thứ nhất trớckhi kí tự thứ 2 đợc thu đầy đủ thì dữ liệu sẽ không mất.
1.Các thanh ghi của port nối tiếp
Có 2 thanh ghi chức năng đặc biệt cho phép phần mềm truy xuất đến Port nối tiếp: SBUF và SCON.
Thanh ghi điều khiển Port nối tiếp( SCON- Serial Controller).
Thanh ghi điều khiển Port nối tiếp SCON ở địa chỉ 98H
là thanh ghi có điịnh địa chỉ bit, chứa các bit trạng thái và các bit để
đièu khiển liên quan tới port nối tiếp Các bit điều khiển đặt chế độ hoạt động cho Port nối tiếp, các bit trạng thái báo cáo kết thúc việc phát hoặc thu một ký tự Các bit trạng thai có thể đợc kiểm tra bằng ophần mềm hoặc có thể đợc lập trình để tạo ngắt.
Bit Ký hiệu Địa chỉ Mô tả
SCON.7 SM0 9FH Mode 1-Bit 0 chọn chế độ cho Port nối tiếp
SCON.6 SM1 9EH Mode 1-Bit 1 chọn chế độ hoạt động cho Port
nối tiếp SM0SM1=00: Port nối tiếp hoạt động ở chế độ 0 SM0SM1=01: Port nối tiếp hoạt động ở chế độ1 SM0SM1=10: Port nối tiếp hoạt động ở chế độ2
Máy Cổng
tính COM
AT89S52
Bộ chuyển đổi mức
Trang 18SM0SM1=11: Port nối tiếp hoạt động ở chế độ3 SCON.5 SM2 9DH Mode 2-Bit 2 chọn chế độ cho Port nối tiếp
Bit này cho phép truyền thông đa xử lý SCON.4 REN 9CH Receiver Enable-Bit cho phép thu, REN phải
đợc đặt bằng 1 để cho phép nhận các ký tự SCON.3 TB8 9BH Transmitted bit 8-Bit truyền thứ 9 sử dụng trong
chế độ UART 9 bit SCON.2 RB8 9AH Receiver bit 8- Bit nhận thứ 9 trong sử dụng
trong chế độ UART 9 bit SCON.1 TI 99H Transmitted Interupt- Cờ ngắt truyền, TI đợc
đặt bằng 1 khi kết thúc việc truyền 1 ký tự, TI
đợc xoá bằng phần mềm SCON.0 RI 98H Receiver Interupt-Cờ ngắt nhận, RI đợc dặt
bằng 1 khi kết thúc việc nhận 1 ký tự,RI đợc xoá bằng phần mềm
Trớc khi sử dụng cổng nối tiếp, phải khởi động thanh ghi SCON để chọn chế độ
2.Trao đổi dữ liệu qua Port nối tiếp
Thao tác trao đổi dữ liệu qua port nối tiếp không đơn thuần chỉ là việc ghi/đọc dữ liệu nh trao đổi dữ liệu trực tiếp qua các port(chẳng hạn P1, P2,4 ) mà nó bao gồm 3 thao tác cính nh sau:
- Khởi tạo cổng nối tiếp: Thao tác này bao gồm các việc nh sau:
+ truy xuất SCON để đặt các thông số nh chế độ hoạt
động, cho phép thu
+Thiết lập hoặc xoá bit SMOD của thanh ghi PCON để
đặt hệ số chia của tốc độ baud
+Truy xuất các thanh ghi của các bộ Timer 1 và Timer 2
để đặt tốc độ baud cho port nối tiếp( Chỉ với chế độ 1 và 3).
- Kiểm tra cờ TI( Khi truyền) và RI( Khi nhận).
-Ghi/ đọc byte dữ liệu ở SBUF
SƠ ĐỒ MẠCH NGUYấN Lí