LỜI MỞ ĐẦU 3
CHƯƠNG I : DẪN NHẬP 5
1.1. Đặt vấn đề 5
1.2. Chọn phương án thiết kế 6
1.2.1. Với mạch đếm sản phẩn dùng IC rời có: 6
1.2.2. Với mạch đếm sản phẩm dùng kĩ thuật vi xử lí: 6
1.2.3. Phương pháp đếm sản phẩm dùng vi điều khiển: 7
1.3. Mục đích yêu cầu của đề tài: 7
1.4. Giới hạn của đề tài: 7
1.5. Xây dựng sơ đồ khối tổng quát: 8
CHƯƠNG II: LÝ THUYẾT THIẾT KẾ 8
2.1. Các khối trong mạch điện 8
2.1.1. Cảm biến 8
2.1.2. Khối xử lí: 10
2.3. Khối hiển thị 25
2.3.1. Các khái niệm cơ bản 25
2.3.2. Kết nối với vi điều khiển 27
Chương III : THIẾT KẾ MẠCH VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN 31
3.1. Mạch điều khiển và nguyên lý hoạt động 31
3.1.1. Khởi động hệ thống 32
3.1.2. Động cơ 33
3.1.3. Khối nguồn 34
3.1.4. Khối xử lý 35
3.1.5. Khối hiển thị 36
3.1.6. Khối cảm biến 37
3.1.7. Khối Reset và tạo dao động
3.2. Thiết kế lưu đồ thuật toán 39
3.3. Chương trình điều khiển phân loại và đếm sản phẩm 40
CHƯƠNG IV: TỔNG KẾT 48
48 trang |
Chia sẻ: lethao | Lượt xem: 4180 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Thiết kế và chế tạo hệ thống băng tải phân loại và đếm sản phẩm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
bảo đảm sự an toàn, dễ sử dụng.
Giá thành không quá đắt.
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, kich 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.
Nhiêm vụ:
Thiết kế mô hình
Thiết kế phần cứng, lập lưu đồ thuật toán và viết chương trình điều khiển hệ thống đếm sản phẩm theo yêu cầu:
Có 2 loại sản phẩm
Hệ phân sản phẩm vào hai thùng chứa: Thùng Sp1 có 20 sản phẩm; Thùng Sp2 có 15 sản phẩm, quy trình được lặp đi lặp lại
Bảo vệ quá tải, ngắn mạch, thấp và cao áp.
Hiển thị số lượng sản phẩm đếm được trên led 7 thanh
Thuyết minh đầy đủ, trình bày khoa học.
Xây dựng sơ đồ khối tổng quát:
CHƯƠNG II: LÝ THUYẾT THIẾT KẾ
Các khối trong mạch điện
Cảm biến
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 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 với tần số phát như thế sẽ tạo 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 thu, phát hồng ngoại.
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,43V 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 được 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 mối nối lớn hơ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ự nghịch thì chỉ có dòng rỉ do sự di chuyển của 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 – ampe của led hồng ngoại như sau:
Khối xử lí:
Gồm có IC89C51 và mạch dao động của nó.
Giới thiệu bộ vi điều khiển AT89C51
IC vi điều khiển AT89C51 có các đặc điểm sau:
4k byte ROM
128 byte RAM cư trú bên trong và có thể mở rộng bộ nhơ ra ngoài.
2 bộ định thời 16 bit (Timer 0 và Timer1)
Mạch giao tiếp nối tiếp
Bộ xử lý bit
Hệ thống điều khiển và xử lý ngắt
Các kênh điều khiển/ dữ liệu/ địa chỉ
Các thanh ghi chức năng đặc biệt.
Sơ đồ khối họ vi điều khiển AT89C51
Phần chính của vi điều khiển AT89C51 là bộ xử lý trung tâm CPU (central processing unit) bao gồm:
Thanh ghi tích lũy A
Thanh ghi tích lũy phụ B, dùng cho phép nhân và phép chia
Đơn vị logic học ALU (Arithermetic logical unit )
Từ trạng thái chương trình PSW (Program Status Word )
Bốn băng thanh ghi
Con trỏ ngăn xếp
Ngoài ra còn có bộ nhớ chương trình bộ giải mã lệnh, bộ điều khiển thời gian và logic
Đơn vị xử lý trung tâm nhận trực tiếp xung từ bộ dao độ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ể 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 cugx 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 ( Porto, Port1, Port2, Port3 ) sử dụng vào mục đích điều khiển
Trong vi điều khiển AT89C51 có hai thành phần quan trọng khác là bộ nhớ và các thanh ghi.
Bộ nhớ gồm có bộ nhớ RAM và bộ nhớ ROM dùng để lưu trữ dữ liệu và mã lệnh. Các thanh ghi sử dụng để lưu trữ thông tin trong qua trình xử lý. Khi CPU làm việc nó làm thay đổi nội dung của các thanh ghi.
Sơ đồ chân tín hiệu của AT89C51
Chức năng của các chân AT89C51
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ó 2 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: là Port I/O trên các chân 1 đến 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 chung ta chỉ được dùng trong giao tiếp với các thiết bị ngoài.
Port2: là một Port công dụng kép tren các chân 21 đến 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: là một Port công dụng kép tên các chân 10 đến 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ính đặc biệt như bảng sau:
Bit
Tên
Chức năng chuyển đổi
P3.0
RXD
Dữ liệu nhận cho port nối tiếp
P3.1
TXD
Dữ liệu phát cho port nối tiếp
P3.2
INTO
Ngắt 0 bên ngoài
P3.3
INT1
Ngắt 1 bên ngoài
P3.4
TO
Ngõ vào của timer/counter0
P3.5
T1
Ngõ vào của timer/counter1
P3.6
WR
Xung ghi bộ nhớ dữ liệu ngoài
P3.7
RD
Xung ghi bộ nhớ dữ liệu ngoài
Chức năng của các chân trên Port3
PSEN ( progaram store enable ): 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 (Ouput Enable ) của một EPROM để cho phép đọc các byte 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 AT89C51 sẽ giải mã lệnh. Khi thi hành chương trình trong ROM nội ( AT89C51) sẽ ở mức thụ động (mức cao).
ALE ( Address Latch Enable ): tín hiệu ra ALE tê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 dùng ALE một cách tương tự cho làm việc giải các kênh, các bus địa chỉ và dữ liệu khi port0 được dùng trong chế đọ chuyển đổi của nó: vừa là bus dữ liệu và là bus thấp của địa chỉ. ALE là tín hiieeuj để chốt địa chỉ vào một thanh ghi bên ngoài trong nửa đầu của chu kỳ bộ nhớ. Sau đó, các đường port0 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/16 lần tần số dao động trên chíp và có thể được dùng là nguồn xung nhịp cho các hệ thống. Nếu xung trên AT89C51 là 12MHz thì ALE có tần số 2MHz. Chỉ trừ khi thi hành lệnh MOVX, một xung ALE bị mất. Chân này cũng được làm ngõ vào cho xung lập trình cho EPROM trong AT89C51.
EA ( External Acces): 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, AT89C51 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 .
SRT ( Reset): ngõ vào RST trên chân 9 là ngõ reset của AT89C51. Khi tín hiệu này được nối lên mức cao ( trong it nhất 2 chu ki máy ), các thanh ghi trong AT89C51 tải các giá trị thich 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 hinh trên, AT89C51 có một bộ dao động trên chip. Nó thường được nối với thạnh anh giữa hai chan 18 và 19. Các tụ giữ cũng cần thiết. Tần số thông thường là 12MHz.
Các chân nguồn: AT89C51 vận hành với nguồn đơn +5V, Vcc được nối vào chân 40 và Vss (GND ) được nối vào chân 20.
Tổ chức bộ nhớ
Bộ nhớ chương trình và bộ nhớ dữ liệu nội trú
Tất cả các bộ Flash Microcontrollers của Atmel dều tổ chức các vùng địa chỉ tách biệt đố với bộ nhớ chương trình và bộ nhớ dữ liệu, được mô tả ở hình dưới đây. Các vùng nhớ chương trình và dữ liệu tách biệt cho phép bộ nhớ dữ liệu được truy cập bởi địa chỉ 8 bit, có thể được lưu trữ với tốc độ cao và được vận hành bởi một bộ CPU 8 bit. Tuy nhiên, địa chỉ bộ nhớ dữ liệu 16 bit cũng có thể được tạo ra thông qua thanh ghi con trỏ dữ liệu (DPTR).
Bộ nhớ chương trình có thể chỉ được đọc. Chúng có thể là bộ nhớ chương trình 64 Kbyte có khả năng định địa chỉ trực tiếp. Để đọc được nội dung từ bộ nhớ chương trình ngoài cần xác định trạng thái phù hợp cho chân /PSEN.
Bộ nhớ dữ liệu chiếm một vùng địa chỉ riêng biệt so với bộ nhớ chương trình. 64Kbyte bộ nhớ ngoài có thể được định địa chỉ trực tiếp trong vùng bộ nhớ dữ liệu ngoài, CPU tạo ra tin hiệu đọc và ghi (/RD, /WR) để truy cập bộ nhớ dữ liệu ngoài.
Bộ nhớ chương trinh ngoài và bộ nhớ dữ liệu ngoài có thể được kết hợp bởi các tin hiệu /RD và /PSEN để đưa vào một cổng AND và sử dụng đầu ra của cổng này để đọc nội dung từ bộ nhớ dữ liệu/ chương trình ngoài.
AT89C51 có bộ nhớ dữ liệu chiếm một khoảng không gian bộ nhớ độc lập với bộ nhớ chương trình. Dung lương của RAM nội trú ở họ V ĐK này là 128 byte, được định địa chỉ từ 00h đến 7Fh.phạm vi địa chỉ từ 80h đến Ffhdanhf cho SFR. Tuy nhiên bộ V ĐK cũng có thể làm việc với RAM ngoại trú có dung lượng cực đại là 64 Kbyte được định địa chỉ từ 0000h đến FFFFh.
- Vùng nhớ 128 Byte thấp
Vùng nhớ 128 Byte thấp được định địa chỉ từ 00h đến 7Fh, được chia thành 3 vùng con như thể hiện ở hình 2.10
- Vùng nhớ thứ nhất có độ lớn 32 byte được định địa chỉ từ 00h đến 1Fh bao gồm 4 băng thanh ghi (băng 0 đến băng 3), mỗi băng có 8 thanh ghi 8 bit. Các thanh ghi trong mỗi băng có tên gọi từ R0 đến R7. Vùng RAM này được truy cập bằng địa chỉ trự tiếp mức byte, và quá trình chọn để sử dụng băng thanh ghi nào là tùy thuộc vào việc lựa chọn giá trị cho RS1 và RS0 trong PSW.
- Vùng thứ hai có độ lớn16 byte được định địa chỉ từ 20h đén 2Fh, cho phép truy cạp trực tiếp bằng địa chỉ mức bit. Bộ V ĐK cung cấp các lệnh có khả năng truy cập tới vùng nhớ 128 bit này (nếu truy cập ở dạng mức bit thì vùng này có địa chỉ được định từ 00h đến 7Fh) ở mức bit, ở vùng nhớ này địa chỉ được truy xuất dưới dạng byte hay bit tùy vào lệnh cụ thể. Chẳng hạn, để đặt bit tại địa chỉ 5Fh có mức logic 1, ta thực hiện lệnh: SETB 5Fh. Sau khi thực hiện lệnh này, mặc dầu 5Fh là địa chỉ mức cao nhát trong byte có địa chỉ 2Bh, nhưng nó không làm ảnh hưởng tới các bit khác trong byte này.
Đây là ưu điểm rõ nét của bộ V ĐK khi thực hiện việc truy xuất các bit riêng rẽ thông qua phần mềm. Các bit có thể được đặt, xóa hay thực hiện chức năng AND, OR… chỉ thông qua 1 lệnh. Ngoài ra các cổng xuất/ nhập cũng có thể được định địa chỉ dạng bit, điều này làm đơn giản việc giao tiếp bằng phần mềm với các thiết bị xuất/ nhập đơn bit.
Vùng nhớ còn lại gồm 80 byte có địa chỉ từ 30h đến 7Fh được dành riêng cho người sử dụng để lưu trữ dư liệu. Đây có thể là vùng RAM đa mục đích. Có thể truy cập vùng nhớ này bằng địa chỉ trực tiếp hoặc gián tiếp thông qua các thanh ghi (R0 hoặc R1) ở dạng mức byte.
Bộ nhớ chương trình ngoài và bộ nhớ dữ liệu ngoại trú
Bộ nhớ chương trình ngoại trú:
Bộ nhớ chương trình ngoài là bộ nhớ chỉ đọc, được cho phép bởi tín hiệu /PSEN. Khi có một EPROM ngoài việc sử dụng, cả P0 và P2 đều không còn là các cổng I/O nữa. Khi bộ V ĐK truy cập bộ nhớ chương trình ngoại trú, nó luôn sử dụng kênh địa chỉ 16 bit thông qua P0 và P2.
Một chu kì máy của bộ V ĐK có 12 chu kì dao động. Nếu bộ dao động trên chíp có tần số 12MHz, thì một chu kì máy dài . Trong một chu kì máy điển hình, ALE có hai xung và hai bytecuar lệnh được đọc từ bộ nhớ chương trình (nếu lệnh chỉ có một byte thì byte thứ hai được loại bỏ). Khi truy cập bộ nhớ chương trình ngoại trú bộ V ĐK phát ra hai xung chốt địa chỉ trong mỗi chu kì máy. Mỗi xung chốt tồn tại trong hai chu kì dao động từ P2- S1 đến P1- S2, và từ P2- S4 đến P1- S5.
Để địa chỉ hóa bộ nhớ chương trình ngoại trú, byte thấp của địa chỉ (A0…A7) từ bộ đếm chương trình của bộ V ĐK được xuất qua cổng P0 tại các trạng thái S2 và S5 của chu kì máy, byte cao của địa chỉ (A8 ....A15) từ bộ đếm chương trình được xuất qua cổng P2 trong khoảng thời gian của cả chu kì máy. Tiếp theo xung chốt, bộ V ĐK phát ra xung chọn /PSEN. Mỗi chu kì máy của chu kì lệnh gồm hai xung chọn, mỗi xung chọn tồn tại trong 3 chu kì dao động từ P1- S3 đến hết P1- S4 và từ P1- S6 đến hết P1- S1 của chu kì máy tiếp theo. Trong khoảng thời gian phát xung chọn thì byte mã lệnh được đọc từ bộ nhớ chương trình để nhập và on chip.
Bộ nhớ dữ liệu ngoại trú
Bộ nhớ dữ liệu ngoại trú được cho phép bởi các tín hiệu /WR và /RD ở các chân P3.6 và P3.7. V ĐK truy cập bộ nhớ dữ liệu ngoài bằng địa chỉ hai byte ( thông qua cổng P0 và P2) hoặc 1 byte ( thông qua cổng P0).
Từ sơ đồ trên ta thấy:
/EA được nối với +Vcc để cho phép vi điều khiển với bộ nhớ chương trình nội trú
/RD nối với đường cho phép xuất dữ liệu (/OE_ Output data Enable) của Ram.
/WR nối với đường cho phép ghi dữ liệu (/WE_Write datab Enable) của Ram.
Nguyên lý truy cập bộ nhớ dữ liệu ngoại trú được thể hiện bằng các đồ thị thời gian. Tuy nhiên, tùy thuộc vào nhiệm vụ đọc dữ liệu từ bộ nhớ hay ghi dư liệu vào bộ nhớ mà nguyên lý truy cập bộ nhớ dữ liệu là khác nhau.
Quá trình đọc dữ liệu ngoại trú, bộ vi điều khiển phát ra một xung chốt địa chỉ (ALE) cho chốt bên ngoài (LATCH) trong mỗi chu kỳ máy, tồn tại trong 2 chu kỳ dao động từ P2_S4 đến P1- S5. Để địa chỉ hóa bộ nhớduwx liệu ngoài, byte thấp của địa chỉ từ thanh ghi con trỏ (DPL) hoặc Ri của VĐK được xuất qua cổng P0 trong khoảng các trạng thái S5 của chu kì máy trong chu kì lẹnh. Tiếp theo byte thấp của địa chỉ từ bộ nhớ chương trình (PCL) cũng được xuất qua cổng P0 đua tới bộ đếm chương trình để thực hiện lệnh tiếp theo. Byte cao của địa chỉ từ DPTR (DPH) của VĐK được xuất qua cổng P@ trong khoảng thời gian từ S5 đến S4 của chu kì máy tiếp theo. Sau đó byte cao của địa chỉ từ PC (PCH) cũng được xuất qua cổng P2 để đưa đến bộ đếm chương trình. Nếu địa chỉ có độ dài 1 byte thì nó được xuất qua cổng P0 từ DPL hoặc Ri. Tiếp theo xung chốt, VĐK xuất ra tín hiệu điều khiển /RD để cho phép đọc dữ liệu từ bộ nhớ ngoài. Xung /RD tồn tại trong 3 trạng thái của mỗi chu kì máy từ P1- S1 đến P2- S3, và trong khoảng thời gian này dữ liệu từ bộ nhớ ngoài được đọc vào VĐK.
Quá trình ghi dữ liệu vào bộ nhớ ngoài trú:
Tương tự như qua trình đọc dữ liệu, nhưng ở đây chúng ta dùng tin hiệu điều khiển ghi /WR.
Các thanh ghi chức năng đặc biệt
Các thanh ghi nội trú của AT89C51 được truy xuất ngầm định bởi bộ lệnh. Ví dụ lệnh “ INC A ” sẽ tăng nội dung thanh ghi tích lũy A lên 1 đơn vị. Tác động này được ngầm định trong mã lệnh.
Các thanh ghi trong AT89C51 đượ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 chung vào trong RAM trên chip). Đó là lý do để AT89C51 có nhiều thanh ghi. Cũng như R0 đến R7, có 21 thanh ghi chức năng đặc biệt ở vùng trên của RAM nội từ địa chỉ 80h đến FFh. Chú ý rằng hầu hết đị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ừ thanh ghi tích lũy A có thể 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ỉhoas bit hoặc byte. Người thiết kế phải thạn trọng khi truy xuất bit va byte.
Hoạt động của bộ định thời (Timer)
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 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ịp phân trong các flip – flop của timer có thể xem như số đếm số xung nhịp từ khi khởi động timer. Vi 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.
AT89C51 có 2 timer 16 bit, mỗi timer có 4 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 hoặc tạo tốc độ baud cho port nối tiếp trong AT89C51.
Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở một khoang đề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.
Đế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 AT89C51. Các timer cũng có thể cung cấp xung nhịp tốc độ baud cho port nối tiếp trong AT89C51.
Truy xuất timer của AT89C51 dùng 6 thanh ghi chức năng đặc biệt cho trong bảng sau:
STR
Mục đích
Địa chỉ
TCON
Điều khiển timer
88h
TMOD
Chế độ timer
89h
TL0
Byte thấp của timer 0
8Ah
TL1
Byte thấp của timer 1
8Bh
TH0
Byte cao của timer 0
8Ch
TH1
Byte cao của timer 1
8Dh
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ế độ counter/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ế độ
3
GATE
0
Bit (mở) cổng
2
C/T
0
Bit chọn chế độ counter/timer
1
M1
0
Bit 1 của chế độ
0
M0
0
Bit 0 của chế độ
Hoạt động của ngắt
Ngắt là hoạt động ngừng tạm thời một chương trình này để thi hành một chương trịnh khác. Các ngắt có một vai trò quan trọng trong thiết kế và khả năng thực thi của vi điều khiển. Chúng cho phép hẹ thống đáp ứng không cùng lúc tới một công việc và giải quyết một công việc đó trong khi một chương trình khác đang thực thi.
Một hệ thống được điều khiển bằng ngắt cho ảo giác là làm nhiều việc đồng thời . dĩ nhiên CPU mỗi lần không thể thực thi một chương trình để thực thi một chương trình khác, rồi quay vê chương trình ban đầu. Chương trình giải quyết ngắt được gọi là chương trình phục vụ ngắt.
Tổ chức ngắt
Ở AT89C51 có 5 nguồn ngắt:
2 ngắt ngoài
2 ngắt timer
1 ngắt port nối tiếp
Tất cả các ngắt sẽ không được đặt sau khi reset hệ thống và cho phép ngắt riêng rẽ bởi phần mềm.
Cho phép và không cho phép ngắt.
Mỗi nguông ngắt được cho phép hoặc không cho phép từng ngắt một qua thanh ghi chức năng đặc biệt cố định địa chỉ IE (Intereup Enable): cho phép ngắt ở địa chỉ A8h. Cũng như các bit cho phép mỗi nguồn ngắt, có một bit cho phép hoặc cấm toàn bộ được xóa để cấm tất cả ngắt hoặc được đặt lên 1 để cho phép tất cả các ngắt
Bit
Ký hiệu
Địa chỉ
Mô tả (1= cho phep, 0 = cấm)
IE.7
EA
AFh
Cho phép hoặc cấm toàn bộ
IE.6
EA
AEh
Không được định nghĩa
IE.5
ET5
ADh
Cho phép ngắt từ timer 2 (8052)
IE.4
E5
ACh
Cho phép ngắt 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
Ưu tiên ngắt
Mỗi nguồn ngắt được lập trình riêng vào một trong hai mức ưu tiên qua thanh ghi chức năng đặc biệt được địa chỉ bit IP (Interrup Pritority: ưu tiên ngắt) ở địa chỉ B8h
Bit
Ký hiệu
Địa chỉ
Mô tả (1 = cho phép, 0= cấm)
IP.7
Không được định nghĩa
IP.6
Không được định nghĩa
IP.5
PT2
BDh
Ưu tiên ngắt từ timer 2 (8052)
IP.4
PS
BCh
Ưu tiên ngắt nối tiếp
IP.3
PT1
BBh
Ưu tiên ngắt từ timer 1
IP.2
PX1
BAh
Ưu tiên ngắt ngoài 1
IP.1
PT0
B9h
Ưu tiên ngắt từ tỉmer 0
IP.0
PX0
B8h
Ưu tiên ngắt ngoài 0
Tóm tắt thanh ghi IP
Các ngắt ưu tiên được xóa sau khi reset hệ thống để đặt tất cả các ngắt ở mức ưu tiên thấp hơn.
Xử lý ngắt
Khi có một ngắt xảy ra và được CPU chấp nhận, chương trình chính bị ngắt quãng. Những hoạt động sau xảy ra:
Thi hành lệnh hoàn chỉnh lệnh đang thi hành
Các DC vào ngăn xếp
Trạng thái ngắt hiện hành được cất bên trong
Các ngắt được chặn tại mức của ngắt
Nạp DC vào địa chỉ vector ISR
ISR thực thi:
ISR thực thi và đáp ứng ngắt. ISR hoàn tất bằng lệnh RETI. Điều này làm lấy lại giá trị cũ của PC từ ngăn xếp và lấy lại trạng thái ngắt cũ. Chương trình lại tiếp tục thi hành tại nơi mà nó dừng.
Khối hiển thị
Các khái niệm cơ bản
Trong các thiết bị, để báo trạng thái hoạt động của thiết bị đó cho người sử dụng với thông số chỉ là các dãy số đơn thuần, thường người ta sử dụng "led 7 đoạn". Led 7 đoạn được sử dụng khi các dãy số không đòi hỏi quá phức tạp, chỉ cần hiện thị số là đủ, chẳng hạn led 7 đoạn được dùng để hiển thị nhiệt độ phòng, trong các đồng hồ treo tường bằng điện tử, hiển thị số lượng sản phẩm được kiểm tra sau một công đoạn nào đó...
Led 7 đoạn có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theo hình và có thêm một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên phải của led 7 đoạn. 8 led đơn trên led 7 đoạn có Anode(cực +) hoặc Cathode(cực -) được nối chung với nhau vào một điểm, được đưa chân ra ngoài để kết nối với mạch điện. 8 cực còn lại trên mỗi led đơn được đưa thành 8 chân riêng, cũng được đưa ra ngoài để kết nối với mạch điện.
Led 7 đoạn có 2 loại:
Anode (cực +) chung: đầu (+) chung này được nối với +Vcc, các chân còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 0.
Cathode (cực -) chung: đầu( -) chung được nối xuống Ground (hay Mass), các chân còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 1.
Hiển thị LED 7 thanh là phần tử hiển thị thông dụng, để hiển thị các phần tử số từ 0 đến 9 trong một số hệ thập phân. Nó gồm 7 thanh xếp thành hình số 8, mỗi thanh là một diode ( LED ) phát quang hoặc hiển thị tinh thể lỏng. Điode thưòng được cấu tạo từ các chất Ga, As, P …nó cũng có tính chất chỉnh lưu như diode thường. Nhưng khi điện áp thuận đạt nên diode vượt quá mức ngưỡng Ung nào đó thì diode sáng. Điện áp ngưỡng thay đổi từ 1,5 đến 5 v tuỳ theo từng loại có màu sắc khác nhau.
LED màu đỏ có điện áp ngưỡng Ung = 1,6 đến 2 v
LED màu cam có điện áp ngưỡng Ung = 2,2 đến 3 v
LED màu xanh lá cây có điện áp ngưỡng Ung = 2,8 đến 3,2 v
LED màu vàng có điện áp ngưỡng Ung = 2,4 đến3, 2 v
LED màu xanh ra trời có điện áp ngưỡng Ung = 3 đến 5 v
Thiết kế bộ giải mã hiển thị cho LED 7 thanh với tín hiệu đầu vào là mã BCD
Dạng chỉ thị led 7 đoạn:
Vì led 7 đoạn chứa bên trong nó các led đơn, do đó khi kết nối cần đảm bảo dòng qua mỗi led đơn trong khoảng 10mA-20mA để bảo vệ led. Nếu kết nối với nguồn 5V có thể hạn dòng bằng điện trở 330Ω trước các chân nhận tín hiệu điều hiển.
Các điện trở 330Ω là các điện trở bên ngoài được kết nối để giới hạn dòng điện qua led nếu led 7 đoạn được nối với nguồn 5V.
Chân nhận tín hiệu a điều khiển led a sáng tắt, ngõ vào b để điều khiển led b. Tương tự với các chân và các led còn lại.
Kết nối với vi điều khiển
Ngõ nhận tín hiệu điều khiển của led 7 đoạn có 8 đường, vì vậy có thể dùng 1 Port nào đó của Vi điều khiển để điều khiển led 7 đoạn. Như vậy led 7 đoạn nhận một dữ liệu 8 bit từ Vi điều khiển để điều
Các file đính kèm theo tài liệu này:
- Thiết kế và chế tạo hệ thống băng tải phân loại và đếm sản phẩm.doc