55
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP KHOA ĐIỆN TỬ BỘ MÔN: KỸ THUẬT MÁY TÍNH ĐỒ ÁN MÔN HỌC MÔN HỌC HỆ THỐNG NHÚNG Nhóm sinh viên : Nguyễn Thị Hòa Nguyễn Văn Hợp Tống Quang Long Lớp : K43DDK . Giáo viên hướng dẫn : Nguyễn Văn Huy

Bản báo cáo đồ án.word

  • Upload
    garu54

  • View
    20

  • Download
    1

Embed Size (px)

Citation preview

TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP

KHOA ĐIỆN TỬBỘ MÔN: KỸ THUẬT MÁY TÍNH

ĐỒ ÁN MÔN HỌC

MÔN HỌC

HỆ THỐNG NHÚNG

Nhóm sinh viên : Nguyễn Thị Hòa

Nguyễn Văn Hợp

Tống Quang Long

Lớp  : K43DDK .

Giáo viên hướng dẫn  : Nguyễn Văn Huy

Thái Nguyên – 2011

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

Nhận xét của giáo viên hướng dẫn................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

Thái Nguyên, Ngày Tháng Năm 2011 Giáo Viên hướng dẫn

(Ký ghi rõ họ tên)

Nhận xét của giáo viên chấm................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

Thái Nguyên, Ngày Tháng Năm 2011 Giáo Viên hướng dẫn

(Ký ghi rõ họ tên)

MỤC LỤC

LỜI NÓI ĐẦU.......................................................................................................3

Bộ môn Kỹ thuật máy tính 1

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

CHUƠNG 1: PHÂN TÍCH BÀI TOÁN.............................................................41.1. Khảo sát và phân tích bài toán..............................................................41.2. Lựa chọn giải pháp.................................................................................6

1.2.1 Giải pháp công nghệ........................................................................61.2.2 Giải pháp thiết kế............................................................................71.2.3 Các yêu cầu......................................................................................71.2.4 Giới hạn hạn định............................................................................7

CHƯƠNG 2: THIẾT KẾ HỆ THỐNG.............................................................82.1. Sơ đồ tổng quát.......................................................................................82.2. Sơ đồ Callgraph......................................................................................92.3. Sơ đồ đặc tả.............................................................................................92.4. Các module trong hệ thống..................................................................10

2.4.1. Module khối nguồn........................................................................102.4.2. Module cảm biến............................................................................102.4.3. Module điều khiển trung tâm.......................................................112.4.4. Module tương tác điều khiển (hiển thị).......................................122.4.5. Module chấp hành.........................................................................13

2.5. Lựa chọn linh kiện................................................................................142.5.1. Vi điều khiển PIC16F877A...........................................................142.5.2. Led hồng ngoại...............................................................................212.5.3. Led 7 đoạn......................................................................................232.5.4. Transistor.......................................................................................242.5.5. Tụ điện............................................................................................252.5.6. Rơle.................................................................................................252.5.7. IC ổn áp..........................................................................................26

2.6. Sơ đồ nguyên lý của mạch...................................................................272.7. Thuật toán điều khiển..........................................................................27

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG..........................................................313.1 Thiết kế phần cứng...............................................................................313.2 Thiết kế phần mềm...............................................................................313.3. Kết quả mô phỏng................................................................................34

ĐÁNH GIÁ VÀ KẾT LUẬN.............................................................................37TÀI LIỆU THAM KHẢO.................................................................................37

LỜI NÓI ĐẦU

Bộ môn Kỹ thuật máy tính 2

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

Ngày nay, việc ứng dụng cho các hệ thống nhúng ngày càng trở nên phổ

biến: từ những ứng dụng đơn giản như điều khiển một chốt đèn giao thông định

thời, đếm sản phẩm trong một dây chuyền sản xuất, điều khiển tốc độ động cơ

điện một chiều, thiết kế một biển quảng cáo dùng Led ma trận, một đồng hồ thời

gian thực….đến các ứng dụng phức tạp như hệ thống điều khiển robot, bộ kiểm

soát trong nhà máy hoặc hệ thống kiểm soát các máy năng lượng hạt nhân. Các

hệ thống tự động trước đây sử dụng nhiều công nghệ khác nhau như các hệ

thống tự động hoạt động bằng nguyên lý khí nén, thủy lực, rơle cơ điện, mạch

điện tử số, các thiết bị máy móc tự động bằng các cam chốt cơ khí... các thiết bị,

hệ thống này có chức năng xử lý và mức độ tự động thấp so với các hệ thống tự

động hiện đại được xây dựng trên nền tảng của các hệ thống nhúng.

Với mong muốn giới thiệu ứng dụng cơ bản của hệ thống nhúng trong đời

sống hiện đại, nhóm chúng em đưa ra mô hình thiết kế hệ thống điều khiển đèn

thông minh dùng cho các phòng họp.

Trong quá trình thực hiện đồ án môn học, nhóm chúng em cố gắng thiết kế

sao cho mô hình là đơn giản nhất, ổn định nhất; tuy nhiên do vấn đề thời gian và

kinh nghiệm nên mô hình vẫn còn gặp phải những vấn đề chưa thể khắc phục

được.

Trân trọng và chân thành cảm ơn!

Nhóm thực hiện đề tài:

Nguyễn Thị Hòa

Nguyễn Văn Hợp

Tống Quang Long

CHUƠNG 1: PHÂN TÍCH BÀI TOÁN

Bộ môn Kỹ thuật máy tính 3

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

1.1. Khảo sát và phân tích bài toán

Hiện nay hầu hết việc giám sát và điều khiển chiếu sáng trong các phòng

công cộng được điều khiển bằng tay thông qua đóng mở các công tắc, các

aptomat, cầu dao.... Điều này khá thuận lợi và đơn giản vì ta có thể bật tắt đèn

theo nhu cầu sử dụng. Tuy nhiên, do là phòng công cộng nên việc bật tắt đèn hầu

như do người trực khu nhà đó làm. Vì thế họ không biết được chính xác khi nào

thì có người tới và khi nào thì mọi người đã ra hết khỏi phòng hoặc họ biết

nhưng vì phải quản lý nhiều phòng nên họ vẫn cứ để điện đến hết ca trực, điều

này gây lãng phí điện rất lớn, đặc biệt trong hoàn cảnh nước ta đang thiếu điện

một cách trầm trọng như hiện nay.

Trên thị trường hiện nay đã có một số thiết bị bật tắt đèn thông minh, như

SmartLight do Hàn Quốc sản xuất: Được tích hợp sensor cảm ứng hồng ngoại

thân nhiệt, đèn sẽ tự động được bật khi có người đi vào vùng cảm ứng và tắt khi

không có người.

Hình 1.1: Đèn thông minh Smartlight

SmartLight phù hợp với mọi nhu cầu chiếu sáng thông minh của bạn tại sân

cổng, phòng khách, phòng ngủ, phòng vệ sinh, cầu thang, văn phòng... giúp bạn

bật tắt đèn hoàn toàn tự động, mang lại sự an toàn, tiện nghi và tiết kiệm điện.. .

Tuy nhiên thiết bị này tích hợp luôn bộ điều khiển với đèn trong 1 sản phẩm. Do

Bộ môn Kỹ thuật máy tính 4

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

đó giá thành cao và không thích hợp cho các phòng cần lượng chiếu sáng lớn,

không thay đổi được loại bóng đèn theo yêu cầu.

Hệ thống giám sát điều khiển chiếu sáng sử dụng camera kết nối với máy

tính để kiểm soát số người trong phòng, qua đó phát lệnh đóng mở các công tắc

tơ bật tắt bóng đèn.

Hình 1.2: Hệ thống camera giám sát

Hệ thống này giúp việc bật tắt đèn ở nơi lắp đặt một cách chính xác, tự động

hoặc bán tự động. Tuy nhiên do sử dụng máy tính nên giá thành của hệ thống rất

cao, mặt khác không giải quyết được vấn đề tiết kiệm điện. Vì thế nó thường chỉ

được sử dụng ở những tòa nhà công nghệ cao, những khu vực cần điều chỉnh

chiếu sáng không phải vì mục đích tiết kiệm điện năng.

Hệ thống bật tắt đèn tự động sử dụng các IC số và mạch Logic cho phép ta

dựa vào lượng người vào ra để đóng ngắt các công tắc một cách tự động.

Bộ môn Kỹ thuật máy tính 5

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

Hình 1.3: Hệ thống bật tắt đèn thông minh dùng IC số

Hệ thống này có cấu tạo đơn giản, rẻ, không phải lập trình mà chỉ dựa vào các

mạch Logic… nhưng tính linh động không cao, khó chỉnh định khi điều kiện làm

việc thay đổi, ít có khả năng nâng cấp mở rộng hệ thống.

Với những phòng họp công cộng, khi mà lưu lượng người không lớn và có

thể kiểm soát được việc đếm người qua cửa thì ta hoàn toàn có thể áp dụng hệ

thống đèn thông minh sử dụng Vi điều khiển được lập trình để bật đèn khi có

người và tắt khi không có người. Điều này vừa tiện lợi cho mọi người: ứng dụng

công nghệ tự động hóa vào cuộc sống con người, đảm bảo đủ ánh sáng trong quá

trình làm việc, người quản lý thì đỡ tốn thời gian… đồng thời góp phần giải

quyết vấn đề tiết kiệm điện năng trong thời kỳ mà nhu cầu điện tiêu thụ đã vượt

quá khả năng cung cấp của các nhà máy điện hiện nay.

1.2. Lựa chọn giải pháp

1.2.1 Giải pháp công nghệ

Qua phân tích ở trên, nhóm chúng em đưa ra giải pháp xây dựng hệ thống

điều khiển đèn thông minh cho các phòng họp: điều khiển bật tắt đèn qua việc

Bộ môn Kỹ thuật máy tính 6

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

kiểm soát lượng người ra vào phòng. Thu nhận tín hiệu rồi xử lý tín hiệu, khi có

người vào phòng, nếu đèn đang bật thì vẫn bật, đèn chưa bật thì bật đèn lên; khi

mọi người ra hết khỏi phòng thì tắt đèn đi. Trong quá trình làm việc hệ thống

luôn hiển thị số người còn đang ở trong phòng để tiện cho việc kiểm tra, theo

dõi.

1.2.2 Giải pháp thiết kế

Để phát hiện người ra ta dùng 2 bộ thu phát hồng ngoại mắc gần nhau đặt

ở cửa ra vào.

Xử lý, điều khiển dùng vi điều khiển Pic: lập trình để Pic nhận tín hiệu

vào từ 2 bộ Led hồng ngoại, tính toán xử lý để đưa ra lệnh bật tắt đèn.

Để hiển thị ta dùng Led 7 thanh: lấy tín hiệu ra từ Pic để thông báo xem

trong phòng có bao nhiêu người

Điều khiển tắt/mở bóng đèn nhờ transistor cấp dòng cho rơ le.

1.2.3 Các yêu cầu

Hệ thống điều khiển đèn thông minh này áp dụng cho các phòng họp:

Số lượng người trong phòng tối đa không quá 99 người.

Phòng chỉ có một cửa ra vào.

Ở một thời điểm chỉ có 1 người qua cửa.

Cửa cao 2.5m, rộng 2m.

Có người đi vào thì bật đèn và đi ra hết thì tắt đèn.

Hệ thống có 2 chế độ làm việc tự động và bằng tay.

Làm việc với điện áp 220V/50Hz.

Sensor và công nghệ tùy chọn.

Có khả năng nâng cấp, cải tiến.

1.2.4 Giới hạn hạn định

Làm việc cả ban ngày lẫn ban đêm.

Thu nhận tín hiệu liên tục khi có người ra vào.

Nhiệt độ môi trường: trong nhà 100C đến 400C.

Hệ thống cấp điện mới từ đầu.

CHƯƠNG 2: THIẾT KẾ HỆ THỐNG

Bộ môn Kỹ thuật máy tính 7

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

2.1. Sơ đồ tổng quát

Hệ thống điều khiển đèn thông minh gồm có 5 khối chính.

Hình 2.1: Sơ đồ tổng quát hệ thống bật tắt đèn thông minh

Khối Nguồn: Cung cấp nguồn cho hệ thống.

Khối Cảm biến: Sử dụng sensor hồng ngoại dùng để thu nhận tín hiệu

người vào ra phòng, đưa tín hiệu thu được vào chân Pic để xử lý. Để nhận

biết người đi vào hay đi ra ta dùng 2 bộ thu phát hồng ngoại mắc gần

nhau.

Khối Xử lý: Dùng VDK Pic 16F877A để lấy tín hiệu từ cảm biến, tính

toán, lưu trữ và đưa ra khối hiển thị và khối chấp hành.

Khối Hiển thị: Lấy tín hiệu ra từ chân Pic để hiển thị số lượng người hiện

đang ở trong phòng trên Led 7 thanh.Khối Chấp hành: Nhận tín hiệu từ

khối xử lý để thực hiện đóng cắt tiếp điểm mạch động lực.

2.2. Sơ đồ Callgraph

Bộ môn Kỹ thuật máy tính

Khối xử lý

Khốichấphành

Khối hiểnthị

Khốicảm biến

Khối nguồn

8

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

Hình 2.2: Sơ đồ Callgraph của hệ thống bật tắt đèn thông minh

2.3. Sơ đồ đặc tả

Hình 2.3: Sơ đồ đặc tả của hệ thống bật tắt đèn thông minh

2.4. Các module trong hệ thống

Bộ môn Kỹ thuật máy tính

Chương trìnhđiều khiển

chính

ModuleXử lý

Cảm biến

ModuleXử lý

Chương trình

Cảm biến Chấp hành Hiển thị

Phân lượng ngườitrong phòng

Bật đèn

Hiển thịSố người

Tắt đèn

Người ra

Người vào

Có người

Không người

9

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

2.4.1. Module khối nguồn

Module này tạo ra điện áp một chiều từ nguồn xoay chiều 220V để cung

cấp cho các linh kiện trong hệ thống. Sử dụng biến áp để biến điện áp xoay chiều

220V thành điện áp xoay chiều 12V, dùng chỉnh lưu từ 12V xoay chiều sang

12V một chiều, dùng IC 7805 ổn áp để lấy ra điện áp ổn định 5V ở ngõ ra.

J 2

2 2 0 V ~12

L 1

B ie n a p

- +

D io t c a u

2

4

3

1

U 47 8 0 5

I N1

GN

D2

O U T3 V c c -5 V

C 1C

C 2C

1 2 V

Hình 2.4.: Module nguồn cấp

2.4.2. Module cảm biến

Bộ phận cảm biến của hệ thống sử dụng mạch thu phát hồng ngoại. Led

phát hồng ngoại nối với nguồn 1 chiều qua điện trở R1, R2: phát ra ánh sáng

hồng ngoại truyền tới Led thu. Led thu hồng ngoại có 3 chân: chân 3 và 1 nối với

nguồn qua R3, R4 và đất, chân 2 lấy tín hiệu ra đưa vào chân Vi xử lý. Ở trạng

thái bình thường, tín hiệu hồng ngoại truyền từ khối phát được Led thu thu nhận,

trên đầu ra 2 tín hiệu ở mức cao (mức 1); khi có người đi cắt qua khiến Led thu

mất tín hiệu, đầu ra 2 cho tín hiệu ở mức thấp (mức 0). Để có thể phân biệt được

là người đi vào hay đi ra ta mắc 2 bộ Thu- Phát song song và đặt cạnh nhau. Tín

hiệu thu được từ đầu ra của 2 Led thu được đưa vào 2 chân Vi xử lý để thực hiện

quá trình tính toán, kiểm tra, lưu trữ…

Bộ môn Kỹ thuật máy tính 10

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

D 1L E D P H A T 1

D 2L E D P H A T 2

V c c -5 V

R 2 R 1

U 1L E D TH U 1

VS

S1

O U T2

VC

C3

U 2 L E D TH U 2

VS

S1

O U T2

VC

C3

R 4

V c c -5 V

TH 2

R 3

TH 1

Module phát Module thu

Hình 2.5: Module thu phát hồng ngoại

2.4.3. Module điều khiển trung tâm

Khối điều khiển trung tâm dùng vi điều khiển Pic 16F877A. Khi có tín

hiệu ngắt từ bộ thu hồng ngoại qua các chân RB4 và RB5 của cổng B thi Vi điều

khiển sẽ kích hoạt ngắt cổng B từ RB4>>RB7, qua thuật toán đã nạp Pic thực

hiện chương trình điều khiển đưa tới các cổng A, C, D tín hiệu để điều khiển

khối hiển thị (Led 7 thanh) và khối chấp hành (module động lực).

Bộ tạo dao động dùng thạch anh 20M cung cấp ngồn dao động cho Pic

Bộ Reset cấp nguồn 5V và xác lập trạng thái ban đầu cho Pic.

Bộ môn Kỹ thuật máy tính 11

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

Y 1Z TB

C 3

C 4

T1 3

T1 4

V 1

R 5R E S

V c c -5 V

C 5 B T

V 1

P V N 1

P I C 1 6 F 8 7 7 A

R A 0 / A N 02

R A 1 / A N 13

R A 2 / A N 2 / V R E F -/ C V R E F4

R A 3 / A N 3 / V R E F +5

R A 4 / T0 C K I / C 1 O U T6

R A 5 / A N 4 / S S * / C 2 O U T7

R B 0 / I N T3 3

R B 13 4

R B 23 5

R B 3 / P G M3 6

R B 43 7

R B 53 8

R B 6 / P G C3 9

R B 7 / P G D4 0

R C 0 / T1 O S O / T1 C K I1 5

R C 1 / T1 O S I / C C P 21 6

R C 2 / C C P 11 7

R C 3 / S C K / S C L1 8

R C 4 / S D I / S D A2 3

R C 5 / S D O2 4

R C 6 / TX/ C K2 5

R C 7 / R X/ D T2 6

R D 0 / P S P 01 9

R D 1 / P S P 12 0

R D 2 / P S P 22 1

R D 3 / P S P 32 2

R D 4 / P S P 42 7

R D 5 / P S P 52 8

R D 6 / P S P 62 9

R D 7 / P S P 73 0

O S C 1 / C L K I N1 3

O S C 2 / C L K O U T1 4

V D D3 2

V D D1 1

V S S3 1

V S S1 2

M C L R * / V P P1

R E 0 / R D * / A N 58

R E 1 / W R * / A N 69

R E 2 / C S * / A N 71 0

S 1

S 3S 4S 5S 6S 7

S 2

L 1L 2

V o u t TH 1TH 2

T1 3T1 4

Hình 2.6: Module điều khiển trung tâm

2.4.4. Module tương tác điều khiển (hiển thị)

Để tiện cho việc kiểm tra theo dõi số người hiện đang ở trong phòng, ta sử

dụng 2 Led 7 thanh mắc chung Anot với số người hiển thị tối đa là 99 người. Tín

hiệu điều khiển từ Vi xử lý đưa ra cổng C để bật tắt các thanh Led từ 1 đến

7( tích cực ở mức dương) tương ứng với các con số từ 0 đến 9 cần hiển thị. Để

hiển thị cả hai Led ta dùng thuật toán quét Led với tín hiệu đưa ra từ cổng D

quyết định Led 1 hay Led 2 được bật.

Bộ môn Kỹ thuật máy tính 12

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

7 S E G 1M P X2 -C A

A1

B2

C3

D4

E5

F6

G7

DP

8 9L1

10L2

S1

S2

S3

S4

S5

S6

S7

L1 L2

Hình 2.7 : Module hiển thị

2.4.5. Module chấp hành.

Bộ phận chấp hành có Role nối với thiết bị điện. Vi xử lý sau khi xử lý tín

hiệu sẽ gửi lệnh điều khiển để đóng mở Transistor cấp nguồn cho cuộn dây của

Role (dòng hoặc áp). Đèn điện được nối với nguồn 220V xoay chiều qua tiếp

điểm của Role, khi Role tác động thì đèn bật lên và ngược lại đèn tắt khi Role

thôi tác động. Để đảm bảo cho hệ thống có thể làm việc ở cả hai chế độ bằng tay

và tự động ta dùng công tắc 3 vị trí: ở vị trí 1 là chế độ làm việc tự động, còn vị

trí 2 và 3 tương ứng với tắt/ bật đèn.

V o u t

S W 1

R 3 R E S

R 4R E S

Q 1N P N

L S 1R E L A Y

354

12

D 3

D io t

V c c -5 V

J 12 2 0 V ~

1 2

DEN

Hình 2.8 : Module chấp hành của hệ thống bật tắt đèn thông minh

Bộ môn Kỹ thuật máy tính 13

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

2.5.Lựa chọn linh kiện.

2.5.1. Vi điều khiển PIC16F877A

a. Sơ đồ chân vi điều khiển PIC 16F877A

Hình 2.9: Sơ đồ chân PIC 16F877A

b. Một vài thông số về vi điều khiển PIC 16F877A

Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ

dài 14 bit. 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à 20 MHz với một chu kì lệnh là 200ns. Bộ nhớ chương

trình 8Kx14 bit, 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. Các đặc tính ngoại

vi bao gồm các khối chức năng sau:

Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.

Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa

vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.

Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler. Hai bộ Capture/so sánh/điều

Bộ môn Kỹ thuật máy tính 14

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

chế độ rộng xung.

Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C. Chuẩn

giao tiếp nối tiếp USART với 9 bit địa chỉ.

Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR, CS

bên ngoài.

Các đặc tính Analog: 8 kênh chuyển đổi ADC 10 bit. Hai bộ so sánh.

Bộ nhớ flash với khả năng ghi xóa được 100.000 lần. Bộ nhớ EEPROM với khả

năng ghi xóa được 1.000.000 lần. Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40

năm. Khả năng tự nạp chương trình với sự điều khiển của phần mềm. Nạp được

chương trình ngay trên mạch điện ICSP (In Circuit Serial Programming) thông

qua 2 chân. Watchdog Timer với bộ dao động trong. Chức năng bảo mật mã

chương trình. Chế độ Sleep. Có thể hoạt động với nhiều dạng Oscillator khác

nhau.

Bộ môn Kỹ thuật máy tính 15

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

c. Sơ đồ khối vi điều khiển PIC 16F877A

Hình 2.10 : Sơ đồ khối vi điều khiển PIC16F877A

d. Tổ chức bộ nhớ

Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương

trình (program memory) và bộ nhớ dữ liệu (data memory) .

Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash ,

dung lượng bộ nhớ 8k word (1 word= 14bit) và được phân thành nhiều trang (từ

Bộ môn Kỹ thuật máy tính 16

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

page 0 đến page 3) .Như vậy bộ nhớ chương trinh có khả năng chứa được

8*1024 =8192 lệnh (vì một lệnh sau khi mã hóa sẽ có dung lượng 1 word (14

bit). Để mã hóa được địa chỉ của 8k word bộ nhớ chương trình , bộ đếm chương

trình có dung lượng 13 bit (PC<12:0>) . Khi vi điều khiển reset , bộ đếm chương

trình sẽ chỉ đến địa chỉ 0000h (reset vector). Khi có ngắt xảy ra , bộ đếm chương

trình sẽ chỉ đến địa chỉ 0004h (interrupt vector). Bộ nhớ chương trình không bao

gồm bộ nhớ stack sẽ được đề cập cụ thể trong phần sau.

Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm

nhiều bank. Đối với PIC16F877A bộ nhớ dữ liệu được chia ra làm 4 bank.

Mỗi bank có dung lượng 128 byte, bao gồm các thanh ghi có chức năng đặc biệt

SFG (Special Function Register) nằm ở các vùng địa chỉ thấp và các thanh ghi

mục đích chung GPR (General Purpose Pegister) nằm ở vùng địa chỉ còn lại

trong bank. Các thanh ghi SFR thường xuyên được sử dụng (ví dụ như thanh ghi

STATUS) sẽ được đặt ở tất cà các bank của bộ nhớ dữ liệu giúp thuận tiện trong

quá trình truy xuất và làm giảm bớt lệnh của chương trình.

Stack không nằm trong bộ nhớ chương trình hay bộ nhớ dữ liệu mà là một

vùng nhớ đặc biệt không cho phép đọc hay ghi. Khi lệnh CALL được thực hiện

hay khi một ngắt xảy ra làm chương trình bị rẽ nhánh, giá trị của bộ đếm chương

trình PC tự động được vi điều khiển cất vào trong stack. Khi một trong các lệnh

RETURN, RETLW hat RETFIE được thực thi, giá trị PC sẽ tự động được lấy ra

từ trong stack, vi điều khiển sẽ thực hiện tiếp chương trình theo đúng qui trình

định trước.

Bộ nhớ Stack trong vi điều khiển PIC họ 16F87xA có khả năng chứa được

8 địa chỉ và hoạt động theo cơ chế xoay vòng. Nghĩa là giá trị cất vào bộ nhớ

Stack lần thứ 9 sẽ ghi đè lên giá trị cất vào Stack lần đầu tiên và giá trị cất vào

bộ nhớ Stack lần thứ 10 sẽ ghi đè lên giá trị 6 cất vào Stack lần thứ 2. Cần chú ý

là không có cờ hiệu nào cho biết trạng thái stack, do đó ta không biết được khi

nào stack tràn. Bên cạnh đó tập lệnh của vi điều khiển dòng PIC cũng không có

lệnh POP hay PUSH, các thao tác với bộ nhớ stack sẽ hoàn toàn được điều khiển

bởi CPU.

Bộ môn Kỹ thuật máy tính 17

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

e. Các cổng xuất nhập của PIC16F877A

Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để

tương tác với thế giới bên ngoài. Sự tương tác này rất đa dạng và thông qua quá

trình tương tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng.

Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy

theo cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và

số lượng chân trong mỗi cổng có thể khác nhau. Bên cạnh đó, do vi điều khiển

được tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức

năng là cổng xuất nhập thông thường, một số chân xuất nhập còn có thêm các

chức năng khác để thể hiện sự tác động của các đặc tính ngoại vi nêu trên đối

với thế giới bên ngoài. Chức năng của từng chân xuất nhập trong mỗi cổng hoàn

toàn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR liên

quan đến chân xuất nhập đó.

Port A

Port A (RPA) bao gồm 6 I/O pin. Đây là các chân “hai chiều”

(bidirectional pin), nghĩa là có thể xuất và nhập được. Chức năng I/O này được

điều khiển bởi thanh ghi TRISA (địa chỉ 85h). Muốn xác lập chức năng của một

chân trong PortA là input, ta “set” bit điều khiển tương ứng với chân đó trong

thanh ghi TRISA và ngược lại, muốn xác lập chức năng của một chân trong Port

A là output, ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi

TRISA. Thao tác này hoàn toàn tương tự đối với các PORT còn lại. Bên cạnh đó

Port A còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog ngõ vào xung

clock của Timer0 và ngõ vào của bộ giao tiếp MSSP (Master Synchronous

Serial Port).

Các thanh ghi SFR liên quan đến Port A bao gồm:

Port A (địa chỉ 05h) : chứa giá trị các pin trong

Port A. TRISA (địa chỉ 85h) : điều khiển xuất nhập.

CMCON (địa chỉ 9Ch) : thanh ghi điều khiển bộ so sánh.

CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp.

ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC.

Port B

Bộ môn Kỹ thuật máy tính 18

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

Port B (RPB) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng

là TRISB. Bên cạnh đó một số chân của Port B còn đươc sử dụng trong quá

trình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau. Port B

còn liên quan đến ngắt ngoại vi và bộ Timer0. Port B còn được tích hợp chức

năng điện trở kéo lên được điều khiển bởi chương trình.

Các thanh ghi SFR liên quan đến Port B bao gồm:

Port B (địa chỉ 06h,106h) : chứa giá trị các pin trong

Port B TRISB (địa chỉ 86h,186h) : điều khiển xuất nhập

OPTION_REG(địa chỉ 81h,181h): điều khiển ngắt ngoại vi và bộ Timer0

Port C

PortC (RPC) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là

TRISC. Bên cạnh đó Port C còn chứa các chân chức năng của bộ so sánh, bộ

Timer1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART.

Các thanh ghi điều khiển liên quan đến Port C:

Port C (địa chỉ 07h) : chứa giá trị các pin trong

Port C TRISC (địa chỉ 87h) : điều khiển xuất nhập.

Port D

Port D (RPD) gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng

là TRISD. Port D còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel

Slave Port).

Các thanh ghi liên quan đến Port D bao gồm:

Thanh ghi Port D : chứa giá trị các pin trong Port D.

Thanh ghi TRISD : điều khiển xuất nhập.

Thanh ghi TRISE : điều khiển xuất nhập Port E và chuẩn giao tiếp PSP.

Port E

Port E (RPE) gồm 3 chân I/O. Thanh ghi điều khiển xuất nhập tương ứng

là TRISE. Các chân của PortE có ngõ vào analog. Bên cạnh đó Port E còn là các

chân điều khiển của chuẩn giao tiếp PSP.

Các thanh ghi liên quan đến Port E bao gồm:

Port E : chứa giá trị các chân trong PortE.

TRISE : điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp

Bộ môn Kỹ thuật máy tính 19

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

PSP

ADCON1: thanh ghi điều khiển khối ADC.

f. Ngắt (Interrupt)

PIC16F877A có đến 15 nguồn tạo ra hoạt động ngắt được điều khiển bởi

thanh ghi INTCON (bit GIE). Bên cạnh đó mỗi ngắt còn có một bit điều khiển

và cờ ngắt riêng. Các cờ ngắt vẫn được set bình thường khi thỏa mãn điều kiện

ngắt xảy ra bất chấp trạng thái của bit GIE, tuy nhiên hoạt động ngắt vẫn phụ

thuộc vào bit GIE và các bit điều khiển khác. Bit điều khiển ngắt RB0/INT và

TMR0 nằm trong thanh ghi INTCON, thanh ghi này còn chứa bit cho phép các

ngắt ngoại vi PEIE. Bit điều khiển các ngắt nằm trong thanh ghi PIE1 và PIE2.

Cờ ngắt của các ngắt nằm trong thanh ghi PIR1 và PIR2.

Trong một thời điểm chỉ có một chương trình ngắt được thực thi, chương

trình ngắt được kết thúc bằng lệnh RETFIE. Khi chương trình ngắt được thực

thi, bit GIE tự động được xóa, địa chỉ lệnh tiếp theo của chương trình chính

được cất vào trong bộ nhớ Stack và bộ đếm chương trình sẽ chỉ đến địa chỉ

0004h. Lệnh RETFIE được dùng để thoát khỏi chương trình ngắt và quay trở về

chương trình chính, đồng thời bit GIE cũng sẽ được set để cho phép các ngắt

hoạt động trở lại. Các cờ hiệu được dùng để kiểm tra ngắt nào đang xảy ra và

phải được xóa bằng chương trình trước khi cho phép ngắt tiếp tục hoạt động trở

lại để ta có thể phát hiện được thời điểm tiếp theo mà ngắt xảy ra.

Đối với các ngắt ngoại vi như ngắt từ chân INT hay ngắt từ sự thay đổi

trạng thái các pin của PORTB (PORTB Interrupt on change), việc xác định ngắt

nào xảy ra cần 3 hoặc 4 chu kì lệnh tùy thuộc vào thời điểm xảy ra ngắt.

Cần chú ý là trong quá trình thực thi ngắt, chỉ có giá trị của bộ đếm

chương trình được cất vào trong Stack, trong khi một số thanh ghi quan trọng sẽ

không được cất và có thể bị thay đổi giá trị trong quá trình thực thi chương trình

ngắt. Điều này nên được xử lý bằng chương trình để tránh hiện tượng trên xảy

ra.

Ngắt INT

Ngắt này dựa trên sự thay đổi trạng thái của pin RB0/INT. Cạnh tác động

gây ra ngắt có thể là cạnh lên hay cạnh xuống và được điều khiển bởi bit

Bộ môn Kỹ thuật máy tính 20

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

INTEDG (thanh ghi OPTION_ REG <6>). Khi có cạnh tác động thích hợp xuất

hiện tại pin RB0/INT, cờ ngắt INTF được set bất chấp trạng thái các bit điều

khiển GIE và PEIE. Ngắt này có khả năng đánh thức vi điều khiển từ chế độ

sleep nếu bit cho phép ngắt được set trước khi lệnh SLEEP được thực thi.

Ngắt do sự thay đổt trạng thái các PIN trong Port B

Các pin PORTB<7:4> được dùng cho ngắt này và được điều khiển bởi bit

RBIE (thanh ghi INTCON<4>). Cờ ngắt của ngắt này là bit RBIF

(INTCON<0>).

2.5.2. Led Hồng Ngoại

a. Led phát

Diode quang thường được chế tạo bằng gecmani và silic . Hình 4 trình

bày cấu tạo của diode quang chế tạo bằng silic .dùng làm bộ chỉ thị tia lân cận

bức xạ hồng ngoại.

Hình 2.11: Cấu tạo diode hồng ngoại

Nguyên lý

Hình 2.12: Nguyên lý làm việc của diode quang

Bộ môn Kỹ thuật máy tính 21

Rt

- +

PN

Rt

PN

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

Led hồng ngoại có thể làm việc ở hai chế độ: chế độ biến đổi quang điện

và chế độ nguồn quang điện.

Nguyên lý trong chế độ biến đổi quang điện: Lớp p được mắc vào cực âm

của nguồn điện, lớp n mắc vào cực dương. Phân cực ngược nên khi chưa chiếu

sang chỉ có dòng điện nhỏ bé chạy qua ứng với dòng điện ngược (còn gọi là

dòng điện tối). Khi có quang thông dòng điện qua mối nối p-n tăng lên gọi là

dòng điện sáng.

Nguyên lý làm việc của diode trong chế độ nguồn phát quang điện( pin

mặt trời): Khi quang thông , các điện tích trên mối nối p-n được giải phóng tạo ra

sức điện động trên 2 cực của diode, do đó làm xuất hiện dòng điện chảy trong

mạch. Trị số sức điện động xuất hiện trong nguồn phát quang điện phụ thuộc vào

loại nguồn phát và trị số của quang thông.

b. Led thu

Cấu tạo

Hình 2.13: Cấu tạo led thu

Nguyên lý

Giả sử điều kiện phân cực cho IC đã hoàn chỉnh ,khi IC nhận tín hiệu điều

khiển từ diode phát quang, mạch khuếch đại OP-amp của của IC sẽ biến đổi

dòng điện thu được từ diode ra điện áp( điện áp này đươc khuếch đại). Tín hiệu

điện áp được đưa đến Smith triger để tạo xung vuông, xung này có nhiệm vụ

kích transistor ngõ ra hoạt động, lúc đó ngõ ra ở chân số 2 của IC ở mức thấp, tín

Bộ môn Kỹ thuật máy tính 22

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

hiệu ngõ ra tác động ở mức 0, có thể được dùng đẻ điều khiển gián tiếp một tải

nào đó. Khi ngăn ánh sáng chiếu vào thì ngược lại không hoạt động dẫn dòng.

2.5.3. Led 7 đoạn

a. Các khái niệm cơ bản

Trong các thiết bị, để báo trạng thái hoạt động của thiết bị đó cho người sử

dụng với thông số chỉ là các dãy số đơn thuần, thường người ta sử dụng “ Led 7

đoạn ”. Led 7 đoạn được sử dụng khi các thông số không đòi hỏi quá phức tạp,

chỉ cần hiển thị số là đủ, chẳng hạn Led 7 đoạn được sử dụng để hiển thị nhiệt độ

phòng, trong các đồng hồ trong các đồng hồ treo tường bằng điện tử, hiển thị số

lượng sản phẩm được kiểm tra sau một công đoạn nào đó ….

b. Sơ đồ vị trí các Led :

Các điện trở 330Ω là các điện trở bên ngoài được kết nối để giới hạn dòng

điện qua Led nếu Led 7 đoạn được nối với nguồn 5V.

Hình 2.14: Sơ đồ chân 7 SEG-COM-ANODE và hình ảnh minh họa

c. Kết nối với Vi điều khiển:

Ngõ nhận tín hiệu điều khiển của Led 7 đoạn có 8 đường, vì vậy có thể

dùng 1 Port nào đó của Vi điều khiển để điều khiển Led 7 đoạn. Như vậy Led 7

đoạn nhận một dữ liệu 8 bit từ Vi điều khiển để điều khiển hoạt động sáng tắt

của từng Led đơn trong nó, dữ liệu được xuất ra điều khiển Led 7 đoạn thường

Bộ môn Kỹ thuật máy tính 23

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

được gọi là "mã hiển thị Led 7 đoạn". Có hai kiểu mã hiển thị Led 7 đoạn: mã

dành cho Led 7 đoạn có Anode(cực +) chung và mã dành cho Led 7 đoạn có

Cathode(cực -) chung. Chẳng hạn, để hiện thị số 1 cần làm cho các Led ở vị trí b

và c sáng, nếu sử dụng Led 7 đoạn có Anode chung thì phải đặt vào hai chân b

và c điện áp là 0V(mức 0) các chân còn lại được đặt điện áp là 5V(mức 1), nếu

sử dụng Led 7 đoạn có Cathode chung thì điện áp(hay mức logic) hoàn toàn

ngược lại, tức là phải đặt vào chân b và c điện áp là 5V(mức 1).

Phần cứng được kết nối với 1 Port bất kì của Vi điều khiển, để thuận tiện

cho việc xử lí về sau phần cứng nên được kết nối như sau: Px.0 nối với chân a,

Px.1 nối với chân b, lần lượt theo thứ tự cho đến Px.7 nối với chân h.

2.5.4. Transistor

a. Định nghĩa

Transistor được hình thành từ ba lớp bán dẫn ghép với nhau hình thành hai

mối tiếp giáp P-N ,nếu ghép theo thứ tự PNP ta được Transistor thuận , nếu ghép

theo thứ tự NPN ta được Transistor ngược. về phương diện cấu tạo Transistor

tương đương với hai Diode đấu ngược chiều nhau. Cấu trúc này được gọi là

Bipolar Junction Transitor (BJT) vì dòng điện chạy trong cấu trúc này bao gồm

cả hai loại điện tích âm và dương (Bipolar nghĩa là hai cực tính). Ba lớp bán dẫn

được nối ra thành ba cực, lớp giữa gọi là cực gốc ký hiệu là B (Base), lớp bán

dẫn B rất mỏng và có nồng độ tạp chất thấp. Hai lớp bán dẫn bên ngoài được nối

ra thành cực phát (Emitter) viết tắt là E, và cực thu hay cực góp (Collector) viết

tắt là C, vùng bán dẫn E và C có cùng loại bán dẫn (loại N hay P ) nhưng có kích

thước và nồng độ tạp chất khác nhau nên không hoán vị cho nhau được.

Hình 2.15: Hình ảnh transistor

Bộ môn Kỹ thuật máy tính 24

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

b. Nguyên tắc hoạt động của Transitor:

Trong chế độ tuyến tính hay còn gọi là chế độ khuyếch đại, Transitor là

phần tử khuyếch đại dòng điện với dòng Ic bằng β lần dòng bazo (dòng điều

khiển ) Trong đó β là hệ số khuyếch đại dòng điện : IC = β.IB

2.5.5. Tụ điện

Tụ điện là linh kiện điện tử thụ động được sử dụng rất rộng rãi trong các

mạch điện tử, chúng được sử dụng trong các mạch lọc nguồn, lọc nhiễu, mạch

truyền tín hiệu xoay chiều, mạch tạo dao động.

Hình 2.16: Một số loại tụ điện

2.5.6. Rơle

Rơle là một công tắc điều khiển từ xa đơn giản, nó dùng một dòng nhỏ để

điều khiển một dòng lớn vì vậy nó được dùng để bảo vệ công tắc nên cũng được

xem là một thiết bị bảo vệ. Một rơle điển hình điều khiển mạch và cả điều khiển

nguồn. Kết cấu rơle gồm có một lõi sắt ,một cuộn từ và một tiếp điểm.

Hình 2.17: Cấu tạo một Rơ le đơn giản và hình ảnh Role 5V

Bộ môn Kỹ thuật máy tính 25

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

2.5.7. IC ổn áp

7805 là một mạch tích hợp bộ điều chỉnh điện áp. Đây là một dòng IC của họ 78xx

điều chỉnh điện áp tuyến tính cố định. Nguồn điện áp trong mạch có thể có biến động và

sẽ không cho lượng điện áp cố định. Các vi mạch điều chỉnh điện áp duy trì điện áp đầu ra

tại một giá trị không đổi. Các xx trong 78xx cho biết lượng điện áp cố định nó được thiết

kế để cung cấp: 7805 cung cấp nguồn +5 V...

Hình 2.18: IC ổn áp 7805

Bộ môn Kỹ thuật máy tính 26

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

2.6.Sơ đồ nguyên lý của mạch.

Các module được kết nối với nhau theo sơ đồ hình vẽ.

D 1L E D P H A T 1

D 2L E D P H A T 2

V c c -5 V

R 2

U 1L E D TH U 1

VS

S1

O U T2

VC

C3

U 2 L E D TH U 2

VS

S1

O U T2

VC

C3

V o u t

R 4

V 1

V c c -5 V

TH 2

V 1

R 5R E S

V c c -5 V

R 1R 3

TH 1

P V N 1

P I C 1 6 F 8 7 7 A

R A 0 / A N 02

R A 1 / A N 13

R A 2 / A N 2 / V R E F -/ C V R E F4

R A 3 / A N 3 / V R E F +5

R A 4 / T0 C K I / C 1 O U T6

R A 5 / A N 4 / S S * / C 2 O U T7

R B 0 / I N T3 3

R B 13 4

R B 23 5

R B 3 / P G M3 6

R B 43 7

R B 53 8

R B 6 / P G C3 9

R B 7 / P G D4 0

R C 0 / T1 O S O / T1 C K I1 5

R C 1 / T1 O S I / C C P 21 6

R C 2 / C C P 11 7

R C 3 / S C K / S C L1 8

R C 4 / S D I / S D A2 3

R C 5 / S D O2 4

R C 6 / TX/ C K2 5

R C 7 / R X/ D T2 6

R D 0 / P S P 01 9

R D 1 / P S P 12 0

R D 2 / P S P 22 1

R D 3 / P S P 32 2

R D 4 / P S P 42 7

R D 5 / P S P 52 8

R D 6 / P S P 62 9

R D 7 / P S P 73 0

O S C 1 / C L K I N1 3

O S C 2 / C L K O U T1 4

V D D3 2

V D D1 1

V S S3 1

V S S1 2

M C L R * / V P P1

R E 0 / R D * / A N 58

R E 1 / W R * / A N 69

R E 2 / C S * / A N 71 0

J 2

2 2 0 V ~12

7 S E G 1 M P X2 -C A

A1

B2

C3

D4

E5

F6

G7

DP

8 9L1

10L2

L 1

B ie n a p

S W 1

S1

S2

S3

S4

S5

S6

S7

L1 L2

- +

D io t c a u

2

4

3

1

S 1

S 3S 4S 5S 6S 7

U 47 8 0 5

I N1

GN

D2

O U T3

S 2

V c c -5 V

L 1L 2

R 3 R E S

R 4R E S

Q 1N P N

Y 1Z TB

C 1C

C 2C

L S 1R E L A Y

354

12

V o u t

D 3

D io t

V c c -5 V

1 2 V

C 3

J 12 2 0 V ~

1 2

C 4

C 5 B T

DEN

TH 1TH 2

T1 3

T1 4

T1 3T1 4

Hình 3.1 Sơ đồ mạch nguyên lý

2.7.Thuật toán điều khiển.

Chương trình có nhiệm vụ:

Kiểm tra xem người đi vào phòng hay đi ra khỏi phòng

Vi điều khiển thực hiện ngắt cổng B để chuơng trình điều khiển thực hiện

Giải thuật:

Chương trình điều khiển được thực hiện dựa trên ngắt INTERRUPT của

vi điều khiển. Chương trình chính hoàn toàn không tham gia vào việc thực hiện

điều khiển, chương trình chính có chức năng duy nhất là thực hiện ngắt mạch để

Bộ môn Kỹ thuật máy tính 27

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

cho cổng B thực hiện điều khiển. Các cổng B được thực hiện ngắt là từ B4 -

>B7.

Đầu tiên ta bố trí 2 bộ thu phát hồng ngoại gần nhau theo phương tạo thành

mặt phẳng song song với mặt đất, bộ thu phát đầu tiên nối với cổng B4 của vi xử

lý, bộ thu phát thứ 2 nối tới cổng B5 của vi xử lý.

Khi có người đi qua, để biết được người đó đi vào hay ra khỏi phòng. Ta

cần xem xét xem tín hiệu ở bộ thu phát thứ nhất bị gián đoạn trước hay tín hiệu

của bộ thu phát hồng ngoại thứ 2. Nếu mà tín hiệu ở bộ thu phát thứ nhất bị gián

đoạn trước thì có nghĩa là người đi vào phòng, nếu tín hiệu ở bộ thu phát thứ 2

bị gián đoạn trước thì có nghĩa là người đi ra khỏi phòng. Vi xử lý ( cụ thể là

chương trình chính ) sẽ thực hiện ngắt cổng B để thực hiện đoạn chương trình.

Bộ môn Kỹ thuật máy tính 28

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

Sơ đồ thuật toán

Hình 3.2: Sơ đồ thuật toán

Chương trình nạp vào Vi điều khiển Pic 16F877A

Để viết chương trình điều khiển ta sử dụng ngôn ngữ C viết trên phần

mềm CCS và chạy mô phỏng trong Proteus. Chương trình gồm các chương trình

con Bật tắt đèn ‘void den(ng)’, chương trình con Hiển thị Led ‘void led(ng)’,

chương trình con Đếm người vào ‘int dauvao()’, chương trình con Đếm người ra

’int daura()’, chương trình con Ngắt thay đổi trạng thái các chân B4->B7 và

chương trình Chính.

Các hằng số và biến trong chương trình : Mảng LED7[10] gồm 10 phần

tử, mỗi phần tử tương ứng với 1 con số từ 0 đến 9 mà Led 7 đoạn sẽ hiển thị.

Biến chạy ‘i’ dùng cho vòng lặp để quét Led. Biến ‘ng‘ biểu thị cho số người

đang ở trong phòng. Biến ‘L1, L2’ để hiển thị các Led7 đoạn 1 và 2 tương ứng

với chữ số hàng chục và hàng đơn vị của số người trong phòng. Biến ‘vao, ra’ để

thu nhận tín hiệu từ đầu ra của hai Led thu 1 và 2 : bình thường ‘vao=ra=1’, khi

có người cắt qua bộ thu phát 1 thì ‘vao=0’, qua bộ thu phát 2 thì ‘ra=0’. Hai biến

‘x và y’ để xác nhận xem đã có tín hiệu đã đi qua 2 bộ thu phát hay không trong

một lượt người vào hoặc ra: ban đầu ‘x=y=0’, khi người cắt qua Led thu 1 thì

x=1 ; khi người cắt qua Led thu 2 thì y=1 ; khi người đã đi qua cả 2 bộ thu phát

1,2 thì cài đặt lại : x=y=0 và chuẩn bị cho 1 lượt mới.

Chương trình sử dụng ngắt thay đổi trạng thái cổng B : khi có bất kỳ sự

thay đổi trạng thái nào trên các chân B4-> B7 của cổng B thì chương trình sẽ

sinh ra ngắt. Trong bài này, tùy vào tín hiệu thu được ở các cổng B4 và B5

chương trình ngắt sẽ gọi các chương trình con ‘dauvao’ hay là chương trình con

‘daura’. Chương trình ngắt sẽ trả về giá trị là số người trong phòng ’ng’.

Chương trình chính có vòng lặp vô hạn giúp hệ thống có thể làm việc liên

tục, từ giá trị ‘ng’ được trả về từ chương trình ngắt, chương trình chính sẽ gọi

các hàm ‘den(ng)’ và ‘Led(ng)’ để thực hiện việc đóng cắt điện và hiển thị.

Bộ môn Kỹ thuật máy tính 29

Khởi tạo

Start

Chương trình chính

B5=0

B4=0Tăng số

người lên 1

Số ng >0

Số ng> =1

Bật điện

Số ng =0

Tắt điện

Giảm số người đi 1

Đ

S

Đ

Đ

Đ

S

Đ

Ngắt từ B4->B7

S

S

Ngắt từ B4->B7

Hiển thị số người

Trong đó: B4=input_pin(B4): tín hiệu từ Led thu 1 B5=input_pin(B5):tín hiệu từ Led thu 2 Số ng: số lượng người đang ở trong phòng

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG

3.1 Thiết kế phần cứng Với đồ án môn học Hệ thống nhúng với đề tài là ‘‘Hệ thống bật tắt đèn

thông minh dùng cho các phòng họp’’, việc thiết kế phần cứng của mạch hệ

thống cụ thể được chia làm 5 khối cơ bản là :

- Khối nguồn

- Khối cảm biến hồng ngoại

- Khối hiển thị

- Khối rơle chấp hành

- Khối điều khiển

3.2 Thiết kế phần mềm Mã lập trình :

#include<16f877A.h> //thu vien cho Pic

#use delay(clock=20M) // khai bao su dung tre

int8 const

LED7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

//mang hien thi cac so tu 0 den 9

long i,L1,L2,ng,x,y,vao,ra; //khai bao cac bien

//============================================//

void den(ng){

if (ng==0) output_a(0); //xuat ra cong a gia tri 0 : tat den

else output_a(1); //xuat ra cong a gia tri 1 : bat den

}

//============================================//

Bộ môn Kỹ thuật máy tính 30

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

void led(ng){

L1=(ng/ 1) % 10; // Lay so hang don vi

L2=(ng/ 10) % 10; // Lay so hang chuc

for(i=0;i<100;i++){

output_c(LED7[L2]); output_d(1); delay_ms(1); output_d(0);

// dua ma so hang chuc ra cong C, bat LED 1, tre 1ms roi tat

output_c(LED7[L1]); output_d(2); delay_ms(1); output_d(0);

// dua ma so hang don vi ra cong C, bat LED 2, tre 1ms roi tat

}

}

//============================================//

int dauvao(){ //ctr con dau vao

if ((x==0)&&(y==0)){ //neu bat dau di vao thi thuc hien

x=1; //ghi nhan da qua senso 1

if (ng!=99) ng++; //neu so nguoi con nho hon 99 thi dem tang

}

else if ((x==0)&&(y==1)){ //neu la cuoi cua qua trinh di ra

x=1; //ghi nhan da qua senso 1

}

}

//============================================//

int daura(){ //ctr con dau ra

if ((x==0)&&(y==0)){ //neu bat dau di ra va con nguoi trong phong

y=1; //ghi nhan da qua senso 2

if (ng!=0) ng--; //neu so nguoi con lon hon 0 thi dem giam

}

else if((x==1)&&(y==0)){ //neu la cuoi cua qua trinh vao

y=1; //ghi nhan da qua senso 2

}

}

//============================================//

Bộ môn Kỹ thuật máy tính 31

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

#INT_rb //khai bao ngat thay doi trang thai cong B

long vaora(){ //ctr ngat cong B

vao=input(pin_b4); //gan bien vao doc du lieu vao chan B4 tu senso 1

ra=input(pin_b5); //gan bien vao doc du lieu vao chan B5 tu senso 2

if (vao==0) dauvao(); //neu co tin hieu vao thi cho chay ctr con dau vao

else if (ra==0) daura(); //neu co tin hieu ra thi cho chay ctr con dau ra

if ((x==1)&&(y==1)&&(vao==1)&&(ra==1)){

//khi ca 2 sense deu da co tin hieu thi cai dat lai

x=0;

y=0;

}

return ng;

}

//============================================//

void main(){

x=y=0; ng=0; //Gan cac gia tri ban dau

set_tris_a(0); //Cong A la cong ra

set_tris_b(0xff); //Cong B la cong vao

set_tris_c(0); //Cong C la cong ra

set_tris_d(0); //Cong D la cong ra

enable_interrupts(INT_rb); //cho phep ngat ngoai dem vach

enable_interrupts(GLOBAL); //cho phep ngat toan cuc

while (1){ //lien tuc kiem tra senso va dieu khien den

led(ng); //goi ham hien thi den led

den(ng); //goi ham bat tat den

}

}

Bộ môn Kỹ thuật máy tính 32

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

3.3. Kết quả mô phỏng.

Khi chưa có người nào ở trong phòng, công tắc 3 vị trí đặt ở vị trí 1- Bật

tắt đèn theo chế độ tự động : Led 7 thanh hiển thị số người trong phòng là

00, rơ le chưa tác động, đèn chưa sáng.

Hình 3.1 : Trạng thái ban đầu của hệ thống

Khi có người vào phòng, senso 1 có tín hiệu trước, Led 7 thanh hiển thị số

người trong phòng là 01, rơ le tác động, đèn được bật.

Bộ môn Kỹ thuật máy tính 33

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

Hình 3.2 : Khi có người vào phòng

Khi có thêm người vào phòng, senso 1 lại có tín hiệu trước, Led 7 thanh

hiển thị số người trong phòng là 02, rơ le vẫn tác động, đèn vẫn sáng.

Hình 3.3 : Khi có thêm người vào phòng

Khi có người ra khỏi phòng, senso 2 có tín hiệu trước, Led 7 thanh hiển thị

số người trong phòng là 01, rơ le vẫn tác động, đèn vẫn sáng.

Bộ môn Kỹ thuật máy tính 34

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

Hình 3.4 : Khi có người ra khỏi phòng

Khi đang có người trong phòng, Led 7 thanh hiển thị số người trong phòng

là 01, rơ le đang tác động, đèn đang sáng, muốn tắt đèn ta gạt công tắc

sang vị trí số 2 : đèn tắt.

Hình 3.5 : Khống chế tắt đèn khi đang có người

Bộ môn Kỹ thuật máy tính 35

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

Khi không có người ở trong phòng, Led 7 thanh hiển thị số người trong

phòng là 00, rơ le chưa tác động, đèn chưa sáng ; muốn bật đèn ta gạt công

tắc sang vị trí số 3, đèn sáng.

Hình 3.1 : Khống chế bật đèn khi không có người

ĐÁNH GIÁ VÀ KẾT LUẬN

Hệ thống bật tắt đèn thông minh dành cho các phòng họp sử dụng thu phát

hồng ngoại và vi xử lý Pic cơ bản đáp ứng được yêu cầu môn học. Hệ thống hoạt

động tương đối ổn định và có khả năng nâng cấp cải tiến hoặc dùng cho các mục

đích khác : chiếu sáng cầu thang, hành lang, chống trộm...

Tuy nhiên, hệ thống vẫn còn những khuyết điểm chưa thể khắc phục được:

khi có hơn 1 người đi vào (ra) song song với nhau thì vẫn chỉ nhận biết được 1

người. Hay những trường hợp người đi chưa vào hẳn đã quay ra hoặc chưa ra

hẳn đã trở vào thì hệ thống sẽ bị lỗi.

Để hệ thống này ứng dụng được trong thực tiễn thì còn nhiều vấn đề cần

giải quyết : các lỗi nhận biết kể trên, chống nhiễu cho Sensor, đảm bảo khả năng

đóng cắt nguồn xoay chiều 220V hoặc cao hơn... Nếu giải quyết được những vấn

đề này thì khả năng ứng dụng của hệ thống là rất lớn phù hợp với yêu cầu tự

động ngày càng cao của đời sống cũng như việc tiết kiệm điện trong hoàn cảnh

thiếu điện hiện nay.

Bộ môn Kỹ thuật máy tính 36

ĐAMH Hệ thống nhúng GVHD Nguyễn Văn Huy

TÀI LIỆU THAM KHẢO

Bài giảng Hệ thống nhúng – Bộ môn Kỹ thuật Máy tính, ĐH Kỹ thuật Công

Nghiệp Thái Nguyên – 2010

Bài giảng Vi xử lý- Vi điều khiển – Bộ môn Kỹ thuật Máy tính – ĐH Kỹ

thuật Công Nghiệp Thái Nguyên – 2009

Sơ đồ chân linh kiện - Dương Minh Trí - Nhà xuất bản KH-KT- 09/2005

Một số tài liệu khác trên mạng:

dientuvietnam.net

picvietnam.com

sites.google.com/site/ktmttn

picat.dieukhien.net

Bộ môn Kỹ thuật máy tính 37