Professional Documents
Culture Documents
123doc Ao Giap Thong Minh Trong Thi Dau Vo Thuat Co Code
123doc Ao Giap Thong Minh Trong Thi Dau Vo Thuat Co Code
Trong những năm gần đây, rất nhiều mạng cảm nhận không dây đã và đang
được phát triển và triển khai cho nhiều các ứng dụng khác nhau như: theo dõi sự
thay đổi của môi trường, khí hậu, giám sát các mặt trận quân sự, phát hiện và do
thám việc tấn công bằng hạt nhân, sinh học và hoá học, chuẩn đoán sự hỏng hóc của
máy móc, thiết bị, theo dấu và giám sát các bác sỹ, bệnh nhân cũng như quản lý
thuốc trong các bệnh viên, theo dõi và điều khiển giao thông, các phương tiện xe
cộ...
Nhưng quần áo thông minh vẫn là xu thế, không chỉ đơn thuần là gắn các thiết bị
vào cổ tay, mặt, tai, chân. Quần áo thông minh có thể theo dõi nhịp tim, theo dõi
cảm xúc và thậm chí trả tiền cà phê sáng mà không cần dùng qua điện thoại.
Tình hình nghiên cứu ngoài nước
Hiện nay, trên thế giới lĩnh vực IOTs phát triển rất nhanh và gần như bao phủ
hết các lĩnh vực trong đời sống. Các sản phẩm, các công trình nghiên cứu ứng
dụng công nghệ cảm biến không dây ngày càng nhiều. Đặc biệt trong vài năm gần
đây cho ra đời rất nhiều dòng sản phẩm về quần áo thông minh liên quan đến sức
khỏe và đời sống con người.
Những công nghệ được kỳ vọng từ năm 2015 đến nay:
Áo POLAR TEAM PRO
Nhà sản xuất đồng hồ thể thao GPS lần đầu tiên bước vào thế giới quần áo
thông minh với chiếc áo nén thông minh được thiết kế cho các vận động viên
nghiêm túc.
Với các điểm chụp nhịp tim ở mặt trước và túi ở mặt sau cho cảm biến GPS,
người dùng sẽ có thể theo dõi chuyển động và đo nhịp tim theo thời gian
thực. Tích hợp với hệ thống Team Pro của Polar có nghĩa là bạn có thể phát dữ
liệu đào tạo trực tiếp, cho phép vận động viên và huấn luyện viên theo dõi tình
trạng và mức độ thể lực.
Quần LUMO
Từ các nhà sản xuất máy theo dõi tư thế Lumo Lift, những chiếc quần short và
capris chạy thông minh này trong một cảm biến có thể theo dõi một loạt các số
liệu bao gồm nhịp, thời gian tiếp xúc mặt đất, xoay xương chậu và chiều dài sải
chân. Thiết bị chạy thông minh hỗ trợ huấn luyện theo thời gian thực, với phản hồi
được gửi qua tai nghe của bạn để giúp cải thiện hình thức chạy và giảm khả năng
chấn thương.
Không có thay đổi nào ở mặt trước pin, mang lại cho bạn một tháng ấn tượng
sau một lần sạc. Nếu bạn không muốn mua quần short, cũng có cảm biến Lumo
Run có thể làm thông minh bộ dụng cụ chạy hiện tại của bạn.
Spinali Design bikini thông minh
Công ty công nghệ thời trang Pháp này đã bận rộn tạo ra quần áo kết nối, bao
gồm quần jean, váy và bikini.
Bộ sưu tập áo tắm Neviano UV Protect được trang bị cảm biến chống nước kiểu
huy chương có thể tháo rời nhằm mục đích ngăn bạn ở quá lâu dưới ánh mặt trời.
Khi bạn đã nhập loại da của mình vào ứng dụng điện thoại thông minh iOS
hoặc Android đồng hành, nó sẽ liên tục theo dõi nhiệt độ trong suốt cả ngày và sẽ
gửi cảnh báo khi đến lúc bôi thêm kem chống nắng hoặc vào trong bóng râm.
Hướng nghiên cứu đề tài
Mặc dù đã có khá nhiều công nghệ áp dụng vào quần áo nhưng vẫn có rất ít
nghiên cứu nào hướng về lĩnh vực võ thuật. Chính vì nhìn thấy được vấn đề nên đề
tài nghiên cứu áp dụng lên áo giáp trong võ thuật mang tên “ Áo giáp thông minh
cho thi đấu võ thuật “
Với khả năng cảm nhận không dây, linh hoạt và mô hình khá nhỏ gọn thì “Áo
giáp thông minh cho thi đấu võ” là một đề tài rất có ít cho nền võ thuật nước nhà.
Áo giáp thông minh cho thi đấu võ dựa trên cảm nhận không dây. Trên áo giáp
có các node cảm nhận được lập trình tính điểm. Khi đánh vào vị trí điểm trên áo
giáp, tín hiệu sẽ gởi điểm về hiển thị trên bảng led 7 đoạn. Nguyên lý này cũng dễ
sử dụng và giá thành áo đấu cũng thấp.
Ngoài ra, còn sử dụng PL2303 để truyền dữ liệu và lưu về máy tính qua Visual
studio 2012 . Giúp dễ dàng xác định được số điểm đã thi đấu của các đấu sĩ.
Do Việt Nam chưa chú trọng và ứng dụng công nghệ nhiều về vấn đề thể thao
cho nên ít có những sản phẩm công nghệ nghiên cứu về lĩnh vực này.
Bên cạnh đó, với sự phát triển về lĩnh vực thể thao hiện nay kết hợp cùng với
công nghệ hiện đại có thể là xu hướng phát triển cần được nghiên cứu trong thời
gian sắp tới nhằm mục đích phát triển cho các vận động viên thể thao nói riêng và
nền công nghệ Việt Nam nói chung.
Từ những yêu cầu thực tế đó, cùng với sự tìm hiểu về công nghệ truyền dẫn vô
tuyến và khai thác thông tin thể thao,đề tài “Áo giáo thông minh cho thi đấu võ
thuật” nhằm tạo nên thiết bị áo có khả năng theo dõi và lưu trữ tỷ số trận đấu của
đấu sĩ trực tiếp tại sàn đấu và trên máy tính.
Để hoàn thành sản phẩm một cách hoàn thiện nhất, đặt ra những mục tiêu như
sau:
– Tự thiết kế và xây dựng mô hình áo giáp có khả năng tính điểm trong thi
đấu.
– Hiểu về phần mềm lập trình và lập trình cho vi điều khiển PIC.
– Hiểu được nguyên lí hoạt động Module RF 315 và PT2272 M4
– Hiểu hoạt động của PL2303 và cách gởi dữ liệu về máy tính.
– Tạo giao diện qua Visual studio 2012 để tiếp nhận dữ liệu và lưu về máy
tính
Có thể, hệ thống được thiết kế chưa hoàn chỉnh và hiện đại, tuy nhiên đây là
những ý niệm, nguyên lý cơ bản ban đầu về một hệ thống giám sát và điều khiển
không dây, từ đó mở ra khả năng hoàn thiện ý tưởng, phát triển hệ thống tốt hơn,
hoàn chỉnh hơn, ứng dụng vào những mục đích khác trong cuộc sống.
Hiện nay, hầu hết các thiết bị công nghệ ứng dụng trên nhiều lĩnh vực: giáo dục,
y khoa, sản xuất,… Nhưng về lĩnh vực thể thao là rất ít. Đặc biệc là về võ thuật, hầu
như chưa có công nghệ nào ứng dụng cho thi đấu võ. Một trận đấu võ cần ban giám
khảo đơn thuần là để chấm điểm cho trận đấu. Nhưng không chắc rằng đó là số
điểm chính xác vì do chấm bằng mắt thường có thể sai lệch rất nhiều.
Nên sẽ cần thiết có một thiết bị có khả năng tính toán, lưu trữ và cập nhật liên
tục điểm số của trận đấu.
Đề tài được nghiên cứu, thực hiện nhằm mục đích ứng dụng kiến thức đã học
vào việc giải quyết yêu cầu thực tế, cụ thể là tìm hiểu truyền dẫn RF, thiết kế hệ
thống tính toán, thống kê kết quả và lưu trữ điểm số trong khoảng thời gian thi đấu.
Với quy mô nghiên cứu nhỏ, mang tính thực nghiệm, đề tài này chủ yếu tập
trung thiết kế, xây dựng mô hình thông qua việc ứng dụng RF 315Mhz, giao diện
Visual Studio và PIC16F877A.
Tuy sản phẩm có khả năng trao đổi và truyền tải thông tin, dữ liệu một cách hiệu
quả, tiện lợi thông qua RF 315Mhz. Nhưng nó vẫn chưa có khả năng tự giải quyết
vấn đề mà cần sự tương tác trực tiếp giữa người với thiết bị hay giữa người với
người.
Bên cạnh đó, vì là mạch do sinh viên thực hiện nên sản phẩm có những giới hạn
nhất định như sau:
Không tập trung vào tính thương mại của sản phẩm
Phần cứng sử dụng các module có sẵn trên thị trường
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
Khái niệm
Là một môn võ thuật truyền thống của vùng Okinawa(Nhật Bản). Karate có
tiếng là nghệ thuật chiến đấu với các đòn đặc trưng như đấm, đá, cú đánh cùi chỏ,
đầu gối và các kỹ thuật đánh bằng bàn tay mở. Trong Karate còn có các kỹ thuật
đấm móc, các kỹ thuật đấm đá liên hoàn, các đòn khóa, chặn, né, quật ngã và những
miếng đánh vào chỗ hiểm. Để tăng sức cho các động tác tấn đỡ, Karate sử dụng kỹ
thuật xoay hông hay kỹ thuật kime, để tập trung lực năng lượng toàn cơ thể vào thời
điểm tác động của cú đánh.
Lịch sử hình thành
Những nghiên cứu gần đây cho thấy Karate được phát triển trên cơ sở tổng hợp
các phương thức chiến đấu của người Ryukyu với các môn võ thuật ở phía
Nam Trung Quốc nhằm chống lại ách đô hộ hà khắc mà giới cai trị Nhật Bản áp đặt
lên dân bản xứ bấy giờ. Tuy nhiên, xuất xứ chính xác của môn võ này còn chưa
được xác định, bởi không tìm được thư tịch cổ nào của Vương quốc Lưu Cầu xưa
ghi chép về môn võ này. Người ta chỉ có thể đưa ra được những giả thiết về nguồn
gốc của Karate.
– Xuất phát từ các điệu múa vùng nông thôn Lưu Cầu, một môn võ (người
Ryukyu gọi là dei và viết bằng chữ Hán 手 ) hình thành và phát triển
thành Todei (唐手). Đây là giả thiết do Asato Anko đưa ra.
– Do tập đoàn người Hoa từ Phúc Kiến di cư sang Okinawa và định cư tại
thôn Kuninda ở Naha và truyền các môn võ thuật Trung Quốc tới đây. Vì
thế mà có tên gọi là tote (唐手) với chữ to (唐 - Đường) chỉ Trung Quốc,
còn te ( 手 - Thủ) nghĩa là "võ", tức các môn võ thuật có gốc từ Trung
Hoa.
– Theo con đường thương mại tới Okinawa. Vương quốc Lưu Cầu xưa có
quan hệ thương mại rộng rãi với Trung Quốc và các quốc gia Đông Nam
Á. Các môn võ thuật có thể từ các miền đất khác theo các thuyền buôn và
truyền tới Okinawa.
– Bắt nguồn từ môn vật của Okinawa có tên là shima.
2.1.2 Tiêu chuẩn và cách tính điểm trong thi đấu Karate
2.2.2 Các khối chức năng của một hệ thống liên lạc sóng vô tuyến RF
Là môi trường phát triển tích hợp chính IDE được phát triển từ Microsoft. Đây
là một loại phần mềm máy tính có công dụng giúp đỡ các lập trình viên trong việc
phát triển phần mềm.
– Các môi trường phát triển hợp nhất thường bao gồm:
+ Một trình soạn thảo mã (source code editor): dùng để viết mã.
+ Trình biên dịch (compiler) và/hoặc trình thông dịch (interpreter).
+ Công cụ xây dựng tự động: khi sử dụng sẽ biên dịch (hoặc thông dịch)
mã nguồn, thực hiện liên kết (linking), và có thể chạy chương trình
một cách tự động.
+ Trình gỡ lỗi (debugger): hỗ trợ dò tìm lỗi.
+ Ngoài ra, còn có thể bao gồm hệ thống quản lí phiên bản và các công
cụ nhằm đơn giản hóa công việc xây dựng giao diện người dùng đồ
họa (GUI).
+ Nhiều môi trường phát triển hợp nhất hiện đại còn tích hợp trình duyệt
lớp (class browser), trình quản lí đối tượng (object inspector), lược đồ
phân cấp lớp (class hierarchy diagram),… để sử dụng trong việc phát
triển phần mềm theo hướng đối tượng.
– Trong đề tài này ta dùng MVS để xây dựng giao diện đồ họa (GUI) để hiển
thị và lưu trữ điểm số của trận đấu. Chức năng này được gọi là WinForms
Designer
WinForms Designer: đây là công cụ tạo giao diện đồ họa dùng WinForms. Điểm
đặc biệt ở đây là giao diện sinh động, dễ nắm bắt. Nó bao gồm các phím bấm, thanh
tác vụ, hay các box đa dạng (textbox, list box, grid view…). Có thể di chuyển, kéo
ra, nhúng thả chúng một cách dễ dàng.
3.1 Sơ đồ khối
Nhiệm vụ: nhận dữ liệu, đọc và phân tích dữ liệu. Sau đó gửi về phía thu qua
đường truyền vô tuyến sóng RF
Với nhiệm vụ phải truyền vô tuyến qua sóng RF vì thế lựa chọn Module IC
PT2262 ở phía phát với những đặc điểm phù hợp, cụ thể như sau :
Module phát PT2262 (Tx) được thiết kế để sử dụng cùng với module thu
PT2272-M4 (Rx). Khi được sử dụng cùng nhau, chúng là một tập hợp các module
không dây hoạt động ở mức 433 MHz và sử dụng bộ mã hóa và giải mã điều khiển
từ xa của IC Technology Technology PT2262 & PT2272. Chúng cung cấp một cách
dễ dàng để điều khiển từ xa mà không cần vi điều khiển.
Nhiệm vụ : thu thập dữ liệu từ phía phát đồng thời kết nối và truyền dữ liệu vừa
nhận được đến khối điều khiển.
Do Module phát PT2272-M4 (Rx) được thiết kế để sử dụng cùng với module thu
PT2262 (Tx) cho nên để thực hiện được ta dùng Module IC PT2272-M4 với những
đặc điểm phù hợp như sau:
IC PT2262 & PT2272 cung cấp một cách dễ dàng để điều khiển từ xa mà không cần
vi điều khiển.Vì khi được sử dụng cùng nhau, chúng là một tập hợp các module
không dây hoạt động ở mức 433 MHz và sử dụng bộ mã hóa và giải mã điều khiển
từ xa của IC PT2262 & PT2272.
– Khối điều khiển có hai nhiệm vụ. Thứ nhất là nhận tín hiệu từ các node trên áo
để tính điểm và hiển thị ra bảng điểm. Thứ hai là gởi giá trị từ PL2303.
Nhiệm vụ : Nhiệm vụ: hiển thị kết quả, đồng thời cho phép người dùng thao tác lưu
về máy tính.
Cung cấp nguồn cho hệ thống. Vì tất cả module đểu hoạt động với điện áp
từ 3.3V trở lên và dòng điện 3mA trở lên. Nên chọn khối nguồn là 5V sử dụng
chung cho toàn hệ thống.
Đề tài lựa chọn nguồn từ cổng USB Laptop với ngõ ra là 5V và 2.1A cho
khối nguồn. Điều này thuận lợi cho việc cấp nguồn và truyền dữ liệu cho hệ
thống.
Qua phân tích về đặc điểm của karate, sơ đồ khối hệ thống nên quyết định lựa chọn
giải pháp xây dựng hệ thống giám sát tích hợp nhiều module:
Hệ thống sử dụng Module RF thu phát RF315Mhz làm khối truyền dẫn
thu phát. Ưu điểm của module là được thiết kế tích hợp dựa trên nền chip
IC PT2262/PT2272-M4 với thiết kế dễ sử dụng, đặc biệt là có thể truyền
sóng vô tuyến RF điều khiển từ xa.
Hệ thống sử dụng PIC16F877A làm khối điều khiển.
Sử dụng LCD làm khối hiện thị đồng thời sử dụng chương trình Visual
Studio để tạo giao diện hiển thị , lưu trữ kết nối từ máy tính và vi điều
khiểu qua PL2303.
Nút nhấn đóng vai trò là thiết bị đầu vào của hệ thống, tín hiệu từ nút
nhấn được đưa vào IC PT2262 qua chân tín hiệu.
PT2262 là trung tâm nhận và xử lí tín hiệu, nó sẽ nhận tín hiệu phản
hồi từ nút nhấn, xử lí dữ liệu để truyền dữ liệu nhận được vào đến phía
thu của hệ thống
PT2272-M4 đảm nhận việc nhận dữ liệu từ phía thu sau đó xử lí truyền
tiếp về PIC16F877A.
Khối điều khiển 16F877A sẽ nhận và phân tích dữ liệu để hiển thị ra
LCD và giao tiếp UART với máy tính thông qua PL2303
Visual studio là chương trình cuối cùng hiển thị dữ liệu đã nhận và lưu
trữ.
Điều đó sẽ giảm thiểu sai xót khi truyền nhận dữ liệu nếu trong khoảng
cách truyền nhận xa.
Sau đó, dữ liệu của nút nhấn này được đưa qua RF thu truyền về
PIC16F877A xử lí và hiển thị ra bảng LCD.
Lúc này PIC16F877A sẽ giao tiếp máy tính qua PL2303.Sau đó sử dụng
giao diện phần mềm Visual studial 2012 để hiển thị và lưu trữ điểm số vào máy
tính.
Thi công mạch ta có phần thu và hiển thị của đề tài như sau:
Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép trình
biên tập mã và gỡ lỗi để hỗ trợ (mức độ khác nhau) hầu như mọi ngôn ngữ lập
trình. Các ngôn ngữ tích hợp gồm có C, C++ và C++/CLI (thông qua Visual C+
+), VB.NET (thông qua Visual Basic.NET), C# (thông qua Visual C#)
và F# (như của Visual Studio 2010). Hỗ trợ cho các ngôn ngữ khác như J+
+/J#, Python và Ruby thông qua dịch vụ cài đặt riêng rẽ. Nó cũng hỗ
trợ XML/XSLT, HTML/XHTML, JavaScript và CSS.
Giao diện của Visual studio được thiết kế như sau:
Hình 4-5 : Giao diện hiển thị điểm trên Visual studio
Đầu tiên muốn kết nối từ máy tính ta phải chọn cổng COM phù hợp. Sau
đó, nhấn nút KẾT NỐI để giao tiếp với vi điều khiển. Khi cài đặt hoàn chỉnh lúc
này trận đấu bắt đầu số điểm chung sẽ được hiển thị kèm theo thời gian như hình
để tiện cho việc kiểm soát điểm số công bằng cho đấu sĩ. Song song đó ở 3 ô
textbox sẽ luôn hiển thị liên tục điểm thành phần và điểm tổng.
Kết thúc trận đấu, có nút LƯU ĐIỂM TỔNG để lưu điểm chung cuộc của
trận đấu và nút LƯU ĐIỂM THÀNH PHẦN dùng để lưu tất cả các điểm gồm :
điểm thành phần, điểm tổng và thời gian ghi điểm.
Áo giáp hoạt động được là do sự truyền nhận tín hiệu từ bộ RF thu phát
315Mhz lấy tín hiệu điểm từ nút nhấn truyền đến PIC16F877A để hiển thị điểm số
của trận đấu ra LCD. Song song đó điểm số cũng được hiển thị và lưu trữ trên máy
tính qua giao diện phần mềm Visual studio 2012. Máy tính đọc được dữ liệu là do
vi điều khiển 16F877A giao tiếp UART qua PL2303.
Ưu điểm :
– Bộ phận tính điểm và truyền phát khá ổn định
– Độ nhạy của các node ổn.
– Khán giả có thể theo dõi số điểm qua bản điểm số. Song song đó nếu võ sĩ
có thắc mắc về điểm số cũng đã lưu về máy tính để giải đáp ổn thỏa thắc
mắc.
– Khoảng cách truyền dẫn đủ xa trong khuôn khổ một trận đấu
– Tính điểm tự động không cần lệ thuộc nhiều vào giám khảo. Giải quyết
đơn giản hơn về vấn đề con người.
– Về giá thành tương đối, do linh kiện không quá cao nên chi phí khá ổn.
Nhược điểm:
– Vẫn còn sử dụng nút nhấn
– Dây điện gắn vào áo khá không phải là một giải pháp hay
– Do truyền dẫn dùng RF 315Mhz nên còn bị hạn chế mở rộng số kênh.
Hướng phát triển:
– Kết nối với Internet dễ dàng truyền tải thông tin lên Web để khán giả
không trực tiếp xem trận đấu cũng có thể theo dõi được diễn biến trận đấu.
– Áp dụng các cảm biến vào áo. Ví dụ như có thể gắn cảm biến lực,... để tối
ưu hóa áo giáp hơn.
– Tối thiểu đường đi dây trên áo và thiết kế dây như là một tấm lưới. Mục
đích để giảm lực đánh gây ra trên áo.
PHỤ LỤC A
#INCLUDE <16f877a.H>
#USE DELAY(CLOCK=20M)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#INCLUDE <LCD.C>
#define d0 pin_a0
#define d1 pin_a1
#define d2 pin_a2
#define d3 pin_a3
int1 tt_ss=1;
#int_timer1
void INTERRUPT_TIMER1()
SET_TIMER1(3036);
BDN++;
void phim_chon()
if(input(chon)==0)
delay_ms(20);
if(input(chon)==0)
tt_mod++;
if(tt_mod>2) tt_mod=0;
while(input(chon)==0);
void phim_tang()
if(input(tang)==0)
delay_ms(20);
if(input(tang)==0)
if(tt_mod==1)
phut++;
if(phut>59) phut=0;
else if(tt_mod==2)
giay++;
if(giay>59) giay=0;
while(input(tang)==0);
void phim_giam()
if(input(giam)==0)
delay_ms(20);
if(input(giam)==0)
if(tt_mod==1)
phut--;
if(phut<0) phut=59;
else if(tt_mod==2)
giay--;
if(giay<0) giay=59;
while(input(giam)==0);
void phim_start()
if(input(start)==0)
delay_ms(20);
if(input(start)==0)
bdn=0;
tt_ss=~tt_ss;
tt_mod=0;
while(input(start)==0);
void giaima()
LCD_GOTOXY(1,1);
LCD_PUTC("DA");
LCD_GOTOXY(1,2);
LCD_PUTC(DIEMA/10+0X30);
LCD_PUTC(DIEMA%10+0X30);
LCD_GOTOXY(15,1);
LCD_PUTC("DB");
LCD_GOTOXY(15,2);
LCD_PUTC(DIEMB/10+0X30);
LCD_PUTC(DIEMB%10+0X30);
LCD_GOTOXY(6,1);
LCD_PUTC(phut/10+0X30);
LCD_PUTC(phut%10+0X30);
LCD_PUTC(":");
LCD_PUTC(giay/10+0X30);
LCD_PUTC(giay%10+0X30);
void nhap_nhay()
if(bdn<5)
if(tt_mod==1)
LCD_GOTOXY(6,1);
LCD_PUTC(" ");
else if(tt_mod==2)
LCD_GOTOXY(9,1);
LCD_PUTC(" ");
else giaima();
else giaima();
tama=3;
if((!input(d0))&&(!input(d1))&&(input(d2))&&(!input(d3)))
delay_MS(20);
if((!input(d0))&&(!input(d1))&&(input(d2))&&(!input(d3)))
diema=diema+3;
tama=3;
while((!input(d0))&&(!input(d1))&&(input(d2))&&(!input(d3)));
void nut_so3a()
if((!input(d0))&&(!input(d1))&&(input(d2))&&(input(d3)))
delay_MS(20);
if((!input(d0))&&(!input(d1))&&(input(d2))&&(input(d3)))
tama=1;
while((!input(d0))&&(!input(d1))&&(input(d2))&&(input(d3)));
void nut_so4a()
if((!input(d0))&&(input(d1))&&(!input(d2))&&(!input(d3)))
delay_MS(20);
if((!input(d0))&&(input(d1))&&(!input(d2))&&(!input(d3)))
diema = diema + 1;
tama=1;
while((!input(d0))&&(input(d1))&&(!input(d2))&&(!input(d3)));
void nut_so5a()
if((!input(d0))&&(input(d1))&&(!input(d2))&&(input(d3)))
delay_MS(20);
if((!input(d0))&&(input(d1))&&(!input(d2))&&(input(d3)))
diema = diema + 4;
tama=4;
while((!input(d0))&&(input(d1))&&(!input(d2))&&(input(d3)));
void nut_so6a()
if((!input(d0))&&(input(d1))&&(input(d2))&&(!input(d3)))
delay_MS(20);
if((!input(d0))&&(input(d1))&&(input(d2))&&(!input(d3)))
diema = 0;
tama=0;
while((!input(d0))&&(input(d1))&&(input(d2))&&(!input(d3)));
if((!input(d0b))&&(!input(d1b))&&(!input(d2b))&&(input(d3b))) // con
nhan khong
tamb=3;
while((!input(d0b))&&(!input(d1b))&&(!input(d2b))&&(input(d3b))); //cho
nha phim
if((!input(d0b))&&(!input(d1b))&&(input(d2b))&&(!input(d3b)))
delay_MS(20);
if((!input(d0b))&&(!input(d1b))&&(input(d2b))&&(!input(d3b)))
diemb=diemb+3;
tamb=3;
while((!input(d0b))&&(!input(d1b))&&(input(d2b))&&(!input(d3b)));
void nut_so3b()
if((!input(d0b))&&(!input(d1b))&&(input(d2b))&&(input(d3b)))
delay_MS(20);
if((!input(d0b))&&(!input(d1b))&&(input(d2b))&&(input(d3b)))
tamb=1;
while((!input(d0b))&&(!input(d1b))&&(input(d2b))&&(input(d3b)));
void nut_so4b()
if((!input(d0b))&&(input(d1b))&&(!input(d2b))&&(!input(d3b)))
delay_MS(20);
if((!input(d0b))&&(input(d1b))&&(!input(d2b))&&(!input(d3b)))
diemb = diemb + 1;
tamb=1;
while((!input(d0b))&&(input(d1b))&&(!input(d2b))&&(!input(d3b)));
void nut_so5b()
if((!input(d0b))&&(input(d1b))&&(!input(d2b))&&(input(d3b)))
delay_MS(20);
if((!input(d0b))&&(input(d1b))&&(!input(d2b))&&(input(d3b)))
diemb = diemb + 4;
tamb=4;
while((!input(d0b))&&(input(d1b))&&(!input(d2b))&&(input(d3b)));
void nut_so6b()
if((!input(d0b))&&(input(d1b))&&(input(d2b))&&(!input(d3b)))
delay_MS(20);
if((!input(d0b))&&(input(d1b))&&(input(d2b))&&(!input(d3b)))
diemb = 0;
tamb=0;
while((!input(d0b))&&(input(d1b))&&(input(d2b))&&(!input(d3b)));
void setup()
set_tris_b(0x00);
set_tris_d(0x00);
set_tris_c(0xff);
LCD_INIT();
SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);
GIAY=0;
phut=0;
diema=0;
diemb=0;
tt_ss=0;
tama=0;
tamb=0;
tt_mod=0;
void main()
setup();
while(true)
IF(BDN<10)
nhap_nhay();
phim_start();
if(tt_ss==0)
phim_chon();
phim_tang();
phim_giam();
else
nut_so1a();
nut_so2a();
nut_so3a();
nut_so4a();
nut_so5a();
nut_so6a();
nut_so1b();
nut_so2b();
nut_so3b();
nut_so4b();
nut_so5b();
nut_so6b();
ELSE
bdn=0;
if(tt_ss==1)
giay--;
if(giay<0)
giay=59;
phut--;
if(phut<0)
phut=0;
giay=0;
tt_ss=0;
PHỤ LỤC B
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.IO;
namespace InterfacePC
{
public partial class frmMain : Form
{
#region Quan ly bien
SerialPort UART = new SerialPort();
#endregion
#region Quan ly ham
private void _KhoiTao()
{
try
{
cbxTenCongCom.DataSource = SerialPort.GetPortNames();
if (cbxTenCongCom.Items.Count > 0) //xoa cong com khi
chon
{
cbxTenCongCom.SelectedIndex = 0;
}
}
catch (Exception)
{
}
}
#endregion
#region Quan ly form
public frmMain()
{
InitializeComponent();
}
{
try
{
if (cbxTenCongCom.Text.Trim().Length == 0)
{
MessageBox.Show("VUI LÒNG CHỌN CỔNG COM!");
return;
}
UART.PortName = cbxTenCongCom.Text;
UART.Open();
if (UART.IsOpen == true)
{
btnNgatKetNoi.Enabled = true;
// gbxGuiDuLieu.Enabled = true;
txbNhanDuLieu.Enabled = true;
btnKetNoi.Enabled = false;
}
else
{
btnNgatKetNoi.Enabled = false;
// gbxGuiDuLieu.Enabled = false;
txbNhanDuLieu.Enabled = false;
btnKetNoi.Enabled = true;
}
}
catch (Exception)
{
}
}
btnKetNoi.Enabled = false;
}
else
{
btnNgatKetNoi.Enabled = false;
// gbxGuiDuLieu.Enabled = false;
txbNhanDuLieu.Enabled = false;
btnKetNoi.Enabled = true;
}
}
catch (Exception)
{
}
}
}
}
Tiếng Việt:
[1] Nguyễn Đình Phú, “Giáo trình vi điều khiển 16F877” , Đại học Sư Phạm Kỹ
Thuật.
[2] http://arduino.vn/
[3] https://www.stdio.vn/
Tiếng Anh:.
[4] http://www.ebay.com/
[5] http://www.alldatasheet.com/