Tải bản đầy đủ (.pdf) (114 trang)

LUẬN văn tự ĐỘNG hóa hệ THỐNG ĐỒNG hồ THỜI GIAN THỰC và CHUÔNG tự ĐỘNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.43 MB, 114 trang )

TRƢỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ
BỘ MÔN TỰ ĐỘNG HÓA
------o0o------

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

HỆ THỐNG ĐỒNG HỒ THỜI GIAN
THỰC VÀ CHUÔNG TỰ ĐỘNG

CÁN BỘ HƢỚNG DẪN

SINH VIÊN THỰC HIỆN

TS. Nguyễn Chí Ngôn

Nguyễn Trung Nghĩa(1063886)
Lớp: Cơ Điện Tử - Khóa: 32

Tháng 12/2010


LỜI NÓI ĐẦU
---------oOo---------

Ngày nay, trong công cuộc công nghiệp hóa và hiện đại hóa đất nước. Có thể
nhận thấy một điều là nền sản xuất của chúng ta hiện tại mang tính thủ công và lạc
hậu. Vì thế hiện đại hóa và tự động hóa quá trình sản xuất là cấp thiết cần phải thực
hiện ngay.
Ngay từ ngàn xưa thời gian là một tài sản quý giá, đã qua rồi thì không thể lấy
lại được, thời gian quả là một bí mật lớn. Chúng ta cảm nhận nó trôi qua. Chúng ta


đo đạc tiến trình của nó với những dụng cụ đo lường vô cùng tinh vi. Chúng ta đánh
dấu những chuyến hành trình của nó và đọc lại các dấu vết lưu trữ thời gian để lại.
Nhưng có một điều chúng ta không làm được là định nghĩa thời gian.
Bằng cách nào đó việc đo đếm thời gian ngày càng được hiện đại hóa và chính xác
đến mức gần như tuyệt đối, sai số là vô cùng nhỏ. Sự xuất hiện của đồng hồ điện tử
và báo giờ trên đồng hồ điện tử là một phát minh hữu ích cho mọi người. Nhất là
trong một khoa của trường đại học, việc báo giờ và đổ chuổng để mọi người biết
giờ học bắt đầu hay kết thúc là rất cần thiết. Việc này đã được thực hiện nhưng còn
thiếu chính xác và tốn kém do hạn chế của việc làm thủ công. Do đó tôi đã sinh ra ý
tưởng hoàn thiện chiếc đồng hồ báo giờ và đổ chuông tự động để mọi người đều có
thể sử dụng được.
Trong quá trình thực hiện đề tài, tôi đã thiết kế và tính toán sao cho hệ thống
hoạt động chính xác nhất, ổn định nhất và dễ dùng nhất.. Tuy nhiên, tôi đã gặp
nhiều khó khăn do vấn đề thời gian và kinh nghiệm. Đến thời điểm này đề tài tốt
nghiệp đại học của tôi đã được hoàn thành tốt chính nhờ có sự động viên và giúp đỡ
quý báu của nhiều thầy cô. Nhân đây tôi xin chân thành gởi lời cảm ơn sâu sắc đến:
Thầy TS. Nguyễn Chí Ngôn cán bộ hướng dẫn đề tài, Thầy đã chỉ bảo tận tình
để tôi có thể hoàn thành tốt đề tài này.
Tôi xin chân thành cảm ơn Thầy Ths. Nguyễn Khắc Nguyên đã giúp đỡ tôi về
phần cứng.
Tôi cũng xin cảm ơn Thầy Lý Thanh Phương, Thầy Nguyễn Huỳnh Anh Duy,
nhóm Robocon CTMEC và quý Thầy Cô Bộ môn Tự Động Hóa - Khoa Công Nghệ
- Trường Đại Học Cần Thơ đã giúp đỡ tôi trong suốt thời gian thực hiện đề tài này.

viii


Cuối cùng, tôi xin cảm ơn quý Thầy Cô trường Đại Học Cần Thơ đã tận tâm
dạy bảo, truyền đạt kiến thức trong suốt thời gian tôi học tại trường.
Nguyễn Trung Nghĩa


ix


NHẬN XÉT VÀ ĐÁNH GIÁ CỦA CÁN BỘ HƢỚNG DẪN
Nội dung nhận xét :
4.18
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Cần Thơ, ngày … tháng … năm 2010
------------------------------------------------------------------------------------------------------------Giảng viên hƣớng dẫn

x


NHẬN XÉT VÀ ĐÁNH GIÁ CỦA CÁN BỘ CHẤM PHẢN BIỆN
Nội dung nhận xét :

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Cần Thơ, ngày … tháng … năm 2010
------------------------------------------------------------------------------------------------------------Cán bộ chấm phản biện

xi


MỤC LỤC
1.

CHƢƠNG I GIỚI THIỆU ĐỀ TÀI _____________________________________ 1

1.1.


Đặt vấn đề _______________________________________________________ 1

1.2.

Giới hạn của đề tài ________________________________________________ 1

1.3.

Hƣớng giải quyết _________________________________________________ 1

2.

CHƢƠNG II PHẦN CỨNG HỆ THỐNG ________________________________ 2

2.1.

Tổng quan về phần cứng hệ thống ___________________________________ 2

2.2.

Các modul của hệ thống ____________________________________________ 3

2.2.1.

Bảng LED _______________________________________________________ 4

2.2.2.

Vi điều khiển ATMEGA32 __________________________________________ 5


2.2.3.

Ic thời gian thực PCF8583 __________________________________________ 6

2.2.4.

Giao tiếp máy tính _________________________________________________ 7

2.2.5.

Mạch công suất ___________________________________________________ 7

2.2.6.

Remote điều khiển_________________________________________________ 9

2.2.7.

Chuông điện ____________________________________________________ 10

3.

CHƢƠNG III PHẦN MỀM HỆ THỐNG _______________________________ 11

3.1.

Phần mềm điều khiển hệ thống trên vi điều khiển AVR__________________ 11

3.1.1.


Codevison ______________________________________________________ 11

3.1.2.

Giải thuật_______________________________________________________ 12

3.1.3.

Các phần chính trong chƣơng trình _________________________________ 13

3.1.3.1.

Khai báo thƣ viện và các biến toàn cục_____________________________ 13

3.1.3.2.

Ngắt timer quét LED 7 đoạn _____________________________________ 15

3.1.3.3.

Nhận giờ từ máy tính qua rs232 để nạp cho ic thời gian thực __________ 17

3.1.3.4.

Nạp dữ liệu lịch đổ chuông ______________________________________ 19

3.1.3.5.

Hàm so sánh hai hai với nhau nếu nhỏ hơn hoặc bằng trả về giá trị 1 ___ 22


3.1.3.6.

Tìm giờ đổ chuông _____________________________________________ 23

3.1.3.7.

Vòng lập while chính trong chƣơng trình __________________________ 23

xii


3.2.

Phần mềm giao diện ngƣời dùng trên máy tính bằng C# _________________ 27

3.2.1.

Chức năng của chƣơng trình đƣợc thiết kế____________________________ 27

3.2.2.

C# trong bộ visual stdio 2010 _______________________________________ 27

3.2.3.

Giao diện ngƣời dùng trên máy tính _________________________________ 28

3.2.3.1.


Phần giao diện chính ___________________________________________ 28

3.2.3.2.

Phần nhập lịch tuần____________________________________________ 28

3.2.3.3.

Phần nhập những ngày đặc biệt không đổ chuông ___________________ 29

3.2.3.4.

Phần nhập thời điểm đặc trƣớc chuông sẽ đổ. _______________________ 30

4.

CHƢƠNG IV KẾT LUẬN ____________________________________________ 31

5.

PHỤ LỤC _________________________________________________________ 33

5.1.

Code AVR viết bằng codevision _____________________________________ 33

5.2.

Code trên C# ____________________________________________________ 50


5.3.

Vi điều khiển Atmega32 ___________________________________________ 79

5.4.

IC thời gian thƣc PCF8583 ________________________________________ 92

5.5.

Thuật toán đổi âm lịch ra đƣơng lịch và ngƣợc lại______________________ 95

xiii


DANH SÁCH HÌNH ẢNH
Hình 2.1 :

Sơ đồ tổng quan phần cứng _____________________________________ 2

Hình 2.2 :

Bảng đồng hồ ________________________________________________ 4

Hình 2.3 :

Một đoạn của LED 7 đoạn đƣợc tạo thành từ 18 LED________________ 4

Hình 2.4 :


LED siêu sáng vuông __________________________________________ 4

Hình 2.5 :

Atmega 32 ___________________________________________________ 5

Hình 2.6 :

Sơ đồ chân atmega32 __________________________________________ 5

Hình 2.7 :

PCF8583 ____________________________________________________ 6

Hình 2.8 :

Sơ đồ chân PCF8583 __________________________________________ 6

Hình 2.9 :

Mạch nguyên lý _______________________________________________ 8

Hình 2.10 : Transitor A1015 và Tip 42 ______________________________________ 9
Hình 2.11 : IRF504______________________________________________________ 9
Hình 2.12 : Bộ thu phát có remote __________________________________________ 9
Hình 2.13 : Chuông thật và sơ đồ nguyên lý sử dụng mạch_____________________ 10
Hình 2.14 : Giao diện codevision V2.04 ____________________________________ 11
Hình 3.1 :

Lƣu đồ giải thuật trên vi điều khiển AVR ________________________ 13


Hình 3.2 :

Lƣu đồ quét LED ____________________________________________ 15

Hình 3.3 :

Lƣu đồ giải thuật nhận giá trị trị thời gian từ máy tính _____________ 17

Hình 3.4 :

Lƣu đồ nhận lịch đổ chuông ___________________________________ 19

Hình 3.5 :

Giao diện thiết kết form của C#2010 ____________________________ 27

Hình 3.6 :

Giao diện chính của chƣơng trình ______________________________ 28

Hình 3.7 :

Giao diện nhập lịch tuần ______________________________________ 29

Hình 3.8 :

Giao diện nhập những ngày đặc biệt không đổ chuông _____________ 29

Hình 3.9 :


Giao diện nhập thời điểm đặc biệt đổ chuông _____________________ 30

Hình 4.1: Đồng hồ thời gian thực __________________________________________ 31
Hình 4.2: Giao điện ngƣời dùng ___________________________________________ 31

viii


ABSTRACT

This thesis presents a school alarm clock system which is planned to apply at
the College of Engineering Technology, Can Tho University. The system was
designed on ATMEL ATMega32 microcontroller and a real-time clock PCF8583
chip. Four 7-segment LEDs were used to displace the current time. And an electricbell was used as an alarm system that can be pre-programmed by the operator. After
testing, the result indicated that this system satisfies all conditions of an automatic
school alarm clock.

viii


Chương I: Giới thiệu đề tài

CHƢƠNG I

GIỚI THIỆU ĐỀ TÀI
1. CHƢƠNG I GIỚI THIỆU ĐỀ TÀI
1.1. Đặt vấn đề
Thời gian là vô cùng quý giá, con người đã nhận ra sự quý giá của thời gian từ
rất lâu. Do đó việc đo đếm thời gian đã được thực hiện cách đây hàng ngàn năm.

Chiếc đồng hồ từ đó đã phát triển không ngừng, và đạt độ chính xác gần như tuyệt
đối. Hiện nay đồng hồ điện tử được ứng dụng trong rất nhiều lĩnh vực như là báo
giờ tự động, timer cho các ứng dụng công nghệ cao …
Việc tự động báo chuông giờ học theo chương trình là một vấn đề đã được
nghiên cứu và hoàn thiện từ vài chục năm trước đây. Tuy nhiên tại Khoa Công
Nghệ, việc báo chuông lớp học vẫn được thực hiện một cách thủ công vừa tốn kém,
vừa thiếu chính xác vừa không xứng với tầm vóc của một khoa kỹ thuật. Việc thiết
kế và chế tạo hệ thống này đã được Trung tâm Điện – Điện tử thực hiện gần như cơ
bản về phần cứng, nhưng chưa có phần mềm hệ thống. Đề tài nhằm mục tiêu củng
cố, hoàn thiện phần cứng và lập trình cho hệ vi điều khiển AVR đáp ứng yêu cầu
đồng hồ thời gian thực và báo chuông tự động.
1.2. Giới hạn của đề tài
Xây dựng hệ thống đồng hồ thời gian thực và chuông tự động, hiển thị thời
gian và đổ chuông đúng theo qui định. Giao diện người dùng được viết bằng C# , có
khả năng chỉnh sửa ngày giờ, báo giờ và ngưng đổ chuông tại những thời điểm đặt
biệt. Ngoài ra còn có bộ điều khiển từ xa chỉnh giờ. Khả năng đổi âm lịch sang
dương lịch và ngược lại của phần mềm.
1.3. Hƣớng giải quyết
Để có thể xây dựng hệ thống đồng hồ thời gian thực và báo chuông tự động tôi
sẽ thực hiện một số vấn đề sau:
Tìm hiểu và hoàn thiện phần cứng của hệ thống.
Thiết kế phần mềm giao tiếp giữa vi điều khiển và IC thời gian thực.
Thiết kế giao diện người dùng trên máy tính.
Nghiên cứu cách tính âm lịch và dương lịch và mối tương quan giữa chúng.

SVTH: Nguyễn Trung Nghĩa

Trang 1



Chương II: Phần cứng hệ thống

CHƢƠNG II

PHẦN CỨNG HỆ THỐNG
2. ChƣơCHƢƠNG II PHẦN CỨNG HỆ THỐNG
2.1. Tổng quan về phần cứng hệ thống

`

Mạch giao tiếp
PL 2303

Mạch công suất
A1015, Tip42,


Bộ điều khiển trung tâm
AVR

IC thời gian thực
PCF 8583

Remote
Điều khiển

Hình 2.1 : Sơ đồ tổng quan phần cứng
Hệ thống đồng hồ thời gian thực là một hệ gồm nhiều modul liên kết với nhau.
Vi điều khiển AVR sẽ đọc thời gian từ IC thời gian thực sau đó đưa tín hiệu đã xử
lý hiển thị lên bảng LED thông qua mạch công suất. Thông qua IC PL 2303, AVR

kết nối với máy tính bằng cổng USB. Người sử dụng có thể thực hiện những thao

SVTH: Nguyễn Trung Nghĩa

Trang 2


Chương II: Phần cứng hệ thống

tác như chỉnh sửa thời gian, đặt thời gian báo giờ, hẹn giờ tắt hệ thống,….thông qua
giao diện người dùng rất dễ sử dụng. Ngoài ra, để tiện việc chỉnh sửa, điều khiển và
đặt giờ, hệ thống còn có modul điều khiển từ xa bằng sóng radio.
2.2. Các modul của hệ thống
-Vi điều khiển AVR
-IC thời gian thực PCF 8583
-Mạch công suất điều khiển LED
-Bảng LED
-Mạch giao tiếp máy tính sử dụng PL-2303
-Bộ điều khiển từ xa sử dụng sóng radio

SVTH: Nguyễn Trung Nghĩa

Trang 3


Chương II: Phần cứng hệ thống

2.2.1. Bảng LED
Bảng đồng hồ gồm 4 LED 7 đoạn hiển thị giờ phút hiện tại và dấu hai chấm
phân cách giữa giờ và phút.


Hình 2.2 : Bảng đồng hồ
Mỗi đoạn của LED 7 đoạn được làm từ 18 LED siêu sáng vuông mắc song
song với nhau

Hình 2.3 : Một đoạn của LED 7 đoạn được tạo thành từ 18 LED
LED siêu sáng vuông 4 chân về cấu tạo bên trong giống như LED 2 chân, 2
chân được nối tắt với nhau, LED hoạt động ở 2v và dòng qua LED khoảng 20mmA.

Hình 2.4 : LED siêu sáng vuông

SVTH: Nguyễn Trung Nghĩa

Trang 4


Chương II: Phần cứng hệ thống

2.2.2. Vi điều khiển ATMEGA32
Để hiển thị giờ lên 4 LED 7 đoạn thì ta sử dụng vi điều khiển trung tâm là
Atmega32 của hảng atmel, và sử dụng giải thuật quét LED để hiển thị cả 4 số cùng
lúc.

Hình 2.5 : Atmega 32
Atmega32 là 1 vi điều khiển phù hợp với đề tài. Do atmega chạy rất ổn định, xử lý
nhanh, hoạt động với thạch anh tốc độ cao nhất đến 16MHZ. Bộ nhớ của atmega32
lớn, hỗ trợ ngôn ngử C để lập trình và có thể ghi xóa đến mười ngàn lần nên rất linh
hoạt.

Hình 2.6 : Sơ đồ chân atmega32

Atmega32 gồm 40 chân, hoạt động ở điện thế 5v. Trong đó có:
- 4 PORT I/O với 32 chân
- 3 bộ timer
- 32 kbyte bộ nhớ flash
SVTH: Nguyễn Trung Nghĩa

Trang 5


Chương II: Phần cứng hệ thống

- 1024 byte EEPROM
- 2 k btye sd ram
- 32K Bytes of In-System Self-Programmable Flash
- 2 timer 8 bit và 1 timer 16 bit
- 4 kênh PWM
- 8 bộ ADC 10-bit …
2.2.3. Ic thời gian thực PCF8583
Lấy thời gian thực ta sử dụng IC thời gian thực PCF8583

Hình 2.7 : PCF8583
PCF8583 là ic thời gian thực hoạt động rất chính xác, sử dụng thạch anh
32.768 kHz.

Hình 2.8 : Sơ đồ chân PCF8583
Điện thế sử dụng từ 2,5 đến 6v đó. Ta dùng nguồn pin độc lập với vi điều
khiển để nuôi, do đó không bị ảnh hưởng bởi việc mất điện, khi có điện trở lại hệ
thống vẫn hoạt động bình thường với thời gian thực chính xác mà không cần phải
cài đặt lại.
PCF8583 giao tiếp dể dàng với atmega32 vì PCF8583 hổ trợ chuẩn I2C. I2C

(Inter-Intergrated Circuit) là một loại bus nối tiếp được phát triển bởi hãng linh kiện
SVTH: Nguyễn Trung Nghĩa

Trang 6


Chương II: Phần cứng hệ thống

điện tử Philip.Do tính ưu việt và đơn giản, I2C đã được chuẩn hoá và ứng dụng
rộng rãi trong các module truyền thông nối tiếp của vi mạch tích hợp ngày nay.
Bộ nhớ Ram của PCF8583 là 256 byte trong đó 8 byte đầu sử dụng cho thời
gian, lịch và bộ đếm, 8 byte tiếp theo sử cho hẹn giờ hay cùng với 240 byte còn lại
sử
dụng
như
bộ
nhớ
Ram
bình
thường.
2.2.4. Giao tiếp máy tính
Kết nối với máy tính bằng chuẩn RS232 qua cổng
usb, thông qua ic PL-2303. Đây là ic rất phổ biến, được
sử dụng nhiều trong các thiết bị di động.
Ngày nay cỗng RS232 thật trên máy tính rất hiếm.
Nếu máy tính không có cổng RS232 thật, để sử dụng
được chuẩn này thông thường phải qua con MAX232 và
thiết bị chuyển usb về RS232thật. Nhưng với mạch sử
dụng PL-2303 thì rất tiện kết nối trực tiếp vi điều khiển
với cổng usb trên máy tính.


2.2.5. Mạch công suất
Tính tính toán dòng qua các LED, LED siêu sáng hoạt động tốt ở điện thế 2v;
Mỗi đoạn của LED 7 đoạn gồm: 18LED x 20mmA = 360mmA;
Dòng qua 1 LED 7 đoạn: 360mmA x 7 = 2520mmA
Ở đây ta mắc LED theo kiểu anode chung, và sử dụng phương pháp quét để
hiển thị giờ lên bảng đồng hồ. Vì vậy dòng tối đa qua 1 LED 7 đoạn là 2520mmA
lúc cả 7 đoạn cùng sáng.

SVTH: Nguyễn Trung Nghĩa

Trang 7


SVTH: Nguyễn Trung Nghĩa

D1

C1

C1

A1015

D2
A1015

TIP 42
C2


3

c

C2

TIP 42
C1

d
e
g
f

c

C2

VCC

2

1

C1

C1

b


VCC

b

a

C1

C1

C1

a

4

d

C2

C2

C2

D3

5

e


A1015

TIP 42
C3

VCC

C2

C2

d
e
g
f

c

b

a

6

f

C3

C3


D4

7

g

C3

C3

C3

A1015

TIP 42
C4

VCC

C3

C3

D1
D2
D3
D4

1
2

3
4
5
6
7

d
e
g
f

c

b

a

1
2
3
4

1
2
3
4
5
6
7
8


C4

C4

C4

C4

C4

C4

C4

d
e
g
f

c

b

a

Chương II: Phần cứng hệ thống

Hình 2.9 : Mạch nguyên lý


Trang 8


Chương II: Phần cứng hệ thống

Mạch công suất sử dụng transitor A1015 để kích các con TIP42 thông với
nguồn 5v cho tất cả các LED. Để hoạt động dùng vi điều khiển kích mức âm cho
chân số 3 của A1015

Hình 2.10 : Transitor A1015 và Tip 42
Ở đầu âm của từng đoạn LED ta dùng IFR540.

Hình 2.11 : IRF504
Dùng vi điều khiển kích mức dương vào chân số 1 để thông LED với mas.
Nối chân âm chung của 18 LED với 1 điện trở công suất 10Ω để hạn dòng.
Khi mắc điện trở công suất nối tiếp với LED điện thể giữa 2 chân của LED còn
khoảng 2v.
2.2.6. Remote điều khiển
Ta sử dụng loại remote sóng radio vì khoảng cách truyền được xa và chính xác
hơn loại sử dụng hồng ngoài. Mạch thu phát sử dụng 2 ic giải mã là SC2272-L4 và
SC2262.

Hình 2.12 : Bộ thu phát có remote
SVTH: Nguyễn Trung Nghĩa

Trang 9


Chương II: Phần cứng hệ thống


Trong đề tài sử dụng bộ thu phát sóng radio có sẵn ngoài thị trường, vì tiện lợi
và gọn đẹp. Remote có 4 nút tương ứng với với 4 kênh, để điều khiển, đây là loại
không tự giữ.
2.2.7. Chuông điện

Hình 2.13 : Chuông thật và sơ đồ nguyên lý sử dụng mạch
Sử dụng chuông điện 220, đặt điểm của chuông là tiếng chuông rất lớn, phù
họp đặt trong trường học.
Mạch điện sử dụng dụng 1transitor để đóng ngắt role. Để chuông reo kích vi
điều khiển ở mức âm.

SVTH: Nguyễn Trung Nghĩa

Trang 10


Chương III: Phần mềm hệ thống

CHƢƠNG III

PHẦN MỀM HỆ THỐNG
3. ChƣơCHƢƠNG III PHẦN MỀM HỆ THỐNG
3.1. Phần mềm điều khiển hệ thống trên vi điều khiển AVR
3.1.1. Codevison

Hình 2.14 : Giao diện codevision V2.04
Codevion là phần mềm viết code cho vi điều khiển avr. Nó dễ dùng, tự sinh code và
dễ học,nền tảng là ngôn ngữ .

SVTH: Nguyễn Trung Nghĩa


Trang 11


Chương III: Phần mềm hệ thống

Giao điện tự sinh mã CodeWizardAVR
Trong codevision phần CodeWizard là phần hỗ trợ lập trình rất thân thiện với
người dùng, người sử dụng avr có thể sử dung giao diện này để khao báo, sử
dụng các chức năng trong Avr rất dể dàng chỉ cần dánh dấu chọn vào chức
năng cần thiết là chương trình tự động sinh ra mã.
3.1.2. Giải thuật
Theo lưu đồ giải thuật bên dưới thì, chương trình chạy và thực hiện liên tục :
- Hàm đọc dữ liệu từ ic thời gian thực.
- Sau đó xử lý số liệu vào mảng để xuất số liệu giờ và phút lên bảng
LED.
- Đưa dữ liệu bao gồm: ngày, tháng, năm, giờ, phút, giây và thứ qua cổng
com lên máy tính.
Chương trình sử dụng 2 ngắt:
- Ngắt timer dùng để quét LED đưa số liệu giờ và phút ra LED.
- Ngắt rs232 nhận lệnh điều khiển từ máy tính.

SVTH: Nguyễn Trung Nghĩa

Trang 12


Chương III: Phần mềm hệ thống

Bắt đầu


Khởi tạo ban đầu
PORT I/O, Timer,
I2C ….

Ngắt timer
Quét LED

Đọc dữ liệu ngày giờ
từ PCF 8583

Xử lý số liệu

Ngắt Rs232
Nhận dữ liệu từ

máy tính
Dưa số liệu vào các
biến

điều khiển bảng
LED
Xuất số liệu qua cổng
com lên máy tính

Hình 3.1 : Lưu đồ giải thuật trên vi điều khiển AVR
3.1.3. Các phần chính trong chƣơng trình
3.1.3.1. Khai báo thƣ viện và các biến toàn cục

#include <mega32.h>

#include <thuvien.c>
#include <delay.h>
#include <stdio.h>
unsigned char h,m,s,hs,ii=1;
SVTH: Nguyễn Trung Nghĩa

Trang 13


Chương III: Phần mềm hệ thống

unsigned char ci;
char tttam=0;
enum kkkk{
hai,
ba,
tu,
nam,
sau,
bay,
chunhat
}thu;
//int nn,nnn;
unsigned nam9;
unsigned char timer9=0;
unsigned char thang9,ngay9,LED[5],tamchar;
unsigned char a1,a2,a3,a4;
struct kieugiophut{
unsigned char gio;
unsigned char phut;

};
struct kieugiokhongchuong{
unsigned char ngay1;
unsigned char thang1;
unsigned char nam1;
unsigned char ngay2;
unsigned char thang2;
unsigned char nam2;
};
struct kieugiochuong{
unsigned char ngay;
unsigned char thang;
unsigned char nam;
SVTH: Nguyễn Trung Nghĩa

Trang 14


Chương III: Phần mềm hệ thống

unsigned char gio;
unsigned char phut;
};
unsigned char tamchar;
struct kieugiophut lichtuan[7][30];
struct kieugiokhongchuong lichkhong[100];
struct kieugiochuong lichchuong[30];
unsigned char thoigianreo=5,cochuong=0,ngaycam=0;
3.1.3.2. Ngắt timer quét LED 7 đoạn


TIMSK=0x00
Cấm ngắt timer

ii>4

ii=1

LED thứ ii sáng
ba LED còn lại tắt

ii++: biến toàn cục
hiển thị LED thứ ii

TCNT0=210
Nạp lại giá trị cho timer

TIMSK=0x00
Cho ngắt timer

Hình 3.2 : Lưu đồ quét LED
SVTH: Nguyễn Trung Nghĩa

Trang 15


Chương III: Phần mềm hệ thống

// quet LED 7 doan
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{

// Reinitialize Timer 0 value
TIMSK=0x00;
if (hs<40) cham=sang; else cham=toi;
// Place your code here
if (ii>4) ii=1;
LED7doan(LED[ii]);
switch (ii)
{
case 1:
LED1=sang;
LED2=toi;LED3=toi;LED4=toi;
break;
case 2:
LED2=sang;
LED1=toi;LED3=toi;LED4=toi;
break;
case 3:
LED3=sang;
LED1=toi;LED2=toi;;LED4=toi;
break;
case 4:
LED4=sang;
LED1=toi;LED2=toi;LED3=toi;
break;
}
ii++;
TCNT0=210;
TIMSK=0x01;
SVTH: Nguyễn Trung Nghĩa


Trang 16


×