BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
ĐỀ TÀI NCKH CẤP BỘ
NGHIÊN CỨU, CHẾ TẠO MẠCH ĐÁNH LỬA
TRÊN ĐỘNG CƠ ÔTÔ THEO CHƯƠNG TRÌNH
S
K
C
0
0
3
9
5
9
MÃ SÔ: B2004 - 19 - 36
S KC 0 0 2 0 8 5
Tp. Hồ Chí Minh, 2007
Không đứng ngoài sự phát triển chung ấy, ngành công nghiệp ôtô đã có những tiến bộ
vượt bậc về công nghệ, đặc biệt đã ứng dụng được những công nghệ mới nhất của các ngành
công nghệ hỗ trợ lên các chiếc xe nhằm đem lại sự tiện nghi sang trọng, kinh tế… và hơn hết
là vấn đề bảo vệ môi trường. Những đòi hỏi ngày càng cao của người sử dụng làm cho bài
toán kỹ thuật càng trở nên khó khăn hơn, là sự thách thức lớn đối với những nhà kỹ thuật.
Nhờ kỹ thuật điện điện tử và công nghệ thông tin đã giúp cho các nhà kỹ thuật giải quyết bài
toán khó một cách đơn giản hơn, chính xác hơn. Do đó, các ôtô sản xuất ngày nay được trang
bị hệ thống điện-điện tử khá phức tạp như hệ thống phun xăng, hệ thống phanh chống hãm
cứng, hệ thống đánh lửa điện tử, hệ thống kiểm soát khí thải…
Mặc dù, nền công nghiệp ô tô trên thế giới có tuổi đời rất lâu, nhưng ở Việt Nam nền
công nghiệp này còn khá non trẻ so với các nước khác. Trong những năm gần đây, nền công
nghiệp ô tô đã có những bước phát triển rất nhanh đòi hỏi một lượng lớn đội ngũ cán bộ khoa
học kỹ thuật, công nhân lành nghề. Từ sự mới mẻ trong các ứng dụng của vi điều khiển trên
lĩnh vực ôtô, cùng với mơ ước một ngày nào đó Việt Nam sẽ tự mình sản xuất được ôtô đã
thôi thúc nhóm tác giả thực hiện đề tài “Nghiên cứu chế tạo mạch đánh lửa trên động cơ ôtô
theo chương trình”.
1.2 Mục tiêu và ý nghĩa của vấn đề nghiên cứu hệ thống đánh lửa điều khiển theo
chương trình.
Chất lượng cuả quá trình đánh lửa ảnh hưởng rất lớn đến chất lượng của quá trình
cháy.Trong quá trình làm việc của động cơ góc đánh lửa sớm ảnh hưởng rất lớn đến công
suất, tính kinh tế và chất lượng của khí thải. Góc đánh lửa sớm tối ưu phụ thuộc rất nhiều
thông số:số vòng quay động cơ, phụ tải, nhiệt độ nước làm mát, nhiệt độ khí trời… và các
thông số này thay đổi một cách liên tục. Đối với các hệ thống đánh lửa đời cũ góc đánh lửa
sớm của động cơ chỉ thay đổi phụ thuộc vào hai yếu tố: số vòng quay và tải của động cơ và
được điều chỉnh bằng hai thiết bị: bộ đánh lửa sớm ly tâm và bộ đánh sớm theo áp thấp của
động cơ. Như vậy, góc đánh lửa sớm trên động cơ chưa được tối ưu.
Ở hệ thống đánh lửa theo chương trình, góc đánh lửa sớm của động cơ thay đổi phụ
thuộc vào hàng loạt các yếu tố đã nêu, điều này làm tăng chất lượng cuả quá trình cháy và sẽ
làm cải thiện các chỉ số của động cơ như công suất, tính kinh tế và độ ô nhiễm môi trường.
Ở nước ta hiện nay, việc sử dụng các động cơ đời cũ vẫn còn rất phổ biến.Việc thay
- Thứ tự công tác:
1–3–4–2
- Áp suất nén:
10.0
Ngôn ngữ lập trình:Bascom. avr
1.5
Nội dung nghiên cứu
- Nghiên cứu cơ sở lý thuyết hệ thống đánh lửa.
- Xây dựng sơ đồ khối của hệ thống.
- Thực nghiệm lấy số liệu góc đánh lửa tối ưu của hệ thống (Động cơ Acura Intergra).
- Tính toán và thiết kế mạch.
- Lập trình cho mạch đièu khiển đánh lửa bằng ngôn ngữ Bascom.avr cho Atmega.8.
- Thí nghiệm sản phẩm trên trên động cơ – hiệu chỉnh các thông số.
- So sánh, đánh giá kết quả – Kết luận.
2
CHƯƠNG II
CƠ SỞ LÝ THUYẾT ĐIỀU KHIỂN
HỆ THỐNG ĐÁNH LỬA THEO CHƯƠNG TRÌNH
2.1 Lý thuyết hệ thống đánh lửa
Trong động cơ xăng 4 kỳ, hòa khí sau khi được đưa vào trong xylanh và được trộn đều
nhờ sự xoáy lốc của dòng khí sẽ được piston nén lại. Ở một thời điểm thích hợp cuối kỳ nén,
hệ thống đánh lửa sẽ cung cấp một tia lửa điện cao thế đốt cháy hòa khí và sinh công cho
động cơ. Để tạo được tia lửa điện giữa hai điện cực của bougie, quá trình đánh lửa được chia
làm ba giai đoạn: quá trình tăng trưởng của dòng sơ cấp hay còn gọi là quá trình tích lũy năng
lượng, quá trình ngắt dòng sơ cấp và quá trình xuất hiện tia lửa điện ở điện cực bougie.
Quá trình tăng trưởng dòng sơ cấp
U
SW
Hình 2.2: Sơ đồ tương đương của mạch sơ cấp của hệ thống đánh lửa
Khi transistor công suất T dẫn, trong mạch sơ cấp sẽ có dòng điện i1 từ (+) accu đến Rf
→ L1 → T → mass. Dòng điện i1 tăng từ từ do sức điện động tự cảm sinh ra trên cuộn sơ cấp
L1 chống lại sự tăng của cường độ dòng điện. Ở giai đoạn này, mạch thứ cấp của hệ thống
đánh lửa gần như không ảnh hưởng đến quá trình tăng dòng ở mạch sơ cấp. Hiệu điện thế và
cường độ dòng điện xuất hiện ở mạch thứ cấp không đáng kể nên ta có thể coi như mạch thứ
3
cấp hở. Vì vậy, ở giai đoạn này ta có sơ đồ tương đương được trình bày trên hình 2-2. Trên sơ
đồ, giá trị điện trở trong của accu được bỏ qua, trong đó:
R∑ = R1 + Rf
U = Ua - Δ UT
Ua: Hiệu điện thế của accu.
Δ UT: Độ sụt áp trên transistor công suất ở trạng thái dẫn bão hòa hoặc độ sụt áp
trên vít lửa.
Từ sơ đồ( Hình 2-2), ta có thể thiết lập được phương trình vi phân sau:
di
i1 R∑ + L1 1 = U
dt
(2-1)
Giải phương trình vi phân (2-1) ta được:
i1 (t ) =
U
(1 − e −( R ∑ / L1 ) t )
=0
2
U
R
1
α
t
Hình 2.3: Quá trình tăng trưởng dòng sơ cấp i1.
Với bobine xe đời cũ với độ tự cảm lớn (đường 1), tốc độ tăng chậm hơn bobine xe đời
mới với độ tự cảm nhỏ (đường 2). Chính vì vậy, lửa sẽ yếu khi tốc độ càng cao. Trên các xe
đời mới, hiện tượng này được khắc phục nhờ sử dụng bobine có L1 nhỏ.
Đồ thị cho thấy độ tự cảm L1 của cuộc sơ cấp càng lớn thì tốc độ tăng trưởng dòng sơ
cấp i1 càng giảm.
Gọi tđ là thời gian transistor công suất dẫn thì cường độ dòng điện sơ cấp Ing tại thời
điểm đánh lửa khi transistor công suất ngắt là:
I ng =
U
(1 − e −tñ / τ1 )
R∑
(2-3)
Trong đó:
Từ biểu thức (2-4), ta thấy Ing phụ thuộc vào tổng trở của mạch sơ cấp (R∑), độ tự cảm của
cuộn sơ cấp (L1), số vòng quay trục khuỷu động cơ (n), và số xylanh (Z). Nếu R∑, L1, Z không
đổi thì khi tăng số vòng quay trục khuỷu động cơ (n), cường độ dòng điện Ing sẽ giảm.
Tại thời điểm đánh lửa, năng lượng đã được tích lũy trong cuộn dây sơ cấp dưới dạng từ
trường:
I ng2 .L L1 U 2
Wñt =
=
× 2 (1 − e tñ / τ 1 ) 2
2
2 R∑
L1 .U 2 L1 U 2
Wñt =
= × 2 (1 − 2e −a + e −2 a )
2
2 R∑
2 R∑
(2-5)
Trong đó:
Wđt: Năng lượng tích lũy trong cuộn sơ cấp.
R
t
a = ñ = ∑ tñ
τ 1 L1
Hàm Wđt = f(a) đạt được giá trị cực đại, tức nhận được năng lượng từ hệ thống cấp điện
nhiều nhất khi:
a=
U2
R1 t ñ + 2τ 1 (1 − e −2t / τ1 ) + (τ 1 / 2)(1 − e −2τ / t1 )
2
R∑
Wn =
U2
R1 (t + 2τ 1e −t / τ1 − (τ 1 / 2)e − 2t / τ1
R∑2
td
u
]
td
0
(2-7)
5
Công suất tỏa nhiệt Pn trên cuộn dây sơ cấp của bobine:
t
1 ñ
Pn = ∫ i12 R1dt
T 0
Kbb: Hệ số biến áp của bobine.
Sức điện động này bằng 0 khi dòng điện sơ cấp đạt giá trị U/R∑.
Quá trình ngắt dòng sơ cấp
Khi transistor công suất ngắt, dòng điện sơ cấp và từ thông do nó sinh ra giảm đột ngột.
Trên cuộn thứ cấp của bobine sẽ sinh ra một hiệu điện thế vào khoảng từ 15 KV ÷ 40 KV. Giá
trị của hiệu điện thế thứ cấp phụ thuộc vào rất nhiều thông số của mạch sơ cấp và thứ cấp. Để
tính toán hiệu điện thế thứ cấp cực đại, ta sử dụng sơ đồ tương đương được trình bày trên
(hình 2.4)
Trong sơ đồ này:
Rm: Điện trở mất mát.
Rr: Điện trở rò qua điện cực bougie.
R2
R∑
S
I1
C1
L1
L2
Rr
L2
Rm
ngắt.
A: Năng lượng mất mát do dòng rò, dòng fucô trong lõi thép của bobine
U2m = Kbb . U1m
Kbb = W2/W1: Hệ số biến áp của bobine.
W1, W2: Số vòng dây của cuộn sơ cấp và thứ cấp.
⇒ I ng2 .L1 = C1 +
.U 22m
+ C 2 .U 22m
2
K bb
⎛ C
⎞
U 22m × ⎜⎜ 12 + C 2 ⎟⎟ = I ng2 .L1
⎝ K bb
⎠
U 2 m = K bb I ng
U 2 m = K bb
U 2 m = K bb
L1
.η
C1 + K bb2 .C 2
2
L1 .I ng
C1 + K bb2 .C 2
Hình 2.5: Qui luật biến đổi của dòng điện sơ cấp i1 và
hiệu điện thế thứ cấp u2m
Qui luật biến đổi dòng điện sơ cấp i1 và hiệu điện thế thứ cấp u2m được biểu diễn trên hình
2-5.
Khi transistor công suất ngắt, cuộn sơ cấp sẽ sinh ra một sức điện động khoảng 100 –
300V.
Quá trình phóng điện ở điện cực bougie
Khi điện áp thứ cấp u2 đạt đến giá trị Uđl, tia lửa điện cao thế sẽ xuất hiện giữa hai điện
cực của bougie. Bằng thí nghiệm người ta chứng minh được rằng tia lửa xuất hiện ở điện cực
bougie gồm hai thành phần là thành phần điện dung và thành phần điện cảm.
Thành phần điện dung của tia lửa do năng lượng tích lũy trên mạch thứ cấp được qui ước
bởi điện dung ký sinh C2. Tia lửa điện dung được đặc trưng bởi sự sụt áp và tăng dòng đột
ngột. Dòng có thể đạt vài chục Amper .
8
U2m (KV)
20
U2 m
Uñl
12
1
Iñc
W p = ∫ U ñl i2 (t ) dt
0
tp: Thời gian xuất hiện tia lửa điện trên điện cực bougie.
Trên thực tế, ta có thể sử dụng công thức gần đúng:
Wp ≈ 0,5 . IPtb. UPtb. tPtb
Trong đó: IPtb, UPtb và tPtb lần lượt là cường độ dòng điện trung bình, hiệu điện thế trung
bình và thời gian xuất hiện tia lửa trung bình giữa hai điện cực của bougie.
9
Kết quả tính toán và thực nghiệm cho thấy rằng, ở tốc độ thấp của động cơ, Wp có giá trị
khoảng 20 ÷ 50 mJ.
2.2 Điều khiển đánh lửa theo chương trình
2.2.1 Cơ bản về đánh lửa điều khiển theo chương trình
Trên các ô tô hiện đại, kỹ thuật số đã được áp dụng vào trong HTĐL từ nhiều năm nay.
Việc điều khiển góc đánh lửa sớm và góc ngậm điện (dwell angle) sẽ được máy tính đảm
nhận. Các thông số như tốc độ động cơ, tải, nhiệt độ được các cảm biến mã hóa tín hiệu đưa
vào ECU (Electronic Control Unit) xử lý và tính toán để đưa ra góc đánh lửa sớm tối ưu theo
từng chế độ hoạt động của động cơ. Các bộ phận như bộ đánh lửa sớm kiểu cơ khí (áp thấp,
ly tâm) đã được loại bỏ hoàn toàn. HTĐL với cơ cấu điều khiển góc đánh lửa sớm bằng điện
tử (ESA-Electronic Spark Advance) được chia làm 2 loại sau:
• Hệ thống đánh lửa sử dụng bộ vi xử lý (Microprocessor ignition system).
• Hệ thống đánh lửa sử dụng bộ vi xử lý kết hợp với hệ thống phun xăng (Motronic).
Nếu phân loại theo cấu tạo ta có:
• Hệ thống đánh lửa theo chương trình có delco
• Hệ thống đánh lửa theo chương trình không có delco (đánh lửa trực tiếp).
So với các hệ thống đánh lửa trước đó, HTĐL với cơ cấu điều khiển góc đánh lửa sớm bằng
điện tử có những ưu điểm sau:
Tín hiệu nhiệt độ nước làm mát.
Tín hiệu điện áp accu.
Tín hiệu kích nổ.
10
Đến Bộ
chia điện
Igniter
2
Bobine
3
ECU
IG/SW
4
5
Accu
6
7
Hình 2.7: Sơ đồ khối HTĐL với cơ cấu điều khiển
góc đánh lửa sớm bằng điện tử
Ngoài ra còn có thể có các tín hiệu vào từ cảm biến nhiệt độ khí nạp, cảm biến tốc độ xe,
OX1A
Oxygen
sensor
No.1
Water
temperature sensor
Crankshaft position sensor
Knock sensor
Distributor
Hình 2.8: Cấu tạo của HTĐL với cơ cấu điều khiển góc đánh lửa
sớm bằng điện tử
Trong các loại tín hiệu ngõ vào, tín hiệu tốc độ động cơ, vị trí piston (cốt máy) và tín hiệu
tải là các tín hiệu quan trọng nhất. Để xác định tốc độ động cơ, người ta có thể đặt cảm biến
11
trên một vành răng ở đầu cốt máy, bánh đà, đầu cốt cam hoặc delco. Có thể sử dụng cảm biến
Hall, cảm biến điện từ, cảm biến quang. Số răng trên các vành răng khác nhau tuỳ thuộc loại
cảm biến và tuỳ thuộc loại động cơ. Trong một số trường hợp, chỉ sử dụng một vòng răng để
dùng chung cho việc xác định tốc độ động cơ và vị trí cốt máy.
Để xác định tải của động cơ, ECU dựa vào tín hiệu áp suất trên đường ống nạp hoặc tín
hiệu lượng khí nạp. Do sự thay đổi về áp suất trên đường ống nạp khi thay đổi tải, tín hiệu
điện áp gởi về ECU sẽ thay đổi và ECU nhận tín hiệu này để xử lý và quy ra mức tải tương
Hình 2.10: Bản đồ góc đánh lửa sớm lý tưởng
12
Hình 2.11: Bản đồ góc ngậm điện
Một chức năng khác của ECU trong việc điều kiển đánh lửa là sự điều chỉnh góc ngậm
điện (dwell angle control). Góc ngậm điện phụ thuộc vào hai thông số là hiệu điện thế accu và
tốc độ động cơ. Khi khởi động chẳng hạn, hiệu điện thế accu bị giảm do sụt áp, vì vậy, ECU
sẽ điều khiển tăng thời gian ngậm điện nhằm mục đích tăng dòng điện trong cuộn sơ cấp. Ở
tốc độ thấp, do thời gian tích luỹ năng lượng quá dài (góc ngậm điện lớn) gây lãng phí năng
lượng nên ECU sẽ điều khiển xén bớt xung điện áp điều khiển để giảm thời gian ngậm điện
nhằm mục đính tiết kiệm năng lượng và tránh nóng bobine. Trong trường hợp dòng sơ cấp
vẫn tăng cao hơn giá trị ấn định, bộ phận hạn chế dòng sẽ làm việc và giữ cho dòng điện sơ
cấp không thay đổi cho đến thời điểm đánh lửa.
Một điểm cần lưu ý là việc điều chỉnh góc ngậm điện có thể được thực hiện trong ECU
hay ở igniter. Vì vậy, igniter của hai loại có và không có bộ phận điều chỉnh góc ngậm điện
không thể lắp lẫn.
13
CHƯƠNG 3
TỔNG QUAN VỀ VI ĐIỀU KHIỂN ATMEGA8
Atmega8 là bộ vi xử RISC với kiến trúc Harvard thuộc họ AVR được sản xuất bởi Cty
ATMEL với tính năng mạnh mẽ. Có 130 lệnh mạnh xử lý hầu hết trong một chu kỳ xung
nhịp. 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, 512 byte bộ nhớ EEPROM tích hợp trên chíp, có 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
hiển thị. Ngoài ra khi được lập trình thì các chân này còn là các lối vào đặc biệt. PC6 là chân
reset, khi chân này được nối xuống mass thì hệ thống được reset. PC0 … PC5 là các lối vào
của 5 kênh ADC bên trong chip.
• PortD (PD6 … PD0)
Cổng D là cổng vào ra 8 bit lập trình được, Các chân của cổng có điện trở pull-up được lựa
chọn cho mỗi bit. Các chân của cổng D cho dòng 20mA đi qua và có thể kích trực tiếp led
hiển thị. Ngoài ra cổng D còn là những chân mang chức năng đặc biệt của vi điều khiển. PD7,
PD6 lần lượt là các chân AIN0, AIN1; là lối vào dương và lối vào âm của bộ so sánh tương tự
có sẵn trên chip. PD5 (T1) là lối vào của bộ Timer/counter1, PD4(T0) là lối vào của bộ
Timer/counter0. PD3, PD2 lần lượt là hai chân INT1, INT0: là hai ngõ vào của nguồn ngắt
ngoài. PD0, PD1 là hai chân RXD, TXD: là chân đọc, ghi của cổng nối tiếp.
3.2 Cấu trúc phần cứng
3.2.1 Sơ đồ khối của khối MCU
Hình 3.2 Sơ đồ khối xử lý
3.2.2 Cấu trúc bộ nhớ:
Không gian bộ nhớ của bộ nhớ chương trình gồm 8Kbyte và có địa chỉ đánh từ 0000h tới
FFFFh. Bộ nhớ dữ liệu gồm hai phần: bộ nhớ RAM và bộ nhớ EEPROM trong đó không gian
bộ nhớ RAM lại chia làm 3 phần: Các thanh ghi chức năng chung, các thanh ghi vào ra và
cuối cùng là 512 byte bộ nhớ SRAM. Bộ nhớ EEPROM mặc dù cũng là một phần của bộ nhớ
dữ liệu nhưng lại hoàn toàn đứng độc lập như một bộ nhớ độc lập và cũng được định địa chỉ
riêng.
3.2.3 Tệp thanh ghi:
Atmega8 có 32 thanh ghi đa năng được đánh số từ R0 đến R31. Tệp thanh ghi được chia làm
2 phần, mỗi phần gồm 16 thanh ghi là R0 đến R15 và từ R16 đến R31. Tất cả các lệnh đều có
15
thể truy cập đến các thanh ghi trong một chu kỳ xung nhịp. Nhưng có một số lệnh chỉ thực thi
Bit 6..4-SM2..0 tổ hợp bit chọn chế độ ngủ.
Bit 3..0-ISC11..ISC00 bit chọn độ nhạy cảm ngắt INT1 và INT0
ISC11 ISC10 ISC01 ISC10 Tín hiệu ngắt
0
0
0
Mức thấp trên chân INT
0
0
1
1
1
0
1
0
1
1
1
0
1
Sự thay đổi mức trên chân INT
Sườn âm trên chân INT
Sườn dương trên chân INT
Thanh ghi điều khiển Timer/counter0 TCCR0
1
1
0
Chân T0 sườn âm
1
1
1
Chân T0 sườn dương
Thanh ghi dữ liệu Timer/counter0 TCNT0
Là thanh ghi 8 bit dùng để lưu giá trị cho timer0 và đọc giá trị của timer0
Thanh ghi điều khiển Timer/counter1A TCCR1A
Bit 7 .. 4 – COM1A1, COM1A0,COM1B1, COM1B0 Là các bit chọn mode điều
khiển tác động lối ra trên kênh A và B của bộ sao sánh timer1 ( OC1A và OC1B ).
Các chế độ lựa chọn điều chế chân ra khi các chân OC1A và OC1B được kết nối như
sau
Chế độ so sánh không điều xung ( non PMW )
COM1A1
COM1B1
0
0
COM1A0
COM1B0
0
1
Tác động lối ra
OC1A, OC1B không kết nối
COM1A1
COM1B1
0
COM1A0
COM1B0
0
0
1
1
0
1
1
Tác động lối ra
OC1A, OC1B không kết nối
WGM13..10 = 15 : đảo chân OC1A,
OC1B không kết nối.
Xóa chân OC1A, OC1B khi so sánh
khớp và xóa OC1A, OC1B khi timer
tràn
Đặt chân OC1A, OC1B khi so sánh
thấy khớp và xóa chúng khi timer
tràn
Ta có các chế độ chia xung sau:
CS12
0
0
0
0
1
1
1
1
CS11
0
0
1
1
0
0
1
1
CS10
0
1
0
1
0
1
0
1
cần phải đọc byte thấp trước sau đó mới đọc byte cao.
Thanh ghi INPUT CAPTURE
Là một thanh ghi 16 bit chỉ đọc. Khi sườn âm hay sườn dương trên chân ICP1 được phát hiện
theo chúng ta đã lập trình trước đó. Giá trị hiện thời của bộ Timer/counter1 được truyền đến
thanh ghi này đồng thời cờ ICF cũng được đặt thành 1. Bởi vì thanh ghi ICR1 là thanh ghi 16
19
bit nên một thanh ghi tạm thời TEMP được huy động để đảm bảo thanh ghi này được đọc trọn
vẹn. Khi CPU đọc byte thấp(low) ICR1L, dữ liệu được gửi đến CPU và dữ liệu byte cao được
gửi đến thanh ghi TEAM. Khi CPU đọc byte cao(high) ICR1H, khối CPU nhận dữ liệu trong
thanh ghi TEAM nên uốn đọc trọn vẹn thanh ghi này thì phải đọc ICR1L trước sau đó mới
đọc ICR1H. Khi chương trình con và chương trình chính sử dụng thanh ghi TEAM để truy
cập thanh ghi ICR1 thì các ngắt sẽ bị cấm. Và các ngắt sẽ được cho phép lại sau đó.
Thanh ghi địa chỉ bộ nhớ EEPROM : EEARH/L
Là thanh ghi 16 bit chia làm hai byte là byte thấp ( EEARL) và byte cao (EEARH)
Bit 15 .. 9 là bit dự trữ. Trong Atmega8 thì 7 bit này luôn dược ghi giá trị = 0
Bit 8 .. 0 là bit địa chỉ của bộ nhớ EEPROM với địa chỉ tương ứng từ byte 0 đến byte
512 tích hợp sẵn trong chip.
Thanh ghi dữ liệu EEPROM : EEDR
Là thanh ghi có độ rộng 8 bit chứa dữ liệu vào, ra cho bộ nhớ EEPROM khi chúng ta truy
nhập bộ nhớ này.
Thanh ghi điều khiển EEPROM : EECR
Là thanh ghi 8 bit trong đó:
Bit 7 .. 4 trong Atmega8 chưa sử dụng để và luôn được ghi giá trị = 0
Bit 3 – EERIE : Là bit cho phép ngắt đọc EEPROM. Khi bit này được set = 1 thì sau
Bit 5 – ADLAR: là bit lựa chọn kiểu ghi dữ liệu. Nếu bit này dược set thì dữ liệu dược ghi
đầy vào byte cao (ADCH) và khi bit này bị xóa thì dữ liệu sẽ ghi đầy vào byte thấp(ADCL)
Bit 3 .. 0 – MUX3 .. 0: là tổ hợp bit lựa chọn kênh đầu vào cho bộ ADC. Chế độ lựa chọn
MUX3
MUX2
MUX1
MUX0
Kênh lựa chọn
0
0
0
0
ADC0
0
0
0
1
ADC1
0
0
1
0
ADC2
0
0
1
1
ADC3
0
Bit 3 – ADIE : Bit cho phép ngắt do bộ ADC. Khi bit này được set và bit I trong thanh ghi
trạng thái cũng được set thì chương trình cho phép ngắt khi bộ ADC hoàn thành một lần
chuyển đổi.
Bit 2 .. 0 – ADPS2 .. 0 : Tổ hợp bit lựa chọn chế độ xung nhịp cho bộ ADC. Chế độ chia
xung được liệt kê như sau:
ADPS2
0
0
0
0
1
1
1
1
ADPS1
0
0
1
1
0
0
1
1
ADPS0
0
1
0
1
cấm. Và các ngắt sẽ được cho phép lại sau đó.
Thanh ghi cổng vào, ra : DDRX, PORTX, PINX
DDRX : Là thanh ghi hướng dữ liệu các cổng. Khi ghi một giá trị 0 hay 1 vào bất kỳ một bit
nào trong thanh ghi này thì các bit tương ứng trên PORTX sẽ là lối vào hay ra.
Ví dụ: Ldi r16,0x F0
Out DDRA,r16
Sau lệnh này thì bốn bit đầu của PORTA là lối ra và bốn bit sau là lối vào
PORTX: Là thanh ghi dữ liệu của cổng vào ra tương ứng. Khi ta thay đổi dữ liệu của thanh
ghi này và xuất ra PINX thì sẽ làm thay đổi mức logic trên các chân tương ứng.
Ví dụ:
Khi cổng A là lối ra ( DDRA = 0xff) hai lệnh sau sẽ làm cho mức logic ở nửa byte
trên là 1 và nửa byte dưới là 0
Ldi r16,0xff
Out DDRA,R16
Ldi r16,0xF0
Out PORTA,r16
PINX: Là chân vật lý của chip. Chương trình có thể đọc trạng thái logic trên các chân này bất
kỳ lúc nào mà không cần khai báo. Nó có chức năng như một thanh ghi chỉ cho phép đọc
Ví dụ:
Lệnh sau đây sẽ lưu giá trị của các chân cổng A vào thanh ghi R16
IN R16, PINA
3.3 Các bộ phận xử lý trong chip
Bộ nhớ EEPROM
Tất cả các vi điều khiển trong họ AVR đều có bộ nhớ EEPROM trong chíp. Atmega8 có 512
byte tích hợp sẵn trên chip. Bộ nhớ EEPROM được truy nhập thông qua thanh ghi truy nhập
EEPROM. Cụ thể là 3 thanh ghi sau: Thanh ghi địa chỉ EEPROM ( EEAR), thanh ghi dữ liệu
EEPROM (EEDR) và thanh ghi điều khiển EEPROM (EECR).
Quá trình ghi_đọc được minh họa bằng ngôn ngữ Assemler như sau:
------------------EEPROM Data Read --------------------; cài đặt cho phép đọc
Sbi EECR,1 ; đặt bit EERE