TỔNG QUAN VỀ ĐỀ TÀI
ĐẶT VẤN ĐỀ
Ngày nay, sự phát triển của khoa học kỹ thuật, đặc biệt là kỹ thuật số, đóng vai trò quan trọng trong các lĩnh vực như quản lý, công nghiệp tự động hóa và cung cấp thông tin Việc nắm bắt và vận dụng hiệu quả kỹ thuật số là cần thiết để góp phần vào sự phát triển chung của nền khoa học kỹ thuật thế giới và sự tiến bộ trong lĩnh vực điện tử.
Trong sản xuất, nhiều quy trình đã được tự động hóa, trong đó có việc đếm số lượng sản phẩm một cách tự động Điều này giúp tối ưu hóa hiệu suất và nâng cao độ chính xác trong dây chuyền sản xuất.
Tuy nhiên, nhiều doanh nghiệp vừa và nhỏ vẫn chưa áp dụng hoàn toàn tự động hóa trong các quy trình như đếm sản phẩm và đóng bao bì, mà vẫn phụ thuộc vào lao động thủ công.
MỤC TIÊU ĐỀ TÀI
Dựa trên những quan sát và khả năng của bản thân, tôi mong muốn thực hiện một sáng kiến nhỏ nhằm giảm bớt vất vả cho người lao động, đồng thời nâng cao hiệu suất làm việc và đảm bảo độ chính xác cao Vì vậy, tôi quyết định thiết kế một mạch đếm sản phẩm, một giải pháp gần gũi với thực tiễn và có ý nghĩa sâu sắc đối với tôi, khi tôi có thể đóng góp một phần nhỏ cho xã hội.
NỘI DUNG ĐỀ TÀI
Đề tài nghiên cứu tập trung vào việc phát triển mạch đếm sản phẩm sử dụng nút nhấn và hiển thị kết quả trên LED 7 đoạn Mục đích chính của hệ thống này là giảm thiểu khó khăn trong việc quản lý số lượng sản phẩm trong quá trình sản xuất quy mô lớn.
Sử dụng các kiến thức đã học ở các môn kỹ thuật số và vi điều khiển điện tử 1 để vẽ sơ đồ nguyên lý.
Sử dụng phần mềm protues 8.6 để mô phỏng và thiết kế mạch in.
Sử dụng phần mềm CCS để lập trình code cho PIC 16F877A.
Sử dùng phần mềm PICKIT2 để nạp code cho PIC 16F877A
KẾT CẤU CỦA ĐỒ ÁN
Đồ án gồm có 5 chương chính:
- TỔNG QUANG VỀ ĐỀ TÀI
- THI CÔNG MÔ HÌNH ( MÔ PHỎNG)
- KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
CƠ SỞ LÝ THUYẾT
Vi điều khiển PIC16F877A
PIC 16F877A là một trong những dòng vi điều khiển PIC phổ biến nhất hiện nay, nổi bật với tính năng mạnh mẽ, 40 chân và bộ nhớ đủ lớn để đáp ứng hầu hết các ứng dụng thông thường Cấu trúc tổng quát của PIC 16F877A rất linh hoạt và hiệu quả.
- 5 ports (A, B, C, D, E) vào ra với tín hiệu điều khiển độc lập
- 2 bộ định thời 8 bits (Timer 0 và Timer 2).
- Một bộ định thời 16 bits (Timer 1) có thể hoạt động trong chế độ tiết kiệm năng lượng (SLEEP MODE) với nguồn xung Clock ngoài
- 2 bô CCP( Capture / Compare/ PWM).
- 1 bộ biến đổi AD 10 bits, 8 ngõ vào.
- 2 bộ so sánh tương tự (Compartor).
- 1 bộ định thời giám sát (WatchDog Timer).
- Một cổng song song 8 bits với các tín hiệu điều khiển.
- Nạp chương trình bằng cổng nối tiếp ICSP(In-Circuit Serial Programming)
- Được chế tạo bằng công nghệ CMOS
- 35 tập lệnh có độ dài 14 bits.
- Tần số hoạt động tối đa 20MHz.
PIC là một họ vi điều khiển RISC của MICROCHIP
Hình 2.1.2 Sơ đồ cơ cấu PIC16F877A
Bảng 2.1 Một số đặc tính của vi điều khiển PIC16F877A
RESET: tích cực mức thấp
Cổng ghi chương trình: JTAG
Hình 2.1.3 Điều kiện hoạt động của PIC16F877A
Cấu trúc I/O: dòng I L và I H là 25mA
LED 7 Đoạn
Có thể hiểu một cách vô cùng đơn giản về LED 7 đoạn như sau:
- LED 7 đoạn hay LED 7 thanh (Seven Segment display) là 1 linh kiện rất phổ dụng , được dùng như là 1 công cụ hiển thị đơn giản nhất.
LED 7 đoạn bao gồm ít nhất 7 đèn LED được kết nối với nhau, cho phép hiển thị các số từ 0 đến 9 và một số chữ cái thông dụng Để phân cách, một đèn LED đơn được sử dụng để hiển thị dấu chấm (dot) Các đèn LED này được gọi theo các chữ cái A, B, C, D, E, F, G, cùng với dấu chấm (DP).
LED 7 đoạn bao gồm 8 LED đơn, trong đó có Anode (cực +) hoặc Cathode (cực -) được nối chung tại một điểm và kết nối với mạch điện Bảy cực còn lại trên mỗi LED đơn và một cực ở góc dưới bên phải của LED 7 đoạn được tách thành 8 chân riêng biệt, cho phép điều khiển sáng tắt của LED theo ý muốn.
Khi sử dụng đèn LED 7 đoạn với cực Anode chung, đầu cực này cần được kết nối với nguồn dương (+Vcc) Các chân còn lại sẽ được sử dụng để điều khiển trạng thái sáng và tắt của từng LED đơn, và đèn LED chỉ phát sáng khi tín hiệu đầu vào ở các chân này đạt mức 0.
Khi sử dụng đèn LED 7 đoạn với cực âm chung, chân cực này được kết nối với Ground (hay Mass) Các chân còn lại được sử dụng để điều khiển trạng thái sáng và tắt của từng LED đơn, và LED sẽ phát sáng khi tín hiệu tại các chân này đạt mức 1.
Hình 2.2 Sơ đồ đơn giản của chân led 7 đoạn
Mã LED 7 đoạn Anode chung cho phép điều khiển từng thanh LED bằng cách xuất tín hiệu mức 0 ra chân Cathode của LED đơn Dưới đây là bảng giải mã cho LED 7 đoạn Anode chung.
Hình 2.3 bảng mã led 7 đoạn Anode chung
Mã LED 7 đoạn Cathode chung cho phép điều khiển sáng của từng thanh bằng cách xuất tín hiệu Anode từ LED đơn tương ứng Dưới đây là bảng giải mã cho LED 7 đoạn Cathode chung.
Hình 2.4 Mã LED 7 đoạn Cathode chung
Điện trở
Điện trở là linh kiện thụ động có tác dụng cản trở cả dòng và áp Điện trở được sử dụng rất nhiều trong các mạch điện tử.
Trong đó: ρ là điện trở suất của vật liệu
S là thiết diện của dây; ℓ là chiều dài của dây
Điện trở là đại lượng vật lý phản ánh khả năng cản trở dòng điện của một vật dẫn điện Nó được xác định bằng tỉ số giữa hiệu điện thế ở hai đầu vật thể và cường độ dòng điện chạy qua nó.
U : là hiệu điện thế giữa hai đầu vật dẫn điện, đo bằng vôn (V)
I : là cường độ dòng điện đi qua vật dẫn điện, đo bằng ămpe (A)
R : là điện trở của vật dẫn điện, đo bằng Ohm (Ω)
Giá tri của điện trở là Ohm Ứng dụng: Điện trở được dùng để chế tạo ra dịch mức điện áp giữa hai điểm khác nhau của mạch.
Thạch anh 8 Mhz
Tạo tần số hoạt động cho Pic 16F877A. Đặc tính vật lý: độ bền cơ học, ít chịu ảnh hưởng của nhiệt độ và các tác dụng hóa học.
Thạch anh có tính chất áp điện, cho phép nó tạo ra dao động khi chịu tác động của điện trường Nhờ vào đặc tính này, thạch anh có thể được sử dụng như một khung cộng hưởng hiệu quả.
Hình 2.6 Hình và kí hiệu thạch anh
Giá trị của thạch anh là tần số hz, trong thực tế giá trị Thạch anh thường dùng là Mhz (8Mhz, 12Mhz, 20Mhz)
Tụ điện
Tụ điện là một linh kiện thụ động, bao gồm hai bản cực bằng kim loại được đặt cách nhau một khoảng d Giữa hai bản tụ là dung dịch hoặc chất điện môi, tạo nên điện dung C Đặc điểm nổi bật của tụ điện là cho phép dòng điện xoay chiều đi qua, nhưng ngăn cản dòng điện một chiều.
Hình 2.7 ký hiệu tụ điện
Giá trị của tụ điện được xác định bởi điện dung, với đơn vị đo là Fara (F) Tuy nhiên, trong thực tế, giá trị Fara rất lớn, nên thường sử dụng các đơn vị nhỏ hơn như micro Fara (1µF = 10^-6 F), nano Fara (1nF = 10^-9 F) và pico Fara (1pF = 10^-12 F) để dễ dàng hơn trong việc đo lường.
Công thức tính điện dung của tụ:
Trong đó: ε là hằng số điện môi
S là điện tích bề mặt tụ m2
Trong mạch sử dụng 1 loại tụ đó là: Tụ gốm Tụ gốm được sử dụng cho 30 pF.
Nút nhấn BUTTON
Button là nút bấm, bạn có thể tìm thấy nó ở mọi thứ trong cuộc sống, chẳng hạn như cái nút trong bàn phím của bạn.
Nút nhấn có hai trạng thái:
- Dẫn điện (thường dùng để tạo mức LOW cho vi điều khiển)
- Không dẫn (thường dùng để tạo mức HIGHT cho vi điều khiển
Giới Thiệu Phần mềm lập trinh PIC CCS
Kiểu biên Giá tri • Ý nghĩa intl True hay False ( 0 hay 1) số 1 bit int8 0 đến 255 Số nguyên 1 byte ( 8 bit) int16 0 đến 65,535 Số nguyên 2 byte int32 0 đến 4,294,967,295 Số nguyên 4 byte
Char -128 đến 127 Ký tự 8 bit
Float 3,4-38 đến 3,438 Số thực 32 bit short Mặc định như kiểu int1
Byte Mặc định như kiểu int8
Int Mặc định như kiểu int8
Long Mặc định như kiểu int16
Lưu ý: có thể sử dụng signed hoặc unsigned trước các kiểu để chỉ cho trường hợp có dấu và không có dấu.
2.7.3 Các phép toán irons CCS:
- Phép toán logic: AND (&); OR( I)
- Dịch trỏi n bit biến a: a = aôn
- Dịch phải n bit biến a: a = aằ n (Xem thờm trong HELP: operators)
2.7.6 Các hàm thông dụng trong CCS:
2.7.6.1 Hàm delay: liên quan đến #use delay(clock = tần số thạch anh)
- delay_ms(giá trị 2 byte)
- delay_ms(1000);// trì hoãn 1000 ms
- delay_ms(200);// trì hoãn 200 ms
- delay_us(giá trị 2 byte)
- delay_us(10);//trì hoãn 10 ựs
- delay_us(5);//trì hoãn 5 ựs
- delay_cycles(giá trị 2 byte)
Ví dụ: delay_cycles(1): trì hoãn 1 xung clock = 1/(fXTAL/4 )
2.7.6.2 Hàm I/O: xuất/ nhập một giá trị ra/ từ PIN (bit) hoặc PORT (byte) set_tris_x(byte)
Byte xác định ngõ vào hoặc ngõ ra cho các tín hiệu của một PORT Khi bit = 1, tín hiệu tương ứng là ngõ vào; khi bit = 0, tín hiệu tương ứng là ngõ ra.
Ví dụ: cấu hình PORT D với RD0 và RD1 là ngõ vào, RD7 đến RD2 là ngõ ra
Hoặc: cấu hình RC7-RC4 là ngõ vào, RC3-RC0 là ngõ ra
Output_toggle(PIN_C4); // RC4 = ~RC4
- output_x(byte): x là a, b, c,d, hoặc e (port a, b, c,d, hoặc e) Ví dụ:
State = input(PIN_E0); // State là biến nhị phân (intl State) Ví dụ 2:
If (!input(SW1)) { output_toggle(LED); delay_ms(300);}
- input_x(): x là a, b, c,d, hoặc e (port a, b, c,d, hoặc e)
Unsigned char a; a = input_d(); // đọc 1 byte từ port d và gán vào a
TÍNH TOÁN THIẾT KẾ
SƠ ĐỒ KHỐI CỦA HỆ THỐNG
Hình 2.1 Sơ đồ khối của hệ thống
Khối nguồn: có nhiệm vụ cung cấp nguồn điện một chiều cho mạch.
Khối xử lý: IC xử lý tín hiệu theo chương trình đã được nạp sẵn.
Khối hiển thị: LED 7 đoạn hiển thị thông tin theo mã code được lập trình trong khối xử lý.
Sơ đồ nguyên lý: 19 3.3 Giá trị điện trở hạn dòng led 7 đoạn
3.3 Giá trị điện trở hạn dòng led 7 đoạn
Trong các mạch thì thường dùng nguồn 5V nên để tránh việc đốt cháy led thì cách đơn giản nhất là mắc thêm trở hạn dòng.
Thông số làm việc của LED 7 đoạn là: Điện áp = 2V.
Hình 3.1 Sơ đồ nguyên lý
Xuất ra giá trị Dem Đúng
Hình 3.2 Sơ đồ luận lý
Code vi điều khiển
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock00000) int8 array[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
#DEFINE SW PIN_C0 void main()
{ int16 DEM=0; output_b(0xFF); output_d(0xFF); while(TRUE)
{ if(!input (PIN_C0)) { if(DEM