BAOCAO_ THIET KE MACH DEM SAN PHAM VÀ DIEU KHIEN DONG CO
Trang 1B¸o c¸o BµI tËp lín Vi xö lÝ
Giáo viên hướng dẫn: Phạm Ngọc Nam
- 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 đánhgiá chủ quan của nhóm là có tính thực tế , có khả thi và có thể pháttriển Tuy đề tài đưa ra là không mới nhưng cũng là khó khăn đối vớinhữ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-
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à t-
Khối hiển thị
Động cơ
Phớm chứcnăng
Bộ khuếch đại
Trang 3
Sơ đồ khối của AT89C51
Trang 4AT89C51 có các đặc trng cơ bản nh sau: 4 Kbyte Flash, 128byte 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ối tiế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ảmxuống 0 và hỗ trợ hai chế độ tiết kiệm năng lợng đợc lựa chọn bằngphầ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ác hoạ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ácbyte mã trong khi kiểm tra chơng trình (Các điện trở kéo lên bênngoà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 thanh ghi 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ểmtra 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 1P3.5 T1 Ngõ vào bên ngoài của bộ định thời 0P3.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ứoxung 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ứngcho 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 truyxuaỏt boọ nhụự chửụng trỡnh ngoaứi Khi AT89C52 ủang thửùc thichửụng trỡnh tửứ boọ nhụự chửụng trỡnh ngoaứi, PSENủửụùc kớch hoaùthai laàn moói chu kyứ maựy, nhửng hai hoaùt ủoọng PSEN seừ bũ boỷ quamoói khi truy caọp boọ nhụự dửừ lieọu ngoaứi
EA (External Access Enable) laứ chaõn cho pheựp truy xuaỏtboọ nhụự chửụng trỡnh ngoaứi (baột ủaàu tửứ ủũa chổ tửứ 0000H ủeỏnFFFFH)
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ọptrỡ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=12Vkhi 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 chia hai 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ửùctieồ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 khithụứ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
khieồn
ễÛ cheỏ ủoọ nghổ, phaàn cửựng treõn chip cấm truy xuaỏt RAM noọ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ọt
nhửng khoõng laứm thay ủoồi RAM treõn chip Vieọc reset khoõng neõn
xaỷ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:
PSE
Nghổ Beõn trong 1 1 Dửừ lieọu Dửừ lieọu Dửừ lieọu Dửừ lieọuNghổ Beõn ngoaứi 1 1 Thaỷ noồi Dửừ lieọu Dửừ lieọu Dửừ lieọuNguoàn
giaỷm
Beõn trong 0 0 Dửừ lieọu Dửừ lieọu Dửừ lieọu Dửừ lieọuBeõ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ồn
cho 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 đượcphé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ố
+
-U 1 A
L M 3 2 4
3 2
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 địnhphù hợp,bình thường D1 phát và D2 thu nhận tín hiệu D2 thông thì điệntrở 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ỉnhVR1 = đ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íchcho 89C51 làm việc
Trang 124 5 3
1 0 9
u 4
S N 7 4 4 7
7 2
4 5 3
1 0 9
l e d 5
2 9 6 5
.
4 5 3
1 0 9
4 5 3
1 0 9
a
g
d c e
l e d 4
2 9 6 5
.
u 2
S N 7 4 4 7
7 2
4 5 3
1 0 9
l e d 6
2 9 6 5
.
4 5 3
1 0 9
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ốihiể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 134 2
U 1 8
1 2 3
4 2
+ -
U 1 7 A
L M 3 2 4 3 2 1
Q 2
7 8 0 5 2
1
4 7 u F
4 2
1 6
1 5 2
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
NEXT2:
JC END2; TL0<R0 THI RETURN
MOV A,TL0 ;TL0 >0 THI CHIA TL0 CHO R0, PHAN NGUYEN ( SOGOI) CONG THEM VAO SO GOI DEM DC, PHAN DU CONG VAO
SO KEO DEM DC -> DOI PHO VOI TH TL0>R0
Trang 18MOV A,R6
MOV B,#10
MUL AB
Trang 20MOV 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 DINHTRUOC)
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) KHIP3.7=1(MAC DINH)
; CHE DO DEM KHI P3.7 =1
; KHOI DONG NGAT NGOAI
Trang 22LCALL 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
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…