1. Trang chủ
  2. » Luận Văn - Báo Cáo

GIỚI THIỆU LED 7 DOẠN

109 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 109
Dung lượng 1,01 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các hệ thống vi ba mặt đất thường hoạt động ở băng tần 4-6GHz và 21-23GHz, tốc độ truyền dữ liệu từ 1-10Mb/s - Các hệ thống tia hồng ngoại Iinfrared System : Các mạng điểm – điểm hoạt độ

Trang 1

LỜI CÁM ƠN

thầy cô , em ñã có một kiến thức vững chắc ñể bước vào

ñời.Em xin chân thành cảm ơn quý thầy cô ñã cất công dạy

bảo và truyền ñạt cho em trong suốt thời gian học tập vừa qua Chắc hẳn không ai thành ñạt trên con ñường sự nghiệp của mình mà không có những lời dạy bảo của các thầy, các

cô ðể ñánh dấu cho bước ngoặc cuộc ñời và kết thúc một quá trình học tập dầy căng thẳng là thời gian làm luận văn tốt nghiệp Một lần nữa em xin chân thành cám ơn quý thầy

cô ñã dạy dỗ cho em trong thời gian học tai trường.Và nhất

là Thầy HOÀNG MINH TRÍ ñã hướng dẫn tận tình ñể em

hoàn thành tốt luận văn tốt nghiệp của mình

TP.Hồ Chí Minh tháng 07 / 2008

Sinh viên : Nguyễn ðức Trọng

Trang 2

MỤC LỤC

CHƯƠNG IV: GIỚI THIỆU LED 7 ðOẠN 49

CHƯƠNG VI: LẬP TRÌNH VI XỬ LÝ & LƯU ðỒ GIẢI THUẬT 84 CHƯƠNG VII: GIAO DIỆN VISUAL BASIC & MẠCH 96

Trang 4

CHƯƠNG I TỔNG QUAN VỀ ĐỀ TÀI XẾP HÀNG ĐIỆN TỬ

I Sơ lược về xếp hàng điện tử

Ngày nay, nhu cầu sinh hoạt của con người ngày càng cao Mức sống con người không ngừng được nâng cao Do đó, họ mưu cầu được sinh hoạt trong môi trường đầy đủ tiện nghi và an toàn Xếp hàng trật tự là nét văn minh trong xã hội ngày nay nhưng do ý thức của một bộ phận người chưa cao nên chen lấn không được văn minh cho lắm xảy ra thường xuyên

Trong cuộc sống hiện tại, khoa học kỹ thuật phát triển rất nhanh, những công cụ ra đời sẽ giúp giải phóng sự lao động trí óc: nghiên cứu, cải tiến, sáng tạo Chỉ tiêu của khoa học kỹ thuật là làm sao nâng cao được chất lượng và hiệu suất công việc, hầu như công nghệ tự động ra đời là đáp ứng nhu cầu đó Cho nên, em đã nghiên cứu về đề tài “ Thiết kế mô hình xếp hàng điện tử dùng vi xử lý 89C51 qua mạng RS-

485 ” Các kít vi xử lý này có thể hoạt động hoàn toàn độc lập theo một chương trình lập sẵn Nhưng do thời gian thực hiện và khả năng có hạn nên em chỉ thiết kế đề tài

ở cấp độ sinh viên

 Yêu cầu của đề tài mà em được giao

II Hướng thực hiện đề tài

Chuẩn truyền thông nối tiếp thông dụng hiện nay là RS-232C, tuy nhiên chuẩn truyền thông này chỉ dùng truyền số liệu trên khoảng cách cực đại xấp xỉ 30m ở 9600bps do tụ ký sinh trong cáp làm ảnh hưởng thời điểm chuyển tiếp tín hiệu giữa hai giới hạn

Khi có nhu cầu truyền 2 chiều tốc độ cao giữa 2 thiết bị thông minh hoặc giữa các máy tính công nghiệp Nên để có thể truyền dữ liệu từ kit vi xử lý về máy tính ở khoảng cách xa hơn em dùng RS-485 để chuyển đổi từ chuẩn RS-232C sang chuẩn RS-485 ta cần phải có một mạch điện chuyển đổi

RS-485 thì thích hợp hơn sử dụng RS-232 cho khoảng cách xa, nó được sử dụng trong nhiều hệ thống công nghiệp có đường truyền thông tin trong môi trường nhiễu điện cao Ở tốc độ 9600bps thì RS-485 có thể truyền lên đến 300m trong khi đó RS-232 chỉ truyền được 15m ở cùng tốc độ

Do yêu cầu của đề tài là dùng mạng RS-485 nên em thiết kế hai kit vi xử lý tượng trưng cho hai bàn xếp hàng điện tử

Trang 5

Sơ đồ khối mạch chuyển đổi như sau:

 Kit vi xử lý em thiết kế có những chức năng sau

chuẩn RS_232 sang mức vi sai (RS_485) để truyền đi xa hơn

III Vấn đề kết nối mạng

Thuật ngữ mạng đã trở nên rất quen thuộc khi mạng thông tin Internet ngày càng trở nên rất gần gũi với chúng ta Nếu quản lý thiết bị trong phòng theo phương pháp thông thường sẽ không kinh tế và tiết kiệm Ta cần phải làm sao để tiết kiệm cho được càng nhiều càng tốt Cho nên để tránh lãng phí ta nên điều khiển các thiết

bị bằng máy tính Chỉ cần một nhân viên cũng có thể tắt hay mở thiết bị trong từng phòng Nếu ta tắt các thiết bị bằng tay thì sẽ không kinh tế, khi khách trọ ra khỏi phòng mà quên tắt các thiết bị thì sẽ lãng phí rất nhiều năng lượng điện Tiết kiệm được phần năng lượng hao phí đó ta sẽ giúp cho việc giảm giá thành khi kinh doanh cho thuê phòng chẳng hạn

Máy tính có khả năng đóng tắt các thiết bị thông qua vi xử lý, đồng thời lưu trữ trạng thái các thiết bị trước đó

Trang 6

Ñieàu khieån

Trang 7

CHƯƠNG II TÌM HIỂU VỀ MẠNG RS_485

I Giới thiệu chung về mạng máy tính

Mạng máy tính là một tập hợp các máy tính được nối với nhau bởi các đường truyền vật lý theo một kiến trúc nào đó Và ngày nay mạng máy tính đã trở thành một lĩnh vực nghiên cứu phát triển và ứng dụng cốt lõi của công nghệ thông tin

1 Các yếu tố của mạng máy tính

Các yếu tố của một mạng máy tính bao gồm : đường truyền vật lý và kiến trúc của một mạng máy tính

a) Đường truyền vật lý

Đường truyền vật lý dùng để chuyển các tín hiệu điện tử giữa các máy tính Các tín hiệu điện tử đó biểu thị các giá trị dữ liệu dưới dạng các xung nhị phân (ON-OFF) Tất cả các tín hiệu được truyền giữa các máy tính đều thuộc một dạng sóng điện từ (EM) nào đó, trải từ các tần số radio tới các sóng cực ngắn vi ba và tia hồng ngoại Tùy theo tần số của sóng điện từ có thể dùng các đường truyền vật lý khác nhau để truyền các tín hiệu

Các tần số radio có thể truyền bằng cáp điện (dây đôi xoắn hoặc đồng trục ) hoặc bằng phương tiện quảng bá (radio broadcasting)

Sóng cực ngắn vi ba thường được dùng để truyền giữa các trạm mặt đất và các vệ tinh

Tia hồng ngoại là lý tưởng đối với nhiều loại truyền thông mạng Nó có thể được truyền giữa hai điểm hoặc quãng bá từ một điểm đến nhiều máy thu Tia hồng ngoại và các tần số cao hơn của ánh sáng có thể được truyền qua các loại cáp sợi quang

Khi xem xét lựa chọn đường truyền vật lý ta cần chú ý tới các đặc trưng cơ bản của chúng là dải thông, độ suy hao và độ nhiễu điện từ

b) Kiến trúc mạng

Kiến trúc mạng máy tính (network architecture) thể hiện qua cách nối các máy tính với nhau ra sao và tập hợp các quy tắc, qui ước mà tất cả các thực thể tham gia truyền thông trên mạng phải tuân theo để đảm bảo cho mạng hoạt động tốt Cách nối các máy tính được gọi là hình trạng (topology gọi tắt là topo), còn tập hợp các quy tắc, quy ước truyền thông thì được gọi là giao thức (protocol) của mạng

 Topology các mạng

Có hai kiểu nối mạng chủ yếu là: điểm – điểm ( point to point) và quảng bá

broadcaster hay point to multi point)

Theo kiểu point to point, các đường truyền nối thành từng cặp nút với nhau và mỗi nút đều có trách nhiệm lưu trữ tạm thời sau đó chuyển tiếp dữ liệu đi cho tới đích

Theo kiểu quảng bá, tất cả các nút phân chia chung một đường truyền vật lý Dữ liệu được gởi đi từ một nút nào đó có thể được tiếp nhận bởi tất cả các nút còn lại Nơi nhận sẽ kiểm tra xem địa chỉ đích gởi đến có phải cho mình hay không để có thể tiếp tục thực hiện việc giao tiếp hay bỏ qua

Trang 8

 Giao thức mạng

Việc truyền tín hiệu trên mạng cũng cần phải tuân theo những quy tắc, qui ước về nhiều mặt: từ khuôn dạng (cú pháp, ngữ nghĩa) của dữ liệu tới các thủ tục gởi, nhận dữ liệu, kiểm soát hiệu quả và chất lượng truyền tin cũng như xử lý các lỗi sự cố Tập hợp tất cả những quy tắc, qui ước đó được gọi là giao thức của mạng

2 Phân loại mạng máy tính

Có nhiều cách phân loại mạng máy tính khác nhau tùy thuộc vào yếu tố chính làm chỉ tiêu phân loại Nếu lấy khoảng cách địa lý làm yếu tố chính để phân loại thì

ta có các loại sau:

a) Mạng cục bộ ( Local Area Networks – LAN)

Là mạng được cài đặt trong một phạm vi tương đối nhỏ (ví dụ trong một tòa nhà, trường học …) với khoảng cách lớn nhất giữa các máy tính nút mạng nhỏ hơn 5Km

Một mạng cục bộ bao gồm cả phần cứng lẫn phần mềm Phần mềm của nó bao gồm các trình điều khiển thiết bị và hệ điều hành mạng

b) Mạng đô thị( Metropolitan Area Networks – MAN)

Là mạng được cài đặt trong phạm vi một đô thị hoặc một trung tâm kinh tế- xã hội có bán kính nhỏ hơn 25Km

c) Mạng diện rộng ( Wide Area Networks – WAN )

Có phạm vi có thể vượt qua biên giới một quốc gia và thậm chí cả một châu lục

d) Mạng toàn cầu ( Global Area Networks – GAN )

Phạm vi sử dụng của mạng trải rộng khắp các châu lục của Trái Đất

3 Đường truyền và các thiết bị sử dụng trong mạng máy tính

a) Đường truyền

a.1/ Cáp truyền

- Cáp đồng trục: Có cấu tạo gồm hai dây dẫn, một dây dẫn trung tâm (thường bằng đồng cứng) và một dây dẫn tạo thành một ống bao quanh dây dẫn trung tâm, dây dẫn này có thể là dây bện hay bằng lá kim loại Giữa hai dây dẫn có một lớp cách ly và bên ngoài cùng là một lớp vỏ plastic để bảo vệ cáp

- Cáp xoắn đôi: Cáp này gồm hai đường dây dẫn đồng trục được xoắn vào nhau Mục đích của việc xoắn này là nhằm giảm nhiễu điện từ gây ra bởi môi trường xung quanh và gây ra bởi bản thân chúng với nhau

Có hai loại cáp xoắn đôi được dùng hiện nay là cáp có bọc kim STP (Shield Twisted-Pair) và cáp không bọc kim UTP ( Unshield Twisted-Pair) STP có khả năng chống nhiễu tốt nhờ có vỏ bọc kim, thích hợp cho tốc độ truyền dưới 500Mb/s Còn UTP có khả năng chống nhiễu thấp hơn, tốc độ có thể đạt tới là 100Mb/s

Trang 9

Cáp sợi quang bao gồm một dây dẫn trung tâm ( là một hoặc một bó sợi thủy tinh hay plastic có thể truyền dẫn tín hiệu quang ) được bọc một lớp áo có tác dụng phản xạ các tín hiệu trở lại để giảm sự mất mát tín hiệu Bên ngoài cùng là lớp vỏ plastic để bảo vệ cáp

Tín hiệu truyền trên cáp sợi quang có thể đạt tốc độ 2Gb/s và cho phép khoảng cách truyền khá xa do độ suy hao tín hiệu trên cáp rất thấp Ngoài ra do tín hiệu truyền là dạng quang nên nó không bị ảnh hưởng bởi nhiễu điện từ và các hiệu ứng điện khác Hơn nữa, tín hiệu truyền trên cáp sợi quang có độ bảo mật rất cao Tuy nhiên cáp sợi quang có nhược điểm là khó lắp đặt và giá thành còn tương đối cao

a.2/ Phương tiện vô tuyến

- Radio: Radio chiếm dải tần từ 10KHz đến 1GHz, trong đó có các băng tần quen thuộc như:

Các phương thức truyền theo tần số radio là : Công suất thấp tần số đơn, công suất cao tần số đơn và trải phổ

- Viba (Microwave ): Có hai dạng truyền thông vi ba là mặt đất và vệ tinh Các hệ thống vi ba mặt đất thường hoạt động ở băng tần 4-6GHz và 21-23GHz, tốc độ truyền dữ liệu từ 1-10Mb/s

- Các hệ thống tia hồng ngoại (Iinfrared System ): Các mạng điểm – điểm hoạt động bằng cách chuyển các tín hiệu hồng ngoại từ một thiết bị tới một thiết bị kế tiếp, dải tần hoạt động là 100GHz đến 1000GHz với tốc độ khoảng 100Kb/s đến 16b/s

Các mạng quãng bá hồng ngoại cũng có dải tần như trên nhưng có tốc độ truyền thực tế chỉ đạt dưới 1Mb/s

b) Thiết bị mạng

b.1/ Các bộ giao tiếp mạng

Các bộ giao tiếp mạng có thể được thiết kế ngay trong Mainboard của máy tính hoặc ở dạng các tấm giao tiếp mạng ( Network Interface Card- NIC ) hoặc là các bộ thích nghi đường truyền

Một NIC có thể được cài đặt vào một khe cắm (slot) của máy tính Đây là loại thiết bị thông dụng nhất để nối máy tính với mạng Trong NIC có bộ thu phát với một số kiểu đầu nối Bộ thu phát chuyển đổi các tín hiệu bên trong máy tính thành các tín hiệu mà mạng đòi hỏi và cũng biến đổi ngược lại các tín hiệu truyền trên mạng thành các tín hiệu mà máy tính có thể làm việc được

Bộ thích nghi đường truyền là thiết bị có chức năng làm thích nghi một kiểu đầu nối nào đó trên máy tính với một kiểu đầu nối khác mà mạng đòi hỏi Có các bộ thích nghi đường truyền như là: transceiver, media filter, parallel port adapter, SCSI port adapter

Trang 10

- Hub ( bộ tập trung ): Hub là bộ chia hay còn gọi là bộ tập trung ( concentrators) dùng để đấu mạng Có các loại Hub như sau: Passive Hub, Active Hub, và Intelligent Hub

- Repeater ( bộ chuyển tiếp ): Repeater có chức năng tiếp nhận và chuyển tiếp các tín hiệu dữ liệu thường được dùng nối hai đoạn cáp mạng Ethernet ( để mở rộng mạng)

Một số repeater chỉ có chức năng đơn giản là khuếch đại tín hiệu Tuy nhiên lúc đó mọi tiếng ồn trên mạng cũng bị khuếch đại theo Ngoài ra nếu tín hiệu gốc đã bị nhiễu thì repeater này cũng khuếch đại luôn nhiễu

Các loại repeater tiên tiến hơn có thể mở rộng phạm vi của đường truyền mạng bằng hai cách: khuếch đại và tái sinh tín hiệu Chúng định danh dữ liệu trong tín hiệu nhận và dùng dữ liệu đó để tái sinh tín hiệu gốc

- Bridge ( Cầu ): Bridge là một thiết bị mềm dẻo hơn rất nhiều so với repeater Một repeater chuyển đi tất cả các tín hiệu mà nó nhận được Còn Bridge thì có chọn lọc và chỉ chuyển đi các tín hiệu có đích ở phần mạng phía bên kia

- Multiplexor (bộ dồn kênh ): Multiplexor là thiết bị có chức năng tổ hợp một số tín hiệu để chúng có thể được truyền với nhau và sau đó khi nhận lại được tách ra trở thành tín hiệu gốc

- Modem: Modem ( Modulation/ demodulation ) là thiết bị có chức năng chuyển đổi tín hiệu số thành tín hiệu analog và ngược lại để kết nối các máy tính qua đường điện thoại

Modem cho phép trao đổi thư điện tử, truyền tệp và trao đổi dữ liệu theo yêu cầu Tuy nhiên modem không phải là thiết bị liên mạng nên nó không thể nối kết các mạng ở xa với nhau Để khắc phục điều này ta có thể kết hợp với router để nối kết các mạng qua mạng điện thoại chuyển mạch công cộng

- Router : Router ( bộ chọn đường ) là thiết bị có chức năng tương tự như bridge, tuy nhiên nó đa năng hơn bridge vì có thể thực hiện các giải thuật chọn đường

đi tối ưu theo một chỉ tiêu nào đó

II Giao tiếp nối tiếp

Những thiết bị thực hiện việc giao tiếp bao gồm hai loại là : DCE (Data Communications Equipment) và DTE (Data Terminal Equipment)

DTE ( còn gọi là thiết bị đầu cuối dữ liệu ) là một thuật ngữ chung để chỉ các máy của người sử dụng cuối, chúng có thể là máy tính hoặc một trạm cuối (terminal ) Như vậy tất cả các ứng dụng của người sử dụng điều nằm ở DTE Mục đích của mạng máy tính chính là để nối các DTE lại cho phép chúng phân chia tài nguyên, trao đổi dữ liệu và lưu trữ thông tin dùng chung

DCE ( còn gọi là thiết bị cuối kênh dữ liệu ) là thuật ngữ chung dùng để chỉ các thiết bị nối các DTE với các đường ( mạng) truyền thông Nó có thể là một Modem, Transducer, Multiplex…DCE có thể được cài đặt ngay bên trong DTE hoặc

biểu diễn dữ liệu của người sử dụng thành dạng tín hiệu chấp nhận được bởi đường

Trang 11

Việc truyền dữ liệu, chủ yếu được thực hiện thông qua mạng điện thoại, phải tuân theo những nguyên tắc nhất định, và thường là dùng các chuẩn truyền được quốc tế hóa Có nhiều chuẩn truyền thông khác nhau, trong đó có các chuẩn thuộc họ RS- ( ngày nay đã đổi thành họ EIA- ) của EIA ( Electronics Industries Association ) được sử dụng rất phổ biến là: RS-232C, RS-422A, RS-423, RS-485 Chúng ta sẽ lần lượt khảo sát từng chuẩn trên

1 Đặc điểm của các công nghệ truyền dẫn RS-232C, RS-422A, RS-485

100Kbs/9m 10Kbs/90m 1Kbs/1.2km

10Mbs/12m 1Mbs/120m 100Kbs/1.2km

Half-duplex Full-duplex

Half-duplex Full-duplex Short circuit

a) Chuẩn RS-232C

Là chuẩn của EIA nhằm định nghĩa giao diện vật lý giữa DTE và DCE (ví

dụ như giữa một máy tính và một modem ) Chuẩn này sử dụng đầu nối 25 chân,

tuy nhiên chỉ có một số ít chân là thực sự cần thiết cho việc liên kết Về phương

diện điện , chuẩn này quy định các mức logic 0 và 1 tương ứng với các điện thế nhỏ

hơn -3V và lớn hơn +3V Tốc độ đường truyền không được vượt quá 20Kbs và

khoảng cách nhỏ hơn 15m

Chuẩn RS-232C có thể chấp nhận phương thức truyền song công (

full-duplex )

Một trong những yêu cầu quan trọng của RS-232C là thời gian chuyển từ

mức logic này sang mức logic khác không vượt quá 4% thời gian tồn tại của một bit

Trang 12

Giả sử với tốc độ truyền 19200 baud thì thời gian chuyển mức logic phải nhỏ hơn

19200baud ta có thể truyền xa nhất là 50ft (15.24m )

Một trong những vấn đề quan trọng cần chú ý là khi sử dụng RS-232C là mạch thu phát không cân bằng ( đơn cực ), tức là tín hiệu vào và ra được so với đất

b) RS-422A

Một cải tiến quan trọng của chuẩn RS-232C là chuẩn RS-422A Chuẩn này sử dụng việc truyền dữ liệu sai lệch differential data ) trên những đường truyền cân bằng Một dữ liệu sai lệch cần hai dây, một cho dữ liệu không đảo (non-inverted) và một đường cho dữ liệu đảo (inverted) Dữ liệu được truyền trên đường dây cân bằng, thường là cặp dây xoắn với một trở ở đầu cuối Một IC lái (driver) sẽ biến đổi các mức logic thông thường thành một cặp tín hiệu sai lệch để truyền Bên nhận sẽ có một mạch chuyển đổi tín hiệu sai lệch thành các mức logic tương ứng Các IC lái RS-422A hầu hết hoạt động với nguồn +5V như các chip logic khác Với chuẩn mới này, tốc độ cũng như khoảng cách truyền được cải thiện rất nhiều

c) RS-485

Chuẩn RS-232 dùng đường truyền không cân bằng vì các tín hiệu đều lấy điểm chuẩn là đường mass chung, do đó tốc độ truyền và khoảng cách truyền bị giới hạn Khi cần tăng khoảng cách và tốc độ truyền phương pháp dung hai dây trở nên hửu hiệu hơn vì hai dây có đặt tính giống nhau, tín hiệu truyền đi là hiệu số điện áp giữa hai dây, do đó, loại trừ được nhiễu chung

Tín hiệu từ máy tính theo chuẩn RS-232 có mức điện áp là +-12V phải đổi sang mức TTL 0-5V dùng vi mạch MAX 232, sau đó tín hiệu đơn được đổi sang tín hiệu vi sai dùng vi mạch MAX 485 Điện áp vi sai phải lớn hơn 200mV Nếu Vab > 200mV ta coi như logic 1 được truyền còn nếu Vab < -200mV thì logic 0 đượ truyền

Truyền RS-485 là công nghệ truyền được sử dụng thường xuyên bởi PROFIBUS Các lãnh vực ứng dụng bao gồm tất cả các lãnh vực mà trong đó cần lắp đặt không đắt tiền, đơn giản và truyền tốc độ cao Người ta dùng cáp đồng xoắn kép có bọc (STP)

Công nghệ truyền RS-485 thì dể xử lý Lắp đặt cáp xoắn kép (TP) không cần kiến thức chuyên gia Kiến trúc Bus cho phép thêm và lấy đi các trạm mà không làm ảnh hưởng đến các trạm khác Những mở rộng sau này không làm ảnh hưởng đến các trạm đang hoạt động

Giao tiếp EIA RS-485 là một cải tiến của chuẩn RS-422A Đặc tính điện của nó giống như chuẩn RS-422A RS-485 là chuẩn truyền vi sai, sử dụng hai dây cân bằng Với RS-485 tốc độ truyền có thể đạt đến 10Mbs và chiều dài cáp có thể lên đến 1.2km Điện áp vi sai ngõ ra từ +1.5V-> +5V nếu là logic mức 0 và mức logic 1 sẽ là từ -1.5V-> -5V Một đặc điểm quan trọng của RS-485 là có thể cung cấp đến 32 drivers và receivers trên cùng một đường truyền Điều này cho phép tạo thành một mạng cục bộ Để có khả năng như vậy, ngõ ra driver RS-485 phải là ngõ ra 3 trạng thái Và do đó một slave sẽ ở trạng thái tổng trở cao khi nó không được chọn để giao

Trang 13

Chỉ có một trạm được chọn làm master, các trạm còn lại đều là slave Master được quyền truyền bất cứ lúc nào, nó sẽ chỉ định một slave bất kì giao tiếp với nó Slave chỉ có thể truyền sau khi nhận được lệnh của master Mọi slave có một địa chỉ riêng trên đường truyền và sẽ không được phép truyền nếu không có yêu cầu từ master

++++ Đặc điểm

tin trên dây xoắn đôi bán song công ( Half _ duplex) , nghĩa là tại một thời điểm bất kì trên dây truyền chỉ có thể là một thiết bị hoặc là truyền hoặc là nhận

Hướng dẫn lắp đặt RS-485

Tất cả các thiết bị được nối vào cấu trúc Bus.Tối đa 32 trạm (Master hay Slave) có thể được nối vào một Sement(đoạn) Bus được kết thúc bằng kết thúc Bus tích cực(active bus terminator) ở đầu và cuối mỗi segment.Để đảm bảo hoạt động không có lỗi thì cả đầu kết thúc bú luôn luôn được có điện

Sơ đồ mạng half_ duplex RS485:

MAX485

DE DI

A B

MAX485

1 2

3 4 6

7

RO RE

DE DI A

120

Trang 14

Sơ đồ mạng RS485 Full_Duplex:

Trong trường hơp trên 32 trạm hoặc để mở rộng mạng, người ta sử dụng các repeatrer để liên kết các đoạn bus riêng lại Chiều dài tối đa của cáp phụ thuộc vào tốc độ truyền: tốc độ truyền càng cao thì chiều dài cáp càng giảm

9

10

RO RE

DE DI

B A

Y Z

U4 MAX489

120

R3 120 R4

120

U4

MAX489

2 3

4 5

11

12

9 10

RO RE

DE DI

B A

Y Z

R2 120 U1

9

10

RO RE DE DI

B A

Y Z

R1 120

DATA IN

DATA OUT

Trang 15

Bộ Repeater hay gọi là bộ tiếp sức , có chức năng làm khuếch đại tín hiệu dữ liệu trên cáp LAN, ta cần RS-485 repeater khi ta muốn gắn hơn 32 nút vào mạng hoặc chiều dài đoạn cho phép được vượt quá.Tối đa 9 repeater có thể được sử dụng giữa hai nút bất kỳ

Chú ý là việc tăng kích thước mạng bằng repeater có thể dẩn đến thời gian truyền dài hơn và có thể kể đến khi cài đặt cấu hình mạng

b) Topology của mạng RS-485

Tốc độ truyền, ta có thể chọn một trong các tốc độ truyền sau:

9,6Kbps,19,2Kbps, 45,45Kbps, 93,75Kbps, 187,5Kbps, 500Kbps, 1,5Mbps…

Các thành phần gắn vào bus được chia làm hai nhóm :

+ Các thành phần có tốc độ độ truyền từ 9.6Kbps đến tối đa 1.5Mbps

+ Các thành phần có tốc độ độ truyền từ 9.6Kbps đến tối đa 12Mbps

Gắn nút: các nut được gắn vào bus qua các bộ kết nối bus (bus connector) bus terminnal hay RS485 repeater

Kết thúc cáp:

Mỗi bus segment phải được kết thúc ở hai đầu bằng tổng trở đặc tính của nó Bộ kết thúc cáp này (bus terminator) được tích hợp trong RS485 repeater, bus terminal, ILM và các bus connector và có thể kích hoạt nếu cần

Trước khi kích hoạt bus terminal này thì phải cung cấp nguồn cho các thành phần mạng này Với các bus terminal và các bus connecter thì nguồn điện này được cung cấp bởi DTE được kết nối, trái lại RS485 repeater , ILM và terminal luôn có nguồn điện riêng cho mình

Kỹ thuật truyền RS-485 cho phép gắn tối đa là 32 thiết bị(các DTE và các repeater) trên bus segment Chiều dài cáp tối đa được cho phép bởi segment phụ thuộc vào tốc độ truyền và cáp LAN được sử dụng

Mạng RS-485 em thiết kế trong đề tài này là mạng bán song công (Half- Duplex): dữ liệu chỉ đi từ Master đến các vi xử lý hay từ các vi xử lý đến Master Tại một thời điểm trên mạng chỉ có một phần tử truyền và cho phép các phần tử khác có thể nhận thông điệp đó Có điều quan trọng ta nên chú ý là với sơ đồ mạch RS-485 được thiết kế như trên thì chỉ có thể giao tiếp giữa Master (PC) và các vi xử lý nhưng giữa các vi xử lý không thể liên lạc trực tiếp với nhau Chúng giao tiếp với nhau nếu có thể đó thuộc một dạng giao tiếp khác

Cách thức hoạt động của mạng như sau:

Trang 16

2 Các phương thức truyền thông

Có 3 phương pháp truyền được dùng trong mục đích truyền thông tin: Đơn công, bán song công, và song công Ta sẽ lần lượt khảo sát các phương pháp truyền trên

a) Đơn công

Đường truyền đơn công có khả năng truyền dữ liệu chỉ theo một hướng Nguyên nhân không phải do tính chất của đường dây đơn giản chỉ vì một đầu cuối chỉ có một máy phát và đầu cuối kia cũng chỉ có một máy thu Cấu hình này ít được sử dụng trong các máy tính vì không có cách nào để máy thu phát tín hiệu nhận biết tới máy phát cho biết thông điệp đã nhận đúng Phát thanh và truyền hình là một trong những thí dụ về đơn công

b) Bán song công(Half-duplex Communication)

Đường truyền bán song công có thể phát và nhận dữ liệu theo cả hai hướng không đồng thời Trong suốt một cuộc truyền, một modem là máy phát và modem còn lại sẽ là máy thu Ví dụ như một thiết bị A là máy phát gởi dữ liệu đến thiết bị B là máy thu, sau đó A và B đổi vai trò cho nhau, B là máy phát gởi tín hiệu báo dữ liệu nhận được có lỗi hay không đến máy thu A Nếu không có lỗi thì A và B sẽ lại đổi vai trò cho nhau và A tiếp tục gởi dữ liệu đến máy thu B Nếu máy thu B báo dữ liệu có lỗi thì máy phát A sẽ gởi lại dữ liệu cũ cho đến khi B báo là dữ liệu không có lỗi

Nhược điểm của phương pháp này là thời gian cần để chuyển đường truyền bán song công từ hướng này sang hướng khác có thể dài gấp nhiều lần thời gian truyền một kí tự Sự chuyển động của xe trên đường ray là một thí dụ về phương pháp này

Vi xử

Trang 17

c) Song công ( Full-duplex Communication)

Ngược lại so với truyền bán song công, đường truyền song công có khả năng phát và nhận dữ liệu đồng thời theo cả hai hướng Một cách khái quát, đường truyền song công tương đương với 2 đường truyền đơn công, một đường cho mỗi hướng

Vì hai đường truyền có thể tiến hành song song, một đường cho mỗi hướng, nên truyền song công có thể phát nhiều thông tin hơn truyền bán song công với cùng tốc độ truyền dữ liệu Truyền song công không mất thời gian để thay đổi hướng truyền

3 Truyền thông tuần tự

Hầu hết các máy tính lưu trữ dữ liệu và thao tác dữ liệu theo cách song song Nghĩa là khi gởi một byte từ bộ nhận này tới bộ nhận khác của máy tính, nó không truyền từng bit một mà một lúc một byte trên những cáp sợi song song nhau Số các bit truyền đi cùng một lúc thay đổi tùy thuộc vào từng máy tính nhưng thông thường là

8 hoặc bội của 8

Tuy nhiên việc truyền dữ liệu từ máy tính này đến máy tính hay một thiết bị khác thì xảy ra theo kiểu tuần tự, nghĩa là dữ liệu được gởi đi từng bit một Một bộ giao tiếp tuần tự sẽ đảm nhận nhiệm vụ chuyển đổi dữ liệu từ song song sang nối tiếp trước khi chúng gởi đi hoặc đổi từ nối tiếp sang song song khi chúng nhận về

Có hai hình thức truyền thông tuần tự: truyền thông đồng bộ và không đồng bộ

- Truyền thông bất đồng bộ ( Asynchronous communication): Khoảng thời gian giữa hai kí tự truyền đi không cố định, mặc dù khoảng thời gian giữa hai bit liên tiếp trong một kí tự là không thay đổi nhưng khoảng thời gian giữa hai kí tự liên tiếp không phải là hằng số Sự biến thiên tốc độ này làm nảy sinh vấn đề là phải làm sao máy thu phân biệt được giữa bit 0 và không có dữ liệu

Để giải quyết vấn đề trên , người ta phát trực tiếp một bit start ngay trước một

kí tự và một hoặc hai stop bit ngay sau mỗi kí tự được truyền đi

Để kiểm tra lỗi đường truyền, người ta sử dụng bit chẵn lẻ( parity bit), tức kiểm tra tổng số bit trong 1 byte dữ liệu được truyền Phương thức này thường được sử dụng trong các máy tính PC vì tính đơn giản của nó Hạn chế của phương pháp này là tốc độ truyền thấp do phải truyền thêm một số bit start, bit stop và bit parity

- Truyền thông đồng bộ ( Synchronous Communications):

Phương thức truyền này không dùng các bit start, stop để đóng khung mỗi kí tự mà chèn các kí tự đặc biệt như SYN ( Synchronization), EOT (End Of Transmission) hoặc một cờ giữa các dữ liệu của người sử dụng để báo hiệu cho bên nhận biết rằng có dữ liệu đang đến hay đã đến

Truyền đồng bộ thường được tiến hành ở tốc độ dưới 4800bps, 9600bps hoặc thậm chí còn cao hơn Trong phương pháp này, một khi đã đồng bộ, các modem vẫn tiếp tục gởi các kí tự để duy trì đồng bộ, ngay cả lúc không phát dữ liệu Một kí tự

“idle” được gởi đi khi không có dữ liệu phát Trong phương pháp truyền đồng bộ

Trang 18

không giống như phương pháp truyền bất đồng bộ, khoảng thời gian giữa hai kí tự luôn bằng nhau

Truyền thông đồng bộ đòi hỏi các xung clock trong máy phát và thu phải duy trì đồng bộ những khoảng thời gian dài Thời gian truyền có thể tiếp tục lâu mà không có sự tái đồng bộ của máy thu với pha của máy phát tùy thuộc vào sự ổn định của xung clock

Trang 19

CHƯƠNG III GIỚI THIỆU AT89C51

I GIỚI THIỆU :

Bộ vi điều khiển viết tắt là Micro-controller, là mạch tích hợp trên một chip có thể lập trình được, dùng để điều khiển hoạt động của một hệ thống Theo các tập lệnh của người lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lý thông tin,

đo thời gian và tiến hành đóng mở một cơ cấu nào đó

Trong các thiết bị điện và điện tử dân dụng, các bộ vi điều khiển, điều khiển hoạt động của TV, máy giặt, đầu đọc laser, điện thọai, lò vi-ba … Trong hệ thống sản xuất tự động, bộ vi điều khiển được sử dụng trong Robot, dây chuyền tự động Các hệ thống càng “thông minh” thì vai trò của hệ vi điều khiển càng quan trọng

II LỊCH SỬ PHÁT TRIỂN CỦA CÁC BỘ VI ĐIỀU KHIỂN :

Bộ vi điều khiển thực ra là một loại vi xử lí trong tập hợp các bộ vi xử lý nói chung Bộ vi điều khiển được phát triển từ bộ vi xử lí, từ những năm 70 do sự phát triển và hoàn thiện về công nghệ vi điện tử dựa trên kỹ thuật MOS (Metal-Oxide-Semiconductor) , mức độ tích hợp của các linh kiện bán dẫn trong một chip ngày càng cao

Năm 1971 xuất hiện bộ vi xử lí 4 bit loại TMS1000 do công ty texas Instruments vừa là nơi phát minh vừa là nhà sản xuất Nhìn tổng thể thì bộ vi xử lí chỉ có chứa trên một chip những chức năng cần thiết để xử lí chương trình theo một trình tự, còn tất cả bộ phận phụ trợ khác cần thiết như : bộ nhớ dữ liệu , bộ nhớ chương trình , bộ chuển đổi AID, khối điều khiển, khối hiển thị, điều khiển máy in, hối đồng hồ và lịch là những linh kiện nằm ở bên ngoài được nối vào bộ vi xử lí

Mãi đến năm 1976 công ty INTEL (Interlligen-Elictronics) Mới cho ra đời bộ vi điều khiển đơn chip đầu tiên trên thế giới với tên gọi 8048 Bên cạnh bộ xử lí trung tâm 8048 còn chứa bộ nhớ dữ liệu, bộ nhớ chương trình, bộ đếm và phát thời gian các cổng vào và ra Digital trên một chip

Các công ty khác cũng lần lược cho ra đời các bộ vi điều khiển 8bit tương tự như

8048 và hình thành họ vi điều khiển MCS-48 (Microcontroller-sustem-48)

Đến năm 1980 công ty INTEL cho ra đời thế hệ thứ hai của bộ vi điều khiển đơn chip với tên gọi 8051 Và sau đó hàng loạt các vi điều khiển cùng loại với 8051

ra đời và hình thành họ vi điều khiển MCS-51

Đến nay họ vi điều khiển 8 bit MCS51 đã có đến 250 thành viên và hầu hết các công ty hàng dẫn hàng đầu thế giới chế tạo Đứng đầu là công ty INTEL và rất nhiều công ty khác như : AMD, SIEMENS, PHILIPS, DALLAS, OKI …

Ngoài ra còn có các công ty khác cũng có những họ vi điều khiển riêng như:

Trang 20

III KHẢO SÁT BỘ VI ĐIỀU KHIỂN 8051 :

IC vi điều khiển 8051 thuộc họ MCS51 có các đặt điểm sau :

1 CẤU TRÚC BÊN TRONG CỦA 8051 :

Hình 2.1 : Sơ Đồ Khối 8051

Trang 21

Phần chính của vi điều khiển 8051 là bộ xử lí trung tâm (CPU: central

processing unit ) bao gồm :

gian và logic

Đơn vị xử lí trung tâm nhận trực tiếp xung từ bộ giao động, ngoài ra còn có khả năng đưa một tín hiệu giữ nhịp từ bên ngoài

Chương trình đang chạy có thể cho dừng lại nhờ một khối điều khiển ngắt ở bên trong Các nguồn ngắt có thể là : các biến cố ở bên ngoài , sự tràn bộ đếm định thời hoặc cũng có thể là giao diện nối tiếp

Hai bộ định thời 16 bit hoạt động như một bộ đếm

Các cổng (port0, port1, port2, port3 ) Sử dụng vào mục đích điều khiển

Ơû cổng 3 có thêm các đường dẫn điều khiển dùng để trao đổi với một bộ nhớ bên ngoài, hoặc để đầu nối giao diện nối tiếp, cũng như các đường ngắt dẫn bên ngoài

Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ, làm việc độc lập với nhau Tốc độ truyền quacổng nối tiếp có thể đặt trong vảy rộng và được ấn định bằng một bộ định thời

2 CHỨC NĂNG CÁC CHÂN VI ĐIỀU KHIỂN :

Hình 2.2 : Sơ Đồ Chân 8051

Trang 22

+.port0 : là port có 2 chức năng ở trên chân từ 32 đến 39 trong các thiết kế cỡ nhỏ ( không dùng bộ nhớ mở rộng ) có hai chức năng như các đường IO Đối với các thiết kế cỡ lớn ( với bộ nhớ mở rộng ) nó được kết hợp kênh giữ a các bus )

+.port1 : port1 là một port I/O trên các chân 1-8 Các chân được ký hiệu P1.0, P1.1, P1.2 … có thể dùng cho các thiết bị ngoài nếu cần Port1 không có chức năng khác, vì vậy chúng ta chỉ được dùng trong giao tiếp với các thiết bị ngoài

+.port2 : port2 là một port công dụng kép trên các chân 21 – 28 được dùng như các đườ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

+.Port3 : port3 là một port công dụng kép trên các chân 10 – 17 Các chân của port này có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tín đặc biệt của 8051 như ở bảng sau :

Bảng 2.1 : Chức năng của các chân trên port3 +.PSEN (Program Store Enable ) : 8051 có 4 tín hiệu điều khiển

PSEN là tín hiệu ra trên chân 29 Nó là tín hiệu điều khiển để cho phép bộ nhớ chương trình mở rộng và thườ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 lấy 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 8051 để giải mã lệnh Khi thi hành chương trình trong ROM nội (8051) PSEN sẽ ở mức thụ động (mức cao)

+.ALE (Address Latch Enable ) :

tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc với các xử lí

8585, 8088, 8086, 8051 dùng ALE một cách tương tự cho làm việc giải các kênh các

Trang 23

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 sau chu kỳ của bộ nhớ

Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể được dùng là nguồn xung nhịp cho các hệ thống Nếu xung trên 8051 là 12MHz thì ALE có tần số 2MHz Chỉ ngoại trừ khi thi hành lệnh MOVX, một xung ALE sẽ bị mất Chân này cũng được làm ngõ vào cho xung lập trình cho EPROM trong 8051 +EA (External Access) :

Tín hiệu vào EA trên chân 31 thường được mắc lên mức cao (+5V) hoặc mức thấp (GND) Nếu ở mức cao, 8051 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp (4K) Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng Khi dùng 8031, EA luôn được nối mức thấp vì không có bộ nhớ chương trình trên chip Nếu EA được nối mức thấp bộ nhớ bên trong chương trình 8051 sẽ bị cấm và chương trình thi hành từ EPROM mở rộng Người ta còn dùng chân EA làm chân cấp điện áp 21V khi lập trình cho EPROM trong 8051

+SRT (Reset) :

Ngõ vào RST trên chân 9 là ngõ reset của 8051 Khi tín hiệu này được đưa lên múc cao (trong ít nhất 2 chu kỳ máy ), các thanh ghi trong 8051 được tải những giá trị thích hợp để khởi động hệ thống

+Các ngõ vào bộ dao động trên chip :

Như đã thấy trong các hình trên , 8051 có một bộ dao động trên chip Nó thường được nối với thạch anh giữa hai chân 18 và 19 Các tụ giữa cũng cần thiết như đã vẽ Tần số thạch anh thông thường là 12MHz

+.Các chân nguồn :

nối vào chân 20

3 Tổ chức bộ nhớ :

8051 có bộ nhớ theo cấu trúc Harvard : có những vùng cho bộ nhớ riêng biệt cho chương trình dữ liệu Như đã nói ở trên, cả chương trình và dữ liệu có thể ở bên trong

8051, dù vậy chúng có thể được mơ ûrộng bằèng các thành phần ngoài lên đến tối đa 64 Kbytes bộ nhớ chương trình và 64 Kbytes bộ nhớ dữ liệu

Bộ nhớ bên trong bao gồm ROM (8051) và RAM trên chip, RAM trên chip bao gồm nhiều phần : phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh ghi và các thanh ghi chức năng đặc biệt

Hai đặc tính cần lưu ý là :

Trang 24

- Các thanh ghi và các port xuất nhập đã được xếp trong bộ nhớ và có thể

được truy xuất trực tiếp như các địa chỉ bộ nhớ khác

vi xử lí khác

Chi tiết về bộ nhớ RAM trên chip :

Như ta đã thấy trên hình sau, RAM bên 8051 được phân chia giữa các bank

thanh ghi (00H – 1FH), RAM địa chỉ hóa từng bit (20H – 2FH), RAM đa dụng (30H – 7FH) và các thanh ghi chức năng đặc biệt (80H – FFH)

a RAM đa dụng

Địa chỉ byte Địa chỉ bit

30 2F 2E 2D 2C 2B 2A

18

17

10 0F

08

07

Bảng tóm tắt bản bản đồ vùng nhớ trên chip data 8051

Trang 25

FF F0 E0 D0 B8 B0 A8 A0

99

98

90

8D 8C 8B 8A

89

Not bit addressable

TH1 TH0

TL1 TL0 TMOD

Not bit addressable

Not bit addressable Not bit addressable Not bit addressable

PCON

DPH DPL

MOV A, 5FH

Lệnh này di chuyển một búyt dữ liệu dùng cách đánh địa chỉ trực tiếp để xác định “địa chỉ nguồn” (5FH) Đích nhận dữ liệu được ngầm xác định trong mã lệnh là thanh ghi tích lũy A

Trang 26

RAM bên trong cũng có thể được truy xuất dùng cách đánh địa chỉ gián tiếp qua

RO hay R1 Ví dụ, sau khi thi hành cùng nhiệm vụ như lệnh đơn ở trên :

MOV R0, #5FH

MOV A, @R0

Lệnh đầu dùng đị hỉ tức thời để di chuyển giá trị 5FH vào thanh ghi R0 và lệnh thứ hai dùng địa trực tiếp để di chuyển dữ liệu “được trỏ bởi R0” vào thanh ghi tích lũy

b RAM địa chỉ hóa từng bit :

Có 128 bit được địa chỉ hóa đa dụng ở các byte 20H đến 2FH Các địa chỉ này được truy xuất như các byte hoặc các bit phụ thuộc vào lệnh được dùng ví dụ, để đặt bit 67H, ta dùng lệnh sau :

SETB 67H

Chú ý rằng “địa chỉ bit 67H” là bit có trọng số lớn nhất (MSB) ở “địa chỉ byte 2CH” lệnh trên sẽ không tác động đến các bit khác của địa chỉ này

c Các bank thanh ghi :

32 byte thấp nhất của bộ nhớ nội là dành cho các bank thanh ghi Bộ lệnh của

8051 / 8031 hổ trợ 8 thanh ghi (RO đến R7) và theo mặc định (sau khi Reset hệ thống) các thanh ghi này ở các địa chỉ 00H-07H Lệnh sau đây sẽ đọc nội dung ở địa chỉ 05H vào thanh ghi tích lũy

Bank thanh ghi tích cực có thể chuyển đổi bằng cách thay đổi các bit chọn

bank thanh ghi trong từ trạng thái chương trình (PSW) Giả sử rằng bank thanh ghi 3 được tích cực, lệnh sau sẽ ghi nội dung của thanh ghi tích lũy vào địa chỉ 18H:

MOV R0,A

Yù tưởng dùng “các bank thanh ghi” cho phép “chuyển hướng” chương trình nhanh và hiệu qủa (từng phần riêng rẽ của phần mềm sẽ có một bộ thanh ghi riêng

Trang 27

4./ Các thanh ghi chức năng đặc biệt:

Các thanh ghi nội của 8051 được truy xuất ngầm định bởi bộ lệnh Ví dụ lệnh

“INC A” sẽ tăng nội dung của thanh ghi tích lũy A lên 1 Tác động này được ngầm định trong mã lệnh

Các thanh ghi trong 8051 được định dạng như một phần của RAM trên chip Vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi trực tiếp, sẽ không có lợi khi đặt chúng vào trong RAM trên chip) Đó là lý do để 8051/0831 có nhiều thanh ghi Cũng như R0 đến R7, có 21 thanh ghi chức năng đặc biệt (SFR: Special Funtion

Rgister) ở vùng trên của RAM nội, từ địa chỉ 80H đến FFH Chú ý rằng hầu hết 128 địa chỉ từ 80H đến FFH không được định nghĩa Chỉ có 21 địa chỉ SFR là được định nghĩa

Ngoại trừ tích lũy (A) có thể được truy xuất ngầm như đã nói, đa số các SFR được truy xuất dùng địa chỉ trực tiếp chú ý rằng một vài SFR có thể được địa chỉ hóa bit hoặc byte Người thiết kế phải thận trọng khi truy xuất bit và byte Ví dụ lệnh sau: SETB 0E0H

Sẽ Set bit 0 trong thanh ghi tích lũy, các bit khác không thay đổi Ta thấy rằng

nhất trong thanh ghi tích lũy Vì lệnh SETB chỉ tác động trên bit, nên chỉ có địa chỉ bit là có hiệu quả

Từ trạng thái chương trình (PSW: Program Status Word) ở địa chỉ D0H chứa các bit trạng thái như bảng tóm tắt sau:

D2H D1H D0H

Cờ nhớ Cờ nhớ phụ Cờ 0

Bit 1 chọn bank thanh ghi Bit chọn bank thanh ghi

00=bank 0; địa chỉ 00H-07H 01=bank 1: địa chỉ 08H-0FH 10=bank 2:địa chỉ 10H-17H 11=bank 3:địa chỉ 18H-1FH Cờ tràn

Dự trữ Cờ Parity chẵn

Bảng 21: Từ trạng thái chương trình

học: nó sẽ được set nếu có một số nhớ sinh ra bởi phép cộng hoặc có một số mượn phép trừ Ví dụ, nếu thanh ghi tích lũy chứa FFH, thì lệnh sau:

Trang 28

ADD A,#1

Sẽ trả về thanh ghi tích lũy kết qủa 00H và set cờ nhớ trong PSW

Cờ nhớ cũng có thể xem như một thanh ghi 1 bit cho các lệnh luận lý thi hành trên bit Ví dụ, lệnh sẽ AND bit 25H với cờ nhớ và đặt kết qủa trở vào cờ nhớ:

ANL C,25H

Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết qủa của 4 bit thấp trong khoảng 0AH đến 0FH Nếu các giá trị cộng được là số BCD, thì sau lệnh cộng cần có DA A( hiệu chỉnh thập phân thanh ghi tích lũy) để mang kết qủa lớn hơn 9 trở

Cờ 0 (F0)là một bit cờ đa dụng dành các ứng dụng của người dùng

Các bit chọn bank thanh ghi (RSO và RS1) xác định bank thanh ghi được tích cực Chúng được xóa sau khi reset hệ thống và được thay đổi bằng phần mềm nếu cần Ví dụ, ba lệnh sau cho phép bank thanh ghi 3 và di chuyển nội dung của thanh ghi R7 (địa chỉ byte IFH) đến thanh ghi tích lũy:

Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi tích lũy A cho các phép toán nhân và chia Lệnh MUL AB sẽ nhân các giá trị không dấu 8 bit trong A và B rồi trả về kết qủa 16 bit trong A (byte thấp) và B (byte cao) Lệnh DIV AB sẽ chia A cho

B rồi trả về kết qủa nguyên trong A và phần dư trong B Thanh ghi B cũng có thể

được xem như thanh ghi đệm đa dụng Nó được địa chỉ hóa ttừng bit bằng các địa chỉ bit FOH đến F7H

Con trỏ ngăn xếp (SP) là một thanh ghi 8 bit ở địa chỉ 81H Nó chứa địa chỉ của byte dữ liệu hiện hành trên đỉnh của ngăn xếp Các lệnh trên ngăn xếp bao gồm các thao tác cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp Lệnh cất dữ liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu, và lệnh lấy dữ liệu ra khỏi ngăn xếp sẽ dọc dữ liệu và làm giảm SP Ngăn xếp của 8051 được giữ trong RAM nội và

Trang 29

được giới hạn các địa chỉ có thể truy xuất bằng địa chỉ gián tiếp chúng là 128 byte đầu của 8051

Để khởi động lại SP với ngăn xếp bắt đầu tại 60H, các lệnh sau đây được dùng: MOV SP,#%FH

Trên 8051 ngăn xếp bị giới hạn 32 byte vì địa chỉ cao nhất của RAM trên chip là 7FH Sở dĩ cùng giá trị 5FH vì SP sẽ tăng lên 60H trước khi cất byte dữ lệu đầu tiên

Người thiết kế có thể chọn không phải khởi động lại con trỏ ngăn xếp mà để nó lấy giá trị mặc định khi reset hệ thống Giá trị măc định đó là 07H và kết qủa là ngăn đầu tiên để cất dữ liệu có địa chỉ 08H Nếu phần mềm ứng dụng không khởi động lại SP , bank thanh ghi 1 (có thể cả 2 và 3) sẽ không dùng được vì vùng RAM này đã được dùng làm ngăn xếp

Ngăn xếp được truy xuất trực tiếp bằng các lệnh PUSH và POP để lưu giữ tạm thời và lấy lại dữ liệu hoặc được truy xuất ngầm bằng các lệnh gọi chương trình con (ACALL, LACALL) và các lệnh trở về (RET,RETI) để cất và lấy lại bộ đếm chương trình

Con trỏ dữ liệu (DPTR) được dùng để truy xuất bộ nhớ ngoài là một thanh ghi

16 bit ở địa chỉ 82H(DPL: byte thấp) và 83H (DPH:byte cao) Ba lệnh sau sẽ ghi 55H vào RAM ngoài ở địa chỉ 1000H:

Các port của 8051 bao gồm Port 0 ở địa chỉ 80H, Port 1 ở địa chỉ 90 H, Port 2 ở địa chỉ A0H và Port 3 ở địa chỉ B0H Tất cả các Port đều được địa chỉ hóa từng bit Điều đó cung cấp một khả năng giao tiếp thuận lợi

8051 chứa 2 bộ định thời đếm 16 bit được dùng trong việc định thời hoặc đếm sự kiện Timer 0 ở địa chỉ 8AH (TL0:byte thấp) và 8CH (TH0:byte cao).Timer 1 ở địa chỉ 8BH (TL1:byte thấp) và 8DH (TH1: byte cao) việc vận hành timer được set bởi thanh ghi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghi điều khiển timer (TCON)

ở địa chỉ 88H Chỉ có TCON được địa chỉ hóa từng bit

8051 chức một port nối tiếp trên chip dành cho việc trao đổi thông tin với các thiết bị nối tiếp như máy tính, modem hoặc cho việc giao tiếp với các IC khác có giao tiếp nối tiếp (có bộ chuyển đổi A/D, các thanh ghi dịch ) Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H ssẽ giữ cả hai giữ liệu truyền và nhận Khi truyền dữ liệu thì ghi lên SBUf, khi nhận dữ liệu thì đọc SBUF Các mode vận hành

Trang 30

khác nhau được lập trình qua thanh ghi điều khiển port nối tiếp (SCON) (được địa chỉ hóa từng bit) ở địa chỉ 98H

8051 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên Các ngắt bị cấm sau khi reset hệ thống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ngắt (IE) ở địa chỉ 8AH Cả hai thanh ghi được địa chỉ hóa từng bit

Thanh ghi điều khiển công suất (PCON) ở địa chỉ 87H chứa nhiều bit điều

khiển Chúng được tóm tắt trong bảng sau:

PD IDL

Bit gấp đôi tốc độ baud, nếu được set thì tốc độ baud sẽ tăng gấp đôi trong các mode 1,2 và 3 của port nối tiếp

Không định nghĩa Không định nghĩa Không định nghĩa Bit cờ đa dụng 1 Bit cờ đa dụng 0 Giảm công suất, được set để kích hoạt mode giảm công suất, chỉ thoá khi reset

Mode chờ, set để kích hoạt mode chờ, chỉ thoát khi có ngắt hoặc reset hệ thống

Bảng 2.2 :Thanh ghi điều khiển công suất (PCON)

5/ Bộ nhớ ngoài

8051có khả năng mở rộng bộ nhớ đến 64K bộ nhớ chương trình và 64K bộ nhớ dữ liệu bên ngoài Do đó có thể dùng thêm ROM và RAM nếu cần

Khi dùng bộ nhớ ngoài, port 0 không còn là một port I/O thuần túy nữa Nó được hợp kênh giữa bus địa chỉ (A0-A7) và bus dữ liệu (D0-D7) với tín hiệu ALE để chốt byte thấp của địa chỉ khi bắt đầu mỗi chu kỳ bộ nhớ Port 2 thông thường được dùng cho byte cao của bus địa chỉ

Trong nửa đầu của mỗi chu kỳ bộ nhớ, byte thấp của địa chỉ được cấp trong port 0 và được chốt bằng xung ALE Một IC chốt 74HC373 (hoặc tương đương) sẽ giữ byte địa chỉ thấp trong phần còn lại của chu kỳ bộ nhớ Trong nửa sau của chu kỳ bộ nhớ port 0 được dùng như bus dữ liệu và được đọc hoặc ghi tùy theo lệnh

a/ Truy xuất bộ nhớ chương trình ngoài:

Bộ nhớ chương trình ngoài là mộ IC ROM được phép bởi tín hiệu PSEn Hình sau mô tả cách nối một EPROM vào 8051:

Trang 31

Hình 2.5 Giao tiếp giữa 8051và EPROM Một chu kỳ máy của 8051có 12 chu kỳ xung nhịp Nếu bộ dao động trên chip

sẽ có 2 xung ALE và 2 byte được đọc từ bộ nhớ chương trình (nếu lệnh hiện hành là một byte thì byte thứ hai sẽ được loại bỏ) Giản đồ thời gian của một lần lấy lệnh

được vẽ ở hình sau:

Hình 2.6: Giản đồ thời gian đọc bộ nhớ chương trình ngoài

b/ Truy xuất bộ nhớ dữ liệu ngoài:

Bộ nhớ dữ liệu ngoài là một bộ nhớ RAM được cho phép ghi/đọc bằng các tín hệu WR và RD (các chân P3.6 và P3.7 thay đổi chức năng) chỉ có một cách truy xuất bộ nhớ dữ liệu ngoài là với lệnh MOVX dùng con trỏ dữ liệu (DPTR) 16 bit hoặc R0 và R1 xem như thanh ghi địa chỉ

Port 0

EA

8051 ALE Port 2 PSEN

D0-D7 A0-A7 EPROM A8-A15

OE

D Q 74HC373

Trang 32

Kết nối bus địa chỉ và bus dữ liệu giữa RAM và 8051 cũng giống EPROM và do đó cũng có thể lên đến 64 byte bộ nhớ RAM Ngoài ra, chân RD của 8051 được nối tới chân cho phép xuất (OE) của RAM và chân WR được nối tới chân ghi (WR) của RAM

Giản đồ thời gian cho lệnh đọc bộ nhớ dữ liệu ngoài được vẽ trên hình sau đối với lệnh MOVX A, @DPTR:

Hình 2.8: Giản đồ thời gian của lệnh MOVX Giản đồ thời gian cho lệnh ghi (MOVX @DPTR, A) cũng tương tự chỉ khác

đường WR sẽ thay vào đường RD và dữ liệu được xuất ra trên port 0 (RD vẫn giữ mức cao)

6/ Lệnh reset

8051 được reset bằng cách giữ chân RST ở mức cao ít nhất trong 2 chu kỳ máy và trả nó về múc thấp RST có thể được kích khi cấp điện dùng một mạch R-C

Hình 2.9: Mạch reset hệ thống

Trạng thái của tất cả các thanh ghi của 8051 sau khi reset hệ thống được tóm tắt trong bảng sau:

Trang 33

Thanh ghi Nội dung Đếm chương trình

Tích lũy

B PSW

SP DPTR Port 0-3

IP

IE Các thanh ghi định thời

SCON SBUF PCON(HMOS) PCON(CMOS)

0000H 00H 00H 00H 07H 0000H FFH XXX00000B 0XX00000B 00H 00H 00H 0XXXXXXB 0XXX0000B Bảng 2.3: Trạng thái các thanh ghi sau khi reset

Quan trọng nhất trong các thanh ghi trên là thanh ghi đếm chương trình, nó được đặt lại 0000H Khi RST trở lại mức thấp, việc thi hành chương trình luôn bắt đầu ở địa chỉ đầu tiên trong bộ nhớ trong chương trình: địa chỉ 0000H Nội dung của RAM trên chip không bị thay đổi bởi lệnh reset

7 Hoạt động của bộ định thời (timer)

7.1 Giới thiệu

Một định nghĩa đơn giản của timer là một chuỗi các flip-flop chia đôi tần số nối tiếp với nhau, chúng nhận tín hiệu vào làm nguồn xung nhịp Ngõ ra của tần số cuối làm nguồn xung nhịp cho flip-flop báo tràn của timer (flip-flop cờ) Giá trị nhị phân trong các flip-flop của timer có thể xem như số đếm số xung nhịp (hoặc các sự kiện) từ khi khởi động timer Ví dụ timer 16 bit sẽ đếm lên từ 0000H đến FFFFH Cờ báo tràn sẽ lên 1 khi số đếm tràn từ FFFFH đến 0000H

8051 có 2 timer 16 bit, mỗi timer có bốn cách làm việc Người ta sử dụng các timer để : a) định khoảng thời gian, b) đếm sự kiện hoặc c) tạo tốc độ baud cho port nối tiếp trong 8051

Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở một

khoảng đều đặn và đặt cờ tràn timer Cờ được dùng để đồng bộ hóa chương trình để thực hiện một tác động như kiểm tra trạng thái của các cửa ngõ vào hoặc gửi các sự kiện ra các ngõ ra Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của timer để đo thời gian trôi qua giữa hai sự kiện (ví dụ : đo độ rộng xung)

Đếm sự kiện dùng để xác định số lần xẩy ra của một sự kiện Một “sự kiện” là bất cứ tác động ngoài nào có thể cung cấp một chuyển trạng thái trên một chân của

Trang 34

8051 Các timer cũng có thể cung cấp xung nhịp tốc độ baud cho port nối tiếp trong

88H 89H 8AH 8BH 8CH 8DH

Có Không Không Không Không Không

Bảng 2.4: Thanh ghi chức năng đặc biệt dùng timer

7.2 Thanh ghi chế độ timer (TMOD)

Thanh ghi TMOD chứa hai nhóm 4 bit dùng để đặt chế độ làm việc cho timer 0 và

timer 1

ở mức cao

1=bộ đếm sự kiện 0=bộ định khoảng thời gian

00: chế độ 0 : timer 13 bit 01: chế độ 1 : timer 16 bit 10: chế độ 2 : tự động nạp lại 8255A bit 11: chế độ 3 : tách timer

Bảng 2.5: Tóm tắt thanh ghi TMOD 7.3 Thanh ghi điều khiển timer (TCON)

Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho timer 0 và timer 1

Trang 35

TCON.7 TF1 8FH Cờ báo tràn timer 1 Đặt bởi phần

bằng phần mềm cho timer chạy/ngưng

phần cứng khi phát hiện một cạnh xuống ở INT1, xóa bằng phần mềm hoặc phần cứng khi CPU chỉ đến chương trình phục vụ ngắt

Đặt/xóa bằng phần mềm đề ngắt ngoài tích cực cạnh xuống/mức thấp

Bảng 2.6: Tóm tắt thanh ghi TCON

7 4 Các chế độ timer

Để tương thích với 8048 (có trứớc 8051)

Ba bit cao của TLX (TL0 và/hoăc TL1) không dùng

Trang 36

b) Chế độ 1- chế độ timer 16 bit

Hoạt động như timer 16 bit đầy đủ

Cờ báo tràn là bit TFx trong TCON có thể đọc hoặc ghi bằng phầm mềm

MSB của giá trị trong các thanh ghi timer là bit 7 của THx và LBS là bit 0 của TLx Các thanh ghi timer (Tlx/THx) có thể được đọc hoặc ghi bất cứ lúc nào bằng phầm mềm

Xung nhịp

timer

Cờ báo tràn

TLx hoạt động như một timer 8 bit, trong khi đó THx vẫn giữ nguyên giá trị được nạp Khi số đếm tràn tứ FFH đến 00H, không những cờ timer được set mà giá trị trong THx đồng thời được nạp vào TLx Việc đếm tiếp tục từ giá trị này lên đến FFH xuống 00H và nạp lại chế độ này rất thông dụng vì sự tràn timer xảy ra trong những khoảng thời gian nhất định và tuần hoàn một khi đã khởi động TMOD và THx

Xung nhịp

timer

Timer 0 tách thành hai timer 8 bit (TL0 và TH0), TL0 có cờ báo tràn là TF0 và TH0 có cờ báo tràn là TF1

Timer 1 ngưng ở chế độ 3, nhưng có thể được khởi động bằng cách chuyển sang chế độ khác Giới hạn duy nhất là cờ báo tràn TF1 không còn bị tác động khi

timer 1 bị tràn vì nó đã được nối tới TH0

Khi timer 0 ở chế độ 3, có thể cho timer 1 chạy và ngưng bằng cách chuyển nó ra

ngoài và vào chế độ 3 Nó vẫn có thể được sử dụng bởi port nối tiếp như bộ tạo tốc độ

Trang 37

baund hoặc nó có thể được sử dụng bằng bất cứ cách nào không cần ngắt (vì nó

không còn được nối với TF1)

Cờ báo tràn

Có hai nguồn tạo xung nhịp có thể có, đượ chọn bằng cách ghi vào bit C/T

(counter/timer) trong TMOD khi khởi động timer Một nguồn tạo xung nhịp dùng cho định khoảng thời gian, cái khác cho đếm sự kiện

Nguồn xung tạo nhịp

Nếu C/T =0 hoạ t động timer liên tục được chọn và timer được dùng cho việc định khoảng thời gian Lúc đó, timer lấy xung nhịp từ bộ dao động trên chip Bộ chia 12 được thêm vào để giảm tần số xung nhịp đến giá trị thích hợp cho phần lớn các ứng dụng Như vậy thạch anh 12 MHz sẽ cho tốc độ xung nhịp timer 1 MHz Bóa tràn

TL1 TH1

Trang 38

timer xảy ra sau một số (cố địng) xung nhịp, phụ thuộc vào giá trị ban đầu được nạp vào các thanh ghi timer TLx/THx

dụng nguồn bên ngoài này cung cấp cho timer một xung kh xảy ra một “sự kiện “, timer dùng đếm sự kiện được xác định bằng phần mềm bằng cách đọc các thanh ghi TLx/THx vì giá trị 16 bit trong các thanh ghi này tăng thêm 1 cho mỗi sự kiện Nguồn xung nhịp ngoài có từ thay đổi chú7c năng của các chân port 3 Bit 4 của port 3 (P3.4) dùng làm ngõ vào tạo xung nhịp bên trong timer 0 và được gọi là “T0” Và p3.5 hay “T1” là ngõ vào tạo xung nhịp cho timer 1

Phương pháp mới đơn giản nhất để bắt đầu (cho chạy) và dừng các timer là dùng các bit điều khiển chạy :TRx trong TCON, TRx bị xóa sau khi reset hệ thống Như vậy, các timer theo mặc nhiên là bị cấm (bị dừng) TRx được đặt lên 1 bằng phần mềm để cho các timer chạy

Vì TRx ở trong thanh ghi TCON có địa chỉ bit, nên dễ dàng cho việc điều khiển các timer trong chương trình Ví dụ : cho timer 0 chạy bằng lệnh : SETB TR0 và dừng bằng lệnh SETB TR0

Trình biên dịch sẽ thực hiện việc chuyển đổi ký hiệu cần thiết từ “TR0” sang địa chỉ bit đúng SETB TR0 chính xác giống như SETB 8CH

Thông thường các thanh ghi được khởi động một lần ở đầu chương trình để đặt chế độ làm việc cho đúng Sau đó trong thân chương trình các timer được cho chạy, dừng , các bit cờ được kiểm tra và xóa, các thanh ghi timer được đọc và cạp nhật theo đòi hỏi của các ứng dụng

TMOD là thanh ghi thứ nhất được khởi động vì nó đặt chế độ hoạt động Ví dụ các lệnh sau khi khởi động timer 1 như timer 16 bit (chế độ 1) có xung nhịp từ bộ dao động trên chíp cho việc địng khoảng thời gian

MOV TMOD,#00010000B

Lệnh nàyy sẽ đặt M1=0 vả M0=1 cho chế độ 1, C/T=0 và GATE=0 cho xung nhịp nội và xóa các bit chế độ timer 0 Dĩ nhiên timer thật sự không bắt đầu định thời cho đến khi bit điều khiển chạyy TR1 được đặt lên 1

Nếu cần số đếm ban đầu, các thanh ghi timer TL1/TH1 cũng phải được khởi động Nhớ lại là các timer đếm lên và đặt cờ báo tràn khi có sự truyển tiếp

FFFFH sang 0000H

- Đọc timer đang chạy

Trong một số ứng dụng cần đọc giá trị trong các thanh ghi timer đang chạy Vì phải đọc 2 thanh ghi timer “sai pha” có thể xẩy ra nếu byte thấp tràn vào byte cao giữa hai lần đọc Giá trị có thể đọc được không đúng Giải pháp là đọc byte cao

Trang 39

trước, kế đó đọc byte thấp rồi đọc byte cao lại một lần nữa Nếu byte cao đã thay đổi thì lập lại các hoạt động đọc

7.8 Các khoảng ngắn và các khoảng dài

Dãy các khoảng thời gian có thể định thời là bao nhiêu ? vấn đề này được khảo sát với 8051 hoạt động với tần số 12MHz như vậy xung nhịp của các timer có tần số lá 1 MHz

Khoảng thời gian ngắn nhất có thể có bị giới hạn không chỉ bởi tần số xung nhịp của timer mà còn bởi phần mềm Do ảnh hưởng của thời khoảng thực hiện một lệnh Lệng

tạo những khoảng thời gian có chiều dài khác nhau (với giả sử xung nhịp cho 8051 có tần số 12 MHz)

Các kỹ thuật để lập trình các khoảng thời gian (FOSC=12 MHz)

8 Hoạt động port nối tiếp

8.1 Giới thiệu

8051 có một port nối tiếp trong chip có thể hoạt động ở nhiều chế độ khác trên một dãy tần số rộng 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 và chuyển đồi nối tiếp sang song song với dữ liệu nhập

Truy xuất phần cứng đến port nối tiếp qua các chân TXD và RXD Các chân này có các chức năng khác với hai bit của port 3 P3 ở chân 11 (TXD) và P3.0 ở chân

10 (RXD)

Port nối tiếp cho 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ứ hai được nhận Nếu CPU đọc ký tự thứ nhất trước khi ký tự thứ hai được thu đầy đủ thì dữ liệu sẽ không bị mất

Hai 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 là : SBUF và SCON Bộ đếm port nối tiếp (SBUF) ở đại chỉ 99H thật sử là hai bộ đếm Viết vào SBUF để truy xuất dữ liệu thu được Đây là hai thanh ghi riêng biệt thanh ghi chỉ ghi để phát và thanh ghi để thu

Trang 40

TXD (P3.1) RXD (P3.0)

CLK

CLK Xung nhịp tốc Độ baud (thu) Xung nhịp tốc

Độ baud (thu)

Hình 2.9: Sơ đồ port nối tiếp

Thanh ghi điều khiển port nối tiếp (SCON) ở địa chỉ 98H là thanh ghi có địa chỉ bit

chứa các bit trạng thái và các bit điều khiển Các bit điều khiển đặt chế độ hoạt

động cho port nối tiếp, và các bit trạng thái báo cáo kết thúc việc phát hoặc thu ký

tự Các bit trạng thái có thể được kiểm tra bằng phần mềm hoặc có thể được lập

trình để tạo ngắt

Tần số làm việc của port nối tiếp còn gọi là tốc độ baund có thể cố định (lấy từ bộ

giao động của chip) Nếu sử dụng tốc độ baud thay đổi, timer 1 sẽ cung cấp xung

nhịp tốc độ baud và phải được lập trình

8.2 Thanh ghi điều khiển port nối tiếp

Chế độ hoạt động của port nối tiếp được đặt bằng cách ghi vào thanh ghi chế độ

port nối tiếp (SCON) ở địa chỉ 98H Sau đây các bảng tóm tắt thanh ghi SCON và

các chế độ của port nối tiếp :

cho phép truền thông đã xử lý trong các chế độ 2 và 3 ;RI sẽ

SBUF

BUS nội 8051

SBUF

Ngày đăng: 30/10/2022, 14:39

TỪ KHÓA LIÊN QUAN