Website: Email : Tel (: 0918.775.368
LỜI NÓI ĐẦU
Ngày này, việc ứng dụng máy tính vào các kỹ thuật đo lường và điều khiển
không còn mới vì khi các thiết bị, hệ thống đo lường và điều khiển được ghép
nối với máy tính sẽ có thời gian thu thập và xử lý dữ liệu ngắn trong khi mức độ
chính xác vẫn được đảm bảo, nhưng điều đáng quan tâm hơn cả là khả năng tự
động hoá trong việc thu thập và xử lý dữ liệu. Chính vì điều này làm cho máy
tính được ứng dụng trong hầu hết vào các lĩnh vực trong cuộc sống hàng ngày
đặc biệt là trong lĩnh vực công nghiệp.
Một bước tiến quan trọng trong kỹ thuật vi xử lý là sự ra đời của các bộ vi xử lý
kỹ thuật số. Đây là một vi mạch điện tử có mật độ tích hợp cao bao gồm rất
nhiều các mạch số có khả năng nhận, xử lý và xuất dữ liệu. Đặc biệt là quá trình
xử lý dữ liệu được thực hiện theo một chương trình là một tập hợp các lệnh từ
bên ngoài mà người sử dụng có thể thay đổi dễ dàng tùy thuộc vào từng ứng
dụng. Do đó một bộ vi xử lý có thể thực hiện được rất nhiều các yêu cầu điều
khiển khác nhau tuỳ thuộc vào nhu cầu sử dụng.
Sự ra đời của kỹ thuật vi xử lý là sự kết hợp giữa kỹ thuật phần cứng và phần
mềm đã làm cho hoạt động của các mạch điện tử trở nên mềm dẻo hơn với
những phần mềm rất linh hoạt mà người sử dụng có thể sửa chữa, thay đổi hoặc
bổ sung làm cho ứng dụng ngày càng trở nên hoàn thiện mà không cần phải thiết
kế lại toàn bộ ứng dụng.
Trong đồ án này, em sử dụng vi mạch điều khiển AT90S8535 của hãng Atmel
để thiết kế một mạch đo nhiệt độ đơn giản. Đây là một bộ vi xử lý 8 bit năng
lượng thấp (theo kiểu chíp CMOS) trên cơ sở cấu trúc RICS của hãng Atmel,
tốc độ xử lý dữ liệu của IC AT90S8535 rất cao (xấp xỉ 8 MISP tại tần số 8MHz)
cho phép hệ thống có thể được thiết kế tối ưu làm tăng tốc độ xử lý. Do đó, nó
cung cấp khả năng linh hoạt rất cao trong các ứng dụng nhúng. Vì vậy, việc tìm 1
3
LCD
display
KeyPad
16
L335
µC +
I/O
port
PC
RS 232
Website: Email : Tel (: 0918.775.368
Xây dựng phần mềm trên PC để có thể giao tiếp được với µC qua
cổng RS 232
1.2. Phân tích nhiệm vụ.
Để có thể thiết kế và xây dựng được hệ thống như trên cần phải thực hiện
các bước sau :
Nghiên cứu và tìm hiểu bộ vi xử lý AT90S8535.
Tìm hiểu sự hoạt động của module LCD và cảm biến nhiệt LM 335.
Tìm hiểu sự hoạt động và phương pháp mã hoá keypad để có thể ghép
nối với µC.
Tìm hiểu phương pháp truyền thông sử dụng chuẩn RS 232.
Thiết kế sơ đồ mạch nối ghép giữa µC với LCD, keypad, IC LM335
và giữa µC với máy tính thông qua cổng RS 232.
Lập trình phần mềm nạp cho µC để thực hiện các kết nối trên.
Viết phần mềm trên PC để giao tiếp với µC qua cổng RS 232.
Đặc biệt, thiết bị LCD cung cấp khả năng hiển thị dữ liệu vô cùng linh hoạt do 5
Website: Email : Tel (: 0918.775.368
ta có thể điều khiển xuất dữ liệu một cách trực tiếp thông qua tập lệnh điều
khiển của vi mạch điều khiển và bộ mã ký tự sẵn có trong CGRAM của LCD.
Một điều cần quan tâm khác là thiết bị LCD tiêu tốn rất ít năng lượng.
Trên thị trường hiện nay có khá nhiều module LCD của các hãng khác nhau như
Samsung, Hitachi, Motorola với nhiều loại kích thước. Trong đồ án sử dụng
module LCD có kích thước 4x20 characters với 16 chân ghép nối. Không nhất
thiết phải chọn hãng cung cấp vì các module LCD đều được xây dựng theo cùng
một tiêu chuẩn, do đó cách thức điều khiển và ghép nối các module LCD thông
dụng hiện nay cũng tương tự nhau.
c) Thiết bị vào dữ liệu và điều khiển (Keypad) :
Để người sử dụng có thể giao tiếp được với hệ thống, cần phải ghép nối µC với
một module keypad. Do ứng dụng có thể làm việc với cả chữ cái và chữ số nên
ta sử dụng keypad loại 16 keys, trong đó mỗi một phím được thiết kế như một
công tắc để có thể nhập được dữ liệu có dạng như sau :
10 chữ số trong hệ thập phân từ 0 9.
26 chữ cái la tinh từ A Z.
Các phím điều khiển bao gồm : Send, Bspace, , , / , Clear.
Do số ký tự có thể được sử dụng cùng với các phím chức năng lớn hơn rất nhiều
so với tổng số phím sẵn có trên module keypad. Vì vậy, bắt buộc phải sử dụng
phương pháp Multikey, tức là sử dụng phần mềm để mỗi một phím trên module
keypad có thể mã hoá được không ít hơn hai ký tự khác nhau. Bằng cách này,
với keypad có 16 phím ta có thể mã hoá được toàn bộ bảng chữ cái và chữ số
đồng thời vẫn có thể thực hiện được các chức năng điều khiển như trình bầy ở
trên.
7
Website: Email : Tel (: 0918.775.368
Khối Keypad : Được nối ghép với µC để người sử dụng có thể nhập
dữ liệu hoặc điều khiển sự hoạt động của hệ thống. Module này được thiết
kế dưới dạng các công tắc và sử dụng trực tiếp các đặc tính của các cổng
I/O lập trình được của µC để thực hiện mà không cần nguồn hỗ trợ bên
ngoài.
Khối LM 335 : Là một IC cảm biến nhiệt làm nhiệm vụ biến đổi nhiệt
độ môi trường sang dạng điện áp để làm đầu vào cho bộ ADC của µC làm
việc.
Khối Max 232 : Sử dụng IC Max 232 ghép nối trược tiếp với µC làm
nhiệm vụ trao đổi thông tin giữa µC và PC theo chuẩn RS 232.
Khối nguồn : Làm nhiệm vụ biến nguồn xoay chiều 220
V
sang nguồn
một chiều ±5
V
ổn định để cấp nguồn cho các khối khác hoạt động.
Hình 1.2 : Sơ đồ khối thiết kế phần cứng8
LCD
display
Keypad
LM335
µC +
• 8 kênh đầu vào ADC riêng biệt với 10 bit kết quả
• 2 bộ Timer/Counter 8 bit với bộ đếm độc lập và chế độ so sánh
• 1 bộ Timer/Counter 16 bit với bộ đếm độc lập và các chế độ PWM
• 1 bộ UART lập trình trao đổi thông tin nối tiếp
• 1 bộ Watchdog Time lập trình được với bộ tạo giao động trong
• 1 bộ so sánh analog
• 1 cổng phối ghép nối tiếp thiết bị ngoại vi SPI
• 3 chế độ làm việc là : Idle, Power-Save và Power-down
• Nguồn cung cấp từ 4.0 - 6.0
V
, tần số làm việc 0 - 8MHz.
Vi mạch điều khiển AT90S8535 được chế tạo theo công nghệ chíp nhớ cố định
với mật độ cao. Bộ nhớ Flash ISP trên chíp cho phép bộ nhớ chương trình có thể
được lập trình lại thông qua một cổng SPI phối ghép nối tiếp với thiết bị ngoại
vi. Ngoài ra, µC AT90SS8535 còn hỗ trợ cho việc lập trình thông qua các công
cụ pháp triển hệ thống như C, assemblers
Vi điều khiển AT90S8535 có 4 cấu hình chân khác nhau là : PDIP (Có 40
chân), PLCC, TQFP, MLF (Có 44 chân). Sơ đồ chân của mỗi loại như sau.
Hình 2.1 : Cấu hình chân của µC AT90S853510
PDIP
PLCC
TQFP MLF
Website: Email : Tel (: 0918.775.368
Chức năng các chân của µC AT90S8535 như sau :
VCC : Chân cấp nguồn 5
V
của cổng A có khả năng kéo dòng lên tới 20mA và có thể điều khiển trực
tiếp sự hiển thị LED. Khi các chân PA0 đến PA7 được sử dụng như các
cổng vào và ở mức thấp, chúng sẽ là đầu vào hiện thời nếu các điện trở
trong được kích hoạt. Cổng A cũng có thể được sử dụng như những đầu
vào analog để đưa tín hiệu tới bộ bộ chuyển đổi ADC. Các chân của cổng 12
Website: Email : Tel (: 0918.775.368
A ở trạng thái không xác định khi reset, ngay cả khi đồng hồ không hoạt
động.
Port B (PB7 BP0) : Là một cổng vào ra hai chiều 8 bit với các trở
kháng trong. Đệm ra của cổng B có khả năng kéo dòng lên tới 20mA. Khi
là đầu vào, các chân của cổng B trong trạng thái trở kháng thấp sẽ là đầu
vào hiện thời nếu các điện trở trong được kích hoạt. Cổng B là cổng cung
cấp các chức năng khác nhau với những đặc tính đặc biệt của µC
AT90S8535. Các chân của cổng B ở trạng thái không xác định khi reset,
ngay cả khi đồng không hoạt động.
Port C (PC0 PC7) : Là một cổng vào ra hai chiều 8 bit với các trở
kháng trong. Đệm ra của cổng C có khả năng kéo dòng lên tới 20mA. Khi
là đầu vào, các chân của cổng C trong trạng thái trở kháng thấp sẽ là đầu
vào hiện thời nếu các điện trở được kích hoạt. Hai chân của cổng C có thể
được lựa chọn để sử dụng giống như bộ tạo dao động cho bộ
Timer/Counter2. Các chân của cổng C ở trạng thái không xác định khi
reset, ngay cả khi đồng không hoạt động.
Port D (PD0 PD7) : Là một cổng vào ra hai chiều 8 bit với các trở
kháng trong. Đệm ra của cổng C có khả năng kéo dòng lên tới 20mA. Khi
là đầu vào, các chân của cổng D trong trạng thái trở kháng thấp sẽ là đầu
vào hiện thời nếu các điện trở được kích hoạt. Cổng D cũng cung cấp
3 loại chính là số học, logic và các chức năng bit.
Ngoài các chức năng của thanh ghi, các chế độ đánh địa chỉ bộ nhớ thông
thường cũng có thể được sử dụng trên các tập các thanh ghi. Điều này được thực
hiện qua việc tập thanh ghi được gán 32 địa chỉ thấp nhất của không gian địa chỉ
dữ liệu ($00 $1F), Cho phép chúng có thể được truy nhập như là là các địa chỉ nhớ
bình thường.
Không gian vùng nhớ I/O bao gồm 64 địa chỉ ($20 $5F) dành cho các chức
năng điều khiển thiết bị ngoại vi của µC như : Các thanh ghi điều khiển, bộ
Timer/Couter, bộ chuyển đổi ADC và các chức năng I/O khác. Vùng nhớ I/O có
thể được truy nhập trực tiếp hoặc gián tiếp thông qua tập các thanh ghi.
µC AT90S8535 sử dụng kiến trúc Harvard - với bộ nhớ và bus độc lập cho
chương trình và dữ liệu. Bộ nhớ chương trình được thực hiện với một “pipeline”
hai trạng thái. Trong khi một lệnh đang được thực hiện, lệnh tiếp theo được nạp
trước từ bộ nhớ chương trình. Cách thức này cho phép các lệnh liên tiếp được
thực hiện trong từng đơn chu kỳ đồng hồ. Bộ nhớ chương trình là bộ nhớ Flash
cho phép nạp dữ liệu trong hệ thống.
Với những lệnh nhẩy và lệnh gọi, toàn bộ không gian địa chỉ 4K được truy nhập
trực tiếp. Hầu hết các lệnh của AVR đều có độ dài 16 bit. Mỗi địa chỉ bộ nhớ
chương trình bao gồm một lệnh 16 bit hoặc 32 bit. 15
Website: Email : Tel (: 0918.775.368
Mỗi một module ngắt có những thanh ghi điều khiển trong không gian I/O
với một bit cho phép ngắt chung được đặt trong thanh ghi trạng thái. Mỗi ngắt
khác nhau có một vector ngắt độc lập trong bảng vector ngắt ở tại vị trí bắt đầu
của bộ nhớ chương trình. Mỗi ngắt khác nhau đều có mức độ ưu tiên tuân theo
vị trí vector ngắt của chúng. Địa chỉ của vector ngắt càng thấp, mức độ ưu tiên
càng cao. Khi xẩy ra ngắt, một chương trình con phụ vụ ngắt được gọi, địa chỉ
khả năng sử dụng của tập thanh ghi. Những thanh ghi này là những con trỏ địa
chỉ được sử dụng trong chế độ địa chỉ gián tiếp của không gian dữ liệu. Ba thanh
ghi địa chỉ gián tiếp là X, Y, Z được mô tả như trong hình 2.6 :17
Website: Email : Tel (: 0918.775.368
Hình 2.6 : Mô tả các thanh ghi địa chỉ gián tiếp X, Y, Z
Trong các chế độ địa chỉ khác nhau, các thanh ghi này có chức năng điều chỉnh
linh hoạt đối với từng trường hợp, tự động tăng, giảm hoặc không đổi.
2.1.1.3. Bộ số học và Logic - ALU.
Bộ ALU của µC AT90S8535 được nối trực tiếp với 32 thanh ghi đa năng.
Trong một đơn chu kỳ đồng hồ, các thao tác của ALU giữa các thanh ghi trong
tập thanh ghi được thực hiện và giữa một thanh ghi với một hằng số hoặc trên
một đơn thanh ghi. Các hoạt động của ALU được chia làm 3 loại chính là : số
học, logic và các phép toán trên bit.
2.1.1.4. Đặc điểm các bộ nhớ trong của µC AT90S8535.
a) Bộ nhớ chương trình (Flash program memory) : Trong µC AT90S8535
chứa đựng 8KB bộ nhớ Flash lập trình được dùng để lưu trữ chương trình. Nó
được tổ chức như một bộ nhớ 4Kx16 bit để phù hợp với sự làm việc của các
lệnh có độ dài 16 hoặc 32 bit. Bộ nhớ Flash này có thể chịu được ít nhất 1000
chu kỳ ghi/xoá. Vì bộ đếm chương trình (PC) của µC AT90S8535 có độ dài 12
bit, do đó nó có thể mã hoá 4096 địa chỉ trong bộ nhớ chương trình.18
Website: Email : Tel (: 0918.775.368
b) Bộ nhớ SRAM : 608 vị trí địa chỉ thấp nhất trong vùng nhớ dữ liệu
người sử dụng kiểm tra khi byte tiếp theo có thể được ghi/đọc. Một ngắt đặc biệt
kiểm tra sự sẵn sàng của EEPROM có thể được thiết lập để kích hoạt khi
EEPROM sẵn sàng tiếp nhận dữ liệu mới. Để ngăn cản việc ghi EEPROM ngoài
ý muốn, một quy trình ghi cụ thể phải được tuân theo. Khi đọc EEPROM, µC bị
tạm dừng trong 4 chu kỳ đồng hồ trước khi lệnh tiếp theo được thực hiện. Khi
ghi EEPROM, µC tạm dừng trong 2 chu kỳ đồng hồ trước khi thực hiện lệnh
tiếp theo.
Thanh ghi địa chỉ EEPROM : EEARH và EEARL
Các thanh ghi địa chỉ của EEPROM (EEARH và EEARL) chỉ định địa chỉ
của một byte trong không gian 512 byte EEPROM. Các byte dữ liệu của
EEPROM được địa chỉ hóa từ 0 đến 511.
Thanh ghi dữ liệu EEPROM : EEDR20
Website: Email : Tel (: 0918.775.368
Trong thao tác ghi của EEPROM, thanh ghi EEDR chứa dữ liệu được ghi
tới EEPROM theo địa chỉ được xác định bởi thanh ghi EEAR. Trong thao tác
đọc EEPROM, thanh ghi EEDR chứa dữ liệu đọc ra từ EEPROM tại địa chỉ cho
trong thanh ghi EEAR.
Thanh ghi điều khiển EEPROM : EECR
• Bit 3 - EERIE : Bit cho phép sẵn sàng ngắt của EEPROM
Khi bit I trong thanh ghi SREG và bit EERIE được thiết lập, ngắt trạng thái sẵn
sàng của EPROM được cho phép. Khi bị xoá ngắt bị vô hiệu hoá. Ngắt trạng thái
sẵn sàng EEPROM tạo ra một ngắt cứng khi bit EEWE bị xoá.
• Bit 2 - EEMWE : Bit cho phép thao tác ghi EEPROM
Bit EEMWE xác định có hay không sự thiết lập bit EEWE để gây ra thao tác
ghi EEPROM. Khi bit EEMWE được thiết lập, thì sự thiết lập của bit EEWE sẽ ghi
= 5V hoặc 4ms và V
CC
= 2.7V), bit
EEWE được xoá bởi phần cứng, Sử dụng phần mềm có thể thăm dò bít này và
đợi nó trở về không trước khi thực hiện ghi byte tiếp theo. Khi bit EEWE đã
được thiết lập, µC tạm dừng trong 2 chu kỳ đồng hồ trước khi lệnh tiếp theo
được thực hiện.
• Bit 0 - EERE : Bit cho phép đọc EEPROM
Tín hiệu cho phép đọc EEPROM là xung chọn đọc đến EEPROM. Khi địa
chỉ phù hợp được thiết lập trong thanh ghi EEAR, bit EERE phải được thiết lập.
Khi bit EERE bị xoá bởi phần cứng, dữ liệu yêu cầu được tìm thấy trong thanh
ghi EEDR. Sự truy xuất đọc EEPROM cần một lệnh và không cần thăm dò bit
EERE. Khi bit EERE đã được thiết lập, µC tạm dừng trong 4 chu kỳ đồng hồ
trước khi lệnh tiếp theo được thực hiện.
Người sử dụng cần phải thăm dò bit EEWE trước khi bắt đầu thao tác đọc. Nếu
dữ liệu hoặc địa chỉ mới được ghi vào các thanh ghi vào/ra của EEPROM khi
một thao tác ghi đang diễn ra, thì thao tác ghi sẽ bị ngắt và kết quả không được
xác định.22
Website: Email : Tel (: 0918.775.368
2.1.1.5. Các chế độ địa chỉ của µC AT90S8535.
Vi mạch điều khiển AT90S8535 hỗ trợ các chế độ địa chỉ rất mạnh và hiệu quả
cao cho việc truy nhập tới bộ nhớ chương trình (bộ nhớ Flash) và bộ nhớ dữ liệu
(SRAM, tập thanh ghi và bộ nhớ I/O). Dưới đây là các chế độ địa chỉ của µC
AT90S8535 :
a) Địa chỉ trực tiếp một thanh ghi
Toán hạng được chứa trong thanh ghi d (Rd)
i) Địa chỉ cố định khi thực hiện lệnh LPM
Địa chỉ byte cố định được xác định bởi nội dung của thanh ghi Z.25