Tải bản đầy đủ (.docx) (88 trang)

Hệ thống chiếu sáng thông minh

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 (1.71 MB, 88 trang )

TÓM TẮT
Trong những năm gần đây với sự phát triển của nền kinh tế Việt Nam, mức độ tiêu
thụ điện năng của nền kinh tế đã tăng lên nhanh chóng, trong khi nhu cầu ngày càng tăng
cao thì sự phát triển của ngành điện vẫn chưa thể đáp ứng được đòi hỏi từ nền kinh tế. Vì
vậy, một vấn đề cấp thiết được đặt ra hiện nay là phải triệt để tiết kiệm điện. Nhà nước ta
hiện đang coi tiết kiệm điện là ưu tiên hàng đầu trong việc quản lý và phát triển ngành điện
ở Việt Nam.
Hệ thống chiếu sáng công cộng ở Việt Nam là một trong những hệ thống tiêu thụ rất
nhiều điện năng, nhưng vẫn chưa được chú ý đúng mức trong vấn đề tiết kiệm điện, gây
nên hiệu quả sử dụng chưa được tối ưu và điện năng thất thoát lớn. Trong đề tài này chúng
em tìm hiểu về hệ thống chiếu sáng công cộng của Việt Nam. Do hạn chế về kiến thức và
thời gian thực hiện đề tài nên nhóm chúng em chỉ thực hiện mô phỏng hoạt động của hệ
thống.
Nội dung thực hiện đề tài bao gồm các vấn đề chính như sau :
- Thực trạng hệ thống chiếu sáng công cộng ở Việt Nam
- Sơ lược các giải pháp công nghệ điều khiển hệ thống.
- Hệ thống điều khiển độ sáng đèn đường dùng cảm biến ánh sáng.
- Thiết kế mạch điều khiển Atmega8 dùng để điều khiển hệ thống.
- Phần mềm Altium để thiết kế mạch in.
- Bộ vi xử lý Atmega8 của hãng Atmen.
- Phần mềm lập trình CodeVision để lập trình cho vi điều khiển
Atmega.
- Xây dựng thuật toán điều khiển.
- Xây dựng mạch và mô phỏng hoạt động của hệ thống trên
mạch.
Sau thời gian cả học kỳ 8 nỗ lực thực hiện đề tài với tinh thần nghiêm túc, trách
nhiệm và sự chỉ bảo tận tình của giáo viên hướng dẫn, chúng em cơ bản đã hoàn thành tốt
đề tài cũng như nhiệm vụ mà môn học đề ra.
Kết quả bước đầu sẽ là động lực để chúng em tiếp tục nghiên cứu phát triển trong
các môn học tiếp theo cũng như trong chuyên ngành tự động hóa để có thể có được nền
tảng kiến thức vững vàng. Với mục đích sau này sau khi tốt nghiệp có thể đóng góp một


phần công sức nhỏ bé xây dựng tổ quốc ngày càng giàu đẹp và phát triển.
CHƯƠNG 1
GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
I. ĐẶT VẤN ĐỀ
Trong những năm qua, Việt Nam là một nước có nền kinh tế phát triển rất
nhanh, nhưng vấn đề phát triển điện năng lại không theo kịp với yêu cầu thực tế.
Theo số liệu công bố trong cuốn sách “Chính sách quản lý năng lượng hiệu
quả ở Việt Nam”, Năm 2005, Việt Nam đã sản xuất được 53,5 tỷ kWh điện, 34
triệu tấn than, 19 triệu tấn dầu thô và 7 tỷ m3 khí gaz.Từ 2000 tới 2005, mức độ
tiêu thụ điện tăng bình quân 14,6 % một năm.Từ 1995 tới 2006, mức độ tiêu thụ
than đá đã tăng 17,4 % một năm (11,2 % cho tiêu thụ trong nước và 23 % cho
xuất khẩu).Từ 2000 tới 2005, GDP tính theo đầu người của Việt Nam đã tăng
từ 401 lên tới 645 USD và tiêu thụ năng lượng đã tăng từ 154 lên tới 250 Kg qui
dầu (KQD) tính trên đầu người. Cường độ năng lượng đã tăng từ 412 lên tới
500 KQD/1000 USD.
Hình 1 Phát triển điện năng ở Việt Nam
Mức độ tiêu thụ năng lượng tính trên đầu người hiện còn thấp, song cường
độ năng lượng là lớn, đặc biệt trong công nghiệp (600 tới 700 KQD/1000
USD), và hệ số đàn hồi năng lượng hiện ở mức cao (1,46). Tiềm năng tiết kiệm
năng lượng trong các ngành khác nhau là rất lớn: 15 % đối với hoạt động cấp
thoát nước và gần 50 % trong công nghiệp xi măng và nông nghiệp.
Tháng 9/2003, chính phủ Việt Nam đã thông qua Nghị định về sử dụng tiết
kiệm và hiệu quả năng lượng và giao Bộ Công Thương là cơ quan đầu mối
trong việc thi hành Nghị định này. Tháng 7/2004, Bộ Công Thương đã ban hành
Thông tư qui định việc quản lý và sử dụng năng lượng tiết kiệm và hiệu quả
đối với các Doanh nghiệp công nghiệp. Ngoài ra, các quy định về tiết kiệm
trong sản xuất, truyền tải, phân phối và sử dụng điện đã được quy định trong nội
dung Luật Điện lực đã được Quốc hội Việt Nam thông qua ngày 3/12/2004.
Theo Hội Chiếu sáng Việt Nam, hiện nay điện năng dành cho chiếu sáng
chiếm khoảng 25 - 30% công suất điện tại giờ cao điểm. Hiện cả nước có

khoảng 100 triệu bóng đèn các loại dùng để thắp sáng, trong đó có 80 triệu bóng
đèn chiếu sáng tại các hộ gia đình và 20 triệu bóng đèn tại cơ quan, nhà máy, xí
nghiệp.
- Theo thống kê với 80 triệu đèn huỳnh quang chiếu sáng (khoảng 10 triệu
là đèn Compact) và với 60 triệu bóng đèn sơi đốt điện năng chiếu sáng của
Việt nam chiếm khoảng 35% tổng lượng điện tiêu thụ của cả nước (Trần Đình
Đắc - Hội Chiếu sáng đô thị Việt Nam).
Hình 2: Mô hình đèn chiếu sáng trên đường cao tốc.
- Hiện tại, các thành phố lớn chiếu sáng công cộng chủ yếu dùng đèn thuỷ
ngân cao áp, chiếm tỷ lệ khá cao như: Hà nội 52%, Bắc giang 65%, Tuyên
Quang 100%, Hội an 60% … loại đèn này tiêu thụ nhiều điện năng, hiệu suất
chiếu sáng chưa cao, tuổi thọ trung bình chỉ đạt 6000h (Tạp chí tự động hoá ).
- Mức tiêu thụ điện trong chiếu sáng ở Việt Nam cao hơn nhiều so với thế
giới. Dự báo còn tăng cao hơn bởi do mức độ đô thị hoá và hệ thống chiếu
sáng hiện tại được sử dụng vẫn còn cũ kỹ và lạc hậu.
- Hệ thống các trạm điều khiển đèn vẫn chỉ được điều khiển bằng tủ cục
bộ và hầu như chưa có thiết bị điều khiển chiếu sáng cho hệ thống (điều khiển
công suất - cường độ chiếu sáng, thời gian chiếu sáng ….).
- Do thiếu điện, để giảm tiêu thụ điện một số thành phố lớn đã phải dùng
biện pháp tắt 1/3 đến 1/2 số đèn chiếu sáng công cộng, làm ảnh hưởng đến độ
sáng cần thiết và an toàn trong giao thông.
Vì vậy, vấn đề hiện đại hóa hệ thống chiếu sáng công cộng nằm đảm bảo
yêu cầu tiết kiệm điện song vẫn phải đáp ứng yêu cầu đảm bảo phục vụ đời
sống nhân dân đang được đặt ra cấp thiết.
II. HỆ THỐNG ĐIỀU KHIỂN ĐỘ SÁNG ĐÈN ĐƯỜNG
1. Giới thiệu về hệ thống
Hệ thống chiếu sáng công cộng là một trong những hạng mục công trình hạ
tầng kỹ thuật không thể thiếu của các đô thị. Để đáp ứng được tốc độ phát triển
đô thị, trong những năm gần đây các đô thị đã không ngừng đầu tư cải tạo và
xây dựng hệ thống chiếu sáng công cộng nhằm nâng cao chất lượng ánh sáng.

Trên thế giới, hầu hết các đô thị loại vừa và lớn đều được trang bị, lắp đặt một
hoặc nhiều trung tâm điều khiển cho hệ thống chiếu sáng thành phố nhằm phát
huy hiệu quả cao trong công tác vận hành và kiểm soát lưới đèn. Ở Việt Nam,
thành phố Hà Nội là đơn vị lắp đặt trung tâm điều khiển đầu tiên trong cả nước
– từ những năm 1980, tiếp theo là thành phố Hồ Chí Minh đã xây dựng trung
tâm điều khiển chiếu sáng công cộng với quy mô điều khiển 12.000 điểm sáng.
Hình 3: Sơ đồ hệ thống điều khiển ánh sáng công cộng
Từ khi ứng dụng trung tâm điều khiển vào việc quản lý hệ thống đèn chiếu
sáng các đơn vị quản lý chiếu sáng công cộng đều thấy được các hiệu quả góp
phần nâng cao công tác quản lý:
- Điều chỉnh linh hoạt thời gian đóng cắt Hệ thống chiếu sáng tại các
khu vực từ trung tâm theo tình hình thời tiết, giảm tiêu thụ điện năng.
- Từ trung tâm cho phép đóng cắt và giám sát tới từng tủ chiếu sáng
của mỗi khu vực.
- Quan sát tức thời các thông số điện áp, dòng điện. Báo hiệu sự cố
khi có tình trạng chạm chập, quá tải và các hiện tượng câu móc điện.
- Quản lý số liệu vận hành: Tình trạng đóng cắt, mức độ tiêu thụ điện
năng.
- Tổng hợp số liệu, chiết xuất các báo cáo phục vụ công tác quản lý
- Giảm thời gian đi kiểm tra lưới đèn cho Công nhân quản lý vận
hành.
- Góp phần nâng cao năng lực và ứng dụng công nghệ mới cho các
cán bộ kỹ thuật của công ty.
2. Các đặc trưng của hệ thống trong thực tế.
Một hệ thống chiếu sáng công cộng trong thực tế thường bao gồm các
thành phần chính:
Trung tâm điều khiển: Trung tâm điều khiển làm nhiệm vụ điều khiển
các tủ điện chiếu sáng thông qua các tín hiệu từ cảm biến ánh sáng, role thời
gian hoặc từ người vận hành hệ thống. Tùy theo công nghệ mà trung tâm điều
khiển được kết nối với các tủ điều khiển và các cảm biến ánh sáng theo các cách

khác nhau.
Hình 3: Trung tâm điều khiển hệ thống
Hình 4: Điều khiển hệ thống từ trung tâm điều khiển.
Tủ điều khiển chiếu sáng: Tủ điều khiển chiếu sáng được kết nối với
trung tâm điều khiển để điều khiển một hoặc một cụm đèn chiếu sáng trên một
khu vực nhất định.
Đèn chiếu sáng: Để đảm bảo yêu cầu tiết kiệm điện năng thì công nghệ
đèn chiếu sáng đóng vai trò vô cùng quan trọng. Hiện nay hầu hết đèn chiếu
sáng đều là đèn thủy ngân cao áp. Một số nơi đã áp dụng công nghệ đèn chiếu
sáng hai cấp công suất (Bi Power).
*) Các giải pháp công nghệ điều khiển hệ thống chiếu sáng công cộng
đang được áp dụng tại Việt Nam
Việc xây dựng các trung tâm điều khiển hệ thống chiếu sáng công cộng là
việc ứng dụng các công nghệ truyền thông phù hợp. Các thông tin điều khiển
được truyền từ trung tâm đến các tủ điều khiển chiếu sáng và có thể đến từng
điểm sáng tùy theo cấp độ của từng công nghệ: điều khiển đóng cắt pha, điều
khiển chế độ tiết kiệm năng lượng tại tủ điều khiển chiếu sáng, điều khiển tiết
giảm công suất tại các điểm sáng và nhận các thông tin phản hồi từ các điểm
sáng, lưới điện chiếu sáng, các tủ điều khiển chiếu sáng về phòng điều khiển
trung tâm.
Hiện nay các công nghệ truyền thông được sử dụng cho trung tâm điều
khiển gồm có 3 loại như sau:
- Mô hình 1: Tín hiệu điều khiển từ trung tâm điều khiển đến các tủ điều
khiển khu vực được kết nối qua đường dây điện thoại dial-up (truyền thông qua
đường điện thoại công cộng). Từ các tủ điều khiển khu vực này thông tin được
truyền đến các tủ điều khiển chiếu sáng thông qua đường cáp cấp điện chiếu
sáng (công nghệ truyền thông qua đường tải điện hạ thế: Power Line
Communication (PLC)). Với công nghệ PLC: tín hiệu truyền dữ liệu được điều
chế với dòng điện 220V/50Hz để truyền đi mà không cần một đường dây truyền
dữ liệu thứ.

Sử dụng giải pháp đường truyền thông dial-up có nhiều hạn chế cho việc
quản lý vận hành, điều khiển & giám sát không được tức thời vì muốn điều
khiển hoặc giám sát đến một tủ khu vực máy tính tại phòng điều khiển trung
tâm phải quay số trực tiếp đến các tủ điều khiển khu vực (mỗi một lần quay số
chỉ lấy được kết quả từ một tủ điều khiển khu vực, muốn lấy két quả từ tủ điều
khiển khu vực khác lại hải quay số lần nữa) nên thời gian điều khiển và nhận
thông tin phản hồi chậm, giám sát không tức thời cho tất cả các khu vực chiếu
sáng.
Việc thiết kế các mạch truyền thông qua cáp điện chiếu sáng tại các tủ điều
khiển chiếu sáng trong một khu vực là rất phức tạp khi lắp đặt đường cáp ngầm.
Độ ổn định của hệ thống cũng không được cao vì đường truyền PLC giữa các tủ
điều khiển chiếu sáng là tương đối xa nên chất lượng truyền thông cũng không
được tốt, khoảng cách tối đã giữa các tủ trong mỗi khu vực là < 2km.
- Mô hình 2: Tín hiệu điều khiển từ trung tâm điều khiển đến các tủ điều
khiển khu vực được kết nối qua đường truyền ADSL. Từ các tủ điều khiển khu
vực này thông tin được truyền đến các tủ điều khiển chiếu sáng và đến các điểm
sáng thông qua đường truyền PLC (công nghệ truyền thông qua đường tải điện
hạ thế: Power Line Communication) tận dụng đường cáp cấp điện chiếu sáng để
truyền thông tin điều khiển giám sát.
Với giải pháp này việc thiết kế lắp đặt phải được lắp đặt đồng bộ cả thiết bị
điều khiển và thiết bị tiết kiệm năng lượng cho từng điểm sáng vì vậy giá thành
đầu tư rất lớn. Giải pháp này đã được áp dụng tại Trung tâm điều khiển chiếu
sáng công cộng Thành phố Hồ Chí Minh. Tuy nhiên dây là giải pháp truyền
thông có dây nên giá thành lắp đặt cao và vận hành hệ thống cũng mất nhiều
nhân công.
- Mô hình 3: Sử dụng mạng không dây GSM/GPRS để điều khiển hệ
thống chiếu sáng công cộng. Tín hiệu điều khiển từ trung tâm điều khiển đến
các tủ điều khiển chiếu sáng và ngược lại được truyền qua mạng không dây,
truyền thông từ tủ điều khiển đến các điểm sáng qua cáp điện chiếu sáng (PLC).
Ứng dụng giải pháp này sẽ giảm bớt được cấp điều khiển khu vực, chỉ còn

2 cấp điều khiển là tủ điều khiển trung tâm và tủ điều khiển chiếu sáng. Đường
truyền tín hiệu từ trung tâm điều khiển đến các tủ điều khiển chiếu sáng sử dụng
đường truyền không dây (sử dụng mạng GSM/GPRS). Từ tủ điều khiển chiếu
sáng thông tin được truyền đến các điểm sáng thông qua đường truyền PLC, sử
dụng cáp điện chiếu sáng hiện có cấp nguồn cho lưới đèn để truyền thông tin
giám sát điều khiển đến từng điểm sáng.
Mô hình này là mô hình ứng dụng hiện đại nhất hiện nay, là giải pháp đã
được quốc tế thừa nhận trong lĩnh vực điều khiển hệ thống đèn chiếu sáng công
cộng. Là đường truyền không dây nên có thể lắp đặt tại bất cứ vị trí nào, có
vùng phủ sóng không hạn chế, dễ dàng mở rộng hệ thống. Không làm ảnh
hưởng đến các cơ sở hạ tầng đã xây dựng.
Giá thành đầu tư theo mô hình này là phù hợp với các thành phố nước ta.
Các thành phố có thể đầu tư theo từng bước tuỳ theo các cấp độ vận hành theo
yêu cầu thực tế của từng địa phương:
+ Điều khiển, giám sát đến tủ điều khiển chiếu sáng: Lắp đặt thiết bị điều
khiển tại tủ, thiết bị tiết giảm công suất tại tủ.
+ Điều khiển, giám sát đến từng đèn nhằm tiết kiệm điện năng. Có thể điều
khiển và kết nối với nhiều loại balast và bộ tiết giảm công suất khác nhau của
nhiều hãng sản xuất.
3. Phương án thiết kế hệ thống
Do giới hạn của đồ án cũng như giới hạn về kiến thức môn học nên chúng
em đã lên phương án thiết kế hệ thống như sau:
Khối điều khiển trung tâm: Khối điều khiển trung tâm được xây dựng
dựa trên vi điều khiển Atmega8 có nhiệm vụ đọc tín hiệu từ cảm biến ánh sáng
để điều khiển độ sáng đèn đường. Khối điều khiển được trang bị một màn hình
LCD 16x2 nhằm hiển thị các thông tin cần thiết về hệ thống.
Cảm biến ánh sáng: Cảm biến ánh sáng được chọn là cảm biến quang trở
được kết trực tiếp với khối điều khiển trung tâm. Tín hiệu từ cảm biến quang trở
truyền về được vi điều khiển xử lý trực tiếp thông qua chức năng ADC để đưa
ra tín hiệu điều khiển đèn đường.

Đèn chiếu sáng: Đèn chiếu sáng được nhóm chọn là loại đèn 220V – 30W
phổ biến trong thực tế. Đèn chiếu sáng sẽ nhận tín hiệu từ khối xử lý trung tâm
thông qua một mạch công suất để thay đổi độ sáng theo cường độ ánh sáng bên
ngoài.
III. PHẠM VI NGHIÊN CỨU, GIỚI HẠN ĐỀ TÀI.
- Các giải pháp điều khiển hệ thống chiếu sáng thông minh.
- Phần mềm Altium để thiết kế mạch in.
- Chip điều khiển Atmega8.
- Phần mềm mô phỏng Proteus 7 professional
- Phần mềm lập trình CodeVision lập trình cho vi điều khiển.
- Xây dựng giải thuật và chương trình điều khiển mô hình
- Xây dựng mô hình và mô phỏng hoạt động.
- Kết quả đạt được và hướng phát triển đề tài
CHƯƠNG 2
THIẾT KẾ CHI TIẾT HỆ THỐNG
I. BỘ ĐIỀU KHIỂN TRUNG TÂM
Với yêu cầu về bộ xử lí trung tâm, phù hợp với phạm vi và giới hạn của đề
tài, chúng em chọn vi điều khiển Atmega8 để điều khiển toàn hệ thống.
I. ATMEGA8
1. TỔNG QUAN
Những Tính Năng Chính Của ATmega8:
• Có 8Kbyte bộ nhớ flash
• Có thể xóa lập trình được và có thể chịu được 10000 lần ghi xóa.
• Có 32 thanh ghi đa năng 8 bit,
• Có 512 byte bộ nhớ EEPROM tích hợp trên chíp,
• Ccó 1 kbyte SRAM nội.
• Có hai bộ Timer/counter 8 bit và một bộ timer/counter 16 bit với bộ
chia tần lập trình được.
• Có ba kênh điều xung, 6 kênh lối vào chuyển đổi ADC với độ phân
giải 10 bit.

• Atmega8 có 28 chân, trong đó có 23 cổng vào ra.
• Nguồn nuôi từ 2.7 đến 5.5 đối với Atmega8L và từ 4.5 đến 5.5 đối
với Atmega8.
• Làm việc tiêu thụ dòng 3.6mA.
• Sử dụng mạch dao động ngoài từ 0 đến 8 Mhz với Atmega8L và từ 0
đến 16 Mhz với Atmega8.
Vi điều khiển AVR do hãng Atmel ( Hoa Kì ) sản xuất được gới thiệu lần
đầu năm 1996. AVR có rất nhiều dòng khác nhau bao gồm dòng Tiny AVR
( như AT tiny 13, AT tiny 22…) có kích thước bộ nhớ nhỏ, ít bộ phận ngoại vi,
rồi đến dòng AVR ( chẳn hạn AT90S8535, AT90S8515,…) có kích thước bộ nhớ
vào loại trung bình và mạnh hơn là dòng Mega ( như ATmega32, ATmega128,
…) với bộ nhớ có kích thước vài Kbyte đến vài trăm Kb cùng với các bộ ngoại
vi đa dạng được tích hợp trên chip, cũng có dòng tích hợp cả bộ LCD trên chip (
dòng LCD AVR ). Tốc độ của dòng Mega cũng cao hơn so với các dòng khác.
Sự khác nhau cơ bản giữa các dòng chính là cấu trúc ngoại vi, còn nhân thì vẫn
như nhau.
a. Các dòng AVR khác nhau: Tiny, AVR và Mega
- Bộ Nhớ Dữ Liệu : Bộ nhớ dữ liệu của AVR chia làm 2 phần chính là bộ
nhớ SRAM và bộ nhớ EEPROM. Tuy cùng là bộ nhớ dữ liệu nhưng hai
bộ nhớ này lại tách biệt nhau và được đánh địa chỉ riêng.
- Bộ nhớ SRAM có dụng lượng 1 K bytes, Bộ nhớ SRAM có hai chế độ
hoạt động là chế độ thông thường và chế độ tương thích với ATmega103,
muốn thiết lập bộ nhớ SRAM hoạt động theo chế độ nào ta sử dụng bit
cầu chì M103C ( M103C fuse bit (9) ).
Atmega8 là vi điều khiển 8 bit dựa trên kiến trúc RISC. Với khả năng thực
hiện mỗi lệnh trong vòng một chu kỳ xung clock, Atmega8 có thể đạt được tốc
độ 1MIPS trên mỗi MHz (1 triệu lệnh/s/MHz).
Dưới đây là sơ đồ khối của Atmega8.
Sơ đồ cấu trúc Atmega8
2. CẤU TRÚC CHUNG AVR

CPU của AVR có chức năng bảo đảm sự hoạt động chính xác của các
chương trình. Do đó nó phải có khả năng truy cập bộ nhớ, thực hiện các quá
trình tính toán, điều khiển các thiết bị ngoại vi và quản lý ngắt.
2.1.Cấu trúc tổng quát
AVR sử dụng cấu trúc Harvard, tách riêng bộ nhớ và các bus cho chương
trình và dữ liệu. Các lệnh được thực hiện chỉ trong một chu kỳ xung clock. Bộ
nhớ chương trình được lưu trong bộ nhớ Flash.
2.2. ALU
ALU làm việc trực tiếp với các thanh ghi chức năng chung. Các phép toán
được thực hiện trong một chu kỳ xung clock. Hoạt động của ALU được chia
làm 3 loại: đại số, logic và theo bit.
2.3. Thanh ghi trạng thái
Đây là thanh ghi trạng thái có 8 bit lưu trữ trạng thái của ALU sau các
phép tính số học và logic.
Thanh ghi trạng thái SREG
C: Carry Flag ;cờ nhớ (Nếu phép toán có nhớ cờ sẽ được thiết lập)
Z: Zero Flag ;Cờ zero (Nếu kết quả phép toán bằng 0)
N: Negative Flag (Nếu kết quả của phép toán là âm)
V: Two’s complement overflow indicator (Cờ này được thiết lập khi tràn số
bù 2)
H: Half Carry Flag (Được sử dụng trong một số toán hạng sẽ được chỉ rõ
sau)
T: Transfer bit used by BLD and BST instructions(Được sử dụng làm nơi
chung gian trong các lệnh BLD,BST).
I: Global Interrupt Enable/Disable Flag (Đây là bit cho phép toàn cục ngắt.
Nếu bit này ở trạng thái logic 0 thì không có một ngắt nào được phục vụ.)
2.4. Các thanh ghi chức năng chung
Thanh ghi chức năng chung
Tệp thanh ghi ( register file ) : Tệp 32 thanh ghi đa chức năng ( $0000 -
$001F )

Như đã được nói ở trên, ngoài chức năng là các thanh ghi đa chức năng, thì
các thanh ghi từ R26 tới R31 từng đôi một tạo thành các thanh ghi 16 bit X, Y, Z
được dùng làm con trỏ trỏ tới bộ nhớ chương trình và bộ nhớ dữ liệu .Thanh ghi
con trò X, Y có thể dùng làm con trỏ trỏ tới bộ nhớ dữ liệu, còn thanh ghi Z có
thể dùng làm con trỏ trỏ tới bộ nhớ chương trình. Các trình biên dịch C thường
dùng các thanh ghi con trỏ này để quản lí Data stack của chương trình C.
Chức năng con trỏ của các thanh ghi R26 –R31
2.5. Con trỏ ngăn xếp (SP)
Là một thanh ghi 16 bit nhưng cũng có thể được xem như hai thanh ghi
chức năng đặc biệt 8 bit. Có địa chỉ trong các thanh ghi chức năng đặc biệt là
$3E (Trong bộ nhớ RAM là $5E). Có nhiệm vụ trỏ tới vùng nhớ trong RAM
chứa ngăn xếp.
Thanh ghi con trỏ ngăn xếp
Khi chương trình phục vu ngắt hoặc chương trình con thì con trỏ PC được
lưu vào ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí. Và con trỏ ngăn xếp
sẽ giảm 1 khi thực hiện lệnh push. Ngược lại khi thực hiện lệnh POP thì con trỏ
ngăn xếp sẽ tăng 1 và khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ
tăng 2. Như vậy con trỏ ngăn xếp cần được chương trình đặt trước giá trị khởi
tạo ngăn xếp trước khi một chương trình con được gọi hoặc các ngắt được cho
phép phục vụ. Và giá trị ngăn xếp ít nhất cũng phải lơn hơn hoặc bằng 60H
(0x60) vì 5FH trỏ lại là vùng các thanh ghi.
3. CẤU TRÚC NGẮT CỦA Atmega8
3.1. KHÁI NIỆM VỀ NGẮT
Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết về tình
trạng sẵn xàng cho đổi dữ liệu của mình.Ví dụ:Khi bộ truyền nhận UART nhận
được một byte nó sẽ báo cho CPU biết thông qua cờ RXC,hợc khi nó đã truyền
được một byte thì cờ TX được thiết lập…
Khi có tín hiệu báo ngắt CPU sẽ tạm dừng công việc đạng thực hiện lại và
lưu vị trí đang thực hiên chương trình (con trỏ PC) vào ngăn xếp sau đó trỏ tới
vector phuc vụ ngắt và thức hiện chương trình phục vụ ngắt đó chơ tới khi gặp

lệnh RETI (return from interrup) thì CPU lại lấy PC từ ngăn xếp ra và tiếp tục
thực hiện chương trình mà trước khi có ngăt nó đang thực hiện. Trong trường
hợp mà có nhiều ngắt yêu cầu cùng một lúc thì CPU sẽ lưu các cờ báo ngắt đó
lại và thực hiện lần lượt các ngắt theo mức ưu tiên .Trong khi đang thực hiện
ngắt mà xuất hiện ngắt mới thì sẽ xảy ra hai trường hợp. Trường hớp ngắt này
có mức ưu tiên cao hơn thì nó sẽ được phục vụ. Còn nó mà có mức ưu tiên thấp
hơn thì nó sẽ bị bỏ qua.
Bộ nhớ ngăn xếp là vùng bất kì trong SRAM từ địa chỉ 0x60 trở lên. Để
truy nhập vào SRAM thông thường thì ta dùng con trỏ X,Y,Z và để truy nhập
vào SRAM theo kiểu ngăn xếp thì ta dùng con trỏ SP. Con trỏ này là một
thanh ghi 16 bit và được truy nhập như hai thanh ghi 8 bit chung có địa
chỉ :SPL :0x3D/0x5D(IO/SRAM) và SPH:0x3E/0x5E.
Khi chương trình phục vu ngắt hoặc chương trình con thì con trỏ PC được
lưu vào ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí.Và con trỏ ngăn xếp
sẽ giảm 1 khi thực hiện lệnh push. Ngược lại khi thực hiện lệnh POP thì con trỏ
ngăn xếp sẽ tăng 1 và khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ
tăng 2. Như vậy con trỏ ngăn xếp cần được chương trình đặt trước giá trị khởi
tạo ngăn xếp trước khi một chương trình con được gọi hoặc các ngắt được cho
phép phục vụ. Và giá trị ngăn xếp ít nhất cũng phải lớn hơn 60H (0x60) vì 5FH
trỏ lại là vùng các thanh ghi.
3.2. TRÌNH PHỤC VỤ NGẮT VÀ BẢNG VECTOR NGẮT
Đối với mỗi ngắt thì phải có một trình phục vụ ngắt ISR (Interrupt Service
Routine) hay trình quản lý ngắt (Interrupt handler). Khi một ngắt đựợc gọi thì
bộ vi điều khiển phục vụ ngắt. Khi một ngắt đựợc gọi thì bộ vi điều khiển chạy
trình phục vụ ngắt. Đối với mỗi ngắt thì có một vị trí cố định trong bộ nhớ để
giữ địa chỉ ISR của nó. Nhóm các vị trí nhớ được dành riêng để gửi các địa chỉ
của các ISR được gọi là bảng véc tơ ngắt.
Khi kích hoạt một ngắt bộ vi điều khiển đi qua các bước sau:
● Vi điều khiển kết thúc lệnh đang thực hiện và lưu địa chỉ của lệnh kế tiếp
(PC) vào ngăn xếp.

● Nó nhảy đến một vị trí cố định trong bộ nhớ được gọi là bảng véc tơ ngắt
nơi lưu giữ địa chỉ của một trình phục vụ ngắt.
● Bộ vi điều khiển nhận địa chỉ ISR từ bảng véc tơ ngắt và nhảy tới đó. Nó
bắt đầu thực hiện trình phục vụ ngắt cho đến lệnh cuối cùng của ISR là RETI
(trở về từ ngắt).
● Khi thực hiện lệnh RETI bộ vi điều khiển quay trở về nơi nó đã bị ngắt.
Trước hết nó nhận địa chỉ của bộ đếm chương trình PC từ ngăn xếp bằng cách
kéo hai byte trên đỉnh của ngăn xếp vào PC. Sau đó bắt đầu thực hiện các lệnh
từ địa chỉ đó.
3.3. BẢNG VECTOR NGẮT
3.4. THỨ TỰ ƯU TIÊN NGẮT
Không như vi điều khiển họ 8051, ở đó thứ tự ưu tiên của các ngắt có thể
thay đổi được ( bằng cách lập trình ). Với vi điều khiển AVR thứ tự ưu tiên các
ngắt là không thể thay đổi và theo qui tắc: “ Một vec tơ ngắt có địa chỉ thấp
hơn trong bộ nhớ chương trình có mức độ ưu tiên cao hơn ”. Chẳn hạn ngắt
ngoài 0 ( INT0 ) có mức độ ưu tiên cao hơn ngắt ngoài 1 ( INT1 ).
Để cho phép một ngắt người dùng cần cho phép ngắt toàn cục ( set bit I
trong thanh ghi SREG ) và các bit điều khiển ngắt tương ứng. Khi một ngắt xảy
ra và đang được phục vụ thì bit I trong thanh ghi SREG bị xóa, như thế khi có
một ngắt khác xảy ra nó sẽ không được phục vụ, do đó để cho phép các ngắt
trong khi một ISR ( interrupt service routine ) khác đang thực thi, thì trong
chương trình ISR phải có lệnh SEI để set lại bit I trong SREG.
3.5. NGẮT TRONG NGẮT.
Khi AVR đang thực hiện một trình phục vụ ngắt thuộc một ngắt nào đó thì
lại có một ngắt khác được kích hoạt. Trong những trường hợp như vậy thì một
ngắt có mức ưu tiên cao hơn có thể ngắt một ngắt có mức ưu tiên thấp hơn. Lúc
này ISR của ngắt có mức ưu tiên cao hơn sẽ được thực thi(*)
Khi thực hiện xong ISR của ngắt có mức ưu tiên cao hơn thì nó mới quay
lại phục vụ tiếp ISR của ngắt có mức ưu tiên thấp hơn trước khi trở về chương
trình chính. Đây gọi là ngắt trong ngắt.

Chú ý:
- Giả định là khi một ISR nào đó đang thực thi thì xảy ra một yêu cầu ngắt
từ một ISR khác có mức ưu tiên thấp hơn thì ISR có mức ưu tiên thấp hơn
không được phục vụ, nhưng nó sẽ không bị bỏ qua luôn mà ở trạng thái chờ.
Nghĩa là ngay sau khi ISR có mức ưu tiên cao hơn thực thi xong thì đến lượt
ISR có mức ưu tiên thấp hơn sẽ được phục vụ.
- (*) : Điều này chỉ xảy ra khi trong code của ISR của ngắt có mức ưu tiên
thấp
hơn có lệnh set bit I trong thanh ghi SREG (đó là lệnh SEI ).
Các ngắt ngoài
Các ngắt ngoài được kích hoạt bởi 2 chân INT0, và INT1. Chú ý rằng nếu
đã kích hoạt, các ngắt sẽ kích bằng (trigger even)nếu các chân INT0,INT1 được
cấu hình là các ngõ ra. Cái đặc điểm này cung cấp 1 con đường chung cho ngắt
mềm.Các ngắt ngoài có thể được kích bởi cạnh xuống hoặc lên hoặc mức thấp.
Sự cài đặt này được chỉ định đặc biệt trong thanh ghi điều khiển MCU –
MCUCR.
MCU Control Register– MCUCR
Thanh ghi MCU chứa các bit điều khiển ngắt có ý thức kiểm soát và chức
năng MCU chung .
Bit 3, 2 – ISC11, ISC10: Interrupt Sense Control 1 Bit 1 and Bit 0
External Interrupt 1 được kích hoạt bởi chân ngoài INT1 nếu SREG I-bit
và mặt nạ ngắt tương ứng trong GICR là set(1). Các mức độ và cạnh trong chân
INT1 ngoài kích hoạt ngắt được định nghĩa trong bảng sau:
Bit 1, 0 – ISC01, ISC00: Interrupt Sense Control 0 Bit 1 and Bit 0
External Interrupt 0 được kích hoạt bởi chân ngoài INT0 nếu SREG I-bit
và mặt nạ ngắt tương ứng trong GICR là set(1). Các mức độ và cạnh trong chân
INT0 ngoài kích hoạt ngắt được định nghĩa trong bảng sau:
General Interrupt Control Register –GICR
Bit 7 – INT1: External Interrupt Request 1 Enable
Khi bit INT1 set lên 1 và I-bit trong thanh ghi trạng thái SRGE là 1,ngắt

chân ngoài được kích hoạt. Ngắt tương ứng của External Interrupt Request 1
được thực thi từ INT0 Interrupt Vector.
Bit 6 – INT0: External Interrupt Request 0 Enable
Khi bit INT0 set lên 1 và I-bit trong thanh ghi trạng thái SRGE là 1,ngắt
chân ngoài được kích hoạt. Ngắt tương ứng của External Interrupt Request 0
được thực thi từ INT0 Interrupt Vector.
General Interrupt Flag Register – GIFR
Bit 7 – INTF1: External Interrupt Flag 1
Khi 1 sự kiện tại chân INT1 kích hoạt 1 yêu cầu ngắt INTF1 sẽ lên 1. Nếu
I-bit trong SREG và bit INT1 trong GICR là 1,MCU sẽ nhảy đến vector ngắt
tương ứng. Cờ sẽ xóa khi thực hiện ngắt thường xuyên. Đôi khi, cờ có thể được
xóa nếu ta ghi trực tiếp 1 giá trị vào nó
• Bit 6 – INTF0: External Interrupt Flag 0
Khi 1 sự kiện tại chân INT0 kích hoạt 1 yêu cầu ngắt INTF0 sẽ lên 1. Nếu
I-bit trong SREG và bit INT1 trongGICR là 1,MCU sẽ nhảy đến vector ngắt
tương ứng. Cờ sẽ xóa khi thực hiện ngắt thường xuyên. Đôi khi, cờ có thể được
xóa nếu ta ghi trực tiếp 1 giá trị vào nó.
4. CẤU TRÚC BỘ NHỚ
AVR có 2 không gian bộ nhớ chính là bộ nhớ dữ liệu vào bộ nhớ chương
trình. Ngoài ra Atmega8 còn có thêm bộ nhớ EEPROM để lưu trữ dữ liệu.
4.1 Bộ nhớ chương trình (Bộ nhớ Flash)
Bộ nhớ Flash 16KB của Atmega8 dùng để lưu trữ chương trình. Do các
lệnh của AVR có độ dài 16 hoặc 32 bit nên bộ nhớ Flash được sắp xếp theo kiểu
8KX16. Bộ nhớ Flash được chia làm 2 phần, phần dành cho chương trình boot
và phần dành cho chương trình ứng dụng.
Bản đồ bộ nhớ chương trình
4.2 Bộ nhớ dữ liệu SRAM
1120 ô nhớ của bộ nhớ dữ liệu định địa chỉ cho file thanh ghi, bộ nhớ I/O
và bộ nhớ dữ liệu SRAM nội. Trong đó 96 ô nhớ đầu tiên định địa chỉ cho file
thanh ghi và bộ nhớ I/O, và 1024 ô nhớ tiếp theo định địa chỉ cho bộ nhớ

SRAM nội.
Bản đồ bộ nhớ dữ liệu SRAM
Các chế độ truy nhập địa chỉ của AVR
4.2.1 Địa chỉ thanh ghi đơn trực tiếp
Ở chế dộ này địa chỉ của thanh ghi được lấy trực tiếp từ vùng các thanh ghi
(từ 0 tới 31)
.
4.2.2 Địa chỉ hai thanh ghi trực tiếp
Đây là chế độ mà trong một lênh ALU truy nhập trực tiếp vào hai thanh
ghi. Chế độ này hoàn toàn tương tự như chế độ trên.
4.2.3 Địa chỉ trực tiếp cổng vào ra
Trong đó địa chỉ của toán hạng được chứa trong 6 bit của một từ lệnh .n là
địa chỉ của thanh ghi nguồn hoặc đích.
4.2.4 Trực tiếp dữ liệu
Địa chỉ của dữ liệu trong RAM được đưa trực tiếp vào lệnh.
4.2.5 Địa chỉ dữ liệu gián tiếp cùng với dịch chuyển
Địa chỉ của toán hạng nguồn hoặc đích được trỏ bởi thanh ghi Y hoặc Z
cộng thêm một chỉ số nào đó
4.2.6 Địa chỉ gián tiếp dữ liệu:
Đây là cách mà CPU truy nhập tới dữ liệu trong RAM thông qua thanh ghi
X,Y,Z địa chỉ của dữ liệu được lưu trong thanh ghi này.
4.2.7 Địa chỉ dữ liệu gián tiếp cùng với tăng hoặc giảm con trỏ

×