



















































Preview text:
  lOMoARcPSD| 36006477
Thiết Kế Thi Công Bộ Đếm Và Phân Loại  Sản Phẩm      Người thực hiện    Trần Mạnh Hùng  MSSV: 03091911** 
Bộ Môn Tự Động Hóa 
Khoa Điện-Điện Tử        Tháng 11 năm 2021          lOMoARcPSD| 36006477
Thiết Kế Thi Công Bộ Đếm Và Phân Loại  Sản Phẩm 
Giáo viên hướng dẫn: Th.s Cù Minh Phước 
Người thực hiện  
Trần Mạnh Hùng 03091911** 
Nhận xét của Giảng viên 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... ....      lOMoARcPSD| 36006477
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... ....      lOMoARcPSD| 36006477
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... .... 
........................................................................................................... ....        lOMoARcPSD| 36006477 Lời Cảm Ơn 
Em xin gửi lời chúc sức khỏe và lời cảm ơn chân thành đến quý 
thầy cô trường Cao Đẳng Kỹ Thuật Cao Thắng đã tận tình chỉ dạy chúng 
em thời gian vừa qua. Em xin cảm ơn các thầy cô trong khoa Điện – Điện 
Tử, bộ môn Tự Động Hóa và đặc biệt là thầy Cù Minh Phước đã tận tình 
hướng dẫn em thực hiện tốt đồ án vi điều khiển này và giúp em hiểu 
thêm nhiều kiến thức. Đồ án này sẽ không thể hoàn thành nếu không 
có sự giúp đỡ của các thầy cô. Do kinh nghiệm và hiểu biết chưa đủ tốt 
nên không thể tránh khỏi những thiếu sót, mong các thầy cô bỏ qua và 
đưa ra những lời khuyên, lời chỉ dạy để em có thể rút ra được kinh 
nghiệm và hoàn thiện đồ án tốt nghiệp sắp tới. Em xin chân thành cảm  ơn.      lOMoARcPSD| 36006477 MỤC LỤC 
Lời Cảm Ơn...........................................................................................1 
MỤC LỤC.............................................................................................2 
DANH SÁCH CÁC HÌNH....................................................................4 
DANH SÁCH CÁC BẢNG...................................................................4 
Các Từ Viết Tắt......................................................................................5 
Các Ký Hiệu..........................................................................................5 
Chương 1 GIỚI THIỆU.........................................................................7 
1.1 Tổng quan đề tài..............................................................................7 
1.2 Mục tiêu đề tài.................................................................................8 
1.2.1 Ý nghĩa đề tài................................................................................8 
1.2.2 Phương pháp thực hiện.................................................................8 
1.3 Cấu trúc của quyển..........................................................................8 
Chương 2 Lý Thuyết Cơ Bản...............................................................10 
2.1 Tổng quan về vi điều khiển PIC16F877A......................................10 
2.1.1 Giới thiệu....................................................................................10 
2.1.2 Chức năng các port.....................................................................10 
2.2 Module cảm biến màu sắc TCS3200..............................................11 
2.3 Sơ lược LCD 1602.........................................................................14 
2.4 Một số linh kiện khác.....................................................................16 
2.4.1 IC ổn áp 7805..............................................................................16 
2.4.2 Opto quang cách ly.....................................................................16 
2.4.3 Relay...........................................................................................17 
2.5 Các phần mềm sử dụng..................................................................18  7      lOMoARcPSD| 36006477
2.5.1 CCS C Compiler.........................................................................18 
2.5.2 Altium designer...........................................................................18 
2.6 Chức năng đếm sự kiện của timer1................................................19 
Chương 3 Thiết Kế Sơ Đồ Khối Và Sơ Đồ Nguyên Lý.......................21 
3.1 Sơ đồ khối hệ thống.......................................................................21 
3.2 Sơ đồ nguyên lý hệ thống..............................................................23 
3.2.1 Khối nguồn.................................................................................23 
3.2.2 Khối xử lý trung tâm...................................................................25 
3.2.3 Khối cảm biến.............................................................................25 
3.2.4 Khối hiển thị...............................................................................26 
3.2.5 Khối cảnh báo.............................................................................26 
3.2.6 Khối công suất............................................................................27 
3.3 Mạch in hoàn chỉnh........................................................................27 
Chương 4 Chương Trình Điều Khiển...................................................29 
4.1 Lưu đồ thuật giải............................................................................29 
4.1.1 Lưu đồ chương trình chính.........................................................29 
4.1.2 Lưu đồ chương trình con lọc màu...............................................30 
4.1.3 Lưu đồ chương trình xử lý ngắt..................................................32 
Chương 5 Kết Luận Và Hướng Phát Triển...........................................33 
5.1 Kết luận.........................................................................................33 
5.1.1 Kết quả đạt được.........................................................................33 
5.1.2 Kết quả chưa đạt được................................................................33 
5.2 Hướng phát triển............................................................................33 
Tài Liệu Tham Khảo............................................................................35 
Bảng tính vật tư...................................................................................36 
Phụ lục.................................................................................................37  8      lOMoARcPSD| 36006477 DANH SÁCH CÁC HÌN 
Hình 2-1: Sơ đồ chân...........................................................................10 
Hình 2-2: module cảm biến màu sắc TCS3200....................................11 
Hình 2-3: Sơ đồ khối chức năng..........................................................12 
Hình 2-4: Sơ đồ khối chức năng của cảm biến TCS230......................12 
Hình 2-5: Lựa chọn photodiode...........................................................13 
Hình 2-6: Lựa chọn bộ chuyển đổi tần số............................................13 
Hình 2-7: LCD 1602............................................................................14 
Hình 2-8: IC7805.................................................................................16 
Hình 2-9: opto pc817...........................................................................16 
Hình 2-10: Relay 5VDC......................................................................17 
Hình 2-11: Thanh ghi T1CON của timer1...........................................19 
Hình 3-1: Sơ đồ khối hệ thống.............................................................21 
Hình 3-2: Sơ đồ nguyên lý hệ thống....................................................23 
Hình 3-3: Khối nguồn..........................................................................23 
Hình 3-4: Khối xử lý trung tâm...........................................................25 
Hình 3-5: Khối cảm biến.....................................................................25 
Hình 3-6: Khối hiển thị........................................................................26 
Hình 3-7: Khối cảnh báo......................................................................26 
Hình 3-8: Khối công suất.....................................................................27 
Hình 3-9: Mạch in 2D..........................................................................27 
Hình 3-10: Mạch in 3D........................................................................28 
Hình 4-1: Lưu đồ thuật chương trình chính.........................................29 
Hình 4-2 Lưu đồ thuật chương trình chính..........................................30 
Hình 4-3: Lưu đồ chương trình con lọc màu........................................31  9      lOMoARcPSD| 36006477
Hình 4-4: Lưu đồ chương trình xử lý ngắt...........................................32 
DANH SÁCH CÁC BẢNGY 
Bảng 2-1: Chức năng các chân của LCD 1602....................................15 
 Các Từ Viết Tắt  10      lOMoARcPSD| 36006477 Các Ký Hiệu        lOMoARcPSD| 36006477
Thiết Kế Thi Công Bộ Đếm Và Phân Loại Sản Phẩm  Trần Mạnh Hùng 
Ngành Công Nghệ Điều Khiển và Tự Động Hóa  Khoa Điện - Điện tử 
Trường Cao Đẳng Kỹ Thuật Cao Thắng  Tóm Tắt 
Với đề tài Thiết kế thi công bộ đếm và phân loại sản phẩm theo 
màu sắc em muốn vận dụng những sản phẩm công nghệ khoa học tiên 
tiến áp dụng vào quá trình sản xuất tự động nhằm tạo ra năng suất , 
chất lượng cũng như giảm thiểu tối đa sức người trong sản xuất công 
nghiệp. Củng cố lại kiến thức lý thuyết đã được học tập nghiên cứu tại  trường. 
Với đề tài này em sử dụng vi điều khiển PIC16F877A để nhận về 
tần số từ cảm biến, khi cảm biến thu nhận sự phản xạ ánh sáng từ vật 
sẽ trả về các tần số khác nhau tùy thuộc vào cường độ màu sắc. Từ đó 
vi điều khiển sẽ xử lý để nhận biết được màu và phân loại màu, hiển thị 
cho người dùng qua LCD, và đưa tín hiệu cảnh báo khi xảy ra lỗi. 
Sau thời gian thực hiện em đã đáp ứng được các yêu cầu đề ra. 
Thực hiện đồ án hoàn thành đúng thời hạn, củng cố lại và bổ sung thêm 
được nhiều kiến thức. 
Chương 1 GIỚI THIỆU      lOMoARcPSD| 36006477
1.1 Tổng quan đề tài 
Hiện nay với sự phát triển không ngừng của xã hội và với điều kiện 
cụ thể ở nước ta công cuộc công nghiệp hóa hiện đại hóa sử dụng ngày 
càng nhiều thiết bị hiện đại để điều khiển tự động các quá trình sản 
xuất, gia công , chế biến sản phẩm .Điều này dẫn tới việc hình thành các 
hệ thống sản xuất linh hoạt, cho phép tự động hóa ở mức độ cao đối 
với sản xuất hàng loạt với quy mô lớn, nhỏ và vừa trên cơ sở sử dụng 
các máy CNC, robot công nghiệp. Trong đó có một khâu quan trọng ảnh 
hưởng đến chất lượng sản phẩm là phân loại sản phẩm. 
Để phân loại sản phẩm theo màu sắc có nhiều cách khác nhau như 
xử lý ảnh, sử dụng cảm biến để phân loại màu sắc… 
Xử lý ảnh là việc sử dụng tăng cường và xử lý các ảnh thu nhận từ 
các thiết bị camera, webcam… do đó nó được ứng dụng trong nhiều  lĩnh vực:  - 
Y tế: chụp x_quang, MRI…  - 
An ninh: nhận diện gương mặt, giám sát chuyển động…  - 
Giải trí: các trò chơi điện tử…  - 
Trong công nghiệp: phân loại sản phẩm theo chiều cao, theo  màu sắc… 
Tuy nhiên xử lý ảnh đòi hỏi kĩ năng, trình độ và kiến thức sâu rộng,  chi phí thực hiện lớn. 
Ngoài xử lý ảnh ta có thể sử dụng cảm biến để phân loại màu sắc. 
Phương pháp này đơn giản hơn xử lý ảnh nhận về sự phản xạ ánh sáng 
và trả về các tần số khác nhau theo cường độ màu sắc, phương pháp 
này có chi phí thực hiện nhỏ, thích hợp với các hệ thống chỉ ứng dụng 
để phân loại màu sắc. 
Từ những nhu cầu sản xuất thực tế và để phù hợp với trình độ và 
kĩ năng em xin được thực hiện đề tài Thiết kế thi công bộ đếm và phân 
loại sẩn phẩm theo màu sắc. 
1.2 Mục tiêu đề tài      lOMoARcPSD| 36006477
1.2.1 Ý nghĩa đề tài 
Hiện nay trong nhiều nhà máy và doanh nghiệp sản xuất như đóng 
nhãn sản phẩm, kiểm tra nguyên liệu đầu vào, sản phẩm đầu ra vẫn còn 
áp dụng công nghệ sản xuất lạc hậu, chưa theo kịp với xu thế phát triển 
và đáp ứng được nhu cầu sản xuất trong nước và trên thị trường quốc 
tế. Chính vì thế em xin thực hiện đề tài với mong muốn đưa ra giải pháp 
nhằm cải thiện quá trình sản xuất sao cho giảm được chi phí nhân công 
, tăng năng suất mà vẫn đảm bảo được chất lượng sản phẩm, giảm giá 
thành sản phẩm để có thể cạnh tranh trên thị trường. 
1.2.2 Phương pháp thực hiện 
Để tài sử dụng một cảm biến màu sắc thu về ánh sáng phản xạ từ 
vật thể, tùy vào cường độ màu sắc mà đưa ra các tần số xung khác 
nhau. Bộ điều khiển trung tâm sẽ nhận về tần số xung này và xử lý để 
nhận biết màu sắc, sau đó phân loại, đếm và hiển thị cho người dùng. 
Phương pháp này đòi hỏi kiến thức, kĩ năng vừa phải. 
Chi phí để thực hiện phương pháp này không quá cao, thời gian 
nghiên cứu và thực hiện nhanh. 
Vì vậy với kiến thức đã học và để phù hợp với yêu cầu đề ra em 
lựa chọn phương pháp này để thực hiện đề tài. 1.3 Cấu trúc của quyển  Quyển đồ án này gồm:  CHƯƠNG 1: GIỚI THIỆU 
Trong chương này giới thiệu về đề tài  Tổng quan về đề tài  Mục tiêu của đề tài  Cấu trúc của quyển 
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 
Trình bày về bộ điều khiển, các thiết bị và các phần mềm sử dụng 
Bộ điều khiển PLC S7-1200      lOMoARcPSD| 36006477
Giới thiệu phần mềm TIA Portal 
Giới thiệu phần mềm thiết kế giao diện WINCC 
CHƯƠNG 3: THIẾT KẾ SƠ ĐỒ ĐẤU DÂY VÀ TÍNH CHỌN  THIẾT BỊ 
Trình bày về sơ đồ lắp đặt, sơ đồ đấu dây và tính chọn thiết bị 
Các thiết bị trong hệ thống  Sơ đồ khối hệ thống 
Sơ đồ lắp đặt thiết bị 
Sơ đồ đấu dây động lực và điều khiển 
Tính chọn các thiết bị 
CHƯƠNG 4: CHƯƠNG TRÌNH ĐIỀU KHIỂN 
Chương này gồm các phần sau:  Quy trình hoạt động  Giản đồ Grafcet 
Chương trình điều khiển 
CHƯƠNG 5: THIẾT KẾ GIAO DIỆN GIÁM SÁT VÀ KẾT NỐI  GIAO DIỆN VỚI PLC  Thiết kế giao diện 
Giao diện điều khiển và giám sát hệ thống 
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 
Chương này trình bày một số kết luận sau khi thực hiện đề tài này 
và đưa ra hướng phát triển cho đề tài. 
Chương 2 Lý Thuyết Cơ Bản 
2.1 Tổng quan về vi điều khiển PIC16F877A      lOMoARcPSD| 36006477 2.1.1 Giới thiệu 
Đây là họ vi điều khiển thuộc họ PIC16Fxxx do hãng Microchip sản 
xuất với tập lệnh gồm 35 lệnh có độ dài 14bit. Mỗi lệnh đều được thực 
thi trong một chu kỳ xung clock. Tốc độ hoạt động tối đa cho phép là 
20Mhz với một chu kì lệnh là 200ns. Bộ nhớ chương trình 8k x 14bit, bộ 
nhớ dữ liệu 368x8 byte ram và bộ nhớ dữ liệu EEPROM với dung lượng 
256x8 byte. Số PORT I/O là 5 với 33 pin I/O. 
Vi điều khiển này có các bộ timer, có các chuẩn giao tiếp như: 
giao tiếp nối tiếp SSP, SPI, I2C, chuẩn giao tiếp nối tiếp UART…, có bộ 
ADC 10 bit, xuất xung PWM…   
Hình 2-1: Sơ đồ chân  
2.1.2 Chức năng các port 
Port A: gồm 6 chân I/O. Đây là các chân 2 chiều, vừa có thể xuất 
vừa có thể nhập. Chức năng I/O này được điều khiển bởi thanh ghi 
TRISA(địa chỉ 85h). Port A còn là ngõ ra bộ ADC, bộ so sánh, ngõ vào  xung clock của timer0.      lOMoARcPSD| 36006477
Port B: gồm 8 chân I/O. Thanh ghi điều khiển xuất nhập tương ứng 
là TRISB(địa chỉ 86h). Bên cạnh đó 2 chân của port B còn được dùng cho 
quá trình nạp chương trình. Port B còn liên quan đến ngắt ngoại vi và  bộ timer0. 
Port C: gồm 8 chân I/O. Thanh ghi điều khiển xuất nhập tương ứng 
là TRISC(địa chỉ 87h). Port C còn chứa các chân chức năng của bộ so 
sánh, bộ timer1, bộ PWM, đếm sự kiện của timer1 và các chuẩn giao  tiếp. 
Port D: gồm 8 chân I/O, thanh ghi điều khiển xuất nhập là 
TRISD(địa chỉ 88h). Port D còn là cổng xuất dữ liệu của chuẩn giao tiếp  PSP. 
Port E: gồm 3 chân I/O. Thanh ghi điều khiển xuất nhập là 
TRISE(địa chỉ 89h). Các chân port E là ngõ vào analog, ngoài ra còn là 
các chân điều khiển của chuẩn giao tiếp PSP. 
2.2 Module cảm biến màu sắc TCS3200   
Hình 2-2: module cảm biến màu sắc TCS3200 
Cảm biến màu TCS3200 là một loại cảm biến màu RGB cấu tạo bao 
gồm các photodiode silicon kết hợp với các tấm lọc Red, Green, 
Blue đồng thời chuyển đổi cường độ của các ánh sáng này sang tần số 
tương ứng (tần số xung ra tỉ lệ thuận với cường độ của ánh sáng ) tất 
cả được tích hợp trên một chip đơn.      lOMoARcPSD| 36006477  
Hình 2-3: Sơ đồ khối chức năng  
Khối đầu tiên là mảng ma trận 8x8 gồm các photodiode.Bao gồm 
16 photodiode có thể lọc màu sắc xanh dương (Blue),16 photodiode có 
thể lọc màu đỏ (Red),16 photodiode có thể lọc màu xanh lá(Green) và 
16 photodiode trắng không lọc (Clear).Tất cả photodiode cùng màu 
được kết nối song song với nhau ,và được đặt xen kẽ nhau nhằm mục  đích chống nhiễu. 
 Bản chất của 4 loại photodiode trên như là các bộ lọc ánh sáng có 
mầu sắc khác nhau .Có nghĩa nó chỉ tiếp nhận các ánh sáng có cùng màu 
với loại photodiode tương ứng và không tiếp nhận các ánh sáng có màu  sắc khác.   
Hình 2-4: Sơ đồ khối chức năng của cảm biến TCS230 
Việc lựa chọn 4 loại photodiode này thông qua 2 chân đầu vào  S2,S3 :      lOMoARcPSD| 36006477  
Hình 2-5: Lựa chọn photodiode 
Khối thứ 2 là bộ chuyển đổi dòng điện từ đầu ra khối thứ nhất  thành tần số :   
Hình 2-6: Lựa chọn bộ chuyển đổi tần số 
 Tần số đầu ra của linh kiện điện tử TCS3200 trong khoảng 
2HZ~500KHZ. Tần số đầu ra có dạng xung vuông với tần số khác nhau 
khi mà màu sắc khác nhau và cường độ sáng là khác nhau. 
Ta có thể lựa chọn tỉ lệ tần số đầu ra ở các mức khác nhau như 
bảng trên cho phù hợp với phần cứng đo tần số . 
Ví dụ : Tần số khi S0 = H,S1=H - Fout = 500Khz thì:  S0=H,S1=L -Fout=100Khz  S0=L,S1=H -Fout=10Khz  S0=L,S1=L -Fout=0      lOMoARcPSD| 36006477
Nguyên lý hoạt động của TCS 3200:  - 
Ánh sáng trắng là hỗn hợp rất nhiều ánh sáng có bước sóng  màu sắc khác nhau.  - 
Khi ta chiếu ánh sáng trắng vào một vật thể bất kì. Tại bề mặt 
vật thể sẽ xảy ra hiện tượng hấp thụ và phản xạ ánh sáng . 
 Ví dụ : Một vật thể có màu sắc đỏ khi được chiếu ánh sáng 
trắng thì những ánh sáng không nằm trong dải bước sóng màu đỏ sẽ bị 
vật thể hấp thụ. Còn ánh sáng có bước sóng nằm trong dải màu đỏ sẽ 
bị phản xạ ngược trở lại .Và khiến mắt ta nhận biết vật thể đó là màu 
đỏ. Màu sắc bất kì được tổng hợp từ 3 mầu cơ bản Blue, Green, Red  Chức năng các chân:  - 
Vcc: điện áp cấp 2,2-5,5 Vol.  -  GND: chân nối mass.  - 
S0, S1: dùng để lựa chọn tỉ lệ tần số.  - 
S2, S3: dùng để lựa chọn kiểu photodiode.  - 
Out: đầu ra tín hiệu tần số. -  Led: cấp nguồn cho led. 
2.3 Sơ lược LCD 1602    Hình 2-7: LCD 1602 
Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) được sử 
dụng trong rất nhiều LCD có rất nhiều ưu điểm so với các dạng hiển thị 
khác: Nó có khả năng hiển thị kí tự đa dạng, dễ dàng đưa vào mạch ứng 
dụng nhiều giao thức giao tiếp khác nhau và có giá thành rẻ.      lOMoARcPSD| 36006477
Bảng 2-1: Chức năng các chân của LCD 1602        lOMoARcPSD| 36006477
2.4 Một số linh kiện khác  2.4.1 IC ổn áp 7805    Hình 2-8: IC7805 
LM7805 hay 7805 là IC điều chỉnh điện áp dương đầu ra 5V. Nó là 
IC của dòng ổn áp dương LM78xx, được sản xuất trong gói TO-220 và 
các gói khác. IC này được sử dụng rộng rãi trong các thiết bị thương 
mại và giáo dục do giá rẻ, dễ sử dụng và không cần nhiều linh kiện bên 
ngoài. IC có nhiều tính năng tích hợp lý tưởng để sử dụng trong nhiều 
ứng dụng điện tử như dòng điện đầu ra 1.5A, chức năng bảo vệ quá tải, 
bảo vệ quá nhiệt, dòng điện tĩnh thấp… Thông số kĩ thuật:  - 
Điện áp ngõ vào: 7-18VDC  -  Điện áp ngõ ra: 5VDC  -  Dòng điện ngõ ra: 1A  - 
Nhiệt độ hoạt động: 0-125℃  -  Công suất max: 5W 
2.4.2 Opto quang cách ly    Hình 2-9: opto pc817 
PC817 là một opto được sử dụng rất phổ biến, nó chứa một LED 
hồng ngoại và một transistor quang trong một gói. Opto hay còn được      lOMoARcPSD| 36006477
gọi là cách ly quang là những linh kiện dạng IC có từ 4 chân đến nhiều 
chân, chủ yếu được sử dụng để cách ly hai mạch với nhau. 
Hoạt động của nó rất đơn giản, khi một điện áp được đặt vào LED 
hồng ngoại được nối trên chân 1 và 2, LED sẽ được kích hoạt và ánh 
sáng được nhận bởi transistor quang bên trong làm cho nó ở trạng thái 
bão hòa từ đó nối chân 3 và 4 với nhau. PC817 là một opto được sử 
dụng rộng rãi và hoạt động trong mạch điện tử chỉ với nhiệm vụ cách  ly.  Thông số kĩ thuật:  - Loại transistor: NPN 
- Dòng cực góp tối đa (IC): 50mA 
- Điện áp cực góp - cực phát tối đa (VCEO): 80V -  Điện áp 
bão hòa cực góp - cực phát: 0,1 đến 0,2 
- Công suất tiêu tán cực góp tối đa (Pc): 200 mW  2.4.3 Relay 
Relay (rờle) là 1 công tắc đóng cắt thiết bị dạng ON/OFF. Cặp tiếp 
điểm bên trong sẽ thay đổi trạng thái khi cuộn dây relay được cấp điện 
và trở về trạng thái ban đầu khi cuộn dây mất điện.   
Hình 2-10: Relay 5VDC Relay  có 2 tiếp điểm:  - 
NC (Normally Closed): là chân thường đóng, nghĩa là khi rơle ở 
trạng thái OFF, chân COM sẽ nối với chân này.      lOMoARcPSD| 36006477 - 
NO (Normally Open): chân thường mở, khi rơle ở trạng thái 
ON (có dòng chạy qua cuộn dây) thì chân COM sẽ được nối với  chân này 
2.5 Các phần mềm sử dụng  2.5.1 CCS C Compiler 
CCS là trình biên dịch lập trình ngơn ngữ C cho Vi điều khiển PIC 
của hãng Microchip. Giống như nhiều trình biên dich C khác cho PIC, 
CCS giúp cho người sử dụng nắm bắt nhanh được vi điều khiển PIC và 
sử dụng PIC trong các dự án. 
Điểm nổi bật của bộ công cụ này là trình biên dịch tối ưu code 
thông minh. Bộ thư viện hàm đa dạng, cho phép phát triển nhanh ứng 
dụng mà không cần hiểu nhiều về PIC.  2.5.2 Altium designer 
Altium Designer trước kia có tên gọi quen thuộc là Protel DXP, là 
một trong những công cụ vẽ mạch điện tử mạnh nhất hiện nay. Được 
phát triển bởi hãng Altium Limited. Altium designer là một phần mềm 
chuyên nghành được sử dụng trong thiết kế mạch điện tử. 
Altium Designer có một số đặc trưng sau: 
- Giao diện thiết kế, quản lý và chỉnh sửa thân thiện, dễ dàng 
biên dịch, quản lý file, quản lý phiên bản cho các tài liệu  thiết kế. 
- Hỗ trợ mạnh mẽ cho việc thiết kế tự động, đi dây tự động 
theo thuật toán tối ưu, phân tích lắp ráp linh kiện. Hỗ trợ 
việc tìm các giải pháp thiết kế hoặc chỉnh sửa mạch, linh 
kiện, netlist có sẵn từ trước theo các tham số mới. 
- Mở, xem và in các file thiết kế mạch dễ dàng với đầy đủ các 
thông tin linh kiện, netlist, dữ liệu bản vẽ, kích thước, số  lượng… 
- Hệ thống các thư viện linh kiện phong phú, chi tiết và hoàn 
chỉnh bao gồm tất cả các linh kiện nhúng, số, tương tự…      lOMoARcPSD| 36006477
- Đặt và sửa đối tượng trên các lớp cơ khí, định nghĩa các 
luật thiết kế, tùy chỉnh các lớp mạch in, chuyển từ 
schematic sang PCB, đặt vị trí linh kiện trên PCB. 
- Mô phỏng mạch PCB 3D, đem lại hình ảnh mạch điện trung 
thực trong không gian 3 chiều, hỗ trợ MCADECAD, liên kết 
trực tiếp với mô hình STEP, kiểm tra khoảng cách cách điện, 
cấu hình cho cả 2D và 3D - Hỗ trợ thiết kế PCB sang FPGA  và ngược lại. 
2.6 Chức năng đếm sự kiện của timer1 
Ngoài chức năng định thời, timer1 còn có khả năng đếm sự 
kiện(counter) là các xung tác động cạnh lên bên ngoài thông qua chân    RC0. 
Hình 2-11: Thanh ghi T1CON của timer1 
Muốn sử dụng được chức năng counter của timer1 phải cài đặt 
các bit trong thanh ghi T1CON địa chỉ 10h. 
Bit T1CKPS1: T1CKPS0(timer1 input clcok prescaler select): bit lựa 
chọn tỉ số bộ chia tần cho timer1: 
- 11 tỉ số chia tần số của prescaler 1:8      lOMoARcPSD| 36006477
- 10 tỉ số chia tần số của prescaler 1:4 
- 01 tỉ số chia tần số của prescaler 1:2 
- 00 tỉ số chia tần số của prescaler 1:1 
Bit T1OSCEN (timer1 oscillator enable control): 
- T1OSCEN = 1 cho phép timer1 hoạt động với xung do  oscillator cung cấp. 
- T1OSCEN = 0 không cho phép timer1 hoạt động với xung  do oscillator cung cấp. 
Bit T1SYNC (timer1 internal clock input synchoronization control): 
bit lựa chọn đồng bộ hay không đồng bộ xung clock bên ngoài đưa vào  timer1:  - Khi TMR1CS =1: 
• T1SYNC = 1 không đồng bộ xung clock ngoại vi đưa  vào timer1. 
• T1SYNC = 0 đồng bộ xung clock ngoại vi đưa vào  timer1.  - Khi TMR1CS = 0: 
• Bit T1SYNC không được quan tâm do timer1 sử dụng  xung clock bên trong. 
• Bit TMR1CS (timer1 clcok source select): bit lựa 
chọn nguồn xung cho timer1 (chức năng định thời  hay đếm sự kiện). 
• TMR1CS = 1 chọn xung đếm là xung ngoại vi lấy từ 
chân RC0/T1OSC/T1CKI – chức năng đếm sự kiện 
(cạnh tác động là cạnh lên). 
• TMR1CS = 0 chọn xung đếm là xung bên trong 
(FOSC/4) - chức năng định thời. 
- Bit TMR1ON (timer1 on): bit cho phép hay không cho phép  timer1 hoạt động: 
• TMR1ON = 1 cho phép timer1 hoạt động. 
• TMR1ON = 0 không cho phép timer1 hoạt động.      lOMoARcPSD| 36006477
Như vậy để có thể có sử dụng chức năng đếm sự kiện của timer1 
thì thanh ghi T1CON (địa chỉ 10h) sẽ được cài như sau:  T1CON=0b00000011. 
Chương 3 Thiết Kế Sơ Đồ Khối Và Sơ Đồ Nguyên Lý 
3.1 Sơ đồ khối hệ thống 
Đề tài thiết kế thi công bộ đếm và phân loại sản phẩm theo màu  sắc có sơ đồ khối:   
Hình 3-12: Sơ đồ khối hệ thống  
Chức năng của từng khối:  - 
Khối nguồn: biến đổi điện áp đầu vào là 220VAC thành 12VAC 
sau đó đưa vào mạch chỉnh lưu để có được điện áp 12VDC. 
Điện áp 12VDC này được đưa qua mạch lọc để lọc phẳng và 
qua ic ổn áp để tạo ra điện áp 5VDC không đổi. Điện áp 5VDC 
cung cấp cho vi điều khiển PIC16f877a, màn hình hiển thị LCD, 
cảm biến màu sắc TCS3200, còi và động cơ hoạt động.      lOMoARcPSD| 36006477 - 
Khối cảm biến: khi cảm biến TCS3200 hoạt động sẽ phát ra ánh 
sáng trắng chiếu vào vật, vật sẽ hấp thụ và phản xạ ánh sáng, 
các photodiode trên cảm biến sẽ chỉ tiếp nhận các ánh sáng 
phản xạ có cùng màu với nó, và sau đó trả về tần số có dạng 
xung vuông tương ứng. Bằng việc điều khiển thay đổi các bộ 
lọc(màu photodiode) trên cảm biến ta sẽ có 3 chỉ số R G B, và 
từ đó phân biệt được màu sắc của vật.  - 
Khối xử lý trung tâm PIC16F877A: đọc tần số xung trả về của 
cảm biến qua chế độ counter của timer 1 trong một khoảng 
thời gian nhất định được định thời ở timer 0. Xuất tín hiệu điều 
khiển hai chân s2 và s3 để thay đổi bộ lọc màu của biến. Sau 
đó tính toán để có được 3 chỉ số R G B và quyết định màu sắc 
của vật và đếm số lượng, sau đó xuất tín hiệu để LCD hiển thị 
số lượng theo màu sắc. Ngoài ra vi điều khiển PIC16F877A còn 
xuất tín hiệu điều khiển còi báo hiệu, khối công suất qua đó 
điều khiến động cơ và nhận tín hiệu từ khối nút nhấn để reset 
lại số lượng sản phẩm.  - 
Khối hiển thị LCD: nhận dữ liệu và tín hiệu từ vi điều khiển để 
hiển thị thông tin (số lượng hoặc cảnh báo lỗi) cho người dùng  - 
Khối công suất: nhận tín hiệu điều khiển (chạy, dừng) từ vi điều 
khiển qua đó cho động cơ hoạt động hay ngừng động cơ.  - 
Khối nút nhấn: đưa tín hiệu khối xử lí trung tâm PIC16F877A 
để người dùng reset lại số lượng sản phẩm.  - 
Khối cảnh báo: nhận tín hiệu từ vi điều khiển PIC16F877A và 
phát âm thanh báo hiệu cho người dùng. 
3.2 Sơ đồ nguyên lý hệ thống      lOMoARcPSD| 36006477  
Hình 3-13: Sơ đồ nguyên lý hệ thống  3.2.1 Khối nguồn   
Hình 3-14: Khối nguồn 
Khối nguồn được cung cấp điện áp 12VAC sau máy biến áp. Sau 
khi nắn lọc được thì cho ra được điện áp một chiều 5VDC. 
Điện áp ở cuộn thứ cấp máy biến áp: 
 Uhd=12V => Umax=*Uhd = * 12 = 16.97 V Điện áp  sau cầu diode có giá là:   U == 0.9*16.97=15.273 V      lOMoARcPSD| 36006477
Vậy phải chọn tụ có mức điện áp chịu đựng là 25 V  
Để chọn biến áp nguồn, cầu diode, IC ổn áp căn cứ vào dòng tiêu 
thụ của linh kiện trong mạch hay dòng tiêu thụ của toàn thống. 
Dòng tiêu thụ của các linh kiện chính trong mạch được tính gần  đúng như sau:  - 
Vi điều khiển PIC 16F877A tiêu thụ dòng khoảng 20mA  - 
Còi tiêu thụ dòng khoảng 25mA  - 
Động cơ tiêu thụ dòng 500mA  - 
LCD tiêu thụ dòng khoảng 1uA  - 
Module TCS3200 tiêu thụ dòng khoảng 100mA 
Sau khi cộng tất cả các dòng têu thụ của các linh kiện trong mạch 
ta có dòng tổng là: 645mA. 
Căn cứ vào tính toán ở trên ta có thể chọn các giá trị linh kiện  như sau: 
+ Tụ 470uF 50v và tụ gốm 104 
+ Biến áp nguồn cung cấp loại 2A 220V/ 15V 
+ IC ổn áp 7805 , có IOUT = 1A  + Cầu diode B1 có dòng 1A      lOMoARcPSD| 36006477
3.2.2 Khối xử lý trung tâm   
Hình 3-15: Khối xử lý trung tâm 
Khối này sử dụng Vi điều khiển Pic16F877A để nhận tín hiệu từ 
các khối chức năng, sau đó xử lý và xuất tín hiệu điều khiển theo yêu  cầu. 
Trong khối này có bộ dao động thạch, các nút nhấn và các chân 
kết nối để nạp chương trình cho vi điều khiển. 
3.2.3 Khối cảm biến   
Hình 3-16: Khối cảm biến 
Trong khối này có 1 header 6 chân để kết nối từ vi điều khiển tới 
module cảm biến màu sắc TCS3200.      lOMoARcPSD| 36006477
3.2.4 Khối hiển thị   
Hình 3-17: Khối hiển thị 
Khối này sử dụng một màn hình LCD 1602 được kết nối tới vi điều 
khiển Pic16F877A và nhận tín hiệu điều khiển 4 bit. 
Màn hình này hiển thị các thông số của hệ thống, để người dùng  quan sát dễ dàng. 
3.2.5 Khối cảnh báo   
Hình 3-18: Khối cảnh báo 
Còi cảnh báo buzzer nhận tín hiệu điều khiển từ chân RD4 của vi 
điều khiển và phát tiếng kêu cảnh báo người dùng. 
Sử dụng 1 điện trở 1kΩ để hạn dòng đi vào cực cổng B của 
transistor c1815 (IB max=50mA).      lOMoARcPSD| 36006477
3.2.6 Khối công suất   
Hình 3-19: Khối công suất 
Sử dụng opto PC817 để cách ly tín hiệu từ chân RD7 của vi điều 
khiển và cách ly tín hiệu điều khiển đó với cơ cấu chấp hành, có gắn trở 
330ohm để hạn dòng cho led opto. 
Sử dụng transistor C1815 có trở 1k để hạn dòng cho cực B 
transistor C1815(IB max=50mA) nhận tín hiệu từ opto kích dẫn nguồn 
cho relay đảo trạng thái hoạt động. 
3.3 Mạch in hoàn chỉnh   
Hình 3-20: Mạch in 2D      lOMoARcPSD| 36006477  
Hình 3-21: Mạch in 3D        lOMoARcPSD| 36006477
Chương 4 Chương Trình Điều Khiển 
4.1 Lưu đồ thuật giải 
4.1.1 Lưu đồ chương trình chính   
Hình 4-22: Lưu đồ thuật chương trình chính      lOMoARcPSD| 36006477  
Hình 4-23 Lưu đồ thuật chương trình chính 
Vi điều khiển sẽ lấy về tần số, đã được gán vào các biến trả về từ 
chương trình con lọc màu, tần số sẽ thay đổi ứng với những màu sắc 
khác nhau tùy thuộc vào cường độ màu sắc. Từ đó tính toán ra phần 
trăm tỷ lệ R, B, G và nhận biết ra màu sắc. Sau đó đếm số lượng sản 
phẩm theo các màu sắc và hiển thị cho người dùng qua LCD, xuất tín 
hiệu cảnh báo qua còi buzzer.      lOMoARcPSD| 36006477
4.1.2 Lưu đồ chương trình con lọc màu   
Hình 4-24: Lưu đồ chương trình con lọc màu 
Khi chương trình con này được gọi sẽ thực hiện lần lượt thay đổi 
mức logic hai chân S2, S3 của module cảm biến màu sắc làm thay đổi 
lần lượt các photodiode (bộ lọc màu) của cảm biến, để cảm biến nhận 
vào sự phản xạ ánh sáng từ vật thể và xuất ra tần số xung tương ứng 
gán vào các biến. Các biến này sẽ được xử lý, tính toán để từ đó nhận  biết được màu sắc.      lOMoARcPSD| 36006477
4.1.3 Lưu đồ chương trình xử lý ngắt   
Hình 4-25: Lưu đồ chương trình xử lý ngắt 
Mỗi lần timer0 tràn thì chương trình ngắt sẽ được thực hiện và 
khi ngắt xảy ra đủ 25 lần (đủ 10ms) thì sẽ lấy về giá trị số xung đếm 
được qua chân RC0 được trả về từ chân OUT của module cảm biến màu 
sắc. Sau đó cài lại cho giá trị của timer1=0 để thực hiện lần tiếp theo. 
Thời gian tăng 1 xung=(4/fosc)*pres=(4/20000000)*16=3,2us 
Số xung cần đếm để có 20ms = 20000/3,2=6250 
Mỗi lần timer đếm hết 250 giá trị thì timer tràn số lần ngắt cần  là 25 lần.      lOMoARcPSD| 36006477
Chương 5 Kết Luận Và Hướng Phát Triển  5.1 Kết luận 
5.1.1 Kết quả đạt được 
Thiết kế và hoàn thiện mô hình hệ thống đếm và phân loại sản  phẩm theo màu. 
Hoàn thiện các phần cứng cho hệ thống hoạt động theo yêu cầu: 
Thiết kế được mạch nguồn điều khiển hệ thống 
Thiết kế được mạch điều khiển trung tâm sử dụng vi điều khiển 
PIC 16F877A và mạch hiển thị. 
Lắp ráp mạch đúng theo yêu cầu đảm bảo tính kỹ thuật và tính  thẩm mỹ. 
5.1.2 Kết quả chưa đạt được 
Trong quá trình thiết kế và thi công việc nhận biết màu sắc còn 
hạn chế, số lượng màu nhận biết được chưa nhiều vì nhiễu màu xảy ra 
do cường độ ánh sáng mà cảm biến màu thu lại chưa ổn định. 
Chưa có nhiều kinh nghiệm vẽ mạch nên mạch in chưa được đẹp. 
5.2 Hướng phát triển 
Với việc nghiên cứu và chế tạo mô hình “bộ đếm và phân loại sản 
phẩm theo màu” với các tính năng thông minh và linh hoạt có ý nghĩa 
lớn trong thực tiễn. Việc ứng dụng hệ thống vào quá trình sản xuất có 
rất nhiều lợi ích như: 
- Tăng năng xuất lao động và chất lượng sản phẩm trong sản  xuất. 
- Giúp giảm giá thành sản phẩm để có thể cạnh tranh trên  thị trường . 
Với đề tài này, có thể mở ra một số hướng phát triển mới cho hệ 
thống. Em có đưa ra một số hướng phát triển cho đề tài này như sau: 
- Giao tiếp với máy tính theo chuẩn RS 232.      lOMoARcPSD| 36006477
- Đối với sản xuất thông minh có thể áp dụng công nghệ 
camera giám sát và phân tích màu trong các nhà máy 
sản xuất sơn, gạch men, các công ty dược phẩm… 
- Trong khoa học có thể áp dụng công nghệ nhận biết 
màu sắc để giám sát sự sinh trưởng và phát triển thực 
vật . Việc nghiên cứu và áp dụng này có ý nghĩa thực 
tiễn rất lớn trong đời sống.        lOMoARcPSD| 36006477
Tài Liệu Tham Khảo  [1] 
T.S Đặng Đắc Chi, Th.S Cao Hoàng Vũ, “Giáo trình Vi Điều 
Khiển”, trường CĐKT Cao Thắng, 2020  [2] 
http://www.beelab.info/2017/05/vi-ieu-khien-pic-bai- 5timercounter-cua.html  [3] 
https://mlab.vn/index.php?_route_=21025-huong-dan-
sudung-moudule-cam-bien-mau-sac-tcs3200.html        lOMoARcPSD| 36006477 Bảng tính vật tư    Phụ lục 
Chương trình điều khiển  #include <16F877A.h>  #include  #FUSES NOWDT, HS  #use delay(clock=2M)  #byte T1CON = 0x10      lOMoARcPSD| 36006477 #bit tmr2if=0x0c.1  #define S0 PIN_d2 #define  S1 PIN_d3  #define canhbao PIN_d4  #define S2 PIN_d5 
#define S3 PIN_d6 #define dc PIN_d7 float 
tanso=0,F_R=0,F_B=0,F_G=0; int16 R=0,B=0,G=0, dem2=0; 
int chopheptinh=0, spd=0, spv=0, spx=0, sploi=0, loaimau=0; 
int dem0=0, menu=1; int1 cospd=0, cospv=0, cospx=0,  cospl=0; char str[3];  #define LCD_ENABLE_PIN PIN_a2  #define LCD_RS_PIN PIN_a0  #define LCD_RW_PIN PIN_a1  #define LCD_DATA4 PIN_a3  #define LCD_DATA5 PIN_a4 
#define LCD_DATA6 PIN_a5 #define  LCD_DATA7 PIN_e0  #include 
//////////////////////////////////////// //////////////// void mau() {  switch(menu)   { case  1://red   {      lOMoARcPSD| 36006477  output_low(S2);  output_low(S3);  F_R=tanso;  menu=2;  output_low(S2);  output_high(S3);  break;   } case  2://blue   {   output_low(S2);  output_high(S3);  F_B=tanso;  menu=3;  output_high(S2);  output_high(S3);  break;   } case  3://green   {   output_high(S2);  output_high(S3);  F_G=tanso;  menu=4;  output_high(S2);      lOMoARcPSD| 36006477 output_low(S3);  break;   } case  4:   {   output_high(S2);  output_low(S3);  chopheptinh=1;  menu=1;  output_low(S2);  output_low(S3);  break;   }   }  }  #INT_RTCC 
void ngat() { dem0++; if(dem0==25)//20ms { 
tanso=get_timer1(); set_timer1(0); } 
set_timer0(5); } void main() { 
set_tris_a(0x00); set_tris_b(0xff); 
set_tris_c(0xff); set_tris_d(0x00); 
output_a(0x00); output_d(0x00); 
setup_timer_0(rtcc_internal|RTCC_DIV_16); 
setup_timer_1(t1_external|t1_div_by_1); 
setup_timer_2(t2_div_by_16,5,1);      lOMoARcPSD| 36006477 T1CON=0b0000001;  set_timer0(5); set_timer1(0);  lcd_init(); output_low(S0);  output_high(S1);  enable_interrupts(INT_RTCC);  enable_interrupts(GLOBAL); 
while(true) { output_high(dc);  if(chopheptinh==1)  { 
R=((F_R)/(F_R + F_B + F_G))*100.0; B=((F_B)/(F_R + 
F_B + F_G))*100.0; G=((F_G)/(F_R + F_B +  F_G))*100.0; 
if((R>=58)&&(R<=61)&&(B>=21)&&(B<=24)&&(G>=15)&&(  G<=18))loaimau=1;//do  else 
if((R>=46)&&(R<=48)&&(B>=20)&&(B<=21)&&(G>=30)&&(G<=  31))loaimau=2;//vang  else 
if((R>=21)&&(R<=26)&&(B>=29)&&(B<=34)&&(G>=40)&&(G<=  45))loaimau=3;//xanh  la  else 
if((R>=28)&&(R<=31)&&(B>=38)&&(B<=41)&&(G>=28)&&(G<=  31))loaimau=4;//khong co sp  else 
if((R>=51)&&(R<=52)&&(B>=30)&&(B<=31)&&(G>=16)&&(G<=      lOMoARcPSD| 36006477 17))loaimau=5;// sp loi 1  else 
if((R>=8)&&(R<=13)&&(B>=59)&&(B<=64)&&(G>=25)&&(G<=3  0))loaimau=6;//sp loi 2  //!else loaimau=5;  chopheptinh=0; 
} if(loaimau==1) { cospd=1; loaimau=0;} 
if(loaimau==2) { cospv=1; loaimau=0;} 
if(loaimau==3) { cospx=1; loaimau=0;} 
if(loaimau==5||loaimau==6) { cospl=1; loaimau=0;} 
if(cospd==1&&loaimau==4)   {  cospd=0;  spd++;   } 
if(cospv==1&&loaimau==4)   {  cospv=0;  spv++;   } 
if(cospx==1&&loaimau==4)   {  cospx=0;  spx++;   }      lOMoARcPSD| 36006477
if(cospl==1&&loaimau==4)   { cospl=0; sploi++;  output_high(canhbao);  delay_ms(100);  output_low(canhbao);   }  lcd_gotoxy(1,1);  printf(lcd_putc,"md:%u",spd);  lcd_gotoxy(6,1);  printf(lcd_putc,"mv:%u",spv);  lcd_gotoxy(11,1);  printf(lcd_putc,"mx:%u",spx); 
lcd_gotoxy(2,2); printf(lcd_putc," sp  loi:%u ",sploi);  while(spd>5)   { output_low(dc);  disable_interrupts(INT_RTCC);  lcd_gotoxy(4,2); lcd_putc("sp  do du "); if(tmr2if==1)   { tmr2if=0; dem2++; 
if(dem2==1) output_high(canhbao); 
if(dem2==250) output_low(canhbao); 
if(dem2==375) output_high(canhbao);      lOMoARcPSD| 36006477
if(dem2==625) output_low(canhbao);  if(dem2==1250) dem2=0;   }   if(input(pin_b0)==0)   {   while(input(pin_b0)==0)   {   lcd_gotoxy(4,2);  lcd_putc("sp do du ");   }   output_high(dc);  output_low(canhbao); spd=0;  enable_interrupts(INT_RTCC);   }   }  while(spv>4)   { output_low(dc);  disable_interrupts(INT_RTCC);  lcd_gotoxy(3,2); lcd_putc("sp  vang du "); if(tmr2if==1)   { tmr2if=0; dem2++; 
if(dem2==1) output_high(canhbao); 
if(dem2==250) output_low(canhbao); 
if(dem2==375) output_high(canhbao);      lOMoARcPSD| 36006477
if(dem2==625) output_low(canhbao);  if(dem2==1250) dem2=0;   }   if(input(pin_b0)==0)   {   while(input(pin_b0)==0)   {   lcd_gotoxy(3,2);  lcd_putc("sp vang du ");   }   output_high(dc);  output_low(canhbao);  spv=0;  enable_interrupts(INT_RTCC);   }   }  while(spx>3)   { output_low(dc);  disable_interrupts(INT_RTCC);  lcd_gotoxy(3,2); lcd_putc("sp  xanh du "); if(tmr2if==1)   { tmr2if=0; dem2++; 
if(dem2==1) output_high(canhbao); 
if(dem2==250) output_low(canhbao); 
if(dem2==375) output_high(canhbao);      lOMoARcPSD| 36006477
if(dem2==625) output_low(canhbao);  if(dem2==1250) dem2=0;   }   if(input(pin_b0)==0)   {   while(input(pin_b0)==0)   {   lcd_gotoxy(3,2);  lcd_putc("sp xanh du "); }   output_high(dc);  output_low(canhbao); spx=0;  enable_interrupts(INT_RTCC);   }   } 
//!///////////// hien R G B de xac dinh mau  //!sprintf(str,"%lu",R);  //!if(R<100)str[2]=' '; 
//!if(R<10){str[2]=' ';str[1]=' ';}  //!lcd_gotoxy(1,1);  //!lcd_putc("R=");  //!lcd_gotoxy(3,1);  //!lcd_putc(str[0]);  //!lcd_gotoxy(4,1);  //!lcd_putc(str[1]);  //!lcd_gotoxy(5,1);      lOMoARcPSD| 36006477 //!lcd_putc(str[2]);  //!sprintf(str,"%lu",B);  //!if(B<100)str[2]=' '; 
//!if(B<10){str[2]=' ';str[1]=' ';}  //!lcd_gotoxy(6,1);  //!lcd_putc("B=");  //!lcd_gotoxy(8,1);  //!lcd_putc(str[0]);  //!lcd_gotoxy(9,1);  //!lcd_putc(str[1]);  //!lcd_gotoxy(10,1);  //!lcd_putc(str[2]);  //!sprintf(str,"%lu",G);  //!if(G<100)str[2]=' '; 
//!if(G<10){str[2]=' ';str[1]=' ';}  //!lcd_gotoxy(11,1);  //!lcd_putc("G=");  //!lcd_gotoxy(13,1);  //!lcd_putc(str[0]);  //!lcd_gotoxy(14,1);  //!lcd_putc(str[1]);  //!lcd_gotoxy(15,1);  //!lcd_putc(str[2]);  }  }    
