1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng

210 1,2K 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
Trường học Trường Tiểu Học Kim Đồng
Thể loại đồ án
Định dạng
Số trang 210
Dung lượng 1,77 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng

Trang 1

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 hiểu cấu trúc và đặc tính của vi mạch điều khiển AT90S8535 có thể

giúp chúng ta sử dụng vi mạch điều khiển này cho các ứng dụng cần thiết

Trang 2

Em xin chân thành cảm ơn thầy cô đã tận tình hướng dẫn để em hoàn thành

đồ án này Tuy nhiên, do trình độ còn nhiều hạn chế nên đồ án không thể tránh

khỏi những thiếu sót, vì vậy em rất mong được sự chỉ bảo của các thầy cô cũng

như của những người đi trước trong lĩnh vực này để đồ án của em hoàn thiện

hơn qua đó em có thể xây dựng được những ứng dụng trong thực tế

Trang 3

CHƯƠNG I

NHIỆM VỤ VÀ PHƯƠNG HƯỚNG THỰC HIỆN 1.1 Nhiệm vụ của đồ án

Từ mục đích tổng quát của đề tài là thiết kế và xây dựng một hệ thống đo

nhiệt độ đơn giản, có thể phân tách ra thành các nhiệm vụ chính cần thực hiện

như sau:

 Thiết kế và xây dựng hệ thống ghép nối vi điều khiển (µC)

AT90S8535 với module LCD (4x20 character), keypad (16 keys), cảm biến

nhiệt LM335 Ngoài ra hệ thống còn phải có khả năng giao tiếp với máy

tính (PC) qua cổng RS 232

Hình 1.1 : Sơ đồ tổng thể của hệ thống cần thiết kế

 Thiết kế và xây dựng phần mềm điều khiển µC để thu thập dữ liệu từ

cảm biến nhiệt nhiệt LM335, từ keypad hoặc từ PC Xử lý dữ liệu nhận

được để hiển thị trên LCD hoặc truyền sang PC

PC

RS 232

Trang 4

 Xây dựng phần mềm trên PC để có thể giao tiếp được với µC qua

 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

 Lắp giáp mạch đã thiết kế, chạy kiểm thử và đánh giá kết quả

 Viết báo cáo tốt nghiệp

1.3 Phương hướng thực hiện

1.3.1 Lựa chọn thiết bị

a) Lựa chọn vi điều khiển :

Trong thực tế có rất nhiều các họ vi xử lý khác nhau có thể sử dụng được

trong ứng dụng này như họ vi điều khiển 8051 của Intel, 68hC11 của Motorola

Trang 5

xử lý AT90S8535 của ATMEL, do đây là một sản phẩm mới của hãng ATMEL

nên việc tìm hiểu nó sẽ đem lại rất nhiều lợi ích trong việc thiết kế các ứng dụng

đo lường và điều khiển Về mặt cấu tạo nó cũng tương tự như bộ vi xử lý

AT90S8515 đã có từ khá lâu với 4 cổng I/O lập trình được Nhưng về mặt công

dụng thì bộ vi xử lý AT90S8535 được tích hợp nhiều chức năng hơn so với bộ

vi xử lý AT90S8515, đặc biệt trên µC AT90S8535 được tích hợp một bộ ADC

cho phép mỗi chân của port A được sử dụng là đầu vào cho bộ ADC, làm cho

việc sử dụng µC AT90S8535 trong các ứng dụng linh hoạt hơn rất nhiều so với

µC AT90S8515 đang được sử dụng rộng rãi tại Việt Nam

b) Thiết bị hiển thị dữ liệu :

Đối với các loại dữ liệu được hiển thị dưới dạng số thì giải pháp tối ưu là

sử dụng các LED 7 thanh do loại thiết bị hiển thị này có giá thành tương đối rẻ

Tuy nhiên, do ứng dụng không chỉ hiển thị chữ số (giá trị nhiệt độ) mà còn phải

hiển thị cả các ký tự trong bảng chữ cái, do đó lựa chọn thiết bị hiển thị LCD vì

loại thiết bị hiển thị này có khả năng hiển thị cả chữ cái và chữ số một cách rõ

nét Mặc dù so với các loại đèn LED thì LCD có giá thành cao hơn, nhưng bù lại

thiết bị hiển thị LCD có nhiều đặc tính ưu việt hơn hẳn so với các loại đèn LED

Đặ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

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

Trang 6

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

d) Giao tiếp giữa µC và PC :

Mặc dù hệ thống được thiết kế dựa trên µC AT90S8535 đã có thể làm việc

độc lập trong qua trình thu thập, xử lý và hiển thị dữ liệu tới người sử dụng mà

không cần có sự trợ giúp của PC Tuy nhiên, trong hầu hết các ứng dụng đều cần

phải lưu trữ lại dữ liệu mà nếu thực hiện việc này dựa trên µC AT90S8535 đòi

hỏi rất nhiều kỹ thuật và chi phí Trong khi đó, thao tác lưu trữ dữ liệu trên PC

lại rất đơn giản, vì vậy giải pháp tối ưu nhất là sử dụng PC để làm nhiệm vụ

phức tạp này Vấn đề còn lại chỉ là thao tác truyền dữ liệu cần lưu trữ từ µC sang

PC, việc này được thực hiện khá đơn giản vì bản thân µC AT90S8535 đã được

tích hợp một bộ UART để sử dụng trong hoạt động truyền tin với các thiết bị ở

Trang 7

7

PC theo chuẩn RS 232 là sự tương quan về mặt điện áp tín hiệu dạng TTL của

µC và điện áp tín hiệu dạng RS 232 của PC Để thực hiện việc chuyển đổi tín

ta sử dụng IC Max232, IC này có nhiệm vụ tạo ra tín hiệu ±10V từ mức điện áp

TTL để tạo sự tương thích về mức điện áp với chuẩn RS 232

1.3.2 Phương hướng thiết kế

Từ sơ đồ tổng thể của hệ thống như trên hình 1.1 và từ việc lựa chọn thiết

bị như trình bầy ở trên, hệ thống cần thiết kế có thể được thể hiện như trong sơ

đồ hình 1.2, trong đó :

 Khối LCD display : Sử dụng module LCD sẵn có trên thị trường được

ghép nối với µC để hiển thị các thông tin cần thiết cho người sử dụng

 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 220V sang nguồn

một chiều ±5V ổ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ứng

LCD

I/O

Nguồn

Trang 8

CHƯƠNG 2

LỰA CHỌN LINH KIỆN THIẾT KẾ

VÀ MỘT SỐ LÝ THUYẾT VỀ CHUYỂN ĐỔI A/D

2.1 Lựa chọn linh kiện thiết kế

2.1.1 Giới thiệu vi mạch điều khiển AT90S8535

AT90S8535 là một vi mạch điều khiển năng lượng thấp 8 bit (công nghệ

chíp CMOS) trên cơ sở cấu trúc RICS của hãng ATMEL, nó thuộc họ vi điều

khiển AT90S/LS8535 Bằng cách thực hiện mỗi lệnh trong một đơn chu kỳ,

AT90S8535 có thể đạt tới 1 MIPS cho mỗi MHz cho phép hệ thống có thể được thiết

kế một cách tối ưu nhất sự tiêu thụ năng lượng làm tăng tốc độ xử lý Về mặt cấu tạo

µC này cũng tương tự như µC AT90S8515 với 4 cổng I/O lập trình được, tuy

nhiên về mặt chức năng thì µC AT90S8535 được tích hợp thêm nhiều tính năng

mới mà µC AT90S8515 không có Các đặc trưng chính của µC AT90S8535

được trình bầy dưới đây :

• 8KB bộ nhớ chương trình

• 512 byte SRAM

• 32 line (4 cổng) I/O lập trình được

• 32 thanh ghi đa năng 8 bit

• 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

Trang 9

• 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.0V, 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 AT90S8535

Trang 10

Chức năng các chân của µC AT90S8535 như sau :

 VCC : Chân cấp nguồn 5V

 GND : Chân nối đất

 RESET : Là đầu vào reset Tín hiệu reset ở bên ngoài sẽ tạo ra bởi mức

thấp của trở kháng trên chân Reset Xung reset dài quá 50ns sẽ tạo ra tín

hiệu reset Xung ngắn hơn sẽ không đảm bảo phát sinh tín hiệu reset

 XTAL1 : Là một đầu vào có tác dụng đảo chiều bộ khuếch đại tạo dao

động và là đầu vào của mạch điều khiển đồng hồ bên trong

 XTAL2 : Là đầu ra của tín hiệu đảo từ bộ khuếch đại tạo dao động

 AVCC : Là chân cung cấp điện áp cho cổng A và bộ chuyển đổi ADC,

nếu ADC không được sử dụng thì chân này phải được nối với nguồn 5V

(chân VCC), nếu ADC được sử dụng thì chân này phải được nối tới nguồn

Trang 11

 AREF : Là đầu vào chuẩn của tín hiệu tương tự cho bộ chuyển đổi

ADC Để cho ADC hoạt động được, nguồn sử dụng cho chân này phải có

phạm vị từ 2V đến AVCC

 AGND : Chân nối đất của tín hiệu analog, nếu bo mạch có một mức

nối đất riêng của tín hiệu analog, thì chân này phải được nối tới mức nối

đất này Nếu không có, chân này được nối tới chân GND

 Port A (PA7 PA0) : Là một cổng vào ra hai chiều 8 bit Các chân của

cổng có thể cung cấp các trở kháng trong cho phép chọn từng bit Đệm ra

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

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ộ

Trang 12

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

những chức năng có đặc tính đặc biệt của µC AT90S8535 Các chân của

cổng D ở trạng thái không xác định khi reset, ngay cả khi đồng không

hoạt động

Hình 2.2 : Sơ đồ khối vi mạch điều khiển AT90S8535

Trang 13

2.1.1.1 Cấu trúc của vi mạch AT90S8535

Vi mạch điều khiển AT90S8535 có những phương thức truy cập nhanh tới

tâp thanh ghi đa năng bao gồm 32 thanh ghi 8 bit với thời gian truy cập trong

một đơn chu kỳ đồng hồ Điều này có nghĩa trong một đơn chu kỳ, một thao tác

của bộ ALU được thực hiện sẽ lấy hai toán hạng từ hai thanh ghi trong tập thanh

ghi, sau khi thao tác được thực hiện và kết qua trả sẽ được lưu trở lại tập thanh

ghi trong một chu kỳ đồng hồ

Sáu trong số 32 thanh ghi đa năng này có thể được sử dụng như 3 thanh ghi

địa chỉ gián tiếp 16 bit trỏ đến không gian địa chỉ dữ liệu, làm cho phép tính địa

chỉ đạt được hiệu quả cao Một trong 3 con trỏ địa chỉ này cũng được sử dụng

giống như con trỏ địa chỉ tới vùng nhớ dữ liệu cố định Các thanh ghi địa chỉ

này là các thanh ghi 16 bit X, Y, Z

Trang 14

Hình 2.3 : Sơ đồ khối kiến trúc của µC AT90S8535

Bộ ALU cung cấp các chức năng tính toán số học và logic giữa các thanh

ghi hoặc giữa một hằng số và một thanh ghi Những thao tác của một thanh ghi

đơn cũng được thực hiện trong bộ ALU Sự hoạt động của ALU được phân chia

làm 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

Trang 15

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

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ỉ

trở về PC được đẩy vào ngăn xếp Vùng nhớ ngăn xếp được cấp phát trong vùng

nhớ dữ liệu của SRAM và do đó, dung lượng của ngăn xếp bị giới hạn bởi tổng

dung lượng của SRAM và cách sử dụng thông thường của SRAM Tất cả các

chương trình của người sử dụng phải được khởi đầu bằng con trỏ ngăn xếp (SP)

trong thủ tục reset (trước khi các chương trình con hoặc các ngắt được thực thi)

Con trỏ stack sử dụng 10 bit để truy nhập ghi/đọc trong không gian I/O 512

byte dữ liệu SRAM có thể được truy cập dễ dàng bởi 5 chế độ địa chỉ khác nhau

được cung cấp bởi µC AT90S8535

Trang 16

Hình 2.4 : Bản đồ bộ nhớ của µC AT90S8535 2.1.1.2 Tập thanh ghi đa năng của µC AT90S8535

Tất cả các thanh ghi trong tập thanh ghi của µC AT90S8535 khi thực một

hiện lệnh trong tập lệnh đều có thể được truy cập trực tiếp trong một đơn chu kỳ

đồng hồ Ngoại trừ 5 lệnh trực tiếp SBCI, SUBI, CPI, ANDI, ORI giữa một

hằng số và một thanh ghi và lệnh LDI sử dụng để nạp tức thì hằng dữ liệu,

những lệnh này phải sử dụng các thanh ghi của nửa thứ hai trong tập thanh ghi

(từ R16 R31) Các lệnh còn lại đều có thể sử dụng bất kỳ thanh ghi nào trong

tập thanh ghi

Trang 17

Hình 2.5 : Địa chỉ 32 thanh ghi đa năng của µC

Qua hình 2.5 có thể thấy, mỗi thanh ghi đều được gán một địa chỉ trong

không gian địa chỉ dữ liệu, chúng được đặt trong 32 vị trí đầu tiên của không

gian dữ liệu sử dụng Mặc dù không được thực hiện một cách vật lý như trong

SRAM, việc tổ chức bộ nhớ này cung cấp sự linh hoạt lớn trong việc truy nhập

tới các thanh ghi, như các thanh ghi X, Y, Z có thể được thiết lập để trỏ tới bất

kỳ thanh ghi nào trong tập thanh ghi

Các thanh ghi từ R26 R31 được thêm vào một số chức năng nhằm mở rộng

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 :

Hình 2.6 : Mô tả các thanh ghi địa chỉ gián tiếp X, Y, Z

Trang 18

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

b) Bộ nhớ SRAM : 608 vị trí địa chỉ thấp nhất trong vùng nhớ dữ liệu

được dùng để địa chỉ hoá cho tập thanh ghi, bộ nhớ I/O và SRAM 96 vị trí địa

chỉ đầu tiên là của tập thanh ghi và bộ nhớ I/O, 512 vị trí địa chỉ tiếp theo là của

bộ nhớ SRAM Một địa chỉ bất kỳ trong trong không gian địa chỉ dữ liệu

SRAM đều có thể được xác định thông qua 5 chế độ địa chỉ khác nhau là : trực

tiếp, tương đối, gián tiếp, gián tiếp với sự giảm trước và gián tiếp với sự tăng

sau Trong tập thanh ghi, các thanh ghi từ R26 tới R31 được sử dụng như các

thanh ghi con trỏ địa chỉ gián tiếp

Ở chế độ địa chỉ trực tiếp có cho phép truy cập tới toàn bộ không gian dữ

liệu Chế độ địa chỉ tương đối cho phép xác định 63 vị trí địa chỉ từ địa chỉ cơ sở

Trang 19

sự tự động giảm trước hoặc tăng sau, nội dung của các thanh ghi địa chỉ X, Y và

Z đều tự động tăng hoặc giảm sau khi thực hiện 32 thanh ghi đa năng, 64 thanh

ghi I/O và 512 byte của bộ nhớ trong SRAM trong AT90S8535, tất cả đều có thể

được truy nhập thông qua các chế độ địa chỉ này

Hình 2.7 : Tổ chức bộ nhớ SRAM của µC c) Bộ nhớ EEPROM : µC AT90S8535 có 512 byte bộ nhớ EEPROM,

được tổ chức như một không gian dữ liệu riêng biệt cho phép mỗi byte có thể

được ghi/đọc Bộ nhớ EEPROM có thể thực hiện ít nhất 100.000 chu kỳ ghi/xoá

Sự truy nhập giữa EEPROM và µC được thực hiện thông qua các thanh ghi địa

chỉ, thanh ghi dữ liệu và thanh ghi điều khiển của EEPROM, các thanh ghi này

có thể được truy cập trong không gian I/O Thời gian truy cập ghi EEPROM

trong phạm vi từ 2.5 đến 4 ms, tuỳ thuộc vào điện áp trên chân VCC EEPROM

có một chức năng tự động tính thời gian cho phép phần mềm của 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

Trang 20

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 : EEDR

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á

Trang 21

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

dữ liệu vào EEPROM tại địa chỉ đã lựa chọn Nếu bit EEMWE là 0, thì sự thiết lập

của bit EEWE sẽ không có kết quả Khi bit EEMWE đã được thiết lập bởi phần

mềm, phần cứng xoá bit này về 0 sau 4 chu kỳ đồng hồ.

• Bit 1 - EEWE : Bit cho phép ghi EEPROM

Tín hiệu cho phép ghi EEPROM (EEWE) là một xung chọn ghi tới

EEPROM Khi địa chỉ và dữ liệu đã được thiết lập phù hợp, bit EEWE phải

được thiết lập để ghi giá trị vào trong EEPROM Bit EEEMWE phải được thiết

lập khi giá trị logic 1 được ghi vào bit EEWE, nếu không thì không xẩy ra thao

tác ghi EEPROM Quy trình dưới đây phải được tuân theo khi ghi EEPROM

(thứ tự của bước 2 và 3 không cần quan tâm)

1 Đợi cho đến khi bit EEWE trở về 0

2 Ghi địa chỉ mới của EEPROM tới thanh ghi địa chỉ EEPROM (tuỳ chọn)

3 Ghi dữ liệu mới vào thanh ghi EEDR (tuỳ chọn)

4 Ghi giá trị logic 1 vào bit EEMWE trong thanh ghi EECR (Để có thể ghi

giá trị logic 1 vào bit EEMWE, thì bit EEWE phải được ghi là 0 trong cùng một

chu kỳ đồng hồ)

5 Trong vòng 4 chu kỳ đồng hồ sau khi thiết lập bit EEMWE, ghi giá trị

logic 1 tới bit EEWE

Chú ý : Một ngắt giữa bước 4 và 5 sẽ làm lỗi chu kỳ ghi, vì bit EEMWE sẽ

hết thời gian Nếu một thủ tục ngắt truy xuất tới EEPROM trong khi một ngắt

khác cũng đang truy xuất EEPROM, thì nội dung của các thanh ghi EEAR và

EEDR sẽ bị thay đổi, gây lỗi ngắt truy xuất EEPROM Để tránh những vấn đề

này cần xoá các cờ ngắt chung trong thời gian thực hiện 4 bước cuối cùng Khi

thời gian truy cập ghi kết thúc (2.5ms và VCC = 5V hoặc 4ms và VCC = 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 đã

Trang 22

đượ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

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)

Trang 23

b) Địa chỉ trực tiếp hai thanh ghi

Các toán hạng được chứa trong thanh ghi r (Rr) và d (Rd)

Kết quả được lưu trong thanh ghi d (Rd)

c) Địa chỉ I/O trực tiếp

Toán hạng địa chỉ chứa trong 6 bit LSB của từ lệnh,

n là địa chỉ của thanh ghi nguồn hoặc đích

d) Địa chỉ dữ liệu trực tiếp

16 bit địa chỉ dữ liệu được chứa trong 16 bit LSB của hai từ lệnh

Rd/Rr chỉ rõ thanh ghi nguồn hoặc thanh ghi đích

e) Địa chỉ dữ liệu tương đối

Trang 24

Toán hạng địa chỉ là kết quả của nội dung thanh ghi Y hoặc Z

được cộng với địa chỉ chứa trong 6 bit LSB của từ lệnh (a)

f) Địa chỉ dữ liệu gián tiếp

Toán hạng địa chỉ là nội dung của thanh ghi X, Y hoặc Z

g) Địa chỉ dữ liệu gián tiếp giảm trước

Nội dung các thanh ghi X, Y, Z giảm 1 trước khi thực hiện Toán hạng địa chỉ là nội dung đã giảm của thanh ghi X, Y, Z

Trang 25

h) Địa chỉ dữ liệu gián tiếp tăng sau

Thanh ghi X, Y hoặc Z được cộng 1 sau khi thực hiện

Địa chỉ toán hạng là nội dung của thanh ghi X, Y hoặc Z trước khi cộng

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

15 bit MSB lựa chọn địa chỉ từ (0 – 4K), bit LSB cho phép

chọn byte thấp nếu LSB = 0 hoặc byte cao nếu đặt LSB = 1

j) Địa chỉ gián tiếp trong bộ nhớ chương trình với lệnh IJMP và ICALL

Chương trình được tiếp tục thực hiện tại địa chỉ được chứa bởi thanh ghi Z

(Bộ đếm chương trình (PC) được nạp với nội dung của thanh ghi Z)

Trang 26

k) Địa chỉ tương đối của bộ nhớ chương trình với lệnh RJMP và RCALL

Chương trình được tiếp tục thực hiện tại địa chỉ PC + k + 1 Địa chỉ tương đối k bắt đầu từ - 2048 tới 2047 2.1.1.6 Thời gian truy cập bộ nhớ và thời gian thực hiện lệnh

µC AT90S8535 được điều khiển bởi đồng hồ hệ thống 0, được tạo trực tiếp

từ đồng hồ bên ngoài của chip và không sử dụng bộ chia thời gian trong

Hình 2.8 mô tả quá trình tìm và thực hiện lệnh song song theo cấu trúc

Harvard và khái niệm tập thanh ghi truy nhập nhanh

Hình 2.8: Quá trình tìm và thực hiện lênh song song Hình 2.9 mô tả khái niệm thời gian thao tác trong của tập thanh ghi Trong

một đơn chu kỳ đồng hồ, một thao tác sử dụng hai toán hạng trong hai thanh ghi

của ALU được thực hiện và kết quả được lưu trở lại thanh ghi đích

Trang 27

Hình 2.9: Hoạt động của ALU trong đơn chu kỳ đồng hồ

Sự truy nhập vào bộ nhớ SRAM được thực hiện trong hai chu kỳ đồng hồ

và được mô tả như hình dưới

Hình 2.10 : Các chu kỳ truy cập bộ nhớ SRAM 2.1.1.7 Không gian bộ nhớ I/O

Bảng 2.1 : Không gian I/O của µC AT90S8535

Địa chỉ I/O

(Địa chỉ SRAM)

Tên thanh ghi/cổng Chức năng

$3F ($5F) SREG Thanh ghi trạng thái

$3E ($5E) SPH địa chỉ byte cao của con trỏ Stack

$3D ($5D) SPL Địa chỉ byte thấp của con trỏ Stack

$3B ($5B) GIMSK Thanh ghi mặt nạ ngắt chung

$3A ($5A) GIFR Thanh ghi cờ ngắt chung

$39 ($59) TIMSK Thanh ghi mặt nạ ngắt của bộ Timer/Counter

$38 ($58) TIFR Thanh ghi cờ ngắt của bộ Timer/Counter

$35 ($55) MCUCR Thanh ghi điều khiển chung của MCU

$34 ($45) MCUSR Thanh ghi trạng thái chung của MCU

$33 ($53) TCCR0 Thanh ghi điều khiển bộ Timer/Counter 0

Trang 28

$32 ($52) TCNT0 8 bit dữ liệu của bộ Timer/Counter 0

$2F ($4F) TCCR1A Thanh ghi điều khiển A của bộ Timer/Counter 1

$2E ($4E) TCCR1B Thanh ghi điều khiển B của bộ Timer/Counter 1

$2D ($4D) TCNT1H Byte cao của bộ Timer/Counter 1

$2C ($4C) TCNT1L Byte thấp của bộ Timer/Counter 1

$2B ($4B) OCR1AH Byte cao của thanh ghi A so với đầu ra của Timer/Counter1

$2A ($4A) OCR1AL Byte thấp của thanh ghi A so với đầu ra của Timer/Counter1

$29 ($49) OCR1BH Byte cao của thanh ghi B so với đầu ra của Timer/Counter1

$28 ($48) OCR1BL Byte thấp của thanh ghi B so với đầu ra của Timer/Counter1

$27 ($47) ICR1H Thanh ghi lưu trữ Byte cao của đầu vào Timer/Counter1

$26 ($46) ICR1L Thanh ghi lưu trữ Byte cao đầu vào của Timer/Counter1

$25 ($45) TCCR2 Thanh ghi điều khiển bộ Timer/Counter 2

$24 ($44) TCNT2 8 bit dữ liệu của bộ Timer/Counter 2

$23 ($43) OCR2 Thanh ghi so với đầu ra của bộ Timer/Counter 2

$22 ($42) ASSR Thanh ghi trạng thái chế độ không đồng bộ

$21 ($41) WDTCR Thanh ghi điều khiển mạch kiểm tra tuần tự bộ định thời gian

$1F ($3E) EEARH Thanh ghi địa chỉ Byte cao của EEPROM

$1E ($3E) EEARL Thanh ghi địa chỉ Byte thấp của EEPROM

$1D ($3D) EEDR Thanh ghi dữ liệu EEPROM

$1C ($3C) EECR Thanh ghi điều khiển EEPROM

$1B ($3B) PORTA Thanh ghi dữ liệu, cổng A

$1A ($3A) DDRA Thanh ghi điều hướng dữ liệu, cổng A

$19 ($39) PINA Các chân vào của cổng A

$18 ($38) PORTB Thanh ghi dữ liệu cổng B

$17 ($37) DDRB Thanh ghi điều hướng dữ liệu, cổng B

$16 ($36) PINB Các chân vào của cổng B

$15 ($35) PORTC Thanh ghi dữ liệu cổng C

$14 ($34) DDRC Thanh ghi điều hướng dữ liệu, cổng C

$13 ($33) PINC Các chân vào của cổng C

$12 ($32) PORTD Thanh ghi dữ liệu của cổng D

$11 ($31) DDRD Thanh ghi điều hưởng dữ liệu, cổng D

$10 ($30) PIND Các chân vào của cổng D

$0F ($2F) SPDR Thanh ghi dữ liệu cổng vào/ra của thiết bị ngoại vi

$0E ($2E) SPSR Thanh ghi trạng thái của SPI

$0D ($2D) SPCR Thanh ghi điều khiển SPI

$0C ($2C) UDR Thanh ghi dữ liệu vào/ra của bộ UART

$0B ($2B) USR Thanh ghi trạng thái UART

Trang 29

$09 ($29) UBRR Thanh ghi tốc độ baud của UART

$08 ($28) ACSR Thanh ghi điều khiển và trạng thái của mạch so sánh Analog

$07 ($27) ADMUX Thanh ghi lựa chọn của bộ dồn kênh ADC

$06 ($26) ADCSR Thanh ghi điều khiển và trạng thái của bộ ADC

$05 ($25) ADCH Thanh ghi dữ liệu byte cao của bộ ADC

$04 ($24) ADCL Thanh ghi dữ liệu byte thấp của bộ ADC

Tất cả các cổng I/O của µC AT90S8535 và các thiết bị ngoại vi đều được

đặt trong gian cổng I/O Các vị trí cổng I/O được truy nhập bởi lệnh IN và OUT

truyền dữ liệu giữa 32 thanh ghi đa năng và không gian I/O Các thanh ghi I/O

có địa chỉ trong phạm vi từ $00 đến $1F có thể được truy nhập trực tiếp tới các

bit bằng cách sử dụng các lệnh SBI và CBI Trong các thanh ghi này, giá trị các

bit đơn có thể được kiểm tra bằng cách sử dụng các lệnh SBIS và SBIC Khi sử

dụng các lệnh I/O cụ thể IN và OUT, các địa chỉ I/O từ $00 đến $3F phải được

sử dụng Khi xác định địa chỉ các thanh ghi I/O như địa chỉ của SRAM, phải

thêm $20 vào các địa chỉ này

Bảng 2.2 : Vị trí các bit trong các thanh ghi I/O

Address Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

$3F ($5F) SREG I T H S V N Z C

$3E ($5E) SPH - - - SP9 SP8

$3D ($5D) SPL SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0

$3C ($5C) Res

$3B ($5B) GIMSK INT1 INT0 - - - -

$3A ($5A) GIFR INTF1 INTF0

$39 ($59) TIMSK OCIE2 TOIE2 TICIE1 OCIE1A OCIE1B TOIE1 - TOIE0

$38 ($58) TIFR OCF2 TOV2 ICF1 OCF1A OCF1B TOV1 - TOV0

$37 ($57) Res

$36 ($56) Res

$35 ($55) MCUCR - SE SM1 SM0 ISC11 ISC10 ISC01 ISC00

$34 ($54) MCUSR - - - EXTRF PORF

Trang 30

$2E ($4E) TCCR1B ICNC1 ICES1 - - CTC1 CS12 CS11 CS10

$2D ($4D) TCNT1H Timer/Counter1 – Counter Register High Byte

$2C ($4C) TCNT1L Timer/Counter1 – Counter Register Low Byte

$2B ($4B) OCR1AH Timer/Counter1 – Output Compare Register A High Byte

$2A ($4A) OCR1AL Timer/Counter1 – Output Compare Register A Low Byte

$29 ($49) OCR1BH Timer/Counter1 – Output Compare Register B High Byte

$28 ($48) OCR1BL Timer/Counter1 – Output Compare Register B Low Byte

$27 ($47) ICR1H Timer/Counter1 – Input Capture Register High Byte

$26 ($46) ICR1L Timer/Counter1 – Input Capture Register Low Byte

$25 ($45) TCCR2 - PWM2 COM21 COM20 CTC2 CS22 CS21 CS20

$24 ($44) TCNT2 Timer/Counter2 (8 Bits)

$23 ($43) OCR2 Timer/Counter2 Output Compare Register

$22 ($42) ASSR - - - - AS2 TCN2UB OCR2UB TCR2UB

$21 ($41) WDTCR - - - WDTOE WDE WDP2 WDP1 WDP0

$20 ($40) Res

$1E ($3E) EEARL EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0

$1D ($3D) EEDR EEPROM Data Register

$1C ($3C) EECR - - - - EERIE EEMWE EEWE EERE

$1B ($3B) PORTA PORTA7 PORTA6 PORTA5 PORTA4 PORTA3 PORTA2 PORTA1 PORTA0

$1A ($3A) DDRA DDA7 DDA6 DDA5 DDA4 DDA3 DDA2 DDA1 DDA0

$19 ($39) PINA PINA7 PINA6 PINA5 PINA4 PINA3 PINA2 PINA1 PINA0

$18 ($38) PORTB PORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0

$17 ($37) DDRB DDB7 DDB6 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0

$16 ($36) PINB PINB7 PINB6 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0

$15 ($35) PORTC PORTC7 PORTC6 PORTC5 PORTC4 PORTC3 PORTC2 PORTC1 PORTC0

$14 ($34) DDRC DDC7 DDC6 DDC5 DDC4 DDC3 DDC2 DDC1 DDC0

$13 ($33) PINC PINC7 PINC6 PINC5 PINC4 PINC3 PINC2 PINC1 PINC0

$12 ($32) PORTD PORTD7 PORTD6 PORTD5 PORTD4 PORTD3 PORTD2 PORTD1 PORTD0

$11 ($31) DDRD DDD7 DDD6 DDD5 DDD4 DDD3 DDD2 DDD1 DDD0

$10 ($30) PIND PIND7 PIND6 PIND5 PIND4 PIND3 PIND2 PIND1 PIND0

$0F ($2F) SPDR SPI Data Register

$0E ($2E) SPSR SPIF WCOL - - - -

$0D ($2D) SPCR SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0

$0C ($2C) UDR UART I/O Data Register

$0B ($2B) USR RXC TXC UDRE FE OR - - -

$0A ($2A) UCR RXCIE TXCIE UDRIE RXEN TXEN CHR9 RXB8 TXB8

$09 ($29) UBRR UART Baud Rate Register

$08 ($28) ACSR ACD - ACO ACI ACIE ACIC ACIS1 ACIS0

Trang 31

$05 ($25) ADCH - - - ADC9 ADC8

$04 ($24) ADCL ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0

nó Chú ý đối với các lệnh CBI và SBI sẽ có tác dụng trên tất cả các bit trong

thanh ghi I/O và thao tác ghi lại 1 vào bất kỳ cờ nào đã được thiết lập đồng

nghĩa với việc xoá cờ đó Tuy nhiên, các lệnh CBI và SBI chỉ làm việc với các

thanh ghi có địa chỉ từ $00 đến $1F Chức năng của mỗi bit trong các thanh ghi

sẽ được giới thiệu trong từng phần có liên quan, dưới đây là hai thanh ghi chính

của vi mạch điều khiển AT90S8535

Thanh ghi trạng thái µC : SREG

Thanh ghi trạng thái (Status register) của µC AT90S8535 có địa chỉ tại vị

trí $3F ($5F) trong không gian I/O được định nghĩa như sau :

• Bit 7 - I : Bit cho phép ngắt chung (Global Interrupt Enable)

Bit cho phép ngắt chung phải được thiết lập để cho phép các ngắt Sau đó,

mỗi sự điều khiển ngắt cho phép riêng được thực hiện trong các thanh ghi điều

khiển độc lập Nếu bit cho phép ngắt chung bị xoá, thì không có ngắt nào được

cho phép Bit I được xoá bởi phần cứng sau khi một ngắt xảy ra và được thiết

đặt bởi lệnh RETI để cho phép các ngắt tiếp theo

• Bit 6 - T : Bit lưu trữ sao chép (Bit Copy Storage)

Các lệnh sao chép bit BLD (BitLoaD) và BST (BitSTore) sử dụng bit T

như là nguồn hoặc đích cho thao tác bit Một bit của một thanh ghi trong tập

Trang 32

thanh ghi có thể sao chép vào trong bit T bằng lệnh BST và một bit trong T có

thể được sao chép vào một bit trong thanh ghi của tập thanh ghi bởi lệnh BLD

• Bit 5 - H : Bit cờ nhớ phụ (Half-carry Flag)

Cờ nhớ phụ H xác định số nhớ trong một số thao tác số học

• Bit 4 - S : Bit dấu (Sign Bit, S = N ⊕ V)

Bit dấu S luôn là một phép logic NAND giữa cờ phủ định N và cờ tràn số

bù hai V

• Bit 3 - V : Bit cờ tràn bù hai (Two’s Complement Oveflow Flag)

Cờ tràn số bù hai V hỗ trợ cho phép tính số bù hai

• Bit 2 - N : Bit cờ phủ định (Negative Flag)

Cờ phủ định N cho biết một kết quả âm từ một phép tính số học hoặc logic

• Bit 1 - Z : Bit cờ Zero (Zero Flag)

Cờ Zero Z cho biết một kết quả bằng không từ một phép tính số hoặc logic

• Bit 0 - C : Bit cờ nhớ (Carry Flag)

Cờ carry C xác định số nhớ trong một phép tính số hoặc logic

Chú ý : Thanh ghi trạng thái không tự động được lưu và khôi phục khi

tham gia vào một thủ tục ngắt hoặc khi trở về từ một thủ tục ngắt Do đó, nó phải được

thực hiện bởi phần mềm

Thanh ghi con trỏ ngăn xếp : SP

Con trỏ ngăn xếp của µC AT90S8535 được thực hiện như hai thanh ghi 8

bit ở địa chỉ $3E($5E) và $3D($5D) trong không gian I/O Do bộ nhớ SRAM

của AT90S8535 có $25F địa chỉ, do đó con trỏ SP cần sử dụng 10 bit để xác

định các vị trí địa chỉ cần thiết

Trang 33

Con trỏ ngăn xếp SP trỏ tới vùng dữ liệu ngăn xếp trong SRAM nơi mà

một chương trình con phuc vụ ngắt và ngắt được định vị Không gian ngăn xếp

trong vùng dữ liệu SRAM phải được khai báo trong chương trình trước bất kỳ

lời gọi chương trình con nào được thực hiện hoặc bất kỳ ngắt nào được cho

phép Con trỏ ngăn xếp phải được thiết đặt ở những địa chỉ lớn hơn $60 SP

giảm đi 1 byte khi dữ liệu được đẩy vào Stack bởi lệnh PUSH và nó giảm đi 2

byte khi một địa chỉ được đẩy vào Stack trong lời gọi chương trình con hoặc

ngắt SP được tăng lên 1 byte khi dữ liệu được lấy ra khỏi Stack với lệnh POP

và nó được tăng 2 byte khi một địa chỉ được lấy ra từ Stack với lệnh trở về từ

chương trình con RET hoặc lệnh trở về từ một ngắt RETI

2.1.1.8 Ngắt và xử lý ngắt trong µC AT90S8535

µC AT90S8535 cung cấp 16 nguồn gây ngắt khác nhau và một ngắt Reset

Các ngắt này và ngắt Reset có một vector chương trình độc lập trong không gian

bộ nhớ chương trình Tất cả các ngắt được gán với các bit cho phép ngắt riêng

và phải được thiết lập cùng với bit I trong thanh ghi SREG để cho phép ngắt xảy

ra

Vị trí địa chỉ thấp nhất trong không gian bộ nhớ chương trình được tự động

định nghĩa là địa chỉ của vector Reset, tiếp theo đó là địa chỉ của các vector ngắt

khác Danh sách đầy đủ của các vector ngắt được thể hiện trong bảng 2.3, bảng

này cũng cho biết các cấp độ ưu tiên của các ngắt tuỳ theo vị trí địa chỉ của

vector ngắt của nó theo nguyên tắc, địa chỉ càng thấp thì mức độ ưu tiên càng

cao RESET có mức ưu tiên cao nhất, tiếp theo là INT0 v.v

Bảng 2.3 : Địa chỉ của các vector ngắt trong µC AT90S8535

TT Địa chỉ

vector ngắt Nguồn gây ngắt Định nghĩa ngắt

1 $000 RESET Reset và khởi động lại mạch Watchdog

2 $001 INT0 Yêu cầu ngắt từ bên ngoài cấp 0

Trang 34

3 $002 INT1 Yêu cầu ngắt từ bên ngoài cấp 1

4 $003 TIMER2 COMP Ngắt thích ứng so sánh của T/C 2

5 $004 TIMER2 OVF Ngắt tràn của T/C 2

6 $005 TIMER1 CAPT Ngắt lưu giữ sự kiện của T/C 1

7 $006 TIMER1 COMPA Ngắt thích ứng so sánh A của T/C 1

8 $007 TIMER1 COMPB Ngắt thích ứng so sánh B của T/C 1

9 $008 TIMER1 OVF Ngắt tràn của T/C 1

10 $009 TIMER0 OVF Ngắt tràn của T/C 0

11 $00A SPI, STC Ngắt kết thúc truyền nối tiếp qua SPI

12 $00B UART, RX Ngắt kết thúc nhận dữ liệu của UART

13 $00C UART, UDRE Ngắt báo thanh ghi dữ liệu của UART rỗng

14 $00D UART, TX Ngắt hoàn thành truyền dữ liệu qua UART

15 $00E ADC Ngắt hoàn thành chuyển đổi ADC

16 $00F EE_RDY Ngắt báo EEPROM đã sẵn sàng R/W

17 $010 ANA_COMP Ngắt so sánh độ dài tín hiệu Analog

Một chương trình bình thường có thể thiết lập cho các địa chỉ của vector

Reset và các vector ngắt khác như sau :

Địa chỉ Lệnh Nhãn/toán hạng Giải thích

$000 rjmp RESET ;Điều khiển Reset

$001 rjmp EXT_INT0 ;Điều khiển IRQ0

$002 rjmp EXT_INT1 ;Điều khiển IRQ1

$003 rjmp TIM2_COMP ;Điều khiển so sánh Timer2

$004 rjmp TIM2_OVF ;Điều khiển tràn Timer2

$005 rjmp TIM1_CAPT ;Điều khiển bắt sự kiện Timer1

$006 rjmp TIM1_COMPA ;Điều khiển so sánh A của Timer1

$007 rjmp TIM1_COMPB ;Điều khiển so sánh B của Timer1

$008 rjmp TIM1_OVF ;Điều khiển tràn Timer1

$009 rjmp TIM0_OVF ;Điều khiển tràn Timer0

$00a rjmp SPI_STC ;Điều khiển kết thúc truyền dữ liệu qua SPI

$00b rjmp UART_RXC ;Điều khiển kết thúc UART RX

$00c rjmp UART_DRE ;Điều khiển thông báo hết dữ liệu trong UDR

$00d rjmp UART_TXC ;Điều khiển kết thúc UART TX

$00e rjmp ADC ;Ngắt thông báo kết thúc chuyển đổi ADC

$00f rjmp EE_RDY ;EEPROM sẵn sàng

$010 rjmp ANA_COMP ;Điều khiển bộ so sánh tín hiệu tương tự

Trang 35

$013 ldi r16, low(RAMEND)

$014 out SPL,r16

$015 <instr> xxx

Các nguồn Reset của µC AT90S8535

µC AT90S8535 có 3 nguồn Reset khác nhau là : Power-on Reset (Reset khi

nguồn bật), Reset ngoài và Watchdog Reset

• Power-on Reset : MCU được thiết lập lại khi điện áp cung cấp thấp hơn

ngưỡng điện áp Power-on Reset (VPOT)

• Reset ngoài : MCU được thiết lập lại khi một mức điện áp thấp xuất hiện

trên chân RESET trong khoảng thời gian lớn hơn 50ns

• Watchdog Reset : MCU được thiết lập lại khi chu kỳ của mạch Wachdog

timer kết thúc và mạch Wachdog được cho phép

Trong thời gian Reset, tất cả các thanh ghi I/O được thiết lập lại với giá trị

khởi tạo và sự thực hiện chương trình được bắt đầu từ địa chỉ $000 Lệnh đặt

trong địa chỉ $000 phải là lệnh RJMP (lệnh nhảy quan hệ) để thi hành thủ tục

Reset Nếu một chương trình không cho phép bất một ngắt nào, thì các vector

ngắt sẽ không được sử dụng và đoạn mã của chương trình có thể được đặt tại các

vị trí này

Thông tin về bất cứ nguồn Reset nào gây ra sự thiết lập lại MCU được thể

hiện đầy đủ trong các bit của thanh ghi trạng thái MCU - MCUSR

Thanh ghi trạng thái MCU : MCUSR

• Bit 7 2 : Ressered bits

• Bit 1 - EXTRF : Bit cờ Reset từ bên ngoài (EXTernal Reset Flag)

Trang 36

Sau một tín hiệu Reset Power-on, bit này không được xác định (X) Nó chỉ

có thể được thiết lập bởi một tín hiệu reset từ bên ngoài Một tín hiệu Reset

Watchdog sẽ không thay đổi giá trị của bit này Bit này được xoá bằng cách ghi

giá trị logic 0 vào bit

• Bit 0 - PORF : Bit cờ Reset Power-on (Power-On Reset Flag)

Bit này chỉ được thiết lập bởi một tín hiệu Reset Power-on Một tín hiệu

Reset Watchdog hoặc tín hiệu Reset từ bên ngoài sẽ không làm thay đổi giá trị

của bit này Bit được xoá bằng cách ghi giá trị 0 vào bit

Bảng 2 4 : Giá trị của các bit EXTRF và PORF sau Reset

Nguồn Reset EXTRF PORF Power-on Reset Không thay đổi 1 External Reset 1 Không thay đổi Watchdog Reset Không thay đổi Không thay đổi

Có thể sử dụng các giá trị của các bít này để xác định một điều kiện gây ra

Reset Đối với phần mềm cần phải xoá cả hai bit PORF và EXTRF càng sớm

càng tốt trong chương trình Kiểm tra giá trị của các bit PORF và EXTR trước

khi các bit được xoá Nếu bit được xoá trước khi xuất hiện một tín hiệu Reset từ

bên ngoài hoặc của Watchdog, thì nguồn gốc của ngắt có thể được tìm thấy bằng

Trang 37

và thanh ghi mặt nạ ngắt của các mạch Timer/Counter – TISMK (Timer/Counter

Interrupt Mask register)

Khi xẩy ra một ngắt, bit cho phép ngắt chung I bị xoá và tất cả các ngắt bị

cấm Sử dụng phần mềm có thể thiết lập cho bit I để cho phép các ngắt đang bị

che Bit I được lập sau khi thực hiện lệnh trở về từ ngắt - RETI

Khi bộ đếm chương trình PC trỏ tới một vector ngắt hiện tại để thực hiện

chương trình con phục vu ngắt, phần cứng sẽ xoá cờ ngắt tương ứng với ngắt

pháp sinh Một vài cờ ngắt cũng có thể được xoá bằng cách ghi giá trị logic 1

vào vị trí bit cờ đó Nếu một điều khiện ngắt xẩy ra khi bit cho phép ngắt tương

ứng bị xoá, thì cờ ngắt sẽ được thiết lập và được nhớ cho đến khi ngắt đó được

cho phép hoặc cờ được xoá bởi phần mềm

Nếu một hoặc nhiều điều kiện ngắt xẩy ra khi bit cho phép ngắt chung bị

xoá, các cờ ngắt tương ứng sẽ được thiết lập và được nhớ cho đến khi bit cho

phép ngắt chung được thiết lập và các ngắt sẽ được thực hiện tuỳ theo cấp ưu

tiên của mỗi ngắt

Chú ý : Mức ngắt ngoài không có cờ và sẽ chỉ được nhớ lâu bằng điều kiện

ngắt tích cực Ngoài ra, thanh ghi trạng thái SREG sẽ không tự động lưu lại khi

tham gia một ngắt và khôi phụ lại khi trở về từ chương trình con phục vụ ngắt,

do đó nó phải được điều khiển bằng phần mềm

Các thanh ghi điều khiển ngắt của µC AT90S8535

Thanh ghi mặt nạ ngắt chung : GIMSK (General Interrupt Mask)

• Bit 7 - INT1 : Bit cho phép ngắt ngoài mức 1 (External Interrupt Request 1 Enable)

Khi bit INT1 được thiết lập và bit I trong thanh ghi trạng thái SREG được

thiết lập, thì chân yêu cầu ngắt mức 1 từ bên ngoài được cho phép Các bit

Trang 38

ISC11 và ISC10 trong thanh ghi điều khiển chung MCUCR sẽ xác định ngắt từ

bên ngoài được kích hoạt theo sườn lên hay sườn xuống hoặc theo mức nhận

biết của tín hiệu trên chân INT1 Sự kích hoạt trên chân này sẽ gây ra một yêu

cầu ngắt cho dù chân INT1 được cấu hình như một đầu ra Ngắt tương ứng của

một yêu cầu ngắt ngoài mức 1 được thực hiện từ địa chỉ $002 trong bộ nhớ

chương trình

• Bit 6 - INT0 : Bit cho phép ngắt ngoài mức 0 (External Interrupt Request 0 Enable)

Khi bit INT0 và bit I trong thanh ghi trạng thái SREG được thiết lập, thì

chân yêu cầu ngắt mức 0 từ bên ngoài được cho phép Các bit ISC01 và ISC00

trong thanh ghi điều khiển chung MCUCR sẽ xác định ngắt từ bên ngoài được

kích hoạt theo sườn lên hay sườn xuống hoặc theo mức nhận biết của tín hiệu

trên chân INT0 Sự kích hoạt trên chân này sẽ gây ra một yêu cầu ngắt cho dù

chân INT0 được cấu hình như một đầu ra Ngắt tương ứng của một yêu cầu ngắt

ngoài mức 0 được thực hiện từ địa chỉ $001 trong bộ nhớ chương trình

• Bit 5 0 : Reserved bits

Thanh ghi cờ ngắt chung : GIFR (General Interrupt Flag Register)

• Bit 7- INTF1 : Bit cờ ngắt ngoài mức 1 (External Interrupt Flag 1)

Khi một tín hiệu theo sườn hoặc một sự thay đổi mức logic trên chân INT1

sẽ gây ra một yêu cầu ngắt, bit INTF1 được thiếp lập Cờ này luôn được xoá khi

chân này được thiết lập cho các ngắt có mức yêu tiên thấp, do đó trạng thái của

một ngắt có mức ưu tiên thấp có thể được xác định bằng cách đọc bit này

Nếu bit I trong thanh ghi trạng thái SREG và bit INT1 trong thanh ghi mặt

nạ ngắt chung GIMSK được thiết lập, MCU sẽ nhẩy tới địa chỉ ngắt $002 Do

ngắt được tác động bởi tín hiệu sườn và sự thay đổi mức logic, cờ này được xoá

Trang 39

khi thủ tục ngắt được thực hiện, nó cũng có thể được xoá bởi việc ghi giá trị

logic 1 vào vị trí của cờ

• Bit 6 - INTF0 : Bit cờ ngắt ngoài mức 0 (External Interrupt Flag 0)

Khi một tín hiệu sườn hoặc một sự thay đổi logic trên chân INT0 gây ra

một yêu cầu ngắt, bit INTF0 được thiếp lập Cờ này luôn được xoá (0) khi chân

này được đặt cấu hình cho các ngắt có mức ưu tiên thấp, như vậy trạng thái của

một ngắt có mức ưu tiên thấp có thể được xác định bằng cách đọc bit này

Nếu bit I trong thanh ghi trạng thái SREG và bit INT1 trong thanh ghi mặt

nạ ngắt chung GIMSK được thiết lập, MCU sẽ nhẩy tới địa chỉ ngắt $001 Do

ngắt được tác động bởi tín hiệu sườn và sự thay đổi mức logic, cờ này được xoá

khi thủ tục ngắt được thực hiện, nó cũng có thể được xoá bởi việc ghi giá trị

logic 1 vào vị trí của cờ

Thanh ghi mặt nạ ngắt của các bộ Timer/Counter : TIMSK

• Bit 7 - OCIE2 : Bit cho phép ngắt so sánh bằng T/C2 (Timer/Counter2 Output

Compare Match Interrupt Enable) Khi bit OCIE2 được thiết lập và bit I trong thanh ghi trạng thái (SREG)

được thiết lập, ngắt so sánh bằng T/C2 được cho phép Ngắt tương ứng tại địa

chỉ $003 được thực hiện nếu xuất hiện một tín hiệu so sánh bằng trong T/C2 (tức

là, khi bit OFC2 được thiết lập trong thanh ghi cờ ngắt T/C [TIFR])

• Bit 6 - TOIE2 : Bit cho phép ngắt tràn T/C2 (Timer/Counter2 Overflow

Interrupt Enable) Khi bit TOIE2 được thiết lập và bit I trong thanh ghi trạng thái (SREG)

được thiết lập, ngắt tràn T/C2 được cho phép Ngắt tương ứng tại địa chỉ $004

được thực hiện nếu xuất hiện một tín hiệu tràn trong T/C2 (tức là, khi bit TOV2

được thiết lập trong thanh ghi cờ ngắt T/C [TIFR])

Trang 40

• Bit 5 - TICIE1 : Bit cho phép ngắt bắt sự kiện vào của T/C1 (Timer/Counter1

Input Capture Interrup Enable) Khi bit TICIE1 được thiết lập và bit I trong thanh ghi trạng thái (SREG)

được thiết lập, ngắt bắt sự kiện vào của T/C1 được cho phép Ngắt tương ứng tại

đại chỉ $005 được thực hiện nếu xuất hiện một sự kiện gây ra sự bắt tín hiệu trên

chân 20, PD6 (ICP) (tức là, khi bit ICF1 được thiết lập trong thanh ghi cờ ngắt

T/C [TIFR])

• Bit 4 - OCIE1A : Bit cho phép ngắt so sánh bằng A của T/C1 (Timer/Counter1

Output CompareA Match Interrupt Enable) Khi bit OCIE1A được thiết lập và bit I trong thanh ghi trạng thái được thiết

lập, ngắt so sánh bằng A của T/C1 được cho phép Ngắt tương ứng tại đại chỉ

$006 được thực hiện nếu xuất hiện một tín hiệu so sánh bằng A trong T/C1 (tức

là, khi bit OCF1A được thiết lập trong thanh ghi cờ ngắt T/C [TIFR])

• Bit 3 - OCIE1A : Bit cho phép ngắt so sánh bằng B của T/C1 (Timer/Counter1

Output CompareB Match Interrupt Enable) Khi bit OCIE1B được thiết lập và bit I trong thanh ghi trạng thái được thiết

lập, ngắt so sánh bằng B của T/C1 được cho phép Ngắt tương ứng tại địa chỉ

$007 được thực hiện nếu xuất hiện một tín hiệu so sánh bằnh B trong T/C1 (tức

là, khi bit OCF1B được thiết lập trong thanh ghi cờ ngắt T/C [TIFR])

• Bit 2 - TOIE1 : Bit cho phép ngắt tràn của T/C1 (Timer/Counter1 Overflow

Interrupt Enable)Khi bit TOIE1 được thiết lập và bit I trong thanh ghi trạng thái (SREG)

được thiết lập, ngắt tràn T/C1 được cho phép Ngắt tương ứng tại đại chỉ $008

được thực hiện nếu xuất hiện một tín hiệu tràn trong T/C1 (tức là, khi bit TOV1

được thiết lập trong thanh ghi cờ ngắt T/C [TIFR])

• Bit 1: Không sử dụng

• Bit 0 - TOIE0 : Bit cho phép ngắt tràn của T/C0 (Timer/Counter0 Overflow

Ngày đăng: 27/04/2013, 22:38

HÌNH ẢNH LIÊN QUAN

Hình 2.9: Hoạt động của ALU trong đơn chu kỳ đồng hồ - Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
Hình 2.9 Hoạt động của ALU trong đơn chu kỳ đồng hồ (Trang 27)
Bảng 2.20 : Lựa chọn bộ chia thời gian cho mạch Watchdog Timer - Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
Bảng 2.20 Lựa chọn bộ chia thời gian cho mạch Watchdog Timer (Trang 74)
Bảng 2.32 : Các chức năng xen kẽ của các chân cổng D - Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
Bảng 2.32 Các chức năng xen kẽ của các chân cổng D (Trang 110)
Hình 2.38 : Sơ đồ nguyên lý của bộ ADC chuyển đổi song song - Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
Hình 2.38 Sơ đồ nguyên lý của bộ ADC chuyển đổi song song (Trang 130)
Hỡnh 3.2 : Sơ đồ ghộp nối àC với module LCD - Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
nh 3.2 : Sơ đồ ghộp nối àC với module LCD (Trang 135)
3.3. Sơ đồ ghộp nối àC với module KeyPad. - Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
3.3. Sơ đồ ghộp nối àC với module KeyPad (Trang 136)
Hỡnh 3.4 : Sơ đồ nối ghộp àC với LM335 - Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
nh 3.4 : Sơ đồ nối ghộp àC với LM335 (Trang 138)
Hình 4.6 : Lưu đồ chương trình con phục vụ ngắt END_CONVERT - Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
Hình 4.6 Lưu đồ chương trình con phục vụ ngắt END_CONVERT (Trang 150)
Hình 4.9 : Lưu đồ chương trình con DISPLAY_TEMPR_TO_LCD - Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
Hình 4.9 Lưu đồ chương trình con DISPLAY_TEMPR_TO_LCD (Trang 153)
Hình 4.10 : Lưu đồ ngắt SCAN_CODE giải mã ma trận bàn phím - Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
Hình 4.10 Lưu đồ ngắt SCAN_CODE giải mã ma trận bàn phím (Trang 155)
Hình 4.12 : Lưu đồ chương trình DISPLAY_KEY - Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
Hình 4.12 Lưu đồ chương trình DISPLAY_KEY (Trang 158)
Hình 4.13 : Lưu đồ chương trình FIND_ASCII_CODE - Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
Hình 4.13 Lưu đồ chương trình FIND_ASCII_CODE (Trang 159)
Hình 4.15 : Lưu đồ chương trình CONTROL_KEY - Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
Hình 4.15 Lưu đồ chương trình CONTROL_KEY (Trang 163)
Hình 4.16 : Lưu đồ ngắt Rx_COMPELET - Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
Hình 4.16 Lưu đồ ngắt Rx_COMPELET (Trang 164)
Hình 5.1 : Sơ đồ khối chương trình viết trên PC - Nghiên cứu ứng dụng của bộ vi xử lý trong quản lý thư viện trường tiểu học Kim Đồng
Hình 5.1 Sơ đồ khối chương trình viết trên PC (Trang 167)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w