Đề tµi: Thiết kế mạch đếm sản phẩm và điều khiển động cơ Mục đích : - 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. 1 i. sƠ Đồ KHốI Và NGUYÊN lý HOạT ĐộNG : 1. Khi x lý: Gm cú IC89C51 v mch dao ng ca 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à t- ơng thích với họ MCS-51 TM về chân ra và tập lệnh. 2 Ngun 5V Ngun 12V Khi nhn bit sn phm Khi x lý IC89C51 Khi hin th ng c Phớm chc nng B khuch i S¬ ®å khèi cña AT89C51 3 AT89C51 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ố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ảm xuống 0 va 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á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 4 Nh vậy AT89C51 có tất cả 40 chân với các chức năng nh sau: - Vcc (40) Chân cung cấp điện (5V) - GND (20) Chân nối đất (0V) - Port 0 (32-39) Port 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 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ể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: Chân Tên Chức năng 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. 5 - 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. M¹ch reset t¸c ®éng b»ng tay vµ tù ®éng reset khi khëi ®éng m¸y - ALE/ PROG (30) ALE là một xung ngõ ra để chốt byte thấp của đòa chỉ trong khi truy xuất bộ nhớ ngoài. Chân này cũng làm ngõ vào xung lập trình ( PROG ) trong thời gian lập trình cho Flash. Khi hoạt động bình thường, xung ngõ ra ALE lu«n có tần sốä không đổi là 1/6 tần số của mạch dao động, có thể được dùng cho các mục đích đònh thời từ bên ngoài vào tạo xung clock. Tuy nhiên, lưu ý là một xung ALE sẽ bò bỏ qua trong mỗi một chu kỳ truy xuất bộ nhớ dữ liệu ngoài. Khi cần, hoạt động ALE có thể được vô hiệu hoá bằng cách set bit 0 của thanh ghi chức năng đặc biệt có đòa chỉ 8Eh. Khi bit này được set, ALE chỉ tích cực trong thời gan thực hiện lệnh MOVX hoặc MOVC. Ngược lại, chân này sẽ được kéo lên cao. Việc set bit không cho phép hoạt động chốt byte thấp của đòa chỉ sẽ không có tác dụng nếu bộ vi điều khiển đang ở chế độ thực thi chương trình ngoài. - PSEN (29) PSEN (Program Store Enable) là xung điều khiển truy xuất bộ nhớ chương trình ngoài. Khi AT89C52 đang thực thi chương trình từ bộ nhớ chương trình ngoài, PSEN được kích hoạt hai lần mỗi chu kỳ máy, nhưng hai hoạt động PSEN sẽ bò bỏ qua mỗi khi truy cập bộ nhớ dữ liệu ngoài. - EA /Vpp (31) 6 RST EA (External Access Enable) là chân cho phép truy xuất bộ nhớ chương trình ngoài (bắt đầu từ đòa chỉ từ 0000H đến FFFFH). EA = 0 cho phép truy xuất bộ nhớ chương trình ngoài, ng- ỵc l¹i EA =1 sẽ thực thi chương trình bên trong chip Tuy nhiên, lưu ý rằng nếu bit khoá 1 (lock-bit 1) được lập trình, EA sẽ được chốt bên trong khi reset. Chân này cũng nhận điện áp cho phép lập trình Vpp=12V khi lập trình Flash (khi đó ®iƯn áp lập trình 12V được chọn). - XTAL1 và XTAL2 XTAL1 và XTAL2 là hai ngõ vào và ra của một bộ khuếch đại đảo của mạch dao động, được cấu hình để dùng như một bộ dao động trên chip. Không có yêu cầu nào về chu kỳ nhiệm vụ của tín hiệu xung clock bên ngoài do tín hiệu này phải qua một flip-flop chia hai trước khi đến mạch tạo xung clock bên trong, tuy nhiên các chi tiết kỹ thuật về thời gian mức thấp và mức cao, điện áp cực tiểu và cực đại cần phải được xem xét. I.2 C¸c chÕ ®é ®Ỉc biƯt I.2.1 ChÕ ®é nghØ Trong chế độ nghỉ, CPU tự đi vào trạng thái ngủ trong khi tất cả các ngoại vi bên trong chip vẫn tích cực. Chế độ này được điều khiển bởi phần mềm. Nội dung của RAM trên chip và của tất cả các thanh ghi chức năng đặc biệt vẫn không đổi trong khi thời gian tồn tại chế độ này. Chế độ nghỉ có thể được kết thúc bởi một ngắt bất kỳ nào được phép hoặc bằng cách reset cứng. Ta cần lưu ý rằng khi chế độ nghỉ được kết thúc bởi một reset cứng, chip vi điều khiển sẽ tiếp tục bình thường việc thực 7 thi chương trình từ nơi chương trình bò tạm dừng, trong vòng 2 chu kỳ máy trước khi giải thuật reset mềm nắm quyền điều khiển. Ở chế độ nghỉ, phần cứng trên chip cấm truy xuất RAM nội nhưng cho phép truy xuất các chân của các port. Để tránh khả năng có một thao tác ghi không mong muốn đến một chân port khi chế độ nghỉ kết thúc bằng reset, lệnh tiếp theo yêu cầu chế độ nghỉ không nên là lệnh ghi đến chân port hoặc đến bộ nhớ ngoài. I.2.2 ChÕ ®é ngn gi¶m Trong chế độ này, mạch dao động ngừng hoạt động và lệnh yêu cầu chế độ nguồn giảm là lệnh sau cùng được thực thi. RAM trên chip và các thanh ghi chức năng đặc biệt vẫn duy trì các giá trò của chúng cho đến khi chế độ nguồn giảm kết thúc. Chỉ có một cách ra khỏi chế độ nguồn giảm, đó là reset cứng. Việc reset sẽ xác đònh lại các thanh ghi chức năng đặc biệt nhưng không làm thay đổi RAM trên chip. Việc reset không nên xảy ra (chân reset ở mức tích cực) trước khi Vcc được khôi phục lại mức điện áp bình thường và phải kéo dài trạng thái tích cực của chân reset đủ lâu để cho phép mạch dao động hoạt động trở lại và đạt trạng thái ổn đònh. Trạng thái của các chân trong thời gian tồn tại chế độ nghỉ và chế độ nguồn giảm được cho trong bảng sau: Chế độ Bộ nhớ Chương trình ALE PSE N PORT O PORT 1 PORT 2 PORT 3 Nghỉ Bên trong 1 1 Dữ liệu Dữ liệu Dữ liệu Dữ liệu Nghỉ Bên ngoài 1 1 Thả nổi Dữ liệu Dữ liệu Dữ liệu Nguồn Bên trong 0 0 Dữ liệu Dữ liệu Dữ liệu Dữ liệu Bên ngoài 0 0 Thả nổi Dữ liệu Dữ liệu Dữ liệu 8 I.3 C¸c bÝt kho¸ bé nhí ch¬ng tr×nh Trên chip có ba bit khoá, các bít này có thể không cho phép lập trình hoặc cho phép lập trình, các bit này cho ta thêm một số đặc trưng nữa của AT89C51 như sau. Khi 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ế độ LB1 LB2 LB3 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. 9 * Khi ngun: Cú hai ngun cp in : Ngun cp in 5V cho IC89C51,khi nhn bit sn phm,khi hin th ,khi cỏc cụng tc v cỏc thụng bỏo ph Ngun cp in 12V cho ng c v b khuch i. 2. Khi nhn bit sn phm: Để 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 1 41 1 D 2 L E D J 1 S O U R C E 1 R 2 R 0 D 1 L E D R 3 R E S I S T O R V A R R 1 R Vra 10 [...]... SN 74 47 le d 4 2 1 9 7 6 4 5 4 5 3 16 10 b f a 4 5 3 16 5V 12V D P J5 8 u5 10 9 15 13 12 11 14 D E F A B C G a a 10 4 5 3 16 le d 5 2 1 9 7 6 4 5 12V 0 1 2 3 7 1 2 6 1 2 3 4 7 1 2 6 1 2 3 4 SN 74 47 4 5 3 16 5V D D D D G N D B I/R B O R BI LT VC C SN 74 47 Vcc 3 1 2 3 4 8 8 G N D 7 1 2 6 B I/R B O R BI LT VC C f D P 0 1 2 3 f b e g 10 D D D D b D E F A B C G e 10 9 15 13 12 11 14 g 8 R 5 4 ,7. .. Gm 6 ốn LED 7 thanh hin th s sn phm nh trc v s sn phm ó m c - Trong khi ny cú cỏc IC74 47 l cỏc IC gii mó ly d liu t 89C51 v gii mó ra LED 7 thanh - LED 7 thanh c dựng hin th s sn phm nh sn ly ra t cỏc chõn ca cng P1 , s sn phm nh sn ly ra t 4 bớt thp ca P2, s gúi sn phm m c ly ra t 4 bớt cao ca P2, s sn phm m c ly ra t cỏc chõn ca cng P0 ( tt nhiờn l ó qua 74 47) 11 12V U 50 12V 2 1 1 L M 7 8 0 5... 12 11 14 g 8 R 5 4 ,7 k J2 c le d 2 2 1 9 7 6 4 5 u2 d d c 3 R 2 4 ,7 k Vcc 1 2 3 4 SN 74 47 5V 12V 7 1 2 6 0 1 2 3 B I/R B O R BI LT VC C 1 2 3 4 8 3 8 G N D 7 1 2 6 B I/R B O R BI LT VC C 8 0 1 2 3 f 10 D D D D a e g D P J1 D E F A B C G g d c Vcc u1 10 9 15 13 12 11 14 e le d 1 2 1 9 7 6 4 5 d R 4 4 ,7 k c 3 R 1 4 ,7 k b J7 R 3 4 ,7 k 5V a D P 4 5 3 16 a J6 8 u6 10 9 15 13... P 4 5 3 16 a J6 8 u6 10 9 15 13 12 11 14 D E F A B C G D D D D 0 1 2 3 SN 74 47 4 5 3 16 10 5V le d 6 2 1 9 7 6 4 5 G N D 3 Vcc 8 G N D SN 74 47 B I/R B O R BI LT VC C 8 R 6 4 ,7 k 1 2 3 4 B I/R B O R BI LT VC C 8 7 1 2 6 f f D P 0 1 2 3 e b e g 10 D D D D g d Vcc J3 D E F A B C G b u3 10 9 15 13 12 11 14 c le d 3 2 1 9 7 6 4 5 d c 3 12V 5V 4 B khuch i: - Vỡ tớn hiu ra t IC89C51 quỏ nh... ng c v b khuch i II SƠ Đồ NGUYÊN lý : 12 R 2 220 U 14 Q 2 2 D 6 1 le d 1 3 78 05 1 2 3 nguon 103 2 103 U 18 D 5 2 10K D 4 3 1 R 3 220 1 4 2 LE D Y 1 + LED - D 3 470 3 LM 324 2 SW 1 1 U 17A 11 470 47uF le d SW 5 1 TX R X 2 30 29 SW 4 2 U 15 1 2 1 SW 3 1 C _M4 U 8 1 C _M 1 10uF 2 3 4 C _M3 1 6 2 7 3 8 4 9 5 22uF C _M 2 10uF 5 6 7 8 2 2 SW 2 1 P1 40 VC C 3 1 20K 3 2 22uF C 1+ VC C V+ G N D C 1- T1O U T... 3 3 3 3 3 7 6 5 4 3 2 1 0 /R D /W R /T 1 /T O /IN T 1 /IN T O /T X D /R X D P P P P P P P P 2 2 2 2 2 2 2 2 7 6 5 4 3 2 1 0 /A /A /A /A /A /A /A /A 1 1 1 1 1 1 9 8 A T89C 51 11 G N D U 2 R 8 20 Q 3 2N 1 070 1 5 4 3 2 1 0 P P P P P P P P P P P P P P P P 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 1 1 1 1 1 1 1 1 7 6 5 4 3 2 1 0 /A /A /A /A /A /A /A /A D D D D D D D D 7 6 5 4 3 2 1 0 31 9 18 19 4 3 2 1 8 7 6 5 4 3... R6,#10,NEXT1; So sanh voi 10 MOV R6,#0 ; =10 => R6=0 RET NEXT1: ; # 10 JC END1 ; < 10 MOV R6,#0 ; >10 RET GH_hang_dvi: ; Gioi han R7 R7=0 RET 16 NEXT0: ; # 10 JC END1 ; < 10 MOV R7,#0 ; >10 RET ;NEXT0: ; # 10 ;JC END1 ; < 10 ;MOV R7,#0; >10 ;RET SSKDS: ; So sanh so keo dem dc voi so keo dinh san MOV A,TL0 ; So sanh TL0 voi thanh ghi R0 CJNE A,0,NEXT2 ;... 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 MOV TH0,#0 SETB P3.4 SETB P3.1 SETB P3.0 CLR P3.5 SETB P3 .7 CLR P3.6 LCALL DELAY_500ms 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 P3 .7= 1(MAC DINH) ;... 2 IN R 2O U T 4 3 2 1 16 15 14 4 3 2 1 13 12 1 1 1 1 1 1 1 1 7 6 5 4 3 2 1 0 2 2 2 2 2 2 2 2 8 7 6 5 4 3 2 1 10 TX 9 R X M A X232 C O N N EC TO R D B9 III Chơng trình nguồn : ; - 8051 registers ACC data 0xE0 B data 0xF0 DPH data 0x83 DPL data 0x82 IE data 0xA8 IP data 0xB8 P0 data 0x80 P1 data 0x90 P2 data 0xA0 P3 data 0xB0 PCON data 0x 87 PSW data 0xD0 SBUF data 0x99 SCON data 0x98 SP data 0x81 TCON... 3 3 3 4 3 2 1 2 3 4 5 6 7 8 9 4 3 2 1 4 3 2 1 TL1 data 0x8B TMOD data 0x89 ; - 8051 register bit fields ; IE EA bit 0xAF ES bit 0xAC ET1 bit 0xAB EX1 bit 0xAA ET0 bit 0xA9 EX0 bit 0xA8 ; IP PS bit 0xBC PT1 bit 0xBB PX1 bit 0xBA PT0 bit 0xB9 PX0 bit 0xB8 ; P3 RD bit 0xB7 WR bit 0xB6 T1 bit 0xB5 T0 bit 0xB4 INT1 bit 0xB3 INT0 bit 0xB2 TXD bit 0xB1 RXD bit 0xB0 ; PSW CY bit 0xD7 AC bit 0xD6 F0 bit 0xD5 . 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 IC74 47 là các IC giải mã lấy dữ liệu từ 89C51 và giải mã ra LED 7. 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ừ. 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ư