Thông báo

Tất cả đồ án đều đã qua kiểm duyệt kỹ của chính Thầy/ Cô chuyên ngành kỹ thuật để xứng đáng là một trong những website đồ án thuộc khối ngành kỹ thuật uy tín & chất lượng.

Đảm bảo hoàn tiền 100% và huỷ đồ án khỏi hệ thống với những đồ án kém chất lượng.

LUẬN VĂN TỐT NGHIỆP ĐIỆN TỬ Mạch vi ĐIỀU KHIỂN ĐẾM SẢN PHẨM

mã tài liệu 301000100050
nguồn huongdandoan.com
đánh giá 5.0
mô tả 100 MB Bao gồm tất cả file step,.... thuyết minh, quy trình sản xuất, bản vẽ nguyên lý, bản vẽ thiết kế, FILE lập trình, và nhiều tài liệu liên quan kèm theo đồ án này
giá 989,000 VNĐ
download đồ án

NỘI DUNG ĐỒ ÁN

LUẬN VĂN TỐT NGHIỆP ĐIỆN TỬ Mạch vi ĐIỀU KHIỂN ĐẾM SẢN PHẨM, thuyết minh Mạch vi ĐIỀU KHIỂN ĐẾM SẢN PHẨM, NGUYÊN LÝ Mạch vi ĐIỀU KHIỂN ĐẾM SẢN PHẨM

PHẦN I         LÝ THUYẾT

      CHƯƠNG I   DẪN NHẬP

          I. ĐẶT VẤN ĐỀ:

Ngày nay cùng với sự phát triển của các ngành khoa học kỹ thuật, kỹ thuật điện tử màtrong đó là kỹ thuật số đóng vai trò quan trọng trong mọi lĩnh vực khoa học kỹ thuật, quản lí, công nghiệp tự động hóa, cung cấp thông tin…. do đó chúng ta phải nắm bắt và vận dụng nó một cách có hiệu quả nhằm góp phần vào sự phát triển nền khoa học kỹ thuật thế giới nói chung và trong sự phát triển kỹ thuật điện tử nói riêng.

Xuất phát từ những đợt đi thực tập tốt nghiệp tại nhà máy và tham quan các doanh nghiệp sản xuất, chúng em đã được thấy nhiều khâu được tự động hóa trong quá trình sản xuất. Một trong những khâu đơn giản trong dây chuyền sản xuất tự động hóa đó là số lượng sản phẩm làm ra được đếm một cách tự động.

Tuy nhiên đối với những doanh nghiệp vừa và nhỏ thì việc tự động hóa hoàn toàn chưa được áp dụng trong những khâu đếm sản phẩm, đóng bao bì mà vẫn còn sử dụng nhân công.

Từ những điều đã được thấy đó và khả năng của chúng em, chúng em muốn làm một điều gì nhỏ để góp phần vào giúp người lao động bớt phần mệt nhọc chân tay mà cho phép tăng hiệu suất lao động lên gấp nhiều lần, đồng thời đảm bảo được độ chính xác cao. Nên chúng em quyết định thiết kế một mạch đếm sản phẩm vì nó rất gần gũi với thực tế và nó thật sự rất có ý nghĩa đối với chúng em vì đã làm được một phần nhỏ đóng góp cho xã hội.

Để làm được mạch này cần thiết kế được hai phần chính là: bộ phận cảm biến và bộ phận đếm.

* Bộ phận cảm biến: gồm phần phát và phần thu. Thông thường người ta sử dụng phần phát là led hồng ngoại để phát ra ánh sáng hồng ngoại mục đích để chống nhiễu so với các loại ánh sáng khác, còn phần thu là transistor quang để thu ánh sáng hồng ngoại.

* Bộ phận đếm có nhiều phương pháp thực thi đó la:

-Lắp mạch dùng kỹ thuật số với các IC đếm, chốt, so sánh ghép lại

-Lắp mạch dùng kỹ thuật vi xử lí

-Lắp mạch dùng kỹ thuật vi điều khiển

II. CHỌN PHƯƠNG ÁN THIẾT KẾ:

1. Với mạch đếm sản phẩm dùng IC rời có:

     Các ưu điểm sau:

-Cho phép tăng hiệu suất lao động

-Đảm bảo độ chính xác cao

-Tần số đáp ứng của mạch nhanh, cho phép đếm với tần số cao

-Khoảng cách đặt phần phát và phần thu xa nhau cho phép đếm những sản phẩm lớn.

-Tổn hao công suất bé, mạch có thể sử dụng pin hoặc accu

-Khả năng đếm rộng

-Giá thành hạ

-Mạch đơn giản dễ thực hiện

          Với việc sử dụng kỹ thuật số khó có thể đáp ứng được việc thay đổi số đếm. Muốn thay đổi một yêu cầu nào đó của mạch thì buộc lòng phải thay đổi phần cứng.Do đó mỗi lần phải lắp lại mạch dẫn đến tốn kém về kinh tế mà nhiều khi yêu cầu đó không thực hiện được bằng phương pháp này.

 Với sự phát triển mạnh của nghành kỹ thuật số đặc biệt là cho ra đời các họ vi xử lí và vi điều khiển rất đa chức năng do đó việc dùng kỹ thuật vi xử lí, kỹ thuật vi điều khiển đã giải quyết những bế tắc và kinh tế hơn mà phương pháp dùng IC rời kết nối lại không thực hiện được.

2. Với mạch đếm sản phẩm dùng kỹ thuật vi xử lí:

 Ngoài những ưu điểm như đã liệt kê trong phương pháp dùng IC rời thì mạch đếm sản phẩm dùng kỹ thuật vi xử lí còn có những ưu điểm sau:

-Mạch có thể thay đổi số đếm một cách linh hoạt bằng việc thay đổi phần mềm, trong khi đó phần cứng không cần thay đổi mà mạch dùng IC rời không thể thực hiện được mà nếu có thể thực hiện được thì cũng cứng nhắc mà người công nhân cũng khó tiếp cận, dễ nhầm.

- Số linh kiện sử dụng trong mạch ít hơn.

-Mạch đơn giản hơn so với  mạch đếm sản phẩm dùng IC rời và có phần cài đặt số đếm ban đầu

-Mạch có thể lưu lại số liệu của các ca sản xuất

-Mạch có thể điều khiển đếm được nhiều dây chuyền sản xuất cùng lúc bằng phần mềm

-Mạch cũng có thể kết nối giao tiếp được với máy tính thích hợp cho những người quản lí tại phòng kỹ thuật nắm bắt được tình hình sản xuất qua màn hình của máy vi tính.

Nhưng trong thiết kế người ta thường chọn phương pháp tối ưu nhưng kinh tế do đó chúng em chọn phương pháp đếm sản phẩm dùng kỹ thuật vi điều khiển

3. Phương pháp đếm sản phẩm dùng vi điều khiển:

Ngoài những ưu điểm có được của hai phương pháp trên, phương pháp này còn có những ưu điểm :

-Trong mạch có thể sử dụng ngay bộ nhớ trong đối với những chương trình có quy mô nhỏ, rất tiện lợi mà vi xử lí không thực hiện được.

-Nó có thể giao tiếp nối tiếp trực tiếp với máy tính mà vi xử lí cũng giao tiếp được với máy tính  nhưng là giao tiếp song song nên cần có linh kiện chuyển đổi dữ liệu từ song song sang nối tiếp để giao tiếp với máy tính.

III. MỤC ĐÍCH YÊU CẦU CỦA ĐỀ TÀI:

Trong đồ án này chúng em thực hiện mạch đếm sản phẩm bằng phương pháp đếm xung. Như vậy  mỗi sản phẩm đi qua trên băng chuyền phải có một thiết bị để cảm nhận sản phẩm, thiết bị này gọi là cảm biến. Khi một sản phẩm đi qua cảm biến sẽ nhận và tạo ra một xung điện đưa về khối xử lí để tăng dần số đếm. Tại một thời điểm tức thời, để xác định được số đếm cần phải có bộ phận hiển thị. Tuy nhiên mỗi khu vực sản xuất hay mỗi ca sản xuất lại yêu cầu với số đếm khác nhau vì thế phải có sự linh hoạt trong việc chuyển đổi số đếm. Bộ phận chuyển đổi trực quan nhất là bàn phím. Khi cần thay đổi số đếm người sử dụng chỉ cần nhập số đếm ban đầu vào và mạch sẽ tự động đếm. Khi số sản phẩm được đếm bằng với số đếm ban đầu thì mạch sẽ tự động dừng. Từ đây suy ra mục  đích yêu cầu của đề tài:

-Số đếm phải chính xác, và thay đổi việc cài đặt số đếm ban đầu một cách linh hoạt.

-Bộ phận hiển thị phải rõ ràng

-Mạch điện không quá phức tạp, bảo đảm được sự an toàn,dễ sử dụng.

-Giá thành  không quá mắc

          IV. GIỚI HẠN CỦA ĐỀ TÀI:

-Các sản phẩm rất đa dạng với nhiều chủng loại: đặc; rỗng, kích cỡ khác nhau. Nhưng với khả năng của thiết bị lắp thì mạch chỉ có thể đếm  đối với sản phẩm có khả năng che được ánh sáng và có kích thước từ 10cm3 đến 30cm3.

-Đếm số sản phẩm trong một thùng phạm vi thay đổi từ 2 ® 999. Còn số thùng sản phẩm phạm vi thay đổi từ 1®9999.

-Lưu số sản phẩm, số hộp sau mỗi ca sản xuất và cho phép xem số sản phẩm và số hộp trong các ca sản xuất.

Từ mục đích yêu cầu của đề tài chúng em đưa ra sơ đồ khối tổng quát của mạch điện như sau:

          V. XÂY DỰNG SƠ ĐỒ KHỐI TỔNG QUÁt

CHƯƠNG II LÝ THUYẾT THIẾT KẾ

I. CÁC KHỐI TRONG MẠCH ĐIỆN:

  1. Cảm biến:

          a. Giới thiệu sơ lược về mạch cảm biến:

          Để cảm nhận mỗi lần sản phẩm đi qua thì cảm biến phải có phần phát và phần thu. Phần phát phát ra ánh sáng hồng ngoại và phần thu hấp thụ ánh sáng hồng ngoại vì ánh sáng hồng ngoại có đặc điểm là ít bị nhiễu so với các loại ánh sáng khác. Hai bộ phận phát và thu hoạt động với cùng tần số. Khi có sản phẩm đi qua giữa phần phát và phần thu, ánh sáng hồng ngoại bị che bộ phận thu sẽ hoạt động với tần số khác tần số phát như thế tạo ra một xung tác động tới bộ phận xử lí. Vậy bộ phận phát và bộ phận thu phải có nguồn tạo dao động. Bộ phận dao động tác động tới công tắc đóng ngắt của nguồn phát và nguồn thu ánh sáng. Có nhiều linh kiện phát và thu ánh sáng hồng ngoại nhưng chúng em chọn led hồng ngoại và transitor quang là linh kiện phát và thu vì transistor quang là linh kiện rất nhạy với ánh sáng hồng ngoại. Bộ phận tạo dao động có thể dùng mạch LC, cổng logic, hoặc IC dao động. Với việc sử dụng IC chuyên dùng tạo dao động, bộ tạo dao động sẽ trở nên đơn giản hơn với tần số phát và thu

Vì tín hiệu ở ngõ ra trasitor quang rất nhỏ nên cần có mạch khuyếch đại trước khi đưa đến bộ tạo dao động. Chúng em chọn IC khuếch đại để khuếch đại tín hiệu lên đủ lớn. Vậy sơ đồ khối của phần phát và phần thu là:       

b. Các linh kiện trong mạch cảm biến:

          b1. Cấu tạo, nguyên lí hoạt động của led hồng ngoại:        

_Led được cấu tạo từ GaAs với vùng cấm có độ rộng là 1.43eV tương ứng bức xạ 900nm. Ngoài ra khi pha tạp Si với nguyên vật liệu GaAlAs, độ rộng vùng cấm có thể thay đổi. Với cách này, người ta có thể tạo ra dải sóng giữa 800 - 900nm và do đó tạo ra sự điều hưởng sao cho led hồng ngoại phát ra bước sóng thích hợp nhất cho điểm cực đại của độ nhạy các bộ thu.

­_Hoạt động: khi mối nối p - n được phân cực thuận thì dòng điện qua nối lớn vì sự dẫn điện là do hạt tải đa số, còn khi mối nối được phân cực nghịch thì chỉ có dòng rỉ do sự di chuyển của các hạt tải thiểu số. Nhưng khi chiếu sáng vào mối nối, dòng điện nghịch tăng lên gần như tỷ lệ với quang thông trong lúc dòng thuận không tăng. Đặc tuyến volt – ampere của led

b2. Photon transistor.

Photon Transistor cũng tương tự như transistor thông thường nhưng chỉ khác ở chỗ nó không có cực bazơ, thay cho tác dụng khống chế của dòng vào cực bazơ là sự khống chế của chùm sáng đối với dòng colector của transitor hoặc có cực bazơ, nhưng khống chế tín hiệu là ánh sáng.

Cấu tạo của transistor quang

_ Ký hiệu

_Hình thức bên ngoài của nó khác với transistor thông thường ở chỗ trên vỏ của có cửa sổ trong suốt cho ánh sáng chiếu vào. Ánh sáng qua cửa sổ này chiếu lên miền bazơ của transistor. Chuyển tiếp PN emitor được chế tạo như các transistor thông thường, nhưng chuyển tiếp PN colector, thì do miền bazơ cần được chiếu sáng, cho nên nó có nhiều hình dạng khác nhau, cũng có dạng hình tròn nằm giữa tâm miền bazơ. Khi sử dụng transistor quang mắc mạch tương tự như transistor mắc chung emitor (CE). Chuyển tiếp emitor được phân cực thuận còn chuyển tiếp colector được phân cực nghịch. Có nghĩa là transistor quang được phân cực ở chế độ khuyếch đại.

 Dòng điện trong transistor:

 Vì nối thu được phân cực nghịch nên có dòng rỉ Ico chạy giữa thu – nền và vì nối nền - phát được phân cực thuận nên dòng thu là (b + 1)Ico đây là dòng tối của quang transistor. Khi chiếu ánh sáng vào miền bazơ, trong miền bazơ có sự phát xạ cặp điện tử lỗ trống làm xuất hiện dòng IL. Do ánh sáng khiến dòng thu trở thành:

Ic =  (b + 1) .(Ico + IL)

Đặc tuyến của transistor quang                            

Trong đó H là mật độ chiếu sáng (mW/cm­­2

Đặc tuyến của transistor quang cũng giống như đặc tuyến Volt- ampere của transistor thông thường mắc EC. Điều khác nhau ở đây là các tham số không phải là dòng Ib mà là lượng chiếu sáng

Đặc tuyến Volt ampere của transistor quang ứng với khoảng Uce nhỏ cũng có thể gọi là miền bão hòa vì khi ấy do sự tích tụ điện tích có thể coi như chuyển tiếp colector được phân cực thuận. Cũng tương tự như trong trường hợp transistor thông thuờng, độ dốc đặc tuyến trong miền khuyếch đại.

          b3. IC dao động 555

Sơ đồ chân:Sơ  đồ khối bên trong IC 555

Chức năng của các chân

Đây là vi mạch định thời chuyên dùng, có thể mắc thành dạng mạch đơn ổn hay bất ổn.

Điện áp cung cấp từ 3V đến 18V.

Dòng điện ra đến 200mA (loại vi mạch BJT) hay 100mA (loại CMOS).

Chân 1: Nối với masse.

Chân 2: Nhận tín hiệu kích thích (trigger).

Chân 3: Tín hiệu ra (output).

Chân 4: Phục nguyên về trạng thái ban đầu (preset).

Chân 5: Nhận điện áp điều khiển (control voltag).

Chân 6: Mức ngưỡng ( threshold ).

Chân 7: Tạo đường phóng điện cho tụ.

Chân 8: Cấp nguồn Vcc.

* IC khuyếch đại LM 324 ( QUAD OPERATIONAL AMPLIFIER).

LM 324 IC có 4 tầng khuếch đại thuật toán, IC làm việc với loại nguồn đơn.

Độ lợi trên 100dB, tuy nhiên băng thông hẹp hơn LM 3900.

Chú ý: không để ngã ra chạm vào nguồn V+ hay chạm thẳng vào masse, điều này sẽ làm hư IC.

  • IC 567 (TONE DECODER):

IC 567 Bộ giải mã âm sắc.

IC chứa một vòng khóa pha. Khi tần số phù hợp với tần số trung tâm thì chân 8 có mức áp thấp. Do đó tín hiệu từ transistor qua tầng khuyếch đại đưa đến ngõ vào của IC 567. Tần số hiện nay được xác lập theo mạch định thời R và C hay 1,1/(RC). R lấy khoảng 2K đến 20K. 567 có thể tách dò tần số ngã vào từ 0,01Hz đến 500KHz.

Ghi chú: các ngã vào trong mạch lọc thấp qua tính theo mF sẽ được xác định bởi n/F0. Trong đó n trong khoảng 1300 đến 62000. Tụ ngã ra lấy trị số gấp đôi tụ trong mạch lọc thấp qua ở ngã vào.

          2. Khối xử lí:

          Với khối xử lí người ta có thể dùng IC rời hoặc khối vi xử lí. Nếu sử dụng vi xử lí trong khối xử lý, người ta có thể thiết kế mạch điện giao tiếp được với máy tính nên dễ dàng cho việc điều khiển từ xa và bằng việc thay đổi phần mềm có thể mở rộng chương trình điều khiển mạch điện đếm nhiều dây chuyền trong cùng một thời điểm hay lưu lại các số liệu trong các ca sản xuất, đó là lí do chúng em sử dụng vi xử lí trong khối xử lí. Cùng với thời gian, con người đã cho ra đời nhiều loại vi xử lí từ 8 bit đến 64 bit với cải tiến ngày càng ưu việt nhưng tùy theo mục đích sử dụng mà vi xử lí 8 bit vẫn còn tồn tại. Trong đồ án này chúng em sử dụng vi điều khiển 8051. 8051 cũng là vi xử lí 8 bit nhưng có chứa bộ nhớ bên trong và có thêm 2 bộ định thời ngoài ra nó có thể giao tiếp nối tiếp trực tiếp với máy tính mà vi xử lí 8 bit như 8085 cũng giao tiếp được với máy tính  nhưng là giao tiếp song song nên cần có IC chuyển đổi dữ liệu từ song song sang nối tiếp để giao tiếp với máy tính. Với bộ nhớ trong 8051 thích hợp cho những chương trình có quy mô nhỏ,tuy nhiên 8051 có thể kết hợp được với bộ nhớ ngoài cho chương trình có quy mô lớn. Sau đây là giới thiệu của chúng em về vi điều khiển 8051:

          a. Giới thiệu cấu trúc phần cứng 8051

          a1. Sơ đồ chân 8051

8051 là IC vi điều khiển (Microcontroller) do hãng Intel sản xuất. IC này có đặc điểm như sau:

  • 4k byte ROM,128 byte RAM
  • 4 Port I/O 8 bit.
  • 2 bộ đếm/ định thời 16 bit.
  • Giao tiếp nối tiếp.
  • 64k byte không gian bộ nhớ chương trình mở rộng.
  • 64k byte không gian bộ nhớ dữ liệu mở rộng.
  • Một bộ xử lý luận lý (thao tác trên các bít đơn).
  • 210 bit được địa chỉ hóa.
  • Bộ nhân / chia 4.

          Sơ lược về các chân của 8051

          a2. Chức năng của các chân 8051:

           Port 0: từ chân 32 đến chân 39 (P0.0 _P0.7). Port 0 có 2 chức năng: trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO, đối với thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ liệu.

          Port 1: từ chân 1 đến chân 9 (P1.0 _ P1.7). Port 1 là port IO dùng cho giao tiếp với thiết bị ngoài nếu cần.

          Port 2:  từ chân 21 đến chân 28 (P2.0 _P2.7). Port 2 là một port có tác dụng kép 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 bị dùng bộ nhớ mở rộng.

          Port 3: từ chân 10 đến chân 17 (P3.0 _ P3.7). Port 3 là port có tác dụng kép. Các chân của port này có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến các đặc tính đặc biệt của 8051 như ở bảng sau  :

   Bit

Tên

Chức n

ăng chuyển đổi

P3.0

P3.1

P3.2

P3.3

P3.4

P3.5

P3.6

P3.7

RXD

TXD

INT0\

INT1\

T0

T1

WR\

RD\

Ngõ vào dữ liệu nối tiếp.

Ngõ xuất dữ liệu nối tiếp.

Ngõ vào ngắt cứng thứ 0.

Ngõ vào ngắt cứng thứ 1.

Ngõ vào TIMER/ COUNTER thứ 0.

Ngõ vào của TIMER/ COUNTER thứ 1.

Tín hiệu ghi dữ liệu lên bộ nhớ ngoài.

Tín hiệu đọc bộ nhớ dữ liệu ngoài.

                        PSEN (Program store enable):

          PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình mở rộng và thường được nối đến chân OE\ của Eprom cho phép đọc các byte mã lệnh.

          PSEN ở mức thấp trong thời gian 8051 lấy lệnh. Các mã lệnh của chương trình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong 8051 để giải mã lệnh. Khi 8051 thi hành chương trình trong ROM nội PSEN ở mức cao.

          ALE (Address Latch Enable):

          Khi 8051 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt.

          Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động.

          EA\ (External Access): Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0. Nếu ở mức 1, 8051 thi hành chương trình từ ROM nội. Nếu ở mức 0, 8051 thi hành chương trình từ bộ nhớ mở rộng. Chân EA\ được lấy làm chân cấp nguồn 21V khi lập trình cho  Eprom trong 8051.

          RST (Reset):     Khi ngõ vào tín hiệu này đưa lên mức cao ít nhất 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống. Khi cấp điện mạch phải tự động reset.

          Các ngõ vào bộ dao động X1, X2:

     Bộ tạo dao động được tích hợp bên trong 8051. Khi sử dụng 8051, người ta chỉ cần nối thêm tụ thạch anh và các tụ. Tần số tụ thạch anh thường là 12 Mh

          b. Cấu trúc bên trong của 8051

          b1. Sơ đồ khối bên trong 8051:

b2. Khảo sát các khối nhớ bên trong 8051:

 7F        

RAM ĐA DỤNG

 

 

30

2F

7F

7E

7D

7C

7B

7A

79

78

2E

77

76

75

74

73

72

71

70

2D

6F

6E

6D

6C

6B

6A

69

68

2C

67

66

65

64

63

62

61

60

2B

5F

5E

5D

5C

5B

5A

59

58

2A

57

56

55

54

53

52

51

50

29

4F

4E

4D

4C

4B

4A

49

48

28

47

46

45

44

43

42

41

40

27

3F

3E

3D

3C

3B

3A

39

38

26

37

36

35

34

33

32

31

30

25

2F

2E

2D

2C

2B

2A

29

28

24

27

26

25

24

23

22

21

20

23

1F

1E

1D

1C

1B

1A

19

18

22

17

16

15

14

13

12

11

10

21

0F

0E

0D

0C

0B

0A

09

08

20

07

06

05

04

03

02

01

00

1F

BANK 3

18                       

17

BANK 2

10                      

0F

BANK 1

08                             

07

Bank thanh ghi 0 ( mặc định cho R0-R7)

00

 

CẤU TRÚC RAM NỘI

 

F0

F7

F6

F5

F4

F3

F2

F1

F0

 

E0

E7

E6

E5

E4

E3

E2

E1

E0

 

D0

D7

D6

6D

6C

6B

6A

69

68

 

B8

-

-

-

BC

BB

BA

B9

B8

 

B0

B7

B6

B5

B4

B3

B2

B1

B0

 

A8

AF

AE

AD

AC

AB

AA

A9

A8

 

A0

A7

A6

A5

A4

A3

A2

A1

A0

 

99

Không có địa chỉ hóa từng bit

98

9F

9E

9D

9C

9B

9A

99

98

 

90

97

96

95

94

93

92

91

90

 

8D

Không được địa chỉ hóa từng bit

8C

Không được địa chỉ hóa từng bit

8B

Không được địa chỉ hóa từng bit

8A

Không được địa chỉ hóa từng bit

89

Không được địa chỉ hóa từng bit

88

8F

8E

8D

8C

8B

8A

89

88

87

Không được địa chỉ hóa từng bit

 

83

Không được địa chỉ hóa từng bit

82

Không được địa chỉ hóa từng bit

81

Không được địa chỉ hóa từng bit

80

87

86

85

84

83

82

81

80

THANH GHI CHỨC NĂNG ĐẶC BIỆT

                     

*Tổ chức bộ nhớ:

 

 

 

 

          Bộ nhớ bên trong 8051 bao gồm ROM và RAM. RAM bao gồm nhiều thành 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.

            8051 có bộ nhớ theo cấu trúc Harvard: có những vùng nhớ riêng biệt cho chương trình và dữ liệu. Chương trình và dữ liệu có thể chứa bên trong 8051 nhưng 8051 vẫn có thể kết nối với 64 k byte bộ nhớ chương trình và 64 k byte bộ nhớ dữ liệu mở rộng.

            Ram bên trong 8051 được phân chia như sau:

  • Các bank thanh ghi có địa chỉ từ 00H đến 1Fh.
  • Ram địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH.
  • Ram đa dụng từ 30H đến 7FH.
  • Các thanh ghi chức năng đặc biệt từ 80H đến FFH.

           -Ram đa dụng:

            Mọi địa chỉ trong vùng ram đa dụng đều có thể được truy xuất tự do dùng kiểu địa chỉ trực tiếp hay gián tiếp. Ví dụ để đọc nội dung ô nhớ ở địa chỉ 5FH của ram nội vào thanh ghi tích lũy A : MOV  A,5FH.

Hoặc truy xuất dùng cách địa chỉ gián tiếp qua R0 hay R1. Ví dụ 2 lệnh sau sẽ thi hành cùng nhiệm vụ như lệnh ở trên:

            MOV R0, #5FH

            MOV A , @R0

          -Ram có thể truy xuất từng bit:

            8051 chứa 210 bit được địa chỉ hóa từng bit, trong đó 128 bit chứa ở các byte có địa chỉ từ 20H đến 2FH, các bit còn lại chứa trong nhóm thanh ghi chức năng đặc biệt.

            Ýtưởng truy xuất từng bit bằng phần mềm là một đặc tính mạnh của vi điều khiển nói chung. Các bit có thể được đặt, xóa, and, or,… với 1 lệnh đơn. Ngoài ra các port cũng có thể truy xuất được từng bít làm đơn giản phần mềm xuất nhập từng bit.

            Ví dụ để đặt bit 67H ta dùng lệnh sau:     SETB    67H.

          -Các bank thanh ghi:

            Bộ lệnh 8051 hỗ trợ 8 thanh ghi có tên là R0 đến R7 và theo mặc định (sau khi reset hệ thống), các thanh ghi nàyở các địa chỉ 00H đến 07H. lệnh sau đây sẽ đọc nội dung ở địa chỉ 05H vào thanh ghi tích lũy:    MOV  A, R5.

            Đây là lệnh 1 byte dùng địa chỉ thanh ghi. Tuy nhiên có thể thi hành bằng lệnh 2 byte dùng địa chỉ trực tiếp nằm trong byte thứ 2:   MOV   A, 05H.

            Lệnh dùng các thanh ghi R0 đến R7 thì sẽ ngắn hơn và nhanh hơn  nhiều so với lệnh tương ứng dùng địa chỉ trực tiếp.

            Bank thanh ghi tích cực bằng cách thay đổi các bit trong từ trạng thái chương trình (PSW). Giả sủ thanh ghi thứ 3 đang được truy xuất, lệnh sau đây sẽ di chuyển nội dung của thanh ghi A vào ô nhớ ram có địa chỉ 18H:     MOV    R0,  A.

          * Các thanh ghi có chức năng đặc biệt:

 8051 có 21 thanh ghi chức năng đặc biệt (SFR: Special Funtion Register) ở vùng trên của RAM nội từ địa chỉ 80H đến FFH.

Chú ý: tất cả 128 địa chỉ từ 80H đến FFH không được định nghĩa, chỉ có 21 thanh ghi chức năng đặc biệt được định nghĩa sẵn các địa chỉ.

          -Thanh ghi trạng thái chương trình:

Thanh ghi trạng thái chương trình PSW (Program Status Word ) ở địa chỉ DOH chứa các bít trạng thái như bảng sau:

Bit

Ký hiệu

Địa chỉ

Ý nghĩa

PSW.7

PSW.6

PSW.5

PSW.4

PSW.3

 

 

 

 

PSW.2

PSW.1

PSW.0

CY

AC

F0

RS1

RS0

 

 

 

 

0V

_

P

D7H

D6H

D5H

D4H

D3H

 

 

 

 

D2H

D1H

D0H

Cờ nhớ

Cờ nhớ phụ

Cờ 0

Bit 1 chọn bank thanh ghi

Bit 0 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 – 1FH

    11=bank 3: địa chỉ 18H –1FH

Cờ tràn

Dự trữ

Cờ parity chẵn lẽ.

 

     + Cờ nhớ:

            C = 1 nếu phép toán cộng có tràn hoặc phép toán trừ có mượn và ngược lại C = 0. Ví dụ nếu thanh ghi A có giá trị FF thì lệnh sau:

                        ADD    A, #1

Phép cộng này có tràn nên bit C = 1 và kết quả trong thanh ghi A = 00H

Cờ nhớ có thể xem là thanh ghi 1 bit cho các lệnh luận lý thi hành trên bit.               ANL   C, 25H

     + Cớ nhớ phụ:

Khi cộng các số BCD, cờ nhớ phụ AC = 1 nếu kết quả 4 bit thấp trong khoảng 0AH đến 0FH. Ngược lại AC = 0.

     + Cờ 0:

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

     + Các bit chọn bankthanh ghi truy xuất:

     Các bit chọn bank thanh ghi (RS0 và RS1) xác định bank thanh ghi được truy xuất. 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ụ lệnh sau cho phép bank thanh ghi 3 và di chuyển nội dung của bank thanh ghi R7 (địa chỉ bye 1FH) vào thanh ghi A:

                        SETB    RS1

                        SETB    RS0

                        MOV     A,R7

            -Thanh ghi B:

          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ả kết quả về 16 bit trong A (byte thấp) và B (byte cao). Lệnh DIV AB sẽ chia A cho B rồi trả kết quả nguyên trong A và phần dư trong B. thanh ghi cũng có thể xem như thanh ghi đệm đa dụng.

          -Con trỏ ngăn xếp:

            Con trỏ ngăn xếp SP là một thanh ghi 8 bit ở địa chỉ 18H. 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 lệnh 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ẽ làm giảm SP. Ngăn xếp của 8051 được giữ trong ram nội và 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 SP với ngăn xếp bắt đầu tại địa chỉ 60 H, các lệnh sau đây được dùng:

                        MOV   SP,#5FH

Khi reset 8051, SP sẽ mang giá trị mặc định là 07H và dữ liệu đầu tiên sẽ được cất vào ô nhớ ngăn xếp có địa chỉ là 08 H. Ngăn xếp được truy xuất trực tiếp bằng các lệnh PUSH và POP để lưu trữ tạm thời và lấy lại dữ liệu hoặc truy xuất ngầm bằng lệnh gọi chương trình con ACALL,LCALL và các lệnh trở về (RET. RETI) để lưu trữ giá trị của bộ đếm chương trình khi bắt đầu thực hiện chương trình con và lấy lại khi kết thúc chương trình con.

          -Con trỏ dữ liệu

            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). 3 lệnh sau sẽ ghi 55H vào ram ngoài ở địa chỉ 1000H:

                                            MOV  A,#55H

                                            MOV   DPTR, #1000H

                                            MOVX @DPTR,A

          -Các thanh ghi port xuất nhập:

Các port của 8051 bao gồm port 0 ở địa chỉ 80H, port 1 ở địa chỉ 90H, port 2 ở địa chỉ A0H, và port3 ở địa chỉ B0H. tất cả các port này đều có thể truy xuất từng bit nên rất thuận tiện trong khả năng giao tiếp.

          -Các thanh ghi timer: 

            8051 có chứa 2 bộ định thời/ đếm 16 bit được dùng cho 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 khởi động timer được Set bởi 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.

          -Các thanh ghi port nối tiếp:

            8051 chứa một port nối tiếp 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 giao tiếp nối tiếp với các IC khác. Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả 2 dữ liệu truyền và dữ liệu 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 khác nhau được lập trình qua thanh ghi điều khiển port nối tiếp SCON ở địa chỉ 98H.

          -Các thanh ghi ngắt:

            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ỉ A8H, cả 2 thanh ghi được địa chỉ hóa từng bit.

          -Thanh ghi điều khiển công suất:

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

          -Tín hiệu Reset:

            8051 có ngõ vào reset RST tác động ở mức cao trong khoảng thời gian 2 chu kỳ, sau đó xuống mức thấp để 8051 bắt đầu làm việc. RST có thể kích bằng tay bằng một phím nhấn thường mở, sơ đồ mạch reset như hình trên (hình a)

 sau khi reset hệ thống được tóm tắt như sau:

Thanh ghi

Nội dung

Đếm chương trình PC

Thanhghi tích lũy A

Thanh ghi B

Thanh ghi trạng thái

SP

DPTR

Port 0 đến Port 3

IP

IE

Các thanh ghi định thời

 

0000H

00H

00H

00H

07H

0000H

FFH

XXX0000 B

0XX00000 B

00H

 

            Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC được Reset tại địa chỉ 0000H. Khi ngõ vào RST xuống mức thấp, chương trình luôn bắt đầu tại địa chỉ 0000H của bộ nhớ chương trình. Nội dung của Ram trong chip không bị hay đổi bởi tác động của ngõ vào Reset

          c.Hoạt động thanh ghi TIMER

8051 có hai timer 16 bit, mỗi timer có bốn cách làm việc. Người ta sử dụng các timer để:

  • Định khoảng thời gian.
  • Đếm sự kiện.
  • 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 ở những 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 ngõ vào hoặc gửi 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 ).

Truy xuất các timer của 8051 dùng sáu thanh ghi chức năng đặc biệt cho trong bảng sau:

SFR

Mục Đích

Địa chỉ

Địa chỉ hóa từng bit

TCON

Điều khiển Timer

88H

               Có

TMOD

Chế độ Timer

89H

Không

TL0

Byte thấp của Timer 0

90H

Không

TL1

Byte thấp của Timer 1

91H

Không

TH0

Byte cao của Timer 0

92H

Không

TH1

Byte cao của Timer 1

93H

Không

Các thanh ghi chức năng của timer trong 8031.

          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.

Bit

Tên

Timer

Mô tả

7

GATE

1

Bit mở cổng, khi lên 1 timer chỉ chạy khi INT1 ở mức cao

6

C/T

1

Bit chọn chế độ Count/Timer

    1 =  bộ đếm sự kiện

    0 =  bộ định khoảng thời gian

5

M1

1

Bit 1 của chế độ mode

4

M0

1

Bit 0 của chế độ mode

3

GATE

0

Bit mở cổng, khi lên 1 timer chỉ chạy khi INT0 ở mức cao

2

C/T

0

Bit chọn chế độ Count/Timer   

1

M1

0

Bit 1 của chế độ mode

0

M0

0

Bit 0 của chế độ mode

Tóm tắt thanh ghi chức năng TMOD.

       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 1, Timer 0.

Bit

Ký hiệu

Địa chỉ

Mô tả

TCON.7

TF1

8FH

Cờ báo tràn timer 1. Đặt bởi phần cứng khi tràn, được xóa bởi phần mềm, hoặc phần cứng khi bộ xử lý chỉ đến chương trình phục vụ ngắt.

TCON.6

TR1

8EH

Bit điều khiển timer 1 chạy đặt xóa bằng phần mềm để cho timer chạy ngưng.

TCON.5

TF0

8DH

Cờ báo tràn Timer 0.

TCON.4

TR0

8CH

Bit điều khiển Timer 0 chạy

TCON.3

IE1

8BH

Cờ cạnh ngắt 1 bên ngoài. Đặt bởi phần cứng khi phát hiện một cạnh xuống ở INT1 xóa bằng phần mềm họăc phần cứng khi CPU chỉ đến chương trình phục vụ ngắt.

TCON.2

IT1

8AH

Cờ kiểu ngắt 1 bên ngoài. Đặ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.

TCON.1

IE0

89H

Cờ cạnh ngắt 0 bên ngòai

TCON.0

IT0

88h

Cờ kiểu ngắt 0 bên ngoài

Tóm tắt thanh ghi chức năng TCON

          Khởi động và truy xuất thanh ghi timer:

            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 đúng. Sau đó, trong thân chương trình, các thanh ghi timer được cho chạy, dừng, các bit được kiểm tra và xóa, các thanh ghi timer được đọc và cập nhật…. theo đòi hỏi 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 khởi động Timer 1 như timer 16 bit (chế độ 1) có xung nhịp từ bộ dao động tên chip cho việc định khoảng thời gian:

MOV  TMOD, #1B

          Lệnh này sẽ đặt M1 = 1 và M0 = 0 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 không thật sự bắt đầu định thời cho đến khi bit điều khiển chạy TR1 được đặt lên 1.

            Nếu cần số đếm ban đầu, các thanh ghi TL1/TH1 cũng phải được khởi động. Một khoảng 100ms có thể được khởi động bằng cách khởi động giá trị cho TH1/TL1 là FF9CH:

MOV   TL1, #9CH

  MOV   TH1, #0FFH

            Rồi timer được cho chạy bằng cách đặt bit điều khiển chạy như sau:

                                     SETB    TR1

Cờ báo tràn được tự động đặt lên 1 sau 100ms. Phần mềm có thể đợi trong 100 ms bằng cách dùng lệnh rẽ nhánh có điều kiện nhảy đến chính nó trong khi cờ báo tràn chưa được đặt lên 1:

                                      WAIT:   JNB   TF1, WAIT

            Khi timer tràn, cần dừng timer và xóa cờ báo tràn trong phần mềm:

                                       CLR  TR1

                                       CLR  TF

          d. Ngắt  ( INTERRUPT)

Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thời thời chương trình chính  trong khi điều kiện đó được phục vụ bởi một chương trình khác.

Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng vi điều khiển. Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và giải quyết sự kiện đó trong khi một chương trình khác đang thực thi.

Tổ chức ngắt của 8051:

Có  5 nguồn ngắt ở 8031: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port nối tiếp. Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi reset hệ thống và được cho phép từng cái một bằng phần mềm.

Khi có hai hoặc nhiều ngắt đồng thời, hoặc một ngắt xảy ra khi một ngắt khác đang được phục vụ, có cả hai sự tuần tự hỏi vòng và sơ đồ ưu tiên hai mức dùng để xác định việc thực hiện các ngắt. Việc hỏi vòng tuần tự thì cố định nhưng ưu tiên ngắt thì có thể lập trình được.

       -  Cho phép và cấm ngắt :

Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chức năng đặt biệt có định địa chỉ bit IE ( Interrupt Enable : cho phép ngắt ) ở địa chỉ A8H.

Bit

Ký hiệu

Địa chỉ bit

Mô tả

IE.7

EA

AFH

Cho phép / Cấm toàn bộ

IE.6

_

AEH

Không được mô tả

IE.5

ET2

ADH

Cho phép ngắt từ Timer 2 (8052)

IE.4

ES

ACH

Cho phép ngắt port nối tiếp

IE.3

ET1

ABH

Cho phép ngắt từ Timer 1

IE.2

EX1

AAH

Cho phép ngắt ngoài 1

IE.1

ET0

A9H

Cho phép ngắt từ Timer 0

IE.0

EX0

A8H

Cho phép ngắt ngoài 0

Tóm tắt thanh ghi IE

          - Các cờ ngắt :

Khi điều kiện ngắt xảy ra thì ứng với từng loại ngắt mà loại cờ đó được đặt lên một để xác nhận ngắt.

Ngắt

Cờ

Thanh ghi SFR và vị trí bit

Bên ngoài 0

IE0

TCON.1

Bên ngoài 1

IE1

TCON.3

Timer 1

TF1

TCON.7

Timer 0

TF0

TCON.5

Port nối tiếp

TI

SCON.1

Port nối tiếp

RI

SCON.0

Các lọai cờ ngắt

           - Các vectơ ngắt :

            Khi chấp nhận ngắt, giá trị được nạp vào PC được gọi là vector ngắt. Nó là địa chỉ bắt đầu của ISR cho nguồn tạo ngắt, các vector ngắt được cho ở bảng sau :

Ngắt

Cờ

Địa chỉ vector

Reset hệ thống

RST

0000H

Bên ngoài 0

IE0

0003H

Timer 0

TF0

000BH

Bên ngoài 1

IE1

0013H

Timer 1

TF1

001BH

Port nối tiếp

TI và RI

0023H

Timer 2

 

002BH

Vector reset hệ thống (RST ở địa chỉ 0000H) được để trong bảng này vì theo nghĩa này, nó giống ngắt : nó ngắt chương trình chính và nạp cho PC giá trị mới.

          e. Kết hợp 8051 với bộ nhớ  ngoài

          Vi xử lý (Microprocessor) là IC chuyên dụng về xử lý dữ liệu, điều khiển theo một chương trình, muốn Microprocessor  thực hiện một công việc gì người sử dụng phải lập trình hay viết chương trình. Chương trình phải lưư trữ ở đâu để Microprocessor nhận lệnh và thi hành, đôi khi trong lúc xử lý chương trình Microprocessor cần nơi lưư trữ tạm thời các dữ liệu sau đó lấy ra để tiếp tục xử lý. Nơi lưu trữ chương trình cho Microprocessor  thực hiện và nơi lưu trữ tạm thời dữ liệu chính là bộ nhớ. Các bộ nhớ của Microprcessor là các IC, các IC nhớ này có thể đọc dữ liệu ra, ghi dữ liệu vào hoặc chỉ đọc dữ liệu ra. Đôi khi bộ nhớ của Microprocessor không đủ để lưu trữ  những thông tin cần thiết khi chạy chương trình, khi đó phải dùng kỹ thuật mở rộng bộ nhớ. 8051 có khả năng mở rộng bộ nhớ đến 64k byte bộ nhớ chương trình và 64k byte bộ nhớ dữ liệu bên ngoài. Bộ nhớ chương trình là bộ nhớ Rom còn bộ nhớ dữ liệu là bộ nhớ Ram.

          _ Bộ nhớ Ram chia ra làm 2 loại Sram và Dram. Dram được chế tạo dùng kỹ thuật MOS, có dung lượng bộ nhớ lớn, công xuất tiêu tán thấp và tốc độ hoạt động trung bình. Ơ Sram dữ liệu lưu trữ vào các Flip- Flop còn Dram dữ liệu lưu trữ mức 0 và 1 tương đương với quá trình nạp và xả của một tụ điện khoảng vài pF. Bởi vì điện áp của tụ sẽ suy giảm dần do đó Dram đòi hỏi chu kỳ nạp lại nếu không muốn mất dữ liệu và được gọi là quá trình làm tươi Ram, đây chính là khuyết điểm của Dram so với Sram. Bộ nhớ Rom có nhiều loại: PROM, EPROM, EEPROM nhưng EPROM có thể lập trình bởi người dùng, có thể xóa và lập trình lại nhiều lần nên trong đồ án này chúng em dùng EPROM 2764 và dùng SRAM 6264. Đặc điểm, sơ đồ chân và bảng sự thật của 2764 và 6264 ở hình dưới đây

          SRAM 6264: là bộ nhớ được chế tạo theo công nghệ CMOS, có dung lượng
65536 bit được tổ chức thành 8192x8 bit (8KByte), điện áp cung cấp là +5V, thời gian truy cập khoảng 150ns. Ngõ vào/ra dữ liệu được dùng chung, các ngõ vào/ra này tương thích TTL. Công suất tiêu tán ở trạng thái chờ rất thấp chỉ khoảng 0,1mW so với khi hoạt động bình thường là 200mW.

            Sơ đồ chân và sơ đồ logic của 6264 như sau:

 
   

 

Từ sơ đồ chân cho ta thấy cá chân được chia thành 4 nhóm:

                   + Vcc, GND                               : chân nguồn

                   + Do đến D7                               : chân dữ liệu

                   + Ao đến A12                             : chân địa chỉ

  EPROM 2764: là bộ nhớ chỉ đọc được chế tạo theo công nghệ NMOS, dùng một nguồn đơn +5V, dung lượng bộ nhớ là 65536 bit, được tổ chức thành 8192x8 bit (8KByte). 2764 là loại EPROM có thể xóa bằng tia cực tím và có thể ghi lại được nhiều lần. Có hai kiểu họat động: bình thường và chờ. Ở trạng thái chờ, công suất tiêu thụ là 132mW so với 525mW khi ở trạng thái đọc dữ liệu, thời gian truy xuất là 200ns. Sơ đồ chân và sơ đồ logic của 2764 như sau:

 
 

Mode (chế độ)

CE\

OE\

PGM\

VPP

Ra (Output)

Đọc

L

L

H

Vcc

Dout

Chờ

H

x

x

Vcc

Hi-Z

Lập trình

L

x

L

Vpp

Din

Kiểm tra

L

L

H

Vpp

 Do ut

Cấm lập trình

H

x

x

Vpp

Hi-Z

                                    Bảng trạng thái

 

 

 

 

 

 

 

 

 

 

- EPROM có thể được lập bởi người lập trình sử dụng và nó cũng có thể xóa để lập trình lại khi nào muốn.

-EPROM dùng trong mạch được chứa sẵn chương trình điều khiển, tức là chỉ xuất Data mỗi khi CPU tham khảo đến, do đó ta chỉ quan tâm đến chế độ đọc và chờ. Dựa vào các Mode hoạt động trên thì EPROM được điều khiển các chân sau:

  • PGM = 5 Volt  (Vcc )
  • OE\ nối chân PSEN của CPU
  • CE\ nối xuống CSO

+ Chế độ đọc (Read Mode ): Chế độ này được thiết lập khi CE\ và OE\ ở mức thấp, PGM ở mức cao. Có hai ngõ vào điều khiển dùng để truy xuất Data từ ROM là CE\ và OE\ dùng để kiểm soát ngõ ra Data, đưa Data lên Data bus.

+ Chế độ chờ (Stanby Mode ): Chế độ này làm giảm công suất tiêu thụ  được thiết lập khi CE\ ở mức cao, ở chế độ này  Data ở trạng thái trở kháng cao độc lập.

          *Giải mã địa chỉ: 

          Do 8051 thiết kế cần quản lý nhiều thiết bị ngoại vi, nhiều ô nhớ, muốn làm được việc này người ta phải cung cấp cho mỗi ô nhớ và thiết bị ngoại vi tầm địa chỉ cho thiết bị đó. Vì vậy cần có mạch giải mã địa chỉ trong mạch điện. Người ta thường dùng IC giải mã 74HC138 với các ngõ ra được nối tới các ngõ vào chọn chip (CS\) trên các IC nhớ. Sau đây là sơ đồ chân, bảng sự thật và đặc điểm của 74138:

INPUTS

OUTPUTS

ENABLE

SELECT

G1

G2

C

B

A

Y0

Y1

Y2

Y3

Y4

Y5

Y6

Y7

x

H

x

x

x

H

H

H

H

H

H

H

H

L

x

x

x

x

H

H

H

H

H

H

H

H

H

L

L

L

L

L

H

H

H

H

H

H

H

H

L

L

L

H

H

L

H

H

H

H

H

H

H

L

L

H

L

H

H

L

H

H

H

H

H

H

L

L

H

H

H

H

H

L

H

H

H

H

H

L

H

L

L

H

H

H

H

L

H

H

H

H

L

H

L

H

H

H

H

H

H

L

H

H

H

L

H

H

L

H

H

H

H

H

H

L

H

H

L

H

H

H

H

H

H

H

H

H

H

L

 

G2 = G2A + G2           Bảng trạng thái

 

 sơ lược về các chân:

- Ngõ vào A,B,C là các chân ngõ vào số nhị phân 3 bit. C là bit có trọng số lớn nhất, A là bit có trọng số nhỏ nhất

- Các chân ngõ ra: Yo ® Y7, tích cực mức thấp.

- Các chân điều khiển: G1,G2A, G2B. IC chỉ hoạt động giải mã khi các chân điều khiển đồng thời tích cực. G1 tích cực ở mức cao; G2A\ và G2B\ tích cực ở mức thấp Khi một trong 3 chân này không tích cực các ngõ ra từ Yo ® Y7 ở mức cao.

          *Giải đa hợp các đường dữ liệu và đường địa chỉ:

          Khi dùng bộ nhớ ngoài, port 0 không còn là port IO thuần túy. Nó được kết hợp giữa bus địa chỉ và bus dữ liệu nên dùng tín hiệu ALE và IC chốt để chốt byte thấp của bus địa chỉ khi bắt đầu mỗi chu kỳ bộ nhớ. Port2 cho byte cao của bus địa chỉ. Ơ đây chúng em dùng IC chốt 74373. Sơ đồ chân, đặc điểm và bảng trạng thái của 74373

Sơ đồ chân

          Bảng trạng thái

 
 

Output

Control (OC)

Enable

G

D

OUTPUT

L

H

H

H

L

H

L

L

L

L

x

Q0

H

x

x

HI-Z

 

 

 

 

 

 


 Đặc điểm

_ 74LS373 gồm 8 D-FF  có ngõ ra 3 trạng thái được điều khiển chốt và xuất dữ liệu bằng chân G và OC. Trong ứng dụng này chân G được nối với chân ALE của 8051, chân OC nối mass.

_ là IC chốt 8 bit

_ Các bộ đệm ngõ ra 3 trạng thái

_ Tín hiệu điều khiển ngõ ra 3 trạng thái chung.

          *Xếp chồng các vùng nhớ chương trình và dữ liệu bên ngoài:

          Vì bộ nhớ chương trình là Rom nên xảy ra vấn đề bất tiện khi phát triển phần mềm cho 8051 là tổ chức bộ nhớ như thế nào để có thể sửa đổi chương trình và có thể ghi trở lại khi nó được chứa trong bộ nhớ Rom. Cách giải quyết là xếp chồng các vùng dữ liệu và chương trình. Một bộ nhớ Ram có thể chứa cả chương trình và dữ liệu bằng cách nối đường OE\ của Ram đến ngõ ra cổng AND có 2 ngõ vào là PSEN\ và RD\. Sơ đồ mạch như hình sau cho phép bộ nhớ Ram có 2 chức năng vừa là bộ nhớ chương trình vừa là bộ nhớ dữ liệu.

          Vậy 1 chương trình có thể được tải vào Ram (bằng cách ghi nó như bộ nhớ dữ liệu) và thi hành chương trình (bằng cách truy xuất nó như bộ nhớ chương trình)        

  1. Khối hiển thị:

          a.Sơ đồ khối của mạch hiển thị:

          Bộ phận hiển thị gồm 8 led 7 đoạn anod chung. Vì các vi xử lí xử lí các dữ liệu là số nhị phân (1,0 ) nên cần có sự giãi mã từ số nhị phân sang số thập phân. Sự giải mã có thể dùng giải mã bằng phần cứng (IC giải mã). Tuy nhiên với phần mềm quét led người ta có thể giảm bớt được các IC giải mã giảm giá thành của mạch điện. Nhưng để kết nối với mạch hiển thị phải cần có IC giao tiếp vào ra vì các port của 8051 đã dùng cho mục đích khác. 8255 là IC giao tiếp vào ra song song thông dụng và có thể điều khiển được bằng phần mềm nên chúng em sử dụng 8255 để giao tiếp với các thiết bị ngoại vi (phần hiển thị…). Vì dòng ra các port  của 8255 rất nhỏ (lớn nhất là port A khoảng 5mA) nên cần có IC đệm dòng để nâng dòng lên đủ kéo cho led sáng. Chúng em chọn IC đệm 74245. Khi đưa dữ liệu ra để hiển thị tất cả các led đều nhận nhưng tại một thời điểm chỉ cho phép một led được nhận dữ liệu nên phải có mạch giải mã để chọn led.

          b. Giới thiệu về các linh kiện trong mạch     

          b1.Cổng xuất nhập 8255:

    Trong hệ thống Vi xử lý hay máy vi tính nếu chỉ giao tiếp với bộ nhớ trong ROM, RAM thì chưa đủ, máy tính còn phải giao tiếp với các thiết bị ngoại vi như bàn phím, màn hình, máy in, ... để con người có thể đối thoại được máy tính cũng như dùng máy tính để điều khiển các thiết bị khác. Để giao tiếp với nhiều thiết bị như vậy, máy tính có thể giao tiếp qua nhiều đường và giao tiếp với nhiều hình thức khác nhau như giao tiếp nối tiếp, giao tiếp song song.

Vì vậy vai trò của cổng xuất nhập 8255 để giao tiếp giữa máy tính với thiết bị ngoài là một điều cần thiết giúp máy có thể mở rộng khả năng làm việc.

  *Sơ đồ chân của 8255

  Sơ đồ chân và sơ đồ logic

 

A1

A0

RD\

WR\

CS\

Hoạt động

L

L

L

H

L

Port A à Bus dữ liệu

L

H

L

H

L

Port Bà Bus dữ liệu

H

L

L

H

L

Port Cà Bus dữ liệu

L

L

H

L

L

Bus dữ liệu à Port A

L

H

H

L

L

Bus dữ liệu à Port B

H

L

H

L

L

Bus dữ liệu à Port C

H

H

H

L

L

Bus dữ liệu à Từ điều khiển

x

x

x

x

H

Bus dữ liệu ở trạng thái Hi-Z

H

H

L

H

L

Cấm

x

x

H

H

L

Bus dữ liệu ở trạng thái Hi-Z

 

 

          Tính linh hoạt của vi mạch thể hiện ở khả năng lập trình. Qua một thanh ghi điều khiển, người sử dụng xác định chế độ hoạt động và cổng nào cần được sử dụng như là lối vào hoặc lối ra. Các chân ra D0 4 D7 tạo nên bus dữ liệu hai chiều có độ rộng là 8 bit. 8255 được chọn bởi tín hiệu mức thấp ở ngõ vào chọn chíp CS\. Khi 8255 không được chọn, bộ đệm bus dữ liệu nối 8255 với hệ thống được thả nổi. Khi được chọn, các ngõ vào A0 và A1 được dùng để chọn thanh ghi điều khiển hoặc một trong các cổng vào/ra để trao đổi dữ liệu. Các hoạt động cơ bản của 8255 được tóm tắt trong bảng sau:

 

 
 

A1

A0

RD\

WR\

CS\

Hoạt động

L

L

L

H

L

Port A à Bus dữ liệu

L

H

L

H

L

Port Bà Bus dữ liệu

H

L

L

H

L

Port Cà Bus dữ liệu

L

L

H

L

L

Bus dữ liệu à Port A

L

H

H

L

L

Bus dữ liệu à Port B

H

L

H

L

L

Bus dữ liệu à Port C

H

H

H

L

L

Bus dữ liệu à Từ điều khiển

x

x

x

x

H

Bus dữ liệu ở trạng thái Hi-Z

H

H

L

H

L

Cấm

x

x

H

H

L

Bus dữ liệu ở trạng thái Hi-Z

 

 

 

 

 

 

 

 

 

 

 


        * Các trạng thái làm việc của 8255:

        Qua bảng trạng thái của 8255, ta thấy thanh ghi điều khiển đặt dưới địa chỉ bên trong là A1 = [1], A0 = [1]. Trong một chu kỳ ghi lên thanh ghi điều khiển, xác định cổng vào/ra cũng như chế độ hoạt động. Khi chân RESET ở mức [H], thanh ghi điều khiển sẽ được đặt lại và định nghĩa toàn bộ 24 đường dẫn như là các ngõ vào.Trạng thái này kéo dài tới khi chương trình ứng dụng viết từ điều khiển vào thanh ghi điều khiển để xác định chế độ làm việc của 8255.

Các cổng A, B, C được phân thành hai nhóm. Nhóm A gồm cổng A và nửa cao của cổng C, nhóm B gồm cổng B và nửa thấp còn lại của cổng C. Có 3 chế độ hoạt động khác nhau:

- Chế độ 0: vào/ra thông thường.

- Chế độ 1: chốt vào/ra.

- Chế độ 2: bus hai chiều.

Chế độ 0:

Từ điều khiển:

Chế độ 0 xác lập hai cổng 8 bit (A và B) và hai cổng 4 bit (nửa cao và nửa thấp của C). Bất kỳ cổng nào cũng có thể nhập hoặc xuất dữ liệu một cách độc lập tùy theo các bit D4, D3, D1 và D0. Có 24 = 16 khả năng vào/ra trong chế độ này

..........................

Khởi động và truy xuất thanh ghi timer:

            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 đúng. Sau đó, trong thân chương trình, các thanh ghi timer được cho chạy, dừng, các bit được kiểm tra và xóa, các thanh ghi timer được đọc và cập nhật…. theo đòi hỏi 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 khởi động Timer 1 như timer 16 bit (chế độ 1) có xung nhịp từ bộ dao động tên chip cho việc định khoảng thời gian:

MOV  TMOD, #1B

          Lệnh này sẽ đặt M1 = 1 và M0 = 0 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 không thật sự bắt đầu định thời cho đến khi bit điều khiển chạy TR1 được đặt lên 1.

            Nếu cần số đếm ban đầu, các thanh ghi TL1/TH1 cũng phải được khởi động. Một khoảng 100ms có thể được khởi động bằng cách khởi động giá trị cho TH1/TL1 là FF9CH:

MOV   TL1, #9CH

  MOV   TH1, #0FFH

            Rồi timer được cho chạy bằng cách đặt bit điều khiển chạy như sau:

                                     SETB    TR1

Cờ báo tràn được tự động đặt lên 1 sau 100ms. Phần mềm có thể đợi trong 100 ms bằng cách dùng lệnh rẽ nhánh có điều kiện nhảy đến chính nó trong khi cờ báo tràn chưa được đặt lên 1:

                                      WAIT:   JNB   TF1, WAIT

            Khi timer tràn, cần dừng timer và xóa cờ báo tràn trong phần mềm:

                                       CLR  TR1

                                       CLR  TF1

           

          d. Ngắt  ( INTERRUPT)

Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thời thời chương trình chính  trong khi điều kiện đó được phục vụ bởi một chương trình khác.

Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng vi điều khiển. Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và giải quyết sự kiện đó trong khi một chương trình khác đang thực thi.

Tổ chức ngắt của 8051:

Có  5 nguồn ngắt ở 8031: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port nối tiếp. Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi reset hệ thống và được cho phép từng cái một bằng phần mềm.

Khi có hai hoặc nhiều ngắt đồng thời, hoặc một ngắt xảy ra khi một ngắt khác đang được phục vụ, có cả hai sự tuần tự hỏi vòng và sơ đồ ưu tiên hai mức dùng để xác định việc thực hiện các ngắt. Việc hỏi vòng tuần tự thì cố định nhưng ưu tiên ngắt thì có thể lập trình được.

       -  Cho phép và cấm ngắt :

Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chức năng đặt biệt có định địa chỉ bit IE ( Interrupt Enable : cho phép ngắt ) ở địa chỉ A8H.

 

 

 

 

 

Bit

Ký hiệu

Địa chỉ bit

Mô tả

IE.7

EA

AFH

Cho phép / Cấm toàn bộ

IE.6

_

AEH

Không được mô tả

IE.5

ET2

ADH

Cho phép ngắt từ Timer 2 (8052)

IE.4

ES

ACH

Cho phép ngắt port nối tiếp

IE.3

ET1

ABH

Cho phép ngắt từ Timer 1

IE.2

EX1

AAH

Cho phép ngắt ngoài 1

IE.1

ET0

A9H

Cho phép ngắt từ Timer 0

IE.0

EX0

A8H

Cho phép ngắt ngoài 0

Tóm tắt thanh ghi IE

          - Các cờ ngắt :

Khi điều kiện ngắt xảy ra thì ứng với từng loại ngắt mà loại cờ đó được đặt lên một để xác nhận ngắt.

Ngắt

Cờ

Thanh ghi SFR và vị trí bit

Bên ngoài 0

IE0

TCON.1

Bên ngoài 1

IE1

TCON.3

Timer 1

TF1

TCON.7

Timer 0

TF0

TCON.5

Port nối tiếp

TI

SCON.1

Port nối tiếp

RI

SCON.0

Các lọai cờ ngắt

           - Các vectơ ngắt :

            Khi chấp nhận ngắt, giá trị được nạp vào PC được gọi là vector ngắt. Nó là địa chỉ bắt đầu của ISR cho nguồn tạo ngắt, các vector ngắt được cho ở bảng sau :

Ngắt

Cờ

Địa chỉ vector

Reset hệ thống

RST

0000H

Bên ngoài 0

IE0

0003H

Timer 0

TF0

000BH

Bên ngoài 1

IE1

0013H

Timer 1

TF1

001BH

Port nối tiếp

TI và RI

0023H

Timer 2

 

002BH

Vector reset hệ thống (RST ở địa chỉ 0000H) được để trong bảng này vì theo nghĩa này, nó giống ngắt : nó ngắt chương trình chính và nạp cho PC giá trị mới.

          e. Kết hợp 8051 với bộ nhớ  ngoài

          Vi xử lý (Microprocessor) là IC chuyên dụng về xử lý dữ liệu, điều khiển theo một chương trình, muốn Microprocessor  thực hiện một công việc gì người sử dụng phải lập trình hay viết chương trình. Chương trình phải lưư trữ ở đâu để Microprocessor nhận lệnh và thi hành, đôi khi trong lúc xử lý chương trình Microprocessor cần nơi lưư trữ tạm thời các dữ liệu sau đó lấy ra để tiếp tục xử lý. Nơi lưu trữ chương trình cho Microprocessor  thực hiện và nơi lưu trữ tạm thời dữ liệu chính là bộ nhớ. Các bộ nhớ của Microprcessor là các IC, các IC nhớ này có thể đọc dữ liệu ra, ghi dữ liệu vào hoặc chỉ đọc dữ liệu ra. Đôi khi bộ nhớ của Microprocessor không đủ để lưu trữ  những thông tin cần thiết khi chạy chương trình, khi đó phải dùng kỹ thuật mở rộng bộ nhớ. 8051 có khả năng mở rộng bộ nhớ đến 64k byte bộ nhớ chương trình và 64k byte bộ nhớ dữ liệu bên ngoài. Bộ nhớ chương trình là bộ nhớ Rom còn bộ nhớ dữ liệu là bộ nhớ Ram.

          _ Bộ nhớ Ram chia ra làm 2 loại Sram và Dram. Dram được chế tạo dùng kỹ thuật MOS, có dung lượng bộ nhớ lớn, công xuất tiêu tán thấp và tốc độ hoạt động trung bình. Ơ Sram dữ liệu lưu trữ vào các Flip- Flop còn Dram dữ liệu lưu trữ mức 0 và 1 tương đương với quá trình nạp và xả của một tụ điện khoảng vài pF. Bởi vì điện áp của tụ sẽ suy giảm dần do đó Dram đòi hỏi chu kỳ nạp lại nếu không muốn mất dữ liệu và được gọi là quá trình làm tươi Ram, đây chính là khuyết điểm của Dram so với Sram. Bộ nhớ Rom có nhiều loại: PROM, EPROM, EEPROM nhưng EPROM có thể lập trình bởi người dùng, có thể xóa và lập trình lại nhiều lần nên trong đồ án này chúng em dùng EPROM 2764 và dùng SRAM 6264. Đặc điểm, sơ đồ chân và bảng sự thật của 2764 và 6264 ở hình dưới đây

          SRAM 6264: là bộ nhớ được chế tạo theo công nghệ CMOS, có dung lượng
65536 bit được tổ chức thành 8192x8 bit (8KByte), điện áp cung cấp là +5V, thời gian truy cập khoảng 150ns. Ngõ vào/ra dữ liệu được dùng chung, các ngõ vào/ra này tương thích TTL. Công suất tiêu tán ở trạng thái chờ rất thấp chỉ khoảng 0,1mW so với khi hoạt động bình thường là 200mW.

            Sơ đồ chân và sơ đồ logic của 6264 như sau:

Từ sơ đồ chân cho ta thấy cá chân được chia thành 4 nhóm:

                   + Vcc, GND                               : chân nguồn

                   + Do đến D7                               : chân dữ liệu

                   + Ao đến A12                             : chân địa chỉ

                   +

      EPROM 2764: là bộ nhớ chỉ đọc được chế tạo theo công nghệ NMOS, dùng một nguồn đơn +5V, dung lượng bộ nhớ là 65536 bit, được tổ chức thành 8192x8 bit (8KByte). 2764 là loại EPROM có thể xóa bằng tia cực tím và có thể ghi lại được nhiều lần. Có hai kiểu họat động: bình thường và chờ. Ở trạng thái chờ, công suất tiêu thụ là 132mW so với 525mW khi ở trạng thái đọc dữ liệu, thời gian truy xuất là 200ns. Sơ đồ chân và sơ đồ logic của 2764 như sau:

 
 

Mode (chế độ)

CE\

OE\

PGM\

VPP

Ra (Output)

Đọc

L

L

H

Vcc

Dout

Chờ

H

x

x

Vcc

Hi-Z

Lập trình

L

x

L

Vpp

Din

Kiểm tra

L

L

H

Vpp

 Do ut

Cấm lập trình

H

x

x

Vpp

Hi-Z

                                    Bảng trạng thái

 

 

 

 

 

 

 

 

 


         

- EPROM có thể được lập bởi người lập trình sử dụng và nó cũng có thể xóa để lập trình lại khi nào muốn.

-EPROM dùng trong mạch được chứa sẵn chương trình điều khiển, tức là chỉ xuất Data mỗi khi CPU tham khảo đến, do đó ta chỉ quan tâm đến chế độ đọc và chờ. Dựa vào các Mode hoạt động trên thì EPROM được điều khiển các chân sau:

  • PGM = 5 Volt  (Vcc )
  • OE\ nối chân PSEN của CPU
  • CE\ nối xuống CSO

+ Chế độ đọc (Read Mode ): Chế độ này được thiết lập khi CE\ và OE\ ở mức thấp, PGM ở mức cao. Có hai ngõ vào điều khiển dùng để truy xuất Data từ ROM là CE\ và OE\ dùng để kiểm soát ngõ ra Data, đưa Data lên Data bus.

+ Chế độ chờ (Stanby Mode ): Chế độ này làm giảm công suất tiêu thụ  được thiết lập khi CE\ ở mức cao, ở chế độ này  Data ở trạng thái trở kháng cao độc lập.

          *Giải mã địa chỉ: 

          Do 8051 thiết kế cần quản lý nhiều thiết bị ngoại vi, nhiều ô nhớ, muốn làm được việc này người ta phải cung cấp cho mỗi ô nhớ và thiết bị ngoại vi tầm địa chỉ cho thiết bị đó. Vì vậy cần có mạch giải mã địa chỉ trong mạch điện. Người ta thường dùng IC giải mã 74HC138 với các ngõ ra được nối tới các ngõ vào chọn chip (CS\) trên các IC nhớ. Sau đây là sơ đồ chân, bảng sự thật và đặc điểm của 74138:

INPUTS

OUTPUTS

ENABLE

SELECT

G1

G2

C

B

A

Y0

Y1

Y2

Y3

Y4

Y5

Y6

Y7

x

H

x

x

x

H

H

H

H

H

H

H

H

L

x

x

x

x

H

H

H

H

H

H

H

H

H

L

L

L

L

L

H

H

H

H

H

H

H

H

L

L

L

H

H

L

H

H

H

H

H

H

H

L

L

H

L

H

H

L

H

H

H

H

H

H

L

L

H

H

H

H

H

L

H

H

H

H

H

L

H

L

L

H

H

H

H

L

H

H

H

H

L

H

L

H

H

H

H

H

H

L

H

H

H

L

H

H

L

H

H

H

H

H

H

L

H

H

L

H

H

H

H

H

H

H

H

H

H

L

 

G2 = G2A + G2           Bảng trạng thái

 sơ lược về các chân:

- Ngõ vào A,B,C là các chân ngõ vào số nhị phân 3 bit. C là bit có trọng số lớn nhất, A là bit có trọng số nhỏ nhất

- Các chân ngõ ra: Yo ® Y7, tích cực mức thấp.

- Các chân điều khiển: G1,G2A, G2B. IC chỉ hoạt động giải mã khi các chân điều khiển đồng thời tích cực. G1 tích cực ở mức cao; G2A\ và G2B\ tích cực ở mức thấp Khi một trong 3 chân này không tích cực các ngõ ra từ Yo ® Y7 ở mức cao.

          *Giải đa hợp các đường dữ liệu và đường địa chỉ:

          Khi dùng bộ nhớ ngoài, port 0 không còn là port IO thuần túy. Nó được kết hợp giữa bus địa chỉ và bus dữ liệu nên dùng tín hiệu ALE và IC chốt để chốt byte thấp của bus địa chỉ khi bắt đầu mỗi chu kỳ bộ nhớ. Port2 cho byte cao của bus địa chỉ. Ơ đây chúng em dùng IC chốt 74373. Sơ đồ chân, đặc điểm và bảng trạng thái của 74373

Sơ đồ chân

          Bảng trạng thái

 

 
 

Output

Control (OC)

Enable

G

D

OUTPUT

L

H

H

H

L

H

L

L

L

L

x

Q0

H

x

x

HI-Z

 

 

 

 

 


 Đặc điểm

_ 74LS373 gồm 8 D-FF  có ngõ ra 3 trạng thái được điều khiển chốt và xuất dữ liệu bằng chân G và OC. Trong ứng dụng này chân G được nối với chân ALE của 8051, chân OC nối mass.

_ là IC chốt 8 bit

_ Các bộ đệm ngõ ra 3 trạng thái

_ Tín hiệu điều khiển ngõ ra 3 trạng thái chung.

          *Xếp chồng các vùng nhớ chương trình và dữ liệu bên ngoài:

          Vì bộ nhớ chương trình là Rom nên xảy ra vấn đề bất tiện khi phát triển phần mềm cho 8051 là tổ chức bộ nhớ như thế nào để có thể sửa đổi chương trình và có thể ghi trở lại khi nó được chứa trong bộ nhớ Rom. Cách giải quyết là xếp chồng các vùng dữ liệu và chương trình. Một bộ nhớ Ram có thể chứa cả chương trình và dữ liệu bằng cách nối đường OE\ của Ram đến ngõ ra cổng AND có 2 ngõ vào là PSEN\ và RD\. Sơ đồ mạch như hình sau cho phép bộ nhớ Ram có 2 chức năng vừa là bộ nhớ chương trình vừa là bộ nhớ dữ liệu.

          Vậy 1 chương trình có thể được tải vào Ram (bằng cách ghi nó như bộ nhớ dữ liệu) và thi hành chương trình (bằng cách truy xuất nó như bộ nhớ chương trình)                 

  1. Khối hiển thị:

          a.Sơ đồ khối của mạch hiển thị:

          Bộ phận hiển thị gồm 8 led 7 đoạn anod chung. Vì các vi xử lí xử lí các dữ liệu là số nhị phân (1,0 ) nên cần có sự giãi mã từ số nhị phân sang số thập phân. Sự giải mã có thể dùng giải mã bằng phần cứng (IC giải mã). Tuy nhiên với phần mềm quét led người ta có thể giảm bớt được các IC giải mã giảm giá thành của mạch điện. Nhưng để kết nối với mạch hiển thị phải cần có IC giao tiếp vào ra vì các port của 8051 đã dùng cho mục đích khác. 8255 là IC giao tiếp vào ra song song thông dụng và có thể điều khiển được bằng phần mềm nên chúng em sử dụng 8255 để giao tiếp với các thiết bị ngoại vi (phần hiển thị…). Vì dòng ra các port  của 8255 rất nhỏ (lớn nhất là port A khoảng 5mA) nên cần có IC đệm dòng để nâng dòng lên đủ kéo cho led sáng. Chúng em chọn IC đệm 74245. Khi đưa dữ liệu ra để hiển thị tất cả các led đều nhận nhưng tại một thời điểm chỉ cho phép một led được nhận dữ liệu nên phải có mạch giải mã để chọn led.

Chúng em sử dụng IC giải mã 74LS138.Vì vậy sơ đồ khối của mạch hiển thị như sau:

          b. Giới thiệu về các linh kiện trong mạch     

          b1.Cổng xuất nhập 8255:

    Trong hệ thống Vi xử lý hay máy vi tính nếu chỉ giao tiếp với bộ nhớ trong ROM, RAM thì chưa đủ, máy tính còn phải giao tiếp với các thiết bị ngoại vi như bàn phím, màn hình, máy in, ... để con người có thể đối thoại được máy tính cũng như dùng máy tính để điều khiển các thiết bị khác. Để giao tiếp với nhiều thiết bị như vậy, máy tính có thể giao tiếp qua nhiều đường và giao tiếp với nhiều hình thức khác nhau như giao tiếp nối tiếp, giao tiếp song song.

Vì vậy vai trò của cổng xuất nhập 8255 để giao tiếp giữa máy tính với thiết bị ngoài là một điều cần thiết giúp máy có thể mở rộng khả năng làm việc.

  *Sơ đồ chân của 8255

                          Sơ đồ chân và sơ đồ logic

 

A1

A0

RD\

WR\

CS\

Hoạt động

L

L

L

H

L

Port A à Bus dữ liệu

L

H

L

H

L

Port Bà Bus dữ liệu

H

L

L

H

L

Port Cà Bus dữ liệu

L

L

H

L

L

Bus dữ liệu à Port A

L

H

H

L

L

Bus dữ liệu à Port B

H

L

H

L

L

Bus dữ liệu à Port C

H

H

H

L

L

Bus dữ liệu à Từ điều khiển

x

x

x

x

H

Bus dữ liệu ở trạng thái Hi-Z

H

H

L

H

L

Cấm

x

x

H

H

L

Bus dữ liệu ở trạng thái Hi-Z

 

 

          Tính linh hoạt của vi mạch thể hiện ở khả năng lập trình. Qua một thanh ghi điều khiển, người sử dụng xác định chế độ hoạt động và cổng nào cần được sử dụng như là lối vào hoặc lối ra. Các chân ra D0 4 D7 tạo nên bus dữ liệu hai chiều có độ rộng là 8 bit. 8255 được chọn bởi tín hiệu mức thấp ở ngõ vào chọn chíp CS\. Khi 8255 không được chọn, bộ đệm bus dữ liệu nối 8255 với hệ thống được thả nổi. Khi được chọn, các ngõ vào A0 và A1 được dùng để chọn thanh ghi điều khiển hoặc một trong các cổng vào/ra để trao đổi dữ liệu. Các hoạt động cơ bản của 8255 được tóm tắt trong bảng sau:

 
 

A1

A0

RD\

WR\

CS\

Hoạt động

L

L

L

H

L

Port A à Bus dữ liệu

L

H

L

H

L

Port Bà Bus dữ liệu

H

L

L

H

L

Port Cà Bus dữ liệu

L

L

H

L

L

Bus dữ liệu à Port A

L

H

H

L

L

Bus dữ liệu à Port B

H

L

H

L

L

Bus dữ liệu à Port C

H

H

H

L

L

Bus dữ liệu à Từ điều khiển

x

x

x

x

H

Bus dữ liệu ở trạng thái Hi-Z

H

H

L

H

L

Cấm

x

x

H

H

L

Bus dữ liệu ở trạng thái Hi-Z

 

 

 

 

 

 

 

 

 

 

 


        * Các trạng thái làm việc của 8255:

        Qua bảng trạng thái của 8255, ta thấy thanh ghi điều khiển đặt dưới địa chỉ bên trong là A1 = [1], A0 = [1]. Trong một chu kỳ ghi lên thanh ghi điều khiển, xác định cổng vào/ra cũng như chế độ hoạt động. Khi chân RESET ở mức [H], thanh ghi điều khiển sẽ được đặt lại và định nghĩa toàn bộ 24 đường dẫn như là các ngõ vào.Trạng thái này kéo dài tới khi chương trình ứng dụng viết từ điều khiển vào thanh ghi điều khiển để xác định chế độ làm việc của 8255.

Các cổng A, B, C được phân thành hai nhóm. Nhóm A gồm cổng A và nửa cao của cổng C, nhóm B gồm cổng B và nửa thấp còn lại của cổng C. Có 3 chế độ hoạt động khác nhau:

- Chế độ 0: vào/ra thông thường.

- Chế độ 1: chốt vào/ra.

- Chế độ 2: bus hai chiều.

Chế độ 0:

Từ điều khiển:

 

 
 

1

0

0

D4

D3

0

D1

D0

 

 

 


Chế độ 0 xác lập hai cổng 8 bit (A và B) và hai cổng 4 bit (nửa cao và nửa thấp của C). Bất kỳ cổng nào cũng có thể nhập hoặc xuất dữ liệu một cách độc lập tùy theo các bit D4, D3, D1 và D0. Có 24 = 16 khả năng vào/ra trong chế độ này

 

..........................

12. Chương trình con lưu số sản phẩm số hộp trong mỗi ca sản xuất:

Chương trình này lưu kết quả của mỗi ca sản xuất. Số hộp, số sản phẩm được lưu vào các ô nhớ từ 30H ® 53H. Xét nội dung ô nhớ 2EH, nếu nội dung ô nhớ 2EH = 1 và  sau khi đếm xong và băng chuyền báo hiệu ngưng đếm  thì nội dung ô nhớ 2EH trao cho thanh ghi A và lưu kết quả vào ca 1. Nếu ca sau cho phép hoạt động thì nội dung ô nhớ 2EH tăng lên 1 và tương tự đươc lưu vào ca tương ứng ( ca = ca trước + 1).

          13. Chương trình con cho phép xem số liệu của ca sản xuất:

Chương trình này xem kết quả của mỗi ca sản xuất, cụ thể  là xem nội dung số hộp số sản phẩm trong mỗi ca sản xuất. Ở đề tài này chúng em chỉ viết chương trình xem tối đa là 9 ca. Tức là khi muốn kiểm tra ca nào thì nhập cụ thể ca đó là ca thứ mấy thông qua bàn phím bằng cách nhấn một số. Trước đó số hộp, số sản phẩm  được lưu vào các ô nhớ từ 30H ® 53H. Khi ro-le băng chuyền đã ngưng hoạt động sau một ca nào đó nếu tiếp tục muốn nhập số liệu vào để đếm cho ca tiếp theo thì nhấn một phím bất kỳ khác phím E . Còn nếu nhấn phím E tức là cho phép xem số liệu của các ca, chỉ cần nhấn phím có loại trừ phím chức năng thì mã phím nhấn đó được lưu vào thanh ghi A. Nếu A bằng mấy thì sẽ đưa nội dung ô nhớ lưu số liệu ca đó ra bộ phận hiển thị. Và nếu muốn xem tiếp ca nào nữa thì cứ nhấn phím cho phép xem E rồi nhập số liệu vào.

Còn khi muốn lưu số ca nhiều hơn nữa như tối đa là từ 0 ®99 hay từ 0 ® 999 hay từ 0 ® 999 thì tương tự như trên chỉ khác là khi nhập số liệu vào thì gọi nhấn tối đa 2 số , 3số, hay 4 số thì chương trình nhập số lại giống như trong chương trình con nhập số sản phẩm và số hộp, và nhiều ca được lưu thì số ô nhớ cũng phải được tăng theo.

............................

B. CHƯƠNG TRÌNH HỆ THỐNG

 

         ;CHUONG TRINH DEM SAN PHAM VA DONG HOP

;-----------------KHAI BAO CAC BIEN HANG---------------------

                        CWR4 EQU    4003H ;CWR4

                        ROLE_BC      EQU    4000H ;PORTA4

                        CAMBIEN     EQU    4001H ;PORTB4

                        NGO_DP1      EQU    4002H ;PORTC4

                        CWR6 EQU    6003H ;CWR6

                        HIENTHI       EQU    6000H ;PORTA6

                        ROLE_DH     EQU    6001H ;PORTB6

                        CHONLED    EQU    6002H ;PORTC6

                        LED70            EQU    70H

                        LED71            EQU    71H

                        LED72            EQU    72H

                        LED73            EQU    73H

                        LED74            EQU    74H

                        LED75            EQU    75H

                        LED76            EQU    76H

                        LED77            EQU    77H

                        LUU_SPL       EQU    78H     ;Luu san pham (byte thap)

                        LUU_SPH      EQU    79H     ;Luu san pham (byte cao)

                        DEM_SPL      EQU    7AH    ;Dem san pham (byte thap)

                        DEM_SPH      EQU    7BH    ;Dem san pham (byte cao)                 

                        LUUHOPL     EQU    7CH

                        LUUHOPH    EQU    7DH

                        DEMHOPL    EQU    7EH

                        DEMHOPH    EQU    7FH

                        COUNT0        EQU    -10000

                        DELAY1        EQU    50

                        DELAY2        EQU    20

                        TOCDO1        EQU    9

                        COUNT1        EQU    -250

                        BLK                EQU    0FH

                        START            EQU    0CH

                        NO                  BIT      7DH

                        YES                BIT      7EH

                        LUU_CY        BIT      7FH

;-------------------------CHUONG TRINH CHINH-----------------

                        ORG               00H

                        LJMP              BAT_DAU0

                        ORG               1BH

                        LJMP              NGAT_T1

                        ORG               30H

BAT_DAU0:  MOV               R1,#LED77

                        MOV               R2,#TOCDO1

                        MOV               TMOD,#21H

                        MOV               TH1,#COUNT1

                        LCALL           KD_NV

                        SETB              TR1

                        SETB              ET1

                        SETB EA

BAT_DAU1:  MOV               2EH,#00H

                        MOV               30H,#00H

                        MOV               31H,#00H

                        MOV               32H,#00H

                        MOV               33H,#00H

                        MOV               34H,#00H

                        MOV               35H,#00H

                        MOV               36H,#00H

                        MOV               37H,#00H

                        MOV               38H,#00H

                        MOV               39H,#00H

                        MOV               3AH,#00H

                        MOV               3BH,#00H

                        MOV               3CH,#00H

                        MOV               3DH,#00H

                        MOV               3EH,#00H

                        MOV               3FH,#00H

                        MOV               40H,#00H

                        MOV               41H,#00H

                        MOV               42H,#00H

                        MOV               43H,#00H

                        MOV               44H,#00H

                        MOV               45H,#00H

                        MOV               46H,#00H

                        MOV               47H,#00H

                        MOV               48H,#00H

                        MOV               49H,#00H

                        MOV               4AH,#00H

                        MOV               4BH,#00H

                        MOV               4CH,#00H

                        MOV               4DH,#00H

                        MOV               4EH,#00H

                        MOV               4FH,#00H

                        MOV               50H,#00H

                        MOV               51H,#00H

                        MOV               52H,#00H

                        MOV               53H,#00H

                        MOV               54H,#00H

                        MOV               55H,#00H

                        MOV               56H,#00H

                        MOV               57H,#00H

BAT_DAU:    MOV               DEMHOPL,#00H

                        MOV               DEMHOPH,#00H

                        MOV               DEM_SPL,#00H

                        MOV               DEM_SPH,#00H

                        INC                 2EH

                        MOV               77H,2EH

                        MOV               76H,#BLK

                        MOV               75H,#BLK

                        MOV               74H,#BLK

                        MOV               73H,#BLK

                        MOV               72H,#BLK

                        MOV               71H,#0AH

                        MOV               70H,#10H

                        MOV               R4,#250

                        LCALL           DELAY

                        MOV               LED70,#0DH ;'N'

                        MOV               LED71,#0BH ;'H'

                        MOV               LED72,#0AH ;'A'

                        MOV               LED73,#0EH  ;'P'

 

..............................................

LỜI GIỚI THIỆU

 

     Trong quá trình hiện nay máy tính điện tử đã góp phần không nhỏ đối với sự phát triển xã hội. Do yêu cầu của con người ngày càng cao, các thế hệ máy tính đã liên tục phát triển không ngừng. Ngay trong giai đoạn đầu các thế hệ vi xử lý 8 bit được dùng là Z80,8085, sau đó là các hệ vi xử lý 16 bit như 8086, 8088…

Các hệ vi xử lý này đã góp phần quan trọng trong việc chương trình hóa các hoạt động của máy móc trong công nghiệp nhờ vào các phần mềm ứng dụng. Một khi trong công nghiệp đã ứng dụng nhiều vào vi xử lý thì các nhà chế tạo không bỏ lỡ cơ hội cho ra đời các họ vi điều khiển ngày càng tiến bộ hơn.

Vi điều khiển được sử dụng nhiều trong các thiết bị công nghiệp, trong máy giặt, trong điều khiển đèn giao thông, trong các đồ chơi giải trí…

Tại Việt nam việc chương trình hóa các hệ thống đang được áp dụng ngày càng nhiều trong các nhà máy công nghiệp.

Để tìm hiểu về vi điều khiển và tìm hiểu một ứng dụng cụ thể của nó nhóm chúng em xin thực hiện đề tài gồm hai phần chính:

     PHẦN1: Khảo sát vi điều khiển 8051, vi mạch giao tiếp ngoại vi 8255, cùng với bộ nhớ bán dẫn, cảm biến.

     PHẦN 2: Thiết kế và thi công mạch đếm sản phẩm dùng vi điều khiển 8051.

              Chương trình hệ thống và ứng dụng.

Nhờ có sự giúp đỡ của quý thầy cô và bạn bè, nhóm chúng em đã cố gắng thực hiện đề tài được giao nhưng do kiến thức và thời gian có hạn nên đề tài không thể tránh khỏi thiếu sót nên rất mong sự đóng góp của quý thầy cô và bạn bè.

                                                                                                                                           Sinh viên thực hiện

                                      

LỜI CẢM ƠN

 

          Trong quá trình bốn năm rưỡi học tại trường Đại học Sư phạm kỹ thuật TP.HCM. Chúng em đã được sự hướng dẫn tận tình của quí thầy cô về những kiến thức chuyên môn cũng như kiến thức trong cuộc sống. Từ những kiến thức nền tảng đó đã giúp chúng em hoàn thành tập luận văn tốt nghiệp trong thời gian cho phép.

Chúng em xin chân thành cảm ơn thầy cô trong khoa điện đã giảng dạy cho chúng em những kiến thức về chuyên môn và định hướng đi theo sự hiểu biết, khả năng của chúng em để chúng em thực hiện tốt luận văn tốt nghiệp và tạo điều kiện thuận lợi cho chúng em hoàn tất khóa học.

Chúng em xin chân thành cảm ơn thầy NGUYỄN VIỆT HÙNG và cô TRẦN THANH MAI đã tận tình giúp đỡ chúng em hoàn thành tập luận án này.

Chúng em xin chân thành cảm ơn anh BÙI ĐỨC MINH, NGUYỄN KIM HUY, cùng các bạn sinh viên đã tận tình giúp đỡ chúng em hoàn thành tốt mạch.

                                                              Sinh viên thực hiện

                               

DẪN NHẬP

            Hệ thống vi xử lý hay còn gọi là máy tính điện tử là thiết bị xử lý thông tin, điều khiển các thiết bị ngoài hay các thiết bị trong công nghiệp tự động.

Phần chính của máy tính là bộ xử lý trung tâm CPU (Central Processing Unit)  là nơi xảy ra các quá trình xử lý số liệu và điều khiển mọi hoạt động của máy tính. Người ta phân loại CPU dựa vào độ rộng Data bus như:

CPU 8 bit Z80A: Hãng Zilog

  1. : Hãng Motorola

                  8080/8085: Hãng Intel

CPU 16 bit 8086/8088: Hãng Intel

Vi xử lý là một hệ thống số dựa trên cơ sở linh kiện chủ yếu là bộ vi xử lý (CPU ). Tùy thuộc vào cấu trúc của bộ vi xử lý riêng biệt và phần điều khiển mà nó có thể bao gồm nhiều loại vi mạch. Dưới sự điều khiển bằng chương trình một bộ vi xử lý thực hiện các phép tính số học và logic, đồng thời tạo ra những tín hiệu điều khiển cho bộ nhớ và thiết bị vào ra.

Những mệnh lệnh này gọi là chương trình nguồn và được chứa trong bộ nhớ chỉ đọc (ROM)

Close