BAOCAO_ THIET KE MACH DEM SAN PHAM VÀ DIEU KHIEN DONG CO
Trang 1- Xuất phát từ yêu cầu thực tế cũng như mục đích của nhóm là muốn nghiên cứu và học tập đạt hiệu quả cao (lý thuyết gắn liền với thực tế).
- Xuất phát từ yêu cầu làm bài tập lớn.
=> Vì vậy tập thể nhóm muốn phát triển thêm ý tưởng là: Thiết kế mạch đếm sản phẩm và điều khiển động cơ Đây là ý tưởng theo đánh giá chủ quan của nhóm là có tính thực tế , có khả thi và có thể phát triển Tuy đề tài đưa ra là không mới nhưng cũng là khó khăn đối với những người mới học Chính vì vậy chúng em rất cần sự động viên và giúp đỡ của thầy để có thể thực hiện tốt đề tài này.
i s¥ §å KHèI Vµ NGUY£N lý HO¹T §éNG :
Trang 21 Khối xử lý:
Gồm cú IC89C51 và mạch dao động của nú.
IC 89C51 là một loại vi điều khiển trong họ 8051 với cấu trúc các thanh ghi , các bộ đệm và các bít cờ hoàn toàn đợc điều khiển bằng ch-ơng trình.
Chíp này có bộ nhớ RAM 2K rất thuận tiện cho các điều khiển cỡ lớn
Chơng trình viết cho IC này rất phong phú nh C, C++, Asembly , thậm chí cả những ngôn ngữ bậc cao nh Visual C++, Java, tuy nhiên để nạp vào bộ nhớ điều khiển chúng ta phải chuyển chơng trình viết từ các ngôn ngữ khác nhau sang file định dạng kiểu Hexa, rồi dùng bộ nạp để nạp.
Giới thiệu chung về chíp AT89C51
I Giới thiệu AT89C51
AT89C51 là một bộ vi xử lý 8 bit, loại CMOS, có tốc độ cao và công suất thấp với bộ nhớ Flash có thể lập trình đợc Nó đợc sản xuất với công nghệ bộ nhớ không bay hơi mật độ cao của hãng Atmel, và
Trang 3
Sơ đồ khối của AT89C51
Trang 4AT89C51 có các đặc trng cơ bản nh sau: 4 Kbyte Flash, 128 byte RAM, 32 đờng xuất nhập, hai bộ định thời/đếm 16-bit, một
cấu trúc ngắt hai mức u tiên và 5 nguyên nhân ngắt, một port nốitiếp song công, mạch dao động và tạo xung clock trên chip.
AT89C51 đợc thiết kế với logic tĩnh cho hoạt động có tần số giảm xuống 0 và hỗ trợ hai chế độ tiết kiệm năng lợng đợc lựa chọn bằng phần mềm Chế độ nghỉ dừng CPU trong khi vẫn cho phép RAM,
các bộ định thời/đếm, port nối tiếp và hệ thống ngắt tiếp tục hoạt
động Chế độ nguồn giảm duy trì nội dung của RAM nhng không
cho mạch dao động cung cấp xung clock nhằm vô hiệu hoá cáchoạt động khác của chip cho đến khi có reset cứng tiếp theo
I.1 Mô tả các chân
Các cấu hình chân ra của AT89C51
Trang 5Port 0 là port xuất nhập 8-bit hai chiều Port 0 còn đợc cấu
hình làm bus địa chỉ (byte thấp) và bus dữ liệu đa hợp trong khi
truy xuất bộ nhớ dữ liệu ngoài và bộ nhớ chơng trình ngoài Port 0
cũng nhận các byte mã trong khi lập trình cho Flash và xuất các byte mã trong khi kiểm tra chơng trình (Các điện trở kéo lên bên ngoài đợc cần đến trong khi kiểm tra chơng trình).
- Port 1(1-8)
Port 1 là port xuất nhập 8-bit hai chiều Port 1 cũng nhận
byte địa chỉ thấp trong thời gian lập trình cho Flash.
- Port 2 (21-28)
Port 2 là port xuất nhập 8-bit hai chiều Port 2 tạo ra các
byte cao của bus địa chỉ trong thời gian tìm nạp lệnh từ bộ nhớ ch-ơng trình ngoài và trong thời gian truy xuất bộ nhớ dữ liệu ngoài sử dụng các địa chỉ 16-bit Trong thời gian truy xuất bộ nhớ dữ liệu
ngoài sử dụng các địa chỉ 8-bit, Port 2 phát các nội dung của thanhghi chức năng đặc biệt P2 Port 2 cũng nhận các bít địa chỉ cao và
vài tín hiệu điều khiển trong thời gian lập trình cho Flash và kiểm tra chơng trình.
- Port 3 (10-17)
Port 3 là Port xuất nhập 8-bit hai chiều Port 3 cũng còn làm
các chức năng khác của AT89C51 Các chức năng này đợc liệt kê nh sau:
P3.0 RxD Ngõ vào Port nối tiếp P3.1 TxD Ngõ ra Port nối tiếp P3.2 INT0 Ngõ vào ngắt ngoài 0 P3.3 INT1 Ngõ vào ngắt ngoài 1
P3.4 T0 Ngõ vào bên ngoài của bộ định thời 1 P3.5 T1 Ngõ vào bên ngoài của bộ định thời 0 P3.6 WR Điều khiển ghi bộ nhớ dữ liệu ngoài P3.7 RD Điều khiển đọc bộ nhớ dữ liệu ngoài
Port 3 cũng nhận một vài tín hiệu điều khiển cho việc lập trình
Flash và kiểm tra chơng trình.
- RST (9)
Ngõ vào reset Mức cao trên chân này trong 2 chu kỳ máy trong khi bộ dao động đang hoat động sẽ reset AT89C51.
Trang 6Mạch reset tác động bằng tay và tự động reset khi khởi động máy
- ALE/PROG (30)
ALE laứ moọt xung ngoừ ra ủeồ choỏt byte thaỏp cuỷa ủũa chổ trong khi truy xuaỏt boọ nhụự ngoaứi Chaõn naứy cuừng laứm ngoừ vaứo xung laọp trỡnh (PROG) trong thụứi gian laọp trỡnh cho Flash.
Khi hoaùt ủoọng bỡnh thửụứng, xung ngoừ ra ALE luôn coự taàn soỏọ khoõng ủoồi laứ 1/6 taàn soỏ cuỷa maùch dao ủoọng, coự theồ ủửụùc duứng cho caực muùc ủớch ủũnh thụứi tửứ beõn ngoaứi vào taùo xung clock Tuy nhieõn, lửu yự laứ moọt xung ALE seừ bũ boỷ qua trong moói moọt chu kyứ truy xuaỏt boọ nhụự dửừ lieọu ngoaứi.
Khi caàn, hoaùt ủoọng ALE coự theồ ủửụùc voõ hieọu hoaự baống caựch set bit 0 cuỷa thanh ghi chửực naờng ủaởc bieọt coự ủũa chổ 8Eh Khi bit naứy ủửụùc set, ALE chổ tớch cửùc trong thụứi gan thửùc hieọn leọnh MOVX hoaởc MOVC Ngửụùc laùi, chaõn naứy seừ ủửụùc keựo leõn cao Vieọc set bit khoõng cho pheựp hoaùt ủoọng choỏt byte thaỏp cuỷa ủũa chổ seừ khoõng coự taực duùng neỏu boọ vi ủieàu khieồn ủang ụỷ cheỏ ủoọ thửùc thi chửụng trỡnh ngoaứi.
PSEN (Program Store Enable) laứ xung ủieàu khieồn truy xuaỏt boọ nhụự chửụng trỡnh ngoaứi Khi AT89C52 ủang thửùc thi chửụng trỡnh tửứ boọ nhụự chửụng trỡnh ngoaứi, PSENủửụùc kớch hoaùt hai laàn moói chu kyứ maựy, nhửng hai hoaùt ủoọng PSEN seừ bũ boỷ qua moói khi truy caọp boọ nhụự dửừ lieọu ngoaứi.
EA (External Access Enable) laứ chaõn cho pheựp truy xuaỏt boọ nhụự chửụng trỡnh ngoaứi (baột ủaàu tửứ ủũa chổ tửứ 0000H ủeỏn FFFFH).
EA = 0 cho pheựp truy xuaỏt boọ nhụự chửụng trỡnh ngoaứi, ng-ợc lại EA=1 seừ thửùc thi chửụng trỡnh beõn trong chip
RST
Trang 7Tuy nhieõn, lửu yự raống neỏu bit khoaự 1 (lock-bit 1) ủửụùc laọp trỡnh, EA seừ ủửụùc choỏt beõn trong khi reset.
Chaõn naứy cuừng nhaọn ủieọn aựp cho pheựp laọp trỡnh Vpp=12V khi laọp trỡnh Flash (khi ủoự điện aựp laọp trỡnh 12V ủửụùc choùn).
- XTAL1 vaứ XTAL2
XTAL1 vaứ XTAL2 laứ hai ngoừ vaứo vaứ ra cuỷa moọt boọ khueỏch
ủaùi ủaỷo cuỷa maùch dao ủoọng, ủửụùc caỏu hỡnh ủeồ duứng nhử moọt boọ dao ủoọng treõn chip.
Khoõng coự yeõu caàu naứo veà chu kyứ nhieọm vuù cuỷa tớn hieọu
xung clock beõn ngoaứi do tớn hieọu naứy phaỷi qua moọt flip-flop chiahai trửụực khi ủeỏn maùch taùo xung clock beõn trong, tuy nhieõn caực
chi tieỏt kyừ thuaọt veà thụứi gian mửực thaỏp vaứ mửực cao, ủieọn aựp cửùc tieồu vaứ cửùc ủaùi caàn phaỷi ủửụùc xem xeựt.
I.2 Các chế độ đặc biệt
I.2.1 Chế độ nghỉ
Trong cheỏ ủoọ nghổ, CPU tửù ủi vaứo traùng thaựi nguỷ trong khi
taỏt caỷ caực ngoaùi vi beõn trong chip vaón tớch cửùc Cheỏ ủoọ naứy ủửụùcủieàu khieồn bụỷi phaàn meàm Noọi dung cuỷa RAM treõn chip vaứ cuỷa
taỏt caỷ caực thanh ghi chửực naờng ủaởc bieọt vaón khoõng ủoồi trong khi thụứi gian toàn taùi cheỏ ủoọ naứy Cheỏ ủoọ nghổ coự theồ ủửụùc keỏt thuực
bụỷi moọt ngaột baỏt kyứ naứo ủửụùc pheựp hoaởc baống caựch reset cửựng.
Ta caàn lửu yự raống khi cheỏ ủoọ nghổ ủửụùc keỏt thuực bụỷi moọt
reset cửựng, chip vi ủieàu khieồn seừ tieỏp tuùc bỡnh thửụứng vieọc thửùc
thi chửụng trỡnh tửứ nụi chửụng trỡnh bũ taùm dửứng, trong voứng 2
chu kyứ maựy trửụực khi giaỷi thuaọt reset meàm nắm quyeàn ủieàu
ễÛ cheỏ ủoọ nghổ, phaàn cửựng treõn chip cấm truy xuaỏt RAMnoọi nhửng cho pheựp truy xuaỏt caực chaõn cuỷa caực port ẹeồ traựnh
Trang 8khaỷ naờng coự moọt thao taực ghi khoõng mong muoỏn ủeỏn moọt chaõn
port khi cheỏ ủoọ nghổ keỏt thuực baống reset, leọnh tieỏp theo yeõu caàu
cheỏ ủoọ nghổ khoõng neõn laứ leọnh ghi ủeỏn chaõn port hoaởc ủeỏn boọ
nhụự ngoaứi.
I.2.2 Chế độ nguồn giảm
Trong cheỏ ủoọ naứy, maùch dao ủoọng ngửứng hoaùt ủoọng vaứ leọnh yeõu caàu cheỏ ủoọ nguoàn giaỷm laứ leọnh sau cuứng ủửụùc thửùc thi.
RAM treõn chip vaứ caực thanh ghi chửực naờng ủaởc bieọt vaón duy trỡ
caực giaự trũ cuỷa chuựng cho ủeỏn khi cheỏ ủoọ nguoàn giaỷm keỏt thuực.
Chổ coự moọt caựch ra khoỷi cheỏ ủoọ nguoàn giaỷm, ủoự laứ reset cửựng.Vieọc reset seừ xaực ủũnh laùi caực thanh ghi chửực naờng ủaởc bieọtnhửng khoõng laứm thay ủoồi RAM treõn chip Vieọc reset khoõng neõnxaỷy ra (chaõn reset ụỷ mửực tớch cửùc) trửụực khi Vcc ủửụùc khoõi phuùc
laùi mửực ủieọn aựp bỡnh thửụứng vaứ phaỷi keựo daứi traùng thaựi tớch cửùc
cuỷa chaõn reset ủuỷ laõu ủeồ cho pheựp maùch dao ủoọng hoaùt ủoọng trụỷ
laùi vaứ ủaùt traùng thaựi oồn ủũnh.
Traùng thaựi cuỷa caực chaõn trong thụứi gian toàn taùi cheỏ ủoọ nghổ và cheỏ ủoọ nguoàn giaỷm ủửụùc cho trong baỷng sau:
Nghổ Beõn trong 1 1 Dửừ lieọu Dửừ lieọu Dửừ lieọu Dửừ lieọu Nghổ Beõn ngoaứi 1 1 Thaỷ noồi Dửừ lieọu Dửừ lieọu Dửừ lieọu
Nguoàn giaỷm
Beõn trong 0 0 Dửừ lieọu Dửừ lieọu Dửừ lieọu Dửừ lieọu Beõn ngoaứi 0 0 Thaỷ noồi Dửừ lieọu Dửừ lieọu Dửừ lieọu
I.3 Các bít khoá bộ nhớ chơng trình
Treõn chip coự ba bit khoaự, caực bớt naứy coự theồ khoõng cho
pheựp laọp trỡnh hoaởc cho pheựp laọp trỡnh, caực bit naứy cho ta theõm moọt soỏ ủaởc trửng nửừa cuỷa AT89C51 nhử sau.
Trang 9Khi bit khoá 1 LB1 được lập trình, mức logic ở chân EA
được lấy mẫu và được chốt trong khi reset Nếu việc cấp nguồncho chip không có công dụng reset, mạch chốt được khởi động
bằng một giá trị ngẫu nhiên và giá trị này được duy trì cho đến
khi có tác động reset Điều cần thiết là giá trị được chốt của EA
phải phù hợp vơi mức logic hiện hành ở chân này.
Các bit khóa chương trình Loại bảo vệ Chế
1 U U U Không có đặc trưng khóa chương trình 2 P U U Các lệnh MOVC được thực thi từ bộ
nhớ chương trình ngoài không được phép tìm nạp lệnh từ bộ nhớ nội, EA
được lấy mẫu và được chốt khi reset,
hơn nữa việc lập trình trên Flash bị cấm 3 P P U Như chế độ 2, cấm thêm việc kiểm tra
chương trình
4 P P P Như chế độ 3, cấm thêm việc thực thi chương trình ngoài
Tín hiệu lấy ra từ khối nhận biết sản phẩm và khối các cơng tắc và các thơng báo phụ được đưa vào IC theo chương trình đã được lập trình sẵn
Trong IC89C51 thanh ghi R0 lưu số kẹo định sẵn , thanh ghi R1 lưu số gĩi định sẵn ,thanh ghi R2 lưu số gĩi đang đếm ,số kẹo đang đếm lưu tại TL0.
IC hoạt động như một bộ đếm và khi nhận tín hiệu vào thì sẽ đếm tăng lên một cứ như thế mạch sẽ đếm được số sản phẩm và điều khiển động cơ như đã lập trình.
* Khối nguồn:
Cĩ hai nguồn cấp điện :
Nguồn cấp điện 5V cho IC89C51,khối nhận biết sản phẩm,khối hiển thị ,khối các cơng tắc và các thơng báo phụ
Trang 10Nguồn cấp điện 12V cho động cơ và bộ khuếch đại.
2 Khối nhận biết sản phẩm:
Để nhận biết tầng chúng em dùng SENSOR quang với kích thích là ánh sáng Tín hiệu nhận đợc sẽ so sánh với một mức điện áp định sẵn để đa ra tin hiệu số.
Trang 11t
Mạch bao gồm 2 điện trở ,1 diode phát , 1 diode thu , 1 biến trở và một bộ khuếch đại thuật toán làm việc như một Trigơ có sơ đồ nguyên lý như hình vẽ trên:
- Ta có thể điều chỉnh VR1 để V3 có một giá trị điện áp xác định phù hợp,bình thường D1 phát và D2 thu nhận tín hiệu D2 thông thì điện trở của nó giảm xuống làm cho V2 =0 lúc đó hiệu điện áp vào bộ khuếch đại thuật toán là:V3-V2=V3 ,vì bộ khuếch đại thuật toán làm việc như một Trigơ nên điện áp ra là Ura =80%Vcc
- Khi có một sản phẩm đi qua thì D2 không nhận được tín hiệu từ D1 phát nữa nên nó có điện trở rất lớn ,làm cho thế tại V2 tăng lên =>điện áp vào bộ khuếch đại thuật toán là V3-V2 (ta phải điều chỉnh VR1 = điện trở của D2 lúc không thông) =>V3-V2=0
=> Vậy là ta đã nhận được một đột biến điện áp (một sườn âm)kích cho 89C51 làm việc.
3 Khối hiển thị:
- Gồm 6 đèn LED 7 thanh để hiển thị số sản phẩm định trước và số sản phẩm đã đếm được.
- Trong khối này có các IC7447 là các IC giải mã lấy dữ liệu từ 89C51 và giải mã ra LED 7 thanh
- LED 7 thanh được dùng để hiển thị số sản phẩm định sẵn lấy ra từ các chân của cổng P1 , số sản phẩm định sẵn lấy ra từ 4 bít thấp của P2, số gói sản phẩm đếm được lấy ra từ 4 bít cao của P2, số sản phẩm đếm được lấy ra từ các chân của cổng P0 ( tất nhiên là đã qua 7447).
Trang 12- Vì tín hiệu ra từ IC89C51 quá nhỏ nên ta phải cho qua bộ khuếch đại tăng tín hiệu ra để điều khiển động cơ.
5 Khối nguồn:
Có hai nguồn cấp điện :
- Nguồn cấp điện 5V cho IC89C51,khối nhận biết sản phẩm,khối hiển thị ,khối các công tắc và các thông báo phụ.
- Nguồn cấp điện 12V cho động cơ và bộ khuếch đại II S¥ §å NGUY£N lý :
Trang 14ET1 bit 0xAB EX1 bit 0xAA ET0 bit 0xA9 EX0 bit 0xA8
Trang 15; Hien thi (so keo)/goi dinh san ra p1 MOV A,R0; Chuyen thanh ma BCD
Trang 16MOV A,R2 ; So goi dang duoc dem SWAP A ; Dua R2 ra 4 bit cao cua P2
MOV B,R1 ; So goi dinh truoc duoc dua ra 4 bit thap cua P2
Trang 17; So sanh TL0 voi thanh ghi R0
CJNE A,0,NEXT2 ; Neu khac nhay toi next2 ; neu bang, so sanh tiep voi 0
CJNE A,#0,NGAT1 ; Neu khac0 -> nhay toi ngat
CLR P3.6 ; Cho sang nua giay roi tat MOV TL0,#00H ; Xoa so keo dem ve 0 RET
JC END2; TL0<R0 THI RETURN
MOV A,TL0 ;TL0 >0 THI CHIA TL0 CHO R0, PHAN NGUYEN ( SO GOI) CONG THEM VAO SO GOI DEM DC, PHAN DU CONG VAO SO KEO DEM DC -> DOI PHO VOI TH TL0>R0
Trang 18CLR P3.5 ; NEU SO GOI DEM DC LON HON SO GOI DINH TRUOC THI TAT DONG CO
; SAU KHI NHAP SO HANG DON VI VAO R7, SO HANG CHUC VAO R6, GHEP 2 SO NAY THANH SO NHI PHAN CHI SO GOI TAI RO
MOV A,R6 MOV B,#10 MUL AB
Trang 20SO_SANH1: MOV A,TL0
CJNE A,0,NEXT23; SS TL0 VOI THANH GHI R0
CLR P3.5; TAT DONG CO NEU R2 =R1( SO GOI DEM= SO DINH
Trang 21MOV R1,#00H MOV R2,#00H MOV R6,#0 MOV R7,#0
MOV IE,#10000101B; KHOI DONG 2 NGAT NGOAI SETB IT0; CHON KICH SUON AM
SETB IT1; KHOI DONG BO DEM
MOV TMOD,#00000110B ; BO DEM 0, CHE DO 1
JNB P3.7,MAIN2; NEU P3.7 = 0 -> NHAY DEN CHE DO 2 ; NEU P3.7 =1 -> CHE DO DEM SAN PHAM
LJMP MAIN1; NHAY DEN CHE DO DEM SP ( CHE DO 1) KHI
; CHE DO DEM KHI P3.7 =1 ; KHOI DONG NGAT NGOAI
Trang 22JNB P3.1,TANG_SO_HANG_CHUC1 ;NEU P3.1 AN -> TANG SO HANG CHUC LEN 1
LCALL GH_hang_dvi; GIOI HAN HANG DON VI <10 LCALL GH_hang_chuc; GIOI HAN HANG CHUC <10 LCALL SSGGH; GIOI HAN HANG TRAM <100
LCALL GHEP_SO; GHEP HANG CHUC VA HANG DON VI THANH 1 SO NHI PHAN
LCALL HIENTHI; HIEN THI
LCALL GH_VA_DEM_R0_DEN_100
LCALL SO_SANH; SO SANH CAC SO DEM DC VOI SO DINH TRUOC, NEU DU THI TAT
Trang 23IV TµI liÖu tham kh¶o :
[1] NguyÔn T¨ng Cêng vµ Phan Quèc Th¾ng: CÊu tróc vµ lËp tr×nh hä vi
®iÒu khiÓn 8051, Nhµ xuÊt b¶n Khoa häc kü thuËt, Hµ Néi 2004.
[2] Tèng V¨n On vµ céng sù
[3] Ng« Diªn TËp: LËp tr×nh b»ng hîp ng÷, Nhµ xuÊt b¶n Khoa häc kü
thuËt, Hµ Néi 1998.
[4] V¨n ThÕ Minh: Kü thuËt vi xö lÝ, Nhµ xuÊt b¶n gi¸o dôc 1997
[5] TS §Æng V¨n ChuyÕt vµ céng sù : Gi¸o tr×nh kü thuËt m¹ch ®iÖn tö,
Nhµ xuÊt b¶n gi¸o dôc 2003.
[6] Huúnh §¾c Th¾ng : CÈm nang thùc hµnh vi m¹ch tuyÕn tÝnh, TTL/LS,
CMOS, Nhµ xuÊt b¶n Khoa häc kü thuËt, Hµ Néi 1994.
[7] NguyÔn Quang Hïng vµ TrÇn Ngäc B×nh: §éng c¬ bíc Kü thuËt ®iÒu
khiÓn vµ øng dông, Nhµ xuÊt b¶n Khoa häc kü thuËt, Hµ Néi 2003.
[8] Intel Semiconductors: Intel MCS-51 Microcontroller family user s’s
manual, Glence, Mc Graw Hill Publication, 1997.
[9] AT89c51 Datasheet, Atmel Corp…