Các bộ vi xử lý ngày càng phát triển vàhoàn thiện hơn, được sử dụng trong hầu hết các hệ thống điều khiển tự độngtrong công nghiệp, khoa học kĩ thuật, cũng như trong các thiết bị dân dụn
Trang 1Mục lục
1 Xuất xứ, tính cấp thiết của đề tài -4
2 Ý tưởng -4
3 yêu cầu, mục tiêu -4
4 Ứng dụng -5
5 Phạm vi , nội dung và phương pháp thực hiện -5
5.1 Phạm vi tìm hiểu -5
5.2 Nội dung -5
5.3 Phương pháp -5
6 Kết quả đạt được của đề tài -6
7 Ngôn ngữ -6
8 Phần mềm mô phỏng -6
9 Phương án thiết kế -6
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT -7
1.1 Giới thiệu chung -7
1.2 Vi điều khiển AT89C51 -7
1.2.1 Cấu trúc của vđk 8051 -8
1.2.2 Chức năng các chân của VĐK 8051 -10
1.2.3 Không gian địa chỉ của 8051 -13
1.3 Cấu trúc bộ nhớ và các thanh ghi -14
1.3.1 Bộ nhớ chương trình (Program memory) -15
1.3.2 Các Bộ định thời/Bộ đếm -15
1.3.3 Điều khiển ngắt -16
CHƯƠNG 2 ỨNG DỤNG 8051 ĐIỀU KHIÊN ĐÈN GIAO TH ÔNG -18
2.1 Xây dựng phần cứng -18
2.1.1 Khối vi xử lý. -18
2.1.2 Khối RESET -19
2.1.3 Khối tạo dao động -20
2.1.4 Khối hiển thị -20
2.2 Sơ đồ nguyên lý hệ thống mạch đèn giao thông -21
2.3 Xây dựng thuật toán -22
2.3.1 Xây dựng lưu đồ thuật toán -22
2.3.2 Viết chương trình điều khiển -23
Trang 22.4 Thiết kế , thực thi mạch trên phíp đồng -27
2.5 Nguyên lý hoạt động -27
KẾT LUẬN VÀ ĐÁNH GIÁ -28
Tài liệu thanm khảo -29
Trang 3LỜI NÓI ĐẦU
Trong thời đại ngày nay khi nhân loại đang trải qua những bước tiến vượt bậc
về khoa học công nghệ, thì ngành điện tử cũng có những bước tiến quan trọngđặc biệt là trong lĩnh vực vi điều khiển Các bộ vi xử lý ngày càng phát triển vàhoàn thiện hơn, được sử dụng trong hầu hết các hệ thống điều khiển tự độngtrong công nghiệp, khoa học kĩ thuật, cũng như trong các thiết bị dân dụng Chính nhờvai trò, chức năng của vi xử lý đã đem lại nhiều ưu điểm, nhiều tính năng đặc biệtcho các hệ thống điều khiển thay thế con người trong các công việc đòi hỏi sự phứctạp và yêu cầu kỹ thuật cao
Để áp dụng tính năng đặc biệt đó của vi xử lý vào thực tiễn, nhóm sinh viênchúng em gồm các thành viên:
1 Nguyễn Phương Đông
2 Nguyễn Tiến Tài
3 Hoàng Văn Nam
Nhóm chúng em đã tiến hành nghiên cứu và hoàn thành đề tài: Thiết Kế Mạch
Đèn Giao Thông Sử Dụng Vi Điều Khiển 8051
Mặc dù đã cố gắng nhiều nhưng vì kinh nghiệm chưa có nhiều và sự khác biệtgiữa lý thuyết – thực hành nên trong quá trình thực hiện còn nhiều thiếu sót Mongđược sự góp ý chân tình từ thầy cô và các bạn!
Chúng em chân thành cảm ơn thầy đã nhiệt tình giúp đỡ nhóm em trong thờigian hoàn thành đề tài Cảm ơn các bạn sinh viên đã cùng đóng góp ý kiến, thảo luận
và giúp đỡ
Chúng em xin chân thành cảm ơn!
Trang 4CHƯƠNG 1 Xuất xứ, tính cấp thiết của đề tài
Ngày nay cùng với sự phát triển của khoa học kỹ thuật, xã hội ngày càng vănminh và hiện đại, các đô thị ngày một đi lên Nhu cầu về giao thông ngày càng trở nêncấp thiết, nhất là trong các khu vực thành thị Do nhu cầu của đời sống con người, đặcbiệt là nhu cầu đi lại, các loại phương tiện giao thông đã tăng một cách chóng mặt.Riêng tại Việt Nam số lượng xe máy trong những năm qua tăng một cách đột biến, mật
độ xe lưu thông trên đường ngày một nhiều, trong khi đó hệ thống đường xá tại ViệtNam còn quá nhiều hạn chế nên thường gây ra các hiện tượng như kẹt xe, ách tắc giaothông, đặc biệt là tai nạn giao thông ngày càng phổ biến trở thành mối hiểm họa chonhiều người
Tính cấp thiết : Vì lý do đó các luật giao thông lần lượt ra đời và được đưa vào sửdụng một cách lặng lẽ rồi dần trở nên phổ biến như hiện nay Trong đó hệ thống đèngiao thông là công cụ điều khiển giao thông công cộng thực tế và hiệu quả có vai tròrất lớn trong việc đảm bảo an toàn và giảm thiểu tai nạn giao thông
Từ thực tế đó nhóm chúng em thực hiện đề tài “Thiết kế mạch đèn giao thông dùng vi điều khiển 8051 ” nhằm giúp cho mọi người nhất là tầng lớp sinh viên có ý
thức hơn trong việc chấp hành luật lệ an toàn giao thông
Sử dụng các tín hiệu LED đơn (xanh, đỏ, vàng) và LED 7 thanh hiển thị thờigian
Mạch sẽ hoạt động ở 2 chế độ : giờ cao điểm , bình thường
Giờ cao điểm : đèn xanh bật 47s, đèn đỏ bật 50s,đèn vàng bật 3s khi đènxanh sáng phương tiện được phép đi , khi tín hiệu đèn đỏ sáng thì phươngtiện dừng lại,đèn vàng cảnh báo
Bình thường : đèn xanh bật 23s, đèn đỏ bật 20s,đèn vàng bật 3s khi đènxanh sáng phương tiện được phép đi , khi tín hiệu đèn đỏ sáng thì phươngtiện dừng lại,đèn vàng cảnh báo
Yêu cầu:
mạch đơn giản, dễ thiết kế ,dễ lắp đặt
mạch chạy ổn định, làm việc liên tục trong nhiều giờ, dễ lắp đặt
Trang 5Mục tiêu: Tìm hiểu về vi điều khiển, thiết kế và thực thị một mạch điện tử đơngiản về mạch đèn giao thông
- Tiến hành thực thi phần cứng cho mạch điều khiển
- Đánh giá và hoàn thiện hệ thống
2 Phương pháp
Tham khảo, phân tích, tổng hợp, sử dụng có chọn lọc tài liệu trên Internet, cácbài viết, tìm hiểu tài liệu trong sách và kiến thức đã học
Trang 6CHƯƠNG 6 Kết quả đạt được của đề tài
- Viết báo cáo về phương pháp, quy trình thiết kế mạch đèn giao thông
- Mô phỏng chạy thử trên phần mềm, thiết kế phần cứng của mạch
Hiện nay việc sử dụng các mạch số kết kợp với chíp vi điều khiển trong các hệthống điều khiển tự động đã trở nên rất phổ biến vì những ưu việt của nó như: độchính xác, khả năng lập trình được, tốc độ điều khiển nhanh, sử dụng đơn giản,…Mặtkhác kỹ thuật số, vi xử lý, vi điều khiển là lĩnh vực đang phát triển mạnh mẽ và có ứngdụng trong rất nhiều ngành sản xuất Vì vậy, ta sẽ thiết kế một hệ thống điều khiểngiao thông đơn giản, chỉ sử dụng bộ vi điều khiển Tất cả các tín hiệu điều khiển đềuđược đưa đến khối hiển thị trực tiếp từ các cổng của bộ vi điều khiển
CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT
1 Giới thiệu chung
Chương một giới thiệu về vi điều khiển gồm : cấu trúc, chức năng các chân của
Trang 71.2 Vi điều khiển AT89C51
Hình 1.2 Hình dạng AT89C51
AT89C51 là một hệ vi tính 8 bit đơn chip CMOS có hiệu suất cao, công suấtnguồn tiêu thụ thấp và có 4KB bộ nhớ ROM Flash xóa được/lập trình được Chip nàyđược sản xuất dựa vào công nghệ bộ nhớ không mất nội dung có độ tích hợp cao củaAtmel
Chip AT89C51 cũng tương thích với tập lệnh và các chân ra của chuẩn côngnghiệp MCS-51 Flash trên chip này cho phép bộ nhớ chương trình được lập trình lạitrên hệ thống Kết hợp một CPU linh hoạt 8 bit với Flash trên một chip đơn thể, Atmel89C51 là một hệ vi tính 8 bit đơn chip mạnh cho ta một giải pháp có hiệu quả về chiphí và rất linh hoạt đối với các ứng dụng điều khiển
AT89C51 có các đặc trưng chuẩn sau: 4KN Flash, 128 byte RAM, 32 đườngxuất nhập, 2 bộ định thời/đếm 16 bit, một cấu trúc ngắt hai mức ưu tiên và 5 nguyênnhâ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.Ngoài ra AT89C51 được thiết kế với logic tĩnh cho hoạt động có tần số giảmxuố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, portnối tiếp và hệ thống ngắt tiếp tục hoạt động
1.2.1 Cấu trúc của vđk 8051
Sơ đồ cấu trúc và sơ đồ chân của VĐK 8051
Trang 8Hình 1.3 Sơ đồ cấu trúc của VĐK 8051
ROM: Là một bộ nhớ không mất dữ liệu khi mất nguồn cung cấp,được gọi là bộ
nhớ chương trình bên trong có dung lượng 4Kbyte dùng để lưu trữ các mã
RAM: Bộ nhớ dữ liệu bên trong có dung lượng 128 Byte đối với 8051, 256 Byte
đối với 8052 dùng để lưu trữ dữ liệu như biển số, hằng số, bộ nhớ đệm truyền thông,
Timer0, Timer1(T0, T1): Là hai bộ đếm định thời hoặc là bộ đếm xung.
Serial port: Là cổng truyền thông nối tiếp có các đặc điểm: truyền song
công( tức là có khả năng vừa truyền, vừa nhận số liệu tại cùng một thời điểm), vớiphương thức truyền không đồng bộ;
OSC: Dộ phát xung nhịp nhằm tạo sự làm việc một cách đồng bộ cho cả hệ
thống vi điều khiển
BUS: Khối điều khiển các bus địa chỉ (Address Bus),bus dữ liệu (Data Bus) và
bus điều khiển (Control Bus)
Trang 9Hình 1.4 Sơ đồ chân của VĐK 8051
AT89C51 có tất cả 40 chân Mỗi chân có chức năng như các đường I/O (xuấtnhập), trong đố 24 chân có công dụng kép: mỗi đường có thề hoạt động như mộtđường I/O hoặc như một đường điều khiển hoặc như thành phần của bus địa chỉ và bus
+ 1 cổng ra nối tiếp (Seral port)
+ 4 cổng xuất nhập P0 - P3 (I/O port)8 bit
+ Mạch giao tiếp nối tiếp
+ Không gian nhớ chương trình ngoài 64K
+ 210 vị trí nhớ được định địa chỉ , mỗi vị trí 1 bit
+ Bộ xử lý bit (thao tác trên các bit riêng lẻ )
+ Một bộ điều khiển ngắt: Interruptcontrol
Trang 10+ Một mạch dao động bên trong và một bộ điều khiển Bus
+ Các cổng P0-P3 là các cổng vào ra hai chiều Ngoài ra P0 và P2 còn được xửdụng để truy cập bộ nhớ ngoài với các chương trình ứng dụng này cổng P0 sẽ đưa rađịa chỉ byte thấp và P2 đưa ra địa chỉ cao
+ Cổng port 3 có hai công dụng :
Khi hoạt động ở chế độ xuất nhập mỗi một cổng của P3 có một chức năng riêng+ RxD, TxD: Là hai chân nhận và truyền số liệu của cổng truyền thông nối tiếp(mức tín hiệu là mức TTL) RxD (Receive Data), TxD (Transmit Data);
+ INT0, INT1 : Là hai chân nhận tín hiệu yêu cầu ngắt từ bên ngoài;
+ OE : ( outront enable) cho phép đọc các byte lệnh trong thời gian lấy lệnh+ Trong thời gian lấy lệnh tín hiệu PSEN=0
+ Trong thời gian thực hiện lệnh PSEN=1
+ ALE (address lacht Enable): là tín hiệu để chốt địa chỉ
+ EA : truy xuất bên ngoài
+ 8051 thực hiện chương trình trong Rom nội Ngoài ra EA được dùng chân nhậnđiện áp 21V cho việc lập trình Eprom
+ RST : (reset) là chân dùng thiết lập trạng thái ban đầu cho hệ thống
+ WR : (tín hiệu ra) cho phép viết dữ liệu tới các ngoại vi , bộ nhớ bên ngoài viđiều khiển;
+ RD : (tín hiệu ra) cho phép đọc dữ liệu từ các ngoại vi , bộ nhớ dữ liệu ngoài viđiều khiển;
+ PSEN : (Program store Enable) có chức năng giống RD nhưng chỉ để đọc bộnhớ chương trình bên ngoài, tín hiệu này được nối với OE;
+ X1, X2:Dùng để tạo xung nhịp cho vi điều khiển;
1.1 Chức năng các chân của VĐK 8051
32 chân trong số 40 chân của 8051 có công dụng xuất/nhập, tuy nhiên 24 trong
32 đường này có 2 mục đích (công dụng) Mỗi một đường có thể hoạt động xuất/nhậphoặc hoạt động như một đường địa chỉ/dữ liệu của bus địa chỉ/dữ liệu đa hợp
Trang 1132 chân nêu trên hình thành 4 port 8-bit Với thiết kế yêu cầu một mức tối thiểu
bộ nhớ ngoài hoặc các thành phần bên ngoài khác, ta có thể sử dụng các port này làmnhiệm vụ xuất/nhập 8 đường cho mỗi port có thể được xử lý như một đơn vị giao tiếpvới các thiết bị song song như máy in, bộ biến đổi D-A v.v hoặc mỗi đường có thểhoạt động độc lập giao tiếp với một thiết bị đơn bit như chuyển mạch, LED, BJT, FET,cuộn dây, động cơ, loa,
Vcc :chân cung cấp điện (3-5 V)
Gnd: Chân nối đất (0 V)
Các port:
Port 0 : Port 0 ( các chân từ 32 đến 39 trên 8051 ) có hai công dụng Trong các
thiết kế có tối thiểu thành phần, port 0 được sử dụng làm nhiệm vụ xuất/nhập Trongcác thiết kế lớn hơn có bộ nhớ ngoài, port 0 trở thành bus địa chỉ và bus dữ liệu đa hợp( byte thấp của bus địa chỉ)
Port 1 : Port1 chỉ có một công dụng là xuất/nhập ( các chân từ 1 đến 8 trên
8051)
Các chân của port 1 được ký hiệu là P1.0, P1.1, , P1.7 và được dùng để giao tiếpvới thiết bị bên ngoài khi có yêu cầu Không có chức năng nào nữa gán cho các châncủa port 1, nghĩa là chúng chỉ được sử dụng để giao tiếp với các thiết bị ngoại vi
Port 2 : Port 2 ( các chân từ 21 đến 28 trên 8051 ) có 2 công dụng, hoặc làm
nhiệm vụ xuất/nhập hoặc là byte địa chỉ cao của bus địa chỉ 16 bit cho các thiết kế có
bộ nhớ chương trình ngoài hoặc các thiết kế có nhiều hơn 256 bytes bộ nhớ dữ liệungoài
Port 3 : Port 3 ( các chân từ 10 đến 17 trên 8051 ) có 2 công dụng Khi không
hoạt động xuất/nhập, các chân của port 3 có nhiều chức năng riêng ( mỗi chân có chứcnăng riêng liên quan đến các đặc trưng cụ thể của 8051 )
Bảng sau đây cho ta chức năng của các chân của port 3 :
Chân của port Chức năng
P3.0 RxD ( ngõ vào của port nối tiếp)
P3.1 TxD ( ngõ ra của port nối tiếp)
P3.2 INT0 ( ngõ vào ngắt ngoài 0)
Trang 12P3.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 0)
P3.5 T1 ( ngõ vào bên ngoài của bộ định thời 1)
P3.6 WR (điều khiển ghi bộ nhớ dữ liệu ngoài)
P3.7 RD (điều khiển đoc bộ nhớ dữ liệu ngoài)
PSEN:
8051 cung cấp cho ta 4 tín hiệu điều khiển bus Tín hiệu cho phép bộ nhớ chươngtrình PSEN (program store enable) là tín hiệu xuất trên chân 29 Đây là tín hiệu điềukhiển cho phép ta truy xuất bộ nhớ chương trình ngoài Chân này thường nối với châncho phép xuất OE (output enable ) của EPROM (hoặc ROM) để cho phép đọc các filelệnh
Tín hiệu PSEN ở logic 0 trong suốt thời gian tìm nạp lệnh Các mã nhị phân củachương trinh hay opcode (mã thao tác ) được đọc từ EPROM, qua bus dữ liệu và chốtvào thanh ghi lệnh IR của 8051 để được giải mã
Khi thực thi một chương trình chứa trong ROM nội , PSEN được duy trì ở logickhông tích cực ( logic 1 )
Chân cho phép chốt địa chỉ ALE 8051 sử dụng chân 30, chân xuất tín hiệu chophép chốt địa chỉ ALE (address latch enable) để giải đa hợp (demultiplexing) bus dữliệu và bus địa chỉ Khi port 0 được sử dụng làm bus địa chỉ/dữ liệu đa hợp, chân ALExuất tín hiệu để chốt địa chỉ (byte thấp của địa chỉ 16 bit) vào một thanh ghi ngoàitrong suốt nửa đầu của chu kỳ bộ nhớ (memory cycle ) Sau khi điều này đã được thựchiên, các chân của port 0 sẽ xuất/nhập dữ liệu hợp lệ trong suốt nửa thứ hai của chu kỳ
bộ nhớ
EA / P:
Là tín hiệu vào = 1 : Vi điều khiển sử dụng cả bộ nhớ chương trình bên trong và
bộ nhớ chương trình bên ngoài , cụ thể như sau :
- Nếu vi điều khiển có 4 Kbyte bộ nhớ chương trình bên trong với địa chỉ là0000H : OFFFH thì bộ nhớ chương trình bên ngoài phải có địa chỉ là1000H : FFFFH ;
Trang 13- Nếu vi điều khiển có 8 Kbytes bộ nhớ chương trình bên trong với địa chỉ
là 0000H : 1FFFH thì bộ nhớ chương trình bên ngoài phải có địa chỉ là2000H : FFFFH
= 0 : vi điều khiển chỉ sử dụng bộ nhớ chương trình bên ngoài có địa chỉ là0000H : FFFFH
ALE / P:
Là tín hiệu chốt địa chỉ ( Address Latch Enable ) , dùng để phân biệt khi nào thì
PO là bus dữ liệu hoặc là bus địa chỉ khi vi điều khiển cần ghép nối thêm các ngoại vi ,ALE = 1 : P0 là bus địa chỉ
ALE = 0 : P0 là bus dữ liệu
Chân RESET ( RST )
Ngõ vào RST ( chân 9 ) là ngõ vào xoá chính ( master reset ) của 8051 dùng đểthiết lập lại trạng thái ban đầu cho hệ thống hay gọi tắt là reset hệ thống Khi ngõ vàonày được treo ở logic 1 tối thiểu 2 chu kỳ máy, các thanh ghi bên trong của 8051 đượcnạp các giá trị thích hợp cho việc khởi động lại hệ thống
Các chân XTAL1 và XTAL2
Mạch dao động bên trong chip 8051 được ghép với thạch anh bên ngoài ở haichân XTAL1 và XTAL2 ( chân 18 và 19 ) Tần số danh định của thạch anh là 12 MHzcho hầu hết các chip của họ MCS-51
XTAL1 : Ngõ vào đến mạch khuếch đại đảo của mạch dao động và ngõvào đến mạch tạo xung clock bên trong chip
XTAL2 : Ngõ ra từ mạch khuếch đại đảo của mạch dao động
1.2 Không gian địa chỉ của 8051
8051 có 16 bit địa chỉ ( AO:A15 ) vậy có thể mã hoá được 2 trạng thái ( địachỉ ) Hay còn gọi là không gian địa chỉ có 2 = 65536 địa chỉ , với địa chỉ đầu tiên là0000H và địa chỉ cuối cùng là FFFFH Trong thực tế bộ nhớ thường có cấu trúc theokiểu mỗi ô nhớ là một byte và có một địa chỉ cụ thể để đọc / viết ô nhớ đó Nên khônggian địa chỉ của 8051 còn được gọi là 65536 byte bằng 64 Kbyte
Đơn vị chỉ dung lượng bộ nhớ :
210 = 1K = 1024
Trang 14Vùng thanh ghi có 32 byte, chia thành 4 khối (bank 0 đến bank 3),mỗi khối có 8thanh ghi (từ R0 đến R7).
Ở vùng RAM định địa chỉ theo bit, các bit được dánh địa chỉ từ 00H đến 7FH.Các thanh ghi chuyên dụng (SFRs – Special Function Registers): Các thanh ghinày có địa chỉ từ 80H đến FFH Chúng chứa nội dung của các thanh ghi điều khiển
Sau đây là một số thanh ghi chuyên dụng:
THANH GHI MÃ GỢI NHỚ ĐỊA CHỈ
CHỐT CỔNG Port0 P0 80H
CHỐT CỔNG Port1 P1 90H
CHỐT CỔNG Port2 P2 AOH
CHỐT CỔNG Port3 P3 BOH
Điều khiển bộ định thời/bộ đếm TCON 88H
Điền khiển chế độ bộ định thời/bộ đếm TMOD 89H
Byte thấp bộ định thời/bộ đếm 0 TL0 8AH
Byte cao bộ định thời/bộ đếmo TH0 8BH