Professional Documents
Culture Documents
Chương 10
Chương 10
Phần IV
Hệ thống vi xử lý
Machine Translated by Google
Chương 10 Bộ vi xử lý và vi điều
khiển
Mục tiêu
Mục tiêu của chương này là sau khi nghiên cứu nó, người đọc có thể: •Mô tả cấu trúc cơ bản của
hệ thống vi xử lý. •Mô tả kiến trúc của các bộ vi xử lý thông thường
và cách chúng có thể được kết hợp trong đó
các hệ thống vi xử lý.
•Mô tả cấu trúc cơ bản của bộ vi điều khiển và cách các thanh ghi của chúng có thể được thiết lập để thực hiện
nhiệm vụ.
•Giải thích cách chương trình có thể được phát triển bằng cách sử dụng lưu đồ và mã giả.
10.2 Hệ thống vi xử
Các hệ thống sử dụng bộ vi xử lý về cơ bản có ba phần: bộ xử lý trung
lý
tâm (CPU) để nhận biết và thực hiện các hướng dẫn chương trình (đây là
phần sử dụng bộ vi xử lý), giao diện đầu vào và đầu ra để xử lý giao tiếp
giữa bộ vi xử lý và thế giới bên ngoài (thuật ngữ cổng được sử dụng cho
giao diện) và bộ nhớ để
Machine Translated by Google
được gửi riêng cùng Xe buýt không sử dụng truyền nối tiếp
dây dẫn riêng của nó với tất cả các bit của một từ được gửi đi
Ký ức Ký ức Đầu vào/
bộ xử lý 5.3.4
Đầu vào
Hải cảng
Bus dữ liệu
Hình 10.1 Hình dạng chung của hệ thống vi xử lý và các bus của nó. Tất cả các thành phần chia sẻ cùng
một bus dữ liệu và bus địa chỉ. Sự sắp xếp này được gọi là kiến trúc von Neumann.
giữ các hướng dẫn chương trình và dữ liệu. Hình 10.1 minh họa cách bố trí chung của
một hệ thống vi xử lý.
Bộ vi xử lý có bộ nhớ và các cách sắp xếp đầu vào/đầu ra khác nhau trên cùng một
chip được gọi là bộ vi điều khiển.
10.2.1Xe buýt
Tín hiệu số di chuyển từ phần này sang phần khác dọc theo đường dẫn gọi là bus.
Bus, theo nghĩa vật lý, chỉ là một số dây dẫn song song dọc theo đó các tín hiệu điện
có thể được truyền đi và là các đường dẫn có thể được chia sẻ bởi tất cả các chip
trong hệ thống. Điều này là do nếu sử dụng các kết nối riêng biệt giữa các chip thì
sẽ có rất nhiều dây dẫn kết nối. Sử dụng bus kết nối dùng chung có nghĩa là khi một
chip đưa dữ liệu lên bus, các chip khác phải đợi đến lượt cho đến khi quá trình
truyền dữ liệu hoàn tất trước khi một trong số chúng có thể đưa dữ liệu của nó lên
bus.
Thông thường, một bus có 16 hoặc 32 kết nối song song để mỗi kết nối có thể mang đồng
thời 1 bit của từ dữ liệu. Điều này cho phép truyền tải nhanh hơn so với kết nối nối
tiếp trong đó toàn bộ một từ được gửi theo một chuỗi bit dọc theo một dây dẫn.
1 bus dữ liệu
Dữ liệu liên quan đến chức năng xử lý của CPU được truyền bởi bus dữ liệu. Vì
vậy, nó được sử dụng để vận chuyển một từ đến hoặc đi từ CPU và bộ nhớ hoặc các
giao diện đầu vào/đầu ra. Mỗi dây trong bus mang tín hiệu nhị phân, tức là 0 hoặc
1. Do đó, với bus bốn dây, chúng ta có thể có
Machine Translated by Google
Từ 1010 được mang, mỗi bit được mang bởi một dây riêng biệt trong bus, như:
Từ Dây xe buýt
Bus dữ liệu càng có nhiều dây thì độ dài từ có thể được sử dụng càng dài.
Phạm vi giá trị mà một mục dữ liệu có thể có bị giới hạn ở phạm vi giá trị
có thể được biểu thị bằng độ dài từ. Do đó, với một từ có độ dài 4 bit thì
số giá trị là 24 5 16. Do đó, nếu dữ liệu được gửi đi, chẳng hạn như nhiệt
độ, thì phạm vi nhiệt độ có thể có phải được chia thành 16 đoạn nếu chúng
ta muốn biểu diễn điều đó phạm vi bằng một từ 4 bit.
Bộ vi xử lý sớm nhất là thiết bị 4 bit (độ dài từ) và bộ vi xử lý 4 bit như
vậy vẫn được sử dụng rộng rãi trong các thiết bị như đồ chơi, máy giặt và
bộ điều khiển hệ thống sưởi trung tâm trong gia đình. Tiếp theo là các bộ
vi xử lý 8 bit, ví dụ như Motorola 6800, Intel 8085A và Zilog Z80. Hiện nay
đã có sẵn bộ vi xử lý 16 bit, 32 bit và 64 bit; tuy nhiên, bộ vi xử lý 8 bit
vẫn được sử dụng rộng rãi cho bộ điều khiển.
Bus địa chỉ mang các tín hiệu cho biết nơi tìm thấy dữ liệu và do đó lựa
chọn các vị trí bộ nhớ hoặc cổng đầu vào hoặc đầu ra nhất định. Mỗi vị trí
lưu trữ trong thiết bị bộ nhớ có một mã nhận dạng duy nhất, được gọi là địa
chỉ của nó, để hệ thống có thể chọn một lệnh hoặc mục dữ liệu cụ thể trong
bộ nhớ. Mỗi giao diện đầu vào/đầu ra cũng có một địa chỉ. Khi một địa chỉ cụ
thể được chọn theo địa chỉ của nó được đặt trên bus địa chỉ, chỉ vị trí đó
mới được mở cho các liên lạc từ CPU. Do đó, CPU chỉ có thể giao tiếp với một
vị trí tại một thời điểm. Một máy tính có bus dữ liệu 8 bit thường có bus
địa chỉ rộng 16 bit, tức là 16 dây. Kích thước bus địa chỉ này cho phép đánh
địa chỉ 216 vị trí; 216 là 65536 vị trí và thường được viết là 64K, trong
đó K bằng 1024. Bộ nhớ có thể được xử lý càng nhiều thì khối lượng dữ liệu
có thể được lưu trữ càng lớn và các chương trình có thể được sử dụng càng
lớn và phức tạp hơn.
Các tín hiệu liên quan đến hoạt động điều khiển được truyền bởi bus điều
khiển. Ví dụ, bộ vi xử lý cần thông báo cho các thiết bị bộ nhớ xem chúng sẽ
đọc dữ liệu từ thiết bị đầu vào hay ghi dữ liệu vào thiết bị đầu ra. Thuật
ngữ READ được sử dụng để nhận tín hiệu và VIẾT để gửi tín hiệu. Bus điều
khiển cũng được sử dụng để mang tín hiệu đồng hồ hệ thống; chúng nhằm đồng
bộ hóa tất cả các hoạt động của hệ thống vi xử lý. Đồng hồ là một bộ dao động
được điều khiển bằng tinh thể và tạo ra các xung đều đặn.
10.2.2Bộ vi xử lý
Bus dữ liệu
Chỉ dẫn
Lá cờ Cây rơm Tổng quan Chương trình
Tích lũy
bộ giải mã
quầy tính tiền
sổ đăng ký con trỏ sổ đăng ký
và đăng ký
đơn vị
Sau đây là chức năng của các bộ phận cấu thành của bộ vi xử lý.
2 thanh ghi
Dữ liệu bên trong mà CPU hiện đang sử dụng được giữ tạm thời trong một
nhóm thanh ghi trong khi các lệnh đang được thực thi. Đây là các vị trí
bộ nhớ trong bộ vi xử lý và được sử dụng để lưu trữ thông tin liên
quan đến việc thực hiện chương trình. Một bộ vi xử lý sẽ chứa một nhóm
các thanh ghi, mỗi loại thanh ghi có một chức năng khác nhau.
3 Bộ điều khiển
Có một số loại thanh ghi, số lượng, kích thước và loại thanh ghi khác nhau
tùy theo bộ vi xử lý. Sau đây là các loại sổ đăng ký phổ biến.
địa chỉ của từ bộ nhớ cần thiết bằng cách sử dụng bus địa chỉ. Khi điều này được
thực hiện, các lệnh hoặc dữ liệu được yêu cầu có thể được đọc vào CPU bằng bus dữ
liệu. Vì chỉ có thể đánh địa chỉ một vị trí bộ nhớ cùng một lúc nên bộ nhớ tạm thời
phải được sử dụng khi các số được kết hợp chẳng hạn. Ví dụ, ngoài việc cộng hai số,
một trong các số đó được lấy từ một địa chỉ và được đặt vào thanh ghi tích lũy trong
khi CPU lấy số còn lại từ địa chỉ bộ nhớ kia. Sau đó, hai số có thể được xử lý bởi
phần số học và logic của CPU. Kết quả sau đó được chuyển trở lại thanh ghi tích lũy.
Do đó, thanh ghi tích lũy là một thanh ghi lưu giữ tạm thời để dữ liệu được xử lý
bởi đơn vị số học và logic, đồng thời, sau khi thực hiện thao tác, là thanh ghi để
lưu giữ kết quả. Do đó, nó tham gia vào tất cả các hoạt động truyền dữ liệu liên
quan đến việc thực hiện các phép toán số học và logic.
2 Thanh ghi trạng thái, hoặc thanh ghi cờ thanh ghi mã điều kiện
Nó chứa thông tin liên quan đến kết quả của quá trình mới nhất được thực hiện trong
đơn vị số học và logic. Nó chứa các bit riêng lẻ với mỗi bit có ý nghĩa đặc biệt.
Các bit được gọi là cờ. Trạng thái của hoạt động mới nhất được biểu thị bằng mỗi cờ
với mỗi cờ được đặt hoặc đặt lại để biểu thị một trạng thái cụ thể. Ví dụ: chúng có
thể được sử dụng để cho biết liệu thao tác cuối cùng có dẫn đến kết quả âm tính, kết
quả bằng 0, xuất hiện đầu ra mang hay không (ví dụ: tổng của hai số nhị phân như
1010 và 1100 là (1)0110 có thể lớn hơn kích thước từ của bộ vi xử lý và do đó có số
1), xảy ra tràn hoặc chương trình được phép dừng để cho phép xảy ra sự kiện bên
ngoài. Sau đây là những lá cờ phổ biến:
TÔI
Ngắt bị bỏ qua Ngắt được xử lý bình thường
Để minh họa, hãy xem xét trạng thái của các cờ Z, N, C và V cho thao tác cộng
các số hex 02 và 06. Kết quả là 08. Vì nó khác 0 nên Z là 0. Kết quả là dương, nên
N là 0. Không có nhớ nên C là 0. Kết quả không dấu nằm trong phạm vi từ 2128 đến 1127
và do đó không có tràn và V là 0. Bây giờ hãy xem xét các cờ khi số hex được thêm
vào là F9 và 08. Kết quả là (1)01. Kết quả không bằng 0 nên Z bằng 0.
Vì nó là dương nên N là 0. Kết quả không dấu có giá trị mang và do đó C là 1. Kết
quả không dấu nằm trong phạm vi từ 2128 đến 1127 và do đó V là 0.
3 Thanh ghi bộ đếm chương trình (PC) hoặc con trỏ lệnh (IP)
Đây là thanh ghi được sử dụng để cho phép CPU theo dõi vị trí của nó trong một
chương trình. Thanh ghi này chứa địa chỉ của vị trí bộ nhớ chứa lệnh chương trình
tiếp theo. Khi mỗi lệnh được thực thi, thanh ghi bộ đếm chương trình được cập nhật
để chứa địa chỉ của vị trí bộ nhớ nơi lưu trữ lệnh thực thi tiếp theo. Bộ đếm
chương trình được tăng lên mỗi lần để CPU thực hiện các lệnh một cách tuần tự trừ
khi một lệnh, chẳng hạn như JUMP hoặc BRANCH, thay đổi bộ đếm chương trình ra khỏi
chuỗi đó.
Machine Translated by Google
ghi địa chỉ bộ nhớ. Dữ liệu tại địa chỉ này sau đó được thêm vào dữ liệu trong
bộ tích lũy. Kết quả sau đó được lưu trữ ở một vị trí bộ nhớ được đánh địa chỉ
bởi thanh ghi địa chỉ bộ nhớ.
trong các hoạt động liên quan đến việc chuyển giữa các thanh ghi khác.
Số lượng và hình thức của các thanh ghi phụ thuộc vào bộ vi xử lý có liên quan. Ví
dụ, bộ vi xử lý Motorola 6800 (Hình 10.3) có hai thanh ghi tích lũy, một thanh ghi
trạng thái, một thanh ghi chỉ mục, một thanh ghi con trỏ ngăn xếp và một thanh ghi
bộ đếm chương trình. Thanh ghi trạng thái có các bit cờ để hiển thị âm, 0, mang,
tràn, nửa mang và ngắt. Motorola 6802 cũng tương tự nhưng có một lượng RAM nhỏ và
bộ tạo xung nhịp tích hợp.
Bộ vi xử lý Intel 8085A là sự phát triển của bộ xử lý 8080 trước đó; 8080 yêu
cầu một bộ tạo xung nhịp bên ngoài, trong khi 8085A có bộ tạo xung nhịp tích hợp.
Các chương trình viết cho 8080 có thể chạy trên 8085A. 8085A có sáu thanh ghi đa
năng B, C, D, E, H và L, một con trỏ ngăn xếp, một bộ đếm chương trình, một thanh
ghi cờ và hai thanh ghi tạm thời. Các thanh ghi đa năng có thể được sử dụng làm sáu
thanh ghi 8 bit hoặc theo cặp BC, DE và HL làm ba thanh ghi 16 bit. Hình 10.4 thể
hiện sơ đồ khối của kiến trúc.
Như sẽ thấy rõ trong Hình 10.3 và Hình 10.4, bộ vi xử lý có một loạt các đầu vào
và đầu ra điều khiển và định thời. Chúng cung cấp đầu ra khi bộ vi xử lý thực hiện
một số hoạt động và đầu vào nhất định để tác động đến các hoạt động điều khiển. Ngoài
ra còn có các đầu vào liên quan đến điều khiển ngắt. Chúng được thiết kế để cho phép
hoạt động của chương trình bị gián đoạn do một số sự kiện bên ngoài.
10.2.3Bộ nhớ
Bộ nhớ trong hệ thống vi xử lý lưu trữ dữ liệu nhị phân và có dạng một hoặc nhiều
mạch tích hợp. Dữ liệu có thể là mã lệnh chương trình hoặc số đang được vận hành.
Machine Translated by Google
bộ vi xử lý
CÀI LẠI 40
Con Con
NMI ngắt không thể che dấu
Chỉ dẫn
TẠM DỪNG LẠI 6 2 trỏ ngăn xếp trỏ ngăn xếp
giải mã
Yêu cầu ngắt IRQ và
TSC điều khiển ba trạng thái 4 39 thanh thanh
kiểm soát
Bus dữ liệu kích hoạt DBE 36 ghi chỉ mục ghi chỉ mục
Có xe buýt BA
7 5 Tích lũy
Địa chỉ bộ nhớ hợp lệ VMA
MỘT
Đọc/ghi R/W 34
Kích thước của bộ nhớ được xác định bởi số lượng dây trong bus địa chỉ. Các phần tử
bộ nhớ trong một đơn vị về cơ bản bao gồm một số lượng lớn các ô lưu trữ với mỗi ô có
khả năng lưu trữ bit 0 hoặc 1. Các ô lưu trữ được nhóm lại thành các vị trí, mỗi vị
trí có khả năng lưu trữ một từ. Để truy cập từ được lưu trữ, mỗi vị trí được xác định
bằng một địa chỉ duy nhất.
Do đó, với bus địa chỉ 4 bit, chúng ta có thể có 16 địa chỉ khác nhau, mỗi địa chỉ có
thể lưu trữ 1 byte, tức là một nhóm 8 bit (Hình 10.5).
Kích thước của đơn vị bộ nhớ được chỉ định theo số lượng vị trí lưu trữ có sẵn;
1K có 210 5 1024 vị trí và do đó bộ nhớ 4K có
4096 địa điểm.
1 ROM Đối
với dữ liệu được lưu trữ vĩnh viễn, một thiết bị bộ nhớ gọi là bộ nhớ chỉ đọc (ROM)
được sử dụng. ROM được lập trình với các nội dung cần thiết trong quá trình sản xuất
mạch tích hợp. Sau đó, không có dữ liệu nào có thể được ghi vào bộ nhớ này khi chip
bộ nhớ vẫn còn trong máy tính. Dữ liệu chỉ có thể được đọc và sử dụng cho các chương
trình cố định như hệ điều hành máy tính và các chương trình dành cho ứng dụng bộ vi
xử lý chuyên dụng. Họ không bị mất trí nhớ khi mất điện
Machine Translated by Google
Bus dữ liệu
Đăng ký B Đăng ký C
+5V bộ giải mã
Đăng ký H Đăng ký L
40 và mã
APU
hóa Con trỏ ngăn xếp
20
GND chu trình máy Bộ đếm chương trình
Tăng/giảm
Đầu vào từ
tinh
thể 1
Thời gian và kiểm soát
2 DMA Bộ đệm địa chỉ Bộ đệm dữ liệu/địa chỉ
Điều khiển Trạng thái Cài lại
địa chỉ và dữ liệu. RESET OUT cho AD0–AD7 truyền các bit có ý nghĩa nhỏ
thấp trong quá
nhất của địa chỉ khi ALE ở mức
trình hoạt động HLDA được sử dụng biết nó đang
cao và dữ liệu ở mức thấp
ghi IO/M, S0 và S1 là các tín để hiển thị tín hiệu được thiết lập lại
viễn. Khi liên kết nóng chảy đã được mở, dữ liệu sẽ được lưu trữ vĩnh
1111
viễn trong bộ nhớ và không thể thay đổi thêm.
Hình 10.5 Kích thước bus địa chỉ.
3 EPROM
Thuật ngữ ROM có thể xóa và lập trình được (EPROM) được sử dụng cho
các ROM có thể được lập trình và nội dung của chúng bị thay đổi. Một
chip EPROM điển hình chứa một loạt các mạch điện tử nhỏ, các tế bào,
có thể lưu trữ điện tích. Chương trình được lưu trữ bằng cách cấp
điện áp vào các chân kết nối mạch tích hợp và tạo ra mô hình điện tích
Machine Translated by Google
òl
D
d
òl
D
d
ni
ữ
ni
ữ
gệ
gệ
u
u
òcD
đ
òc
D
đ
nhị
nh
ị
gỉ
a
gỉ
a
Đọc
(Một) (b)
và các tế bào không tích điện. Họa tiết này vẫn tồn tại vĩnh viễn trong
chip cho đến khi bị xóa đi bằng cách chiếu tia cực tím qua cửa sổ thạch
anh trên đỉnh thiết bị. Điều này làm cho tất cả các tế bào bị thải ra. Con
chip sau đó có thể được lập trình lại. Intel 2716 EPROM có 11 chân địa
chỉ và một chân kích hoạt chip duy nhất hoạt động khi ở mức thấp.
4 EEPROM
PROM xóa được bằng điện (EEPROM) tương tự như EPROM. Xóa bằng cách sử
dụng điện áp tương đối cao thay vì sử dụng tia cực tím.
5 RAM
Dữ liệu tạm thời, tức là dữ liệu hiện đang được vận hành, được lưu trữ ở dạng đọc/
bộ nhớ ghi được gọi là bộ nhớ truy cập ngẫu nhiên (RAM). Bộ nhớ như vậy
có thể được đọc hoặc ghi vào. Hình 10.6(b) hiển thị các kết nối chân điển
hình cho chip RAM 1K 3 8 bit. Chip RAM Motorola 6810 có bảy chân địa chỉ
và sáu chân chọn chip, trong đó bốn chân hoạt động khi ở mức thấp và hai
chân hoạt động khi ở mức cao và tất cả phải được kích hoạt đồng thời để
kích hoạt RAM.
Khi ROM được sử dụng để lưu trữ chương trình thì chương trình đó sẽ sẵn
sàng và sẵn sàng để sử dụng khi hệ thống được bật. Các chương trình được
lưu trữ trong ROM được gọi là phần sụn. Một số phần sụn phải luôn có sẵn.
Khi RAM được sử dụng để lưu trữ chương trình thì các chương trình đó được
gọi là phần mềm. Khi hệ thống được bật, phần mềm có thể được tải vào RAM từ
một số thiết bị ngoại vi khác như bàn phím hoặc đĩa cứng, đĩa mềm hoặc CD.
10.2.4Đầu vào/đầu ra
Hoạt động đầu vào/đầu ra được định nghĩa là việc truyền dữ liệu giữa bộ vi
xử lý và thế giới bên ngoài. Thuật ngữ thiết bị ngoại vi
được sử dụng cho các thiết bị trao đổi dữ liệu với hệ thống vi xử lý. Vì tốc
độ và đặc tính của các thiết bị ngoại vi có thể khác biệt đáng kể so với tốc
độ của bộ vi xử lý nên chúng được kết nối thông qua các chip giao diện. Do
đó, chức năng chính của chip giao diện là đồng bộ hóa việc truyền dữ liệu
giữa bộ vi xử lý và thiết bị ngoại vi. Trong đầu vào
Machine Translated by Google
hoạt động thiết bị đầu vào đặt dữ liệu vào thanh ghi dữ liệu của chip giao diện; cái
này giữ dữ liệu cho đến khi nó được bộ vi xử lý đọc. Trong các hoạt động đầu ra, bộ
vi xử lý sẽ đặt dữ liệu vào thanh ghi cho đến khi thiết bị ngoại vi đọc được.
Để bộ vi xử lý nhập dữ liệu hợp lệ từ thiết bị đầu vào, nó cần chắc chắn rằng
chip giao diện đã chốt dữ liệu đầu vào một cách chính xác. Nó có thể làm điều này
bằng cách bỏ phiếu hoặc gián đoạn. Với việc bỏ phiếu, chip giao diện sử dụng bit
trạng thái được đặt thành 1 để cho biết khi nào nó có dữ liệu hợp lệ. Bộ vi xử lý
tiếp tục kiểm tra chip giao diện cho đến khi phát hiện bit trạng thái là 1. Vấn đề
với phương pháp này là bộ vi xử lý phải đợi bit trạng thái này hiển thị. Với phương
pháp ngắt, chip giao diện sẽ gửi tín hiệu ngắt đến bộ vi xử lý khi có dữ liệu hợp
lệ; sau đó bộ vi xử lý sẽ tạm dừng việc thực thi chương trình chính của nó và thực
hiện quy trình liên quan đến ngắt để đọc dữ liệu.
10.2.5Ví dụ về hệ thống
Đầu ra ALE (cho phép chốt địa chỉ) cung cấp đầu ra cho phần cứng bên ngoài để cho
biết khi nào các dòng AD0–AD7 chứa địa chỉ và khi chúng chứa dữ liệu. Khi ALE
được đặt ở mức cao, nó sẽ kích hoạt chốt và các dòng A0–A7 chuyển phần dưới của
địa chỉ tới nơi nó được chốt. Do đó, khi ALE thay đổi và trở về mức thấp, để dữ
liệu có thể được xuất ra từ bộ vi xử lý, phần địa chỉ này vẫn được chốt trong
74LS373. Phần cao hơn của địa chỉ được gửi qua A8–A15 và luôn hợp lệ, còn phần
địa chỉ đầy đủ được cung cấp bởi phần dưới từ chốt và phần trên từ bus địa chỉ
của bộ vi xử lý.
74LS138 là bộ giải mã 3 dòng đến 8 dòng và cung cấp mức hoạt động ở mức thấp
ở một trong tám đầu ra của nó; đầu ra được chọn phụ thuộc vào tín hiệu trên
ba đường đầu vào A, B và C. Trước khi có thể thực hiện lựa chọn như vậy, nó
phải được bật bằng cách bật 1 và bật 2 ở mức thấp và bật 3 ở mức cao.
3 EPROM
Các bit địa chỉ A11, A12, A13 và A14 được sử dụng để chọn thiết bị nào sẽ được
đánh địa chỉ. Điều này để lại các bit địa chỉ trên A0–A10 cho địa chỉ.
Do đó EPROM có thể có 211 5 2048 địa chỉ. Đây là kích thước của Intel 2716 EPROM.
EPROM được chọn bất cứ khi nào bộ vi xử lý đọc địa chỉ từ 0000 đến 07FF và xuất
nội dung 8 bit của nó tới bus dữ liệu thông qua O0–O7. Đường kích hoạt đầu ra OE
được kết nối với đầu ra đọc của bộ vi xử lý để đảm bảo rằng EPROM chỉ được ghi
vào.
4 RAM
Hai chip RAM được hiển thị là đang được sử dụng, mỗi chip có kích thước 1K 3
4. Chúng cùng nhau cung cấp bộ nhớ cho tín hiệu rộng 8 bit. Cả hai chip đều sử dụng
Machine Translated by Google
là ký hiệu dùng để
7 E3
6 E2 IO/M WR
biểu thị sự đảo ngược, do đó
5 E1 A14
được sử dụng để chỉ ra
Địa chỉ 4
rằng cần có tín bộ giải mã 3 A15
cổng HOẶC
hiệu thấp A A11
2
để kích hoạt phản hồi
1 B A12
C A13
Ký hiệu này
Địa chỉ 0000–07FF
được sử dụng để biểu
CS A0 A0
A9 A9
ĐẬP
Vào/ra WR
D0–D3 CHÚNG TÔI
I/O4
Địa chỉ 2000–23FF
CS A0 A0
A9 A9
ĐẬP
Vào/ra WR
D4–D7 CHÚNG TÔI
I/O4
cùng các bit địa chỉ A0–A9 để lựa chọn bộ nhớ với một chip cung cấp dữ liệu
D0–D3 và chip còn lại D4–D7. Với 10 bit địa chỉ chúng ta có
210 5 1024 địa chỉ khác nhau 2000 đến 23FF. Đầu vào WE cho phép ghi được RAM
sử dụng để xác định xem RAM đang được ghi vào hay đọc. Nếu nó ở mức thấp thì
địa chỉ RAM đã chọn sẽ được ghi vào và nếu ở mức cao thì nó đang được đọc.
5 Bộ đệm đầu
vào Bộ đệm đầu vào 74LS244 được thiết lập để truyền giá trị nhị phân của đầu
vào qua bus dữ liệu bất cứ khi nào OE1 và OE2 ở mức thấp. Nó được truy cập
tại bất kỳ địa chỉ nào từ 2800 đến 2FFF, do đó chúng ta có thể sử dụng địa
chỉ 2800. Bộ đệm dùng để đảm bảo rằng các đầu vào áp đặt rất ít tải lên bộ vi xử lý.
Machine Translated by Google
6 Chốt đầu ra
74LS374 là chốt đầu ra. Nó chốt đầu ra của bộ vi xử lý để các thiết bị đầu
ra có thời gian đọc nó trong khi bộ vi xử lý có thể tiếp tục thực hiện các
lệnh khác trong chương trình của nó. Chốt đầu ra được cung cấp một dải
địa chỉ từ 3800 đến 3FFF và do đó có thể được xử lý bằng cách sử dụng 3800.
Hình 10.8 cho thấy một ví dụ về hệ thống dựa trên việc sử dụng bộ vi xử lý
Motorola 6800 và chỉ có một chip RAM, một chip ROM và đầu vào/đầu ra có thể
lập trình. Không cần giải mã địa chỉ với hệ thống này vì số lượng thiết bị
liên quan ít. Đối với đầu vào/đầu ra song song, bộ điều hợp giao diện ngoại
vi (PIA) (xem Phần 13.4) được sử dụng và đối với đầu vào/đầu ra nối tiếp, bộ
điều hợp giao diện không đồng bộ được sử dụng
NMI R/W
A0 VMA
A15
A0–A9 A0
liệu
A9
Bus
E E
A14
dữ
E E
A0–A6 A0
A6
A15
E
Đồng hồ 2
A14
E ĐẬP E
E E
R/W
E R/W
A0
RS0 DB0
A1 DB7
RS1
A2 Đồng hồ 2
ýh
tỉ
a ec
u
ị X
b
đ
CS0 E
A14 PIA RES CÀI LẠI
CS1
R/W R/W
A15
CS2
IRQA Ngắt
IRQB
PACA1, 2 PB CB1, 2
Rs DB0
DB7
CS0 Đồng hồ 2
E
CS1
R/W
CS2
IRQ
TX RX CTS RTSDCD
(ACIA) (xem Phần 13.5) được sử dụng. Chúng có thể được lập trình để xử lý
cả đầu vào và đầu ra và cung cấp bộ đệm cần thiết.
1 RAM
Các dòng địa chỉ A14 và A15 được kết nối với đầu vào kích hoạt của chip
RAM. Khi cả hai dòng này đều ở mức thấp thì chip RAM sẽ giao tiếp với bộ
vi xử lý.
2 ROM
Các dòng địa chỉ A14 và A15 được kết nối với các đầu vào cho phép của
chip ROM và khi tín hiệu trên cả hai dòng này ở mức cao thì chip ROM được
định địa chỉ.
3 Đầu vào/đầu ra
Các dòng địa chỉ A14 và A15 được kết nối với đầu vào kích hoạt của PIA
và ACIA. Khi tín hiệu trên đường 15 ở mức thấp và tín hiệu trên A14 ở
mức cao thì giao diện đầu vào/đầu ra sẽ được xử lý. Để cho biết thiết bị
nào đang được bật, dòng địa chỉ A2 được lấy ở mức cao đối với PIA và
dòng địa chỉ A3 được lấy ở mức cao đối với ACIA.
Ký ức
Cái đồng hồ
rom
CPU ĐẬP
Điều khiển
dòng EPROM/
EEPROM
ul
si
uệữ B
d
đầu ra được nhóm thành các đơn vị gọi là cổng đầu vào/đầu ra. Thông
thường các cổng như vậy có tám dòng để có thể truyền một từ dữ liệu 8 bit.
Hai cổng có thể được sử dụng cho một từ 16 bit, một cổng để truyền 8 bit thấp
hơn và cổng còn lại truyền 8 bit trên. Các cổng chỉ có thể là đầu vào, chỉ đầu
ra hoặc có thể lập trình thành đầu vào hoặc đầu ra.
Motorola 68HC11, Intel 8051 và PIC16C6x/7x là những ví dụ về bộ vi
điều khiển 8 bit trong đó đường dẫn dữ liệu rộng 8 bit. Motorola 68HC16
là một ví dụ về bộ vi điều khiển 16 bit và Motorola 68300 là bộ vi điều
khiển 32 bit. Bộ vi điều khiển có số lượng ROM và RAM hạn chế và được
sử dụng rộng rãi cho các hệ thống điều khiển nhúng. Hệ thống vi xử lý có
bộ nhớ và chip đầu vào/đầu ra riêng biệt phù hợp hơn với việc xử lý
thông tin trong hệ thống máy tính.
Motorola cung cấp hai họ vi điều khiển 8 bit cơ bản, 68HC05 là lõi rẻ
tiền và 68HC11 là lõi hiệu suất cao hơn.
Dòng Motorola M68HC11 (Hình 10.10), dựa trên bộ vi xử lý Motorola 6800,
được sử dụng rất rộng rãi cho các hệ thống điều khiển.
Lưu ý rằng bộ vi điều khiển này được Motorola giới thiệu và hiện được
sản xuất bởi Freescale Semiconductor.
Có một số phiên bản của họ này, sự khác biệt là do sự khác biệt về
RAM, ROM, EPROM, EEPROM và các tính năng đăng ký cấu hình. Ví dụ: một
phiên bản (68HC11A8) có ROM 8K,
Bộ dao động
Kiểm soát chế độ Logic ngắt
Logic đồng hồ EPROM
POC
EEPROM
CPU
ĐẬP
tn
h gk
ắỳ
ị N
đ
hẹn giờ
giao diện
VRH
Nhấp nháy và bắt tay I/O song song
V. RL
ADC
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 5 4 3 2 1 0 7 6 5 4 3 2 1 0
BRTS
RTS
EEPROM 512 byte, RAM 256 byte, hệ thống hẹn giờ 16 bit, giao diện ngoại vi nối tiếp đồng bộ,
giao diện truyền thông nối tiếp không trở về 0 không đồng bộ, 8 kênh, 8 bit tương tự sang
kỹ thuật số ( Bộ chuyển đổi A/D (ADC) cho đầu vào tương tự và năm cổng A, B, C, D và E.
1 cổng A
Cổng A chỉ có ba đường vào, chỉ có bốn đường ra và một đường có thể đóng vai trò là đầu
vào hoặc đầu ra. Thanh ghi dữ liệu cổng A có địa chỉ $1000 (Hình 10.11) với thanh ghi
điều khiển tích lũy xung (Hình 10.12) tại địa chỉ $1026 được sử dụng để điều khiển chức
năng của từng bit trong cổng A. Cổng này cũng cung cấp quyền truy cập vào bộ định thời bên
trong của cổng A. vi điều khiển, các bit PAMOD, PEDGE, RTR1 và RTRO điều khiển bộ tích
Hình 10.11 Thanh ghi cổng A. Thanh ghi dữ liệu cổng A $1000
Bit 7 6 5 4 3 2 1 0
DDRA7 Đặt là 0 cho đầu vào và 1 cho đầu ra PAMOD RTR100 RTRO
2 cổng B
Cổng B chỉ là đầu ra và có tám đường đầu ra (Hình 10.13). Dữ liệu đầu vào không thể được
đặt trên các chân của cổng B. Thanh ghi dữ liệu của nó có địa chỉ $1004 và để xuất dữ
Hình 10.13 Thanh ghi cổng B. Thanh ghi dữ liệu cổng B $1004
Bit 7 6 5 4 3 2 1 0
3 cổng C
Cổng C có thể là đầu vào hoặc đầu ra, dữ liệu được ghi hoặc đọc từ thanh ghi dữ liệu của
nó tại địa chỉ $1003 (Hình 10.14). Hướng của nó được điều khiển bởi thanh ghi hướng dữ
liệu cổng tại địa chỉ $1007. 8 bit trong thanh ghi này tương ứng với các bit riêng lẻ
trong cổng C và xác định xem các đường này là đầu vào hay đầu ra; khi bit thanh ghi
hướng dữ liệu được đặt thành 0 thì nó là đầu vào và khi được đặt thành 1 thì nó là đầu
ra. Các đường STRA và STRB (khi hoạt động ở chế độ chip đơn) được liên kết với các cổng
B và C và được sử dụng để tạo tín hiệu bắt tay với các cổng đó. Những dòng điều khiển
như vậy
Hình 10.14 Các thanh ghi cổng C. Thanh ghi dữ liệu cổng C $1003 Thanh ghi hướng dữ liệu cổng C $1007
Bit 7 6 5 4 3 2 1 0 Bit 7 6 5 4 3 2 1 0
một đầu ra
Machine Translated by Google
thời gian truyền dữ liệu. Thanh ghi điều khiển đầu vào/đầu ra song song PIOC tại địa chỉ
$1002 chứa các bit để điều khiển chế độ bắt tay cũng như các cạnh phân cực và hoạt động
4 cổng D
Cổng D chỉ chứa sáu dòng; chúng có thể là đầu vào hoặc đầu ra và có thanh ghi dữ liệu tại
địa chỉ $1008 (Hình 10.15); các hướng được điều khiển bởi thanh ghi hướng dữ liệu cổng
tại địa chỉ $1009 với bit tương ứng được đặt thành 0 cho đầu vào và 1 cho đầu ra.
Cổng D cũng đóng vai trò kết nối với hai hệ thống con nối tiếp của bộ vi điều khiển. Giao
diện truyền thông nối tiếp là một hệ thống không đồng bộ cung cấp giao tiếp nối tiếp
tương thích với modem và thiết bị đầu cuối. Giao diện ngoại vi nối tiếp là một hệ thống
đồng bộ tốc độ cao được thiết kế để giao tiếp giữa bộ vi điều khiển và các thành phần
Hình 10.15 Các thanh ghi cổng D. Thanh ghi dữ liệu cổng D $1008 Thanh ghi hướng dữ liệu cổng D $1009
Chút 5 4 3 2 1 0 Chút 5 4 3 2 1 0
một đầu ra
5 cổng E
Cổng E là cổng chỉ đầu vào 8 bit (Hình 10.16) có thể được sử dụng làm cổng đầu vào đa
năng hoặc cho đầu vào tương tự vào ADC bên trong.
Hai đầu vào VRH và VRL cung cấp điện áp tham chiếu cho ADC.
Hình 10.16 Thanh ghi cổng E. Thanh ghi dữ liệu cổng E $100A
Bit 7 6 5 4 3 2 1 0
68HC11 có ADC bên trong; Các bit của cổng E 0, 1, 2, 3, 4, 5, 6 và 7 là các chân đầu
vào tương tự. Hai đường VRH và VLH cung cấp điện áp tham chiếu được sử dụng bởi ADC;
điện áp tham chiếu cao VRH không được thấp hơn VDD, tức là 5 V, và điện áp tham chiếu
thấp VLH không được thấp hơn VSS, tức là 0 V. ADC phải được bật trước khi có thể sử
dụng.
Điều này được thực hiện bằng cách thiết lập bit điều khiển bật nguồn A/D (ADPU) trong
thanh ghi OPTION (Hình 10.17), đây là bit 7. Bit 6 chọn nguồn xung nhịp cho ADC. Cần có
Chọn đồng hồ
cờ hoàn chỉnh
1 = chưa hoàn thành
chọn bit
NHIỀU = 0 NHIỀU = 1
Chuyển đổi A/D được bắt đầu bằng cách ghi vào thanh ghi trạng thái/điều khiển
A/D (ADCTL) sau khi bật nguồn và độ trễ ổn định (Hình 10.18). Điều này liên quan
đến việc lựa chọn các kênh và chế độ hoạt động. Việc chuyển đổi sau đó sẽ bắt đầu
một chu kỳ đồng hồ sau đó. Ví dụ: nếu chế độ kênh đơn được chọn bằng cách đặt
MULT 5 0 thì bốn chuyển đổi A/D liên tiếp sẽ xảy ra đối với kênh được chọn bởi
các bit CD–CA. Kết quả chuyển đổi được đặt trong thanh ghi kết quả A/D ADR1–ADR4.
6 chế độ
MODA và MODB là hai chân có thể được sử dụng để buộc bộ vi điều khiển vào một
trong bốn chế độ khi bật nguồn, các chế độ này là bootstrap đặc biệt, thử nghiệm
đặc biệt, chip đơn và mở rộng:
0
Khởi động đặc biệt
0
Bài kiểm tra đặc biệt
1
Chip đơn
1 1 1 0 1
Đã mở rộng
Machine Translated by Google
Ở chế độ đơn chip, bộ vi điều khiển hoàn toàn độc lập ngoại trừ nguồn
xung nhịp bên ngoài và mạch đặt lại.
Với chế độ như vậy, bộ vi điều khiển có thể không có đủ tài nguyên, ví dụ
như bộ nhớ, cho một số ứng dụng và do đó, chế độ mở rộng có thể được sử
dụng để có thể tăng số lượng địa chỉ. Cổng B và C sau đó cung cấp địa chỉ,
dữ liệu và bus điều khiển. Cổng B có chức năng như tám chân địa chỉ trên
và cổng C đóng vai trò là chân dữ liệu được ghép kênh và địa chỉ thấp. Chế
độ khởi động cho phép nhà sản xuất tải các chương trình đặc biệt vào một
ROM đặc biệt cho khách hàng M68HC11. Khi bộ vi điều khiển được đặt ở chế
độ này, chương trình đặc biệt sẽ được tải. Chế độ kiểm tra đặc biệt chủ
yếu được sử dụng trong quá trình thử nghiệm sản xuất nội bộ của Motorola.
Sau khi chế độ đã được chọn, chân MODA sẽ trở thành chân có thể được
sử dụng để xác định xem lệnh có bắt đầu thực thi hay không. Chân MODB còn
có chức năng khác là cung cấp phương tiện để cấp nguồn cho RAM bên trong
của chip khi nguồn điện thông thường bị ngắt.
10MΩ
XTAL
18 pF
18 pF
M68HC11 có hệ thống hẹn giờ. Nó có bộ đếm chạy tự do, chức năng so sánh năm
đầu ra, khả năng ghi lại thời gian khi xảy ra sự kiện bên ngoài, ngắt định
kỳ theo thời gian thực và bộ đếm, được gọi là
Machine Translated by Google
bộ tích lũy xung, cho các sự kiện bên ngoài. Bộ đếm chạy tự do, được gọi là TCNT,
là bộ đếm 16 bit bắt đầu đếm từ 0000 khi CPU được đặt lại và tiếp tục chạy sau đó
liên tục và chương trình không thể đặt lại. Giá trị của nó có thể được đọc bất cứ
lúc nào. Nguồn cho bộ đếm là đồng hồ bus hệ thống và đầu ra của nó có thể được định
tỷ lệ trước bằng cách đặt các bit PR0 và PR1 là bit 0 và 1 trong thanh ghi TMSK2
tại địa chỉ $1024 (Hình 10.20).
Hình 10.20 Thanh ghi TMSK2. Thanh ghi ngắt hẹn giờ 2 tại địa chỉ $1024
Bit 7 6 5 4 3 2 1 0
PR1 PR0
Các chức năng so sánh đầu ra cho phép thời gian, tức là số lượng bộ đếm thời
gian, được chỉ định tại thời điểm đầu ra sẽ xuất hiện khi đạt đến số lượng đặt trước.
Hệ thống thu thập đầu vào sẽ ghi lại giá trị của bộ đếm khi đầu vào xảy ra và do đó
thời gian chính xác mà đầu vào xảy ra sẽ được ghi lại. Bộ tích lũy xung có thể
được cấu hình để hoạt động như một bộ đếm sự kiện và đếm các xung đồng hồ bên
ngoài hoặc như một bộ tích lũy thời gian có cổng và lưu trữ số lượng xung xảy ra
trong một khoảng thời gian cụ thể do bộ đếm được bật và sau đó, vào một thời điểm
sau đó. , tàn tật. Thanh ghi điều khiển tích lũy xung PACTL (xem Hình 10.12) tại
địa chỉ $1026 được sử dụng để chọn chế độ hoạt động. Bit PAEN được đặt thành 0 để
vô hiệu hóa bộ tích lũy xung và thành 1 để kích hoạt nó, bit PAMOD thành 0 cho chế
độ bộ đếm sự kiện và 1 cho chế độ thời gian kiểm soát và bit PEDGE thành 0 để bộ
tích lũy xung phản hồi. cạnh giảm khi ở chế độ bộ đếm sự kiện và 1 để phản hồi cạnh
tăng trong chế độ đó. Trong chế độ kiểm soát, bit PEDGE được đặt thành 0 khiến cho
việc đếm bị vô hiệu hóa khi cổng A, bit 7 là 0 và tích lũy khi 1, và khi bit PEDGE
được đặt thành 1 trong chế độ này, việc đếm bị vô hiệu hóa khi cổng A, bit 7 là 1
và được kích hoạt khi nó bằng 0.
10 COP
Một chức năng hẹn giờ khác là COP, máy tính hoạt động bình thường.
Đây là bộ hẹn giờ hết thời gian chờ và đặt lại hệ thống nếu một hoạt động không
được kết thúc trong khoảng thời gian được coi là hợp lý (xem Phần 16.2). Điều này
thường được gọi là bộ đếm thời gian theo dõi.
11 xung
Điều chế độ rộng xung (PWM) được sử dụng để điều khiển tốc độ của động cơ một chiều
(xem Phần 3.6 và 9.5.3) bằng cách sử dụng tín hiệu sóng vuông và bằng cách thay đổi
khoảng thời gian bật tín hiệu, thay đổi giá trị trung bình giá trị của tín hiệu.
Một sóng vuông có thể được tạo ra bởi một bộ vi điều khiển bằng cách bố trí một đầu
ra xuất hiện sau mỗi nửa chu kỳ.
Machine Translated by Google
Tuy nhiên, một số phiên bản của M68HC11 có mô-đunPWM và do đó, sau khi mô-
đunPWM được khởi tạo và kích hoạt, dạng sóngPWM có thể được tự động xuất ra.
Như đã trình bày ở trên, trước khi có thể sử dụng một bộ vi điều khiển, cần
phải khởi tạo nó, tức là đặt các bit trong các thanh ghi thích hợp để nó hoạt
động theo yêu cầu.
10.3.2Intel 8051
Một họ vi điều khiển phổ biến khác là Intel 8051, Hình 10.21 thể hiện các kết
nối chân và kiến trúc. 8051 có bốn cổng vào/ra song song, các cổng 0, 1, 2 và 3.
Các cổng 0, 2 và 3 cũng có các chức năng thay thế. Phiên bản 8051AH có byte ROM
4K, RAM 128 byte, hai bộ định thời và điều khiển ngắt cho năm nguồn ngắt.
INT0 INT1
Hẹn giờ 1
Đầu vào hẹn giờ
Hẹn giờ 0
P0.2 P2.2
P0.3 P2.3
P0.4 P2.4
P0.5 P2.5
P0.6 P2.6 CPU
P0.7 P2.7
P1.5 P3.5 T1
P1.6 P3.6 WR
P1.7 P3.7 RD
Cổng 0 có thể được sử dụng làm cổng đầu vào hoặc cổng đầu ra. Ngoài ra,
nó có thể được sử dụng như một bus địa chỉ và dữ liệu đa kênh để truy cập
bộ nhớ ngoài. Cổng 1 có thể được sử dụng làm cổng đầu vào hoặc cổng đầu
ra. Cổng 2 có thể được sử dụng làm cổng đầu vào hoặc cổng đầu ra. Ngoài
ra, nó có thể được sử dụng cho bus địa chỉ cao để truy cập bộ nhớ ngoài.
Cổng 3 có thể được sử dụng làm cổng đầu vào hoặc cổng đầu ra. Ngoài ra,
nó có thể được sử dụng làm cổng đầu vào/đầu ra cho mục đích đặc biệt. Các
chức năng thay thế của cổng 3 bao gồm đầu ra ngắt và bộ định thời, đầu vào
và đầu ra cổng nối tiếp và các tín hiệu điều khiển để giao tiếp với bộ nhớ
ngoài. RXD là cổng đầu vào nối tiếp, TXD là cổng đầu ra nối tiếp, INT0 là
ngắt ngoài 0, INT1 là ngắt ngoài 1, T0 là đầu vào bên ngoài bộ đếm thời
gian/bộ đếm 0, T1 là đầu vào bên ngoài bộ đếm thời gian/bộ đếm 1, WR là
nhấp nháy ghi vào bộ nhớ ngoài và RD là nhấp nháy đọc bộ nhớ ngoài. Thuật ngữ nhấp nháy
mô tả một kết nối được sử dụng để bật hoặc tắt một chức năng cụ thể. Cổng
0 có thể được sử dụng làm cổng đầu vào hoặc đầu ra. Ngoài ra, nó có thể
được sử dụng để truy cập bộ nhớ ngoài.
2 ALE
Chân ALE cung cấp xung đầu ra để chốt byte bậc thấp của địa chỉ trong
quá trình truy cập bộ nhớ ngoài. Điều này cho phép sử dụng địa chỉ 16
bit. Hình 10.22 minh họa điều này.
ALE
Chốt cửa
3 PSEN
Chân cho phép lưu trữ chương trình (PSEN) là chân tín hiệu đọc cho bộ nhớ
chương trình bên ngoài và hoạt động khi ở mức thấp. Nó được kết nối với
chân cho phép đầu ra của ROM hoặc EPROM ngoài.
4 EA
Chân truy cập bên ngoài (EA) ở mức thấp để bộ vi xử lý chỉ truy cập
mã chương trình bên ngoài; khi cao nó tự động truy cập mã nội bộ hoặc
mã bên ngoài tùy theo địa chỉ. Do đó, khi 8051 được thiết lập lại lần
đầu, bộ đếm chương trình bắt đầu ở mức $0000 và trỏ đến lệnh chương
trình đầu tiên trong bộ nhớ mã bên trong trừ khi EA ở mức thấp. Sau
đó CPU sẽ đưa ra mức PSEN thấp để cho phép sử dụng bộ nhớ mã bên
ngoài. Chân này cũng được sử dụng trên bộ vi điều khiển có EPROM để
nhận điện áp nguồn lập trình để lập trình EPROM.
Machine Translated by Google
5 XTAL1, XTAL2
XTL1
30 pF Đây là các chân kết nối cho bộ dao động tinh thể hoặc bộ dao động bên ngoài.
Hình 10.23 minh họa cách chúng được sử dụng với tinh thể. Tần số tinh thể được sử
dụng phổ biến nhất là 12 MHz.
Tín hiệu cao trên chân này trong ít nhất hai chu kỳ máy sẽ đặt lại bộ vi điều
30 pF XTL2
khiển, tức là đặt ở trạng thái cho phép khởi động hệ thống có trật tự.
Tinh thể 12 MHz
8 Thời gian
Thanh ghi chế độ hẹn giờ TMOD tại địa chỉ 89H được sử dụng để thiết lập chế độ
hoạt động cho bộ định thời 0 và bộ định thời 1 (Hình 10.24). Nó được tải tại một
thực thể và không thể đánh địa chỉ từng bit riêng lẻ. Thanh ghi điều khiển bộ định
thời TCON (Hình 10.25) chứa các bit trạng thái và điều khiển cho bộ định thời 0 và
bộ định thời 1. 4 bit trên được sử dụng để bật và tắt bộ định thời hoặc để báo
hiệu tràn bộ định thời. 4 bit thấp hơn không liên quan gì đến bộ định thời nhưng
được sử dụng để phát hiện và khởi tạo các ngắt bên ngoài.
Cổng: 0 = bộ đếm thời gian chạy bất cứ khi nào TR0/TR1 được đặt
1 = bộ đếm thời gian chỉ chạy khi INT0/INT1 ở mức cao cùng với TR0/TR1
M0 và M1 đặt chế độ
Chế độ M1 M0
0 0 0 Bộ đếm 13 bit, thấp hơn 5 bit của TL0 và tất cả 8 bit của TH0
0 1 1 Bộ đếm 16 bit
1 1 3 TL0 là bộ định thời/bộ đếm 8 bit được điều khiển bởi bộ định thời 0
các bit điều khiển. TH0 là bộ định thời 8 bit được điều khiển bởi bộ định thời 1
TF0, TF1 Cờ tràn bộ đếm thời gian; được thiết lập bởi phần cứng khi thời gian tràn
TR0, TR1 Các bit điều khiển chạy bộ định thời: 1 = bộ định thời bật, 0 = bộ định thời tắt
IE0, IE1 Cờ cạnh ngắt được thiết lập bởi phần cứng khi ngắt bên ngoài
cạnh hoặc mức thấp được phát hiện và xóa khi xử lý ngắt
IT0, IT1 Loại ngắt được thiết lập bằng phần mềm: 1 = kích hoạt cạnh xuống
Nguồn của các bit được tính bởi mỗi bộ định thời được thiết lập bởi bit C/
T; nếu bit thấp, nguồn là đồng hồ hệ thống chia cho 12, nếu không, nếu cao, nó
được đặt để đếm đầu vào từ nguồn bên ngoài. Bộ định thời có thể được bắt đầu
bằng cách đặt TR0 hoặc TR1 thành 1 và dừng bằng cách đặt nó về 0. Một phương
pháp khác để điều khiển bộ định thời là đặt GATE thành 1 và do đó cho phép bộ
định thời được điều khiển bằng chân INT0 hoặc INT1 trên bộ vi điều khiển.
thành 1. Bằng cách này, một thiết bị bên ngoài được kết nối với một trong các
chân này có thể điều khiển bật/tắt bộ đếm.
9 ngắt
Các ngắt buộc chương trình gọi một chương trình con được đặt tại một địa
chỉ được chỉ định trong bộ nhớ; chúng được kích hoạt bằng cách ghi vào thanh
ghi cho phép ngắt IE tại địa chỉ A8H (Hình 10.26).
đăng ký IE.
IE tại địa chỉ A8H EA ES ET1 EX1 ET0 EX0
Cho phép ngắt cổng nối tiếp Cho phép ngắt bộ định thời 0
Cho phép ngắt bộ định thời 1 Kích hoạt ngắt 1 bên ngoài
8D TH1 F0 B Thuật ngữ thanh ghi chức năng đặc biệt được sử dụng cho các thanh ghi điều khiển
8C TH0 E0 ACC đầu vào/đầu ra (Hình 10.27), giống như IE ở trên, và chúng được đặt tại các địa
8B TL1 D0 PSW chỉ từ 80 đến FF. Bộ tích lũy A (ACC) là thanh ghi chính được sử dụng cho các
8A TL0 B8 IP hoạt động dữ liệu; thanh ghi B được sử dụng để nhân và chia. P0, P1, P2 và P3
89 TMOD B0 P3 là các thanh ghi chốt cho cổng 0, 1, 2 và 3.
88 TCON A8 I E
87 PCON A0 P2
83 DPH 99 SBU
10.3.3Bộ vi điều khiểnMicrochip™
82 DPL 98 SCON
81 SP 90 P1
Một dòng vi điều khiển 8 bit khác được sử dụng rộng rãi là dòng vi điều
80 P0
khiển do Microchip™ cung cấp. Thuật ngữ bộ điều khiển giao diện ngoại vi
Hình 10.27 Các thanh ghi. (PIC) được sử dụng cho các bộ vi điều khiển chip đơn của nó. Chúng sử
dụng một dạng kiến trúc được gọi là kiến trúc Harvard. Với kiến trúc này,
các lệnh được lấy từ bộ nhớ chương trình bằng cách sử dụng các bus khác
với các bus được sử dụng để truy cập các biến (Hình 10.28). Trong các bộ
vi điều khiển khác được thảo luận trong chương này, các bus riêng biệt
không được sử dụng và do đó việc tìm nạp dữ liệu chương trình phải chờ
các hoạt động đọc/ghi và đầu vào/đầu ra được hoàn thành trước khi có thể
nhận được lệnh tiếp theo từ bộ nhớ. Với kiến trúc Harvard, các hướng dẫn
có thể được tìm nạp trong mỗi chu kỳ mà không phải chờ đợi, mỗi lệnh sẽ
được thực thi trong chu trình sau quá trình tìm nạp của nó. Kiến trúc
Harvard cho phép đạt được tốc độ thực thi nhanh hơn ở tần số xung nhịp
nhất định. Hình 10.29 hiển thị các kết nối chân cho một phiên bản của
PIC16C74A và vi điều khiển 16F84, và Hình 10.30 là dạng cơ bản của kiến
trúc.
Machine Translated by Google
ký ức bộ xử lý Vào/ra và
ĐẬP
(Một)
Bus dữ liệu
ký ức bộ xử lý ký ức sổ đăng ký
(b)
1 Tìm về 1 Tìm về
hướng dẫn 1 hướng dẫn 1
(c)
Các tính năng cơ bản của bộ vi điều khiển 16C74, các bộ vi điều khiển PIC khác có chức
năng tương tự được trình bày dưới đây.
Các chân 2, 3, 4 và 5 cũng có thể được sử dụng cho đầu vào tương tự, chân 6 cho
đầu vào đồng hồ cho bộ định thời 0; chân 7 cũng có thể là chân chọn phụ cho cổng nối
tiếp đồng bộ (xem phần sau trong phần này).
Các chân 33, 34, 35, 36, 37, 38, 39 và 40 dành cho đầu vào hai chiều/
cổng đầu ra B; hướng của tín hiệu được điều khiển bởi thanh ghi hướng TRIS tương
ứng. Chân 33 cũng có thể là chân ngắt ngoài.
Các chân 37, 38, 39 và 40 cũng có thể là chân ngắt khi thay đổi chân. Pin 39 có thể
Machine Translated by Google
PIC18F452
cũng là đồng hồ lập trình nối tiếp và chân 40 là dữ liệu lập trình nối tiếp.
Các chân 15, 16, 17, 18, 23, 24, 25 và 26 dành cho cổng đầu vào/đầu ra hai
chiều C; hướng của tín hiệu được điều khiển bởi thanh ghi hướng TRIS tương
ứng. Chân 15 cũng có thể là đầu ra của bộ định thời 1 hoặc đầu vào của đồng
hồ hẹn giờ 1. Chân 16 cũng có thể là đầu vào bộ dao động hẹn giờ 1 hoặc đầu
vào Capture 2/đầu ra So sánh 2/đầu raPWM2.
Các chân 19, 20, 21, 22, 27, 28, 29 và 30 dành cho cổng đầu vào/đầu ra hai
chiều D; hướng của tín hiệu được điều khiển bởi thanh ghi hướng TRIS tương
ứng.
Các chân 8, 9 và 10 dành cho cổng đầu vào/đầu ra hai chiều E; hướng của
tín hiệu được điều khiển bởi thanh ghi hướng TRIS tương ứng. Chân 8 cũng
có thể điều khiển đọc cho cổng phụ song song hoặc đầu vào tương tự 5. Cổng
phụ song song là một tính năng tạo điều kiện thuận lợi cho việc thiết kế mạch
giao diện máy tính cá nhân; khi sử dụng, các chân của cổng D và E được dành
riêng cho hoạt động này.
SCK RC3
Giao diện ngoại
Logic SDI
vi nối tiếp Cảng C RC4
ngắt SDO RC5
CPU
SCL
2
Giao diện C
TÔI
SDA
TX RC6
UART
RX RC7
RB0
INTF
Cổng B
ĐẬP
RBIF
RB7
EPROM
cài lại
RD
WR
Tùy chọn CS
dao động RD0
cài lại
Cổng D
Bậc thầy
Bộ dao động Quyền lực
thông thoáng
RD7
7 6 5 4 3 2 1 0
Hình 10.31 Hướng cổng.
Bit cổng
để chọn điện áp tham chiếu được sử dụng cho việc chuyển đổi và chọn các kênh làm đầu vào.
Sau đó, ADCON0 phải được khởi tạo bằng cách sử dụng các cài đặt được chỉ ra bên dưới:
Bit ADCON0
0 Cổng A, bit 0
0 0 0 0 1 Cổng A, bit 1
0 1 0 Cổng A, bit 2
0 1 1 Cổng A, bit 3
1 0 0 Cổng A, bit 5
1 0 1 Cổng E, bit 0
1 1 0 Cổng E, bit 1
1 1 1 Cổng E, bit 2
3 bộ hẹn giờ
Bộ vi điều khiển có ba bộ định thời: bộ định thời 0, bộ định thời 1 và bộ định thời 2. Bộ
định thời 0 là bộ đếm 8 bit có thể được ghi vào hoặc đọc từ đó và có thể được sử dụng để
đếm các chuyển đổi tín hiệu bên ngoài, tạo ra ngắt khi có đủ số lượng sự kiện cần thiết.
đã xảy ra. Nguồn đếm có thể là tín hiệu đồng hồ bus bên trong hoặc tín hiệu số bên ngoài.
Việc lựa chọn nguồn đếm được thực hiện bởi bit TOCS trong thanh ghi OPTION (Hình 10.32).
7 6 5 4 3 2 1 0
Bộ đếm trước
Nếu bộ chia tỷ lệ trước không được chọn thì số đếm sẽ tăng lên sau mỗi hai chu kỳ của
nguồn đầu vào. Bộ đếm gộp trước có thể được sử dụng để tín hiệu chỉ được truyền đến bộ
Sau đây cho thấy tỷ lệ mở rộng có thể. WDT đưa ra các hệ số tỷ lệ được chọn khi bộ đếm
thời gian giám sát được bật. Nó được sử dụng để hết thời gian chờ và thiết lập lại hệ
thống nếu một hoạt động không được kết thúc trong một thời gian hợp lý; thời gian mặc định
0 0 0 1 : 1 : 1
0 0 2 1 : 1 : 2
0 1 4 1 : 1 : 4
0 8 1 : 1 : 8
1 0 16 1 : 1 : 16
1 32 1 : 1 : 32
1 64 1 : 1 : 64
Bộ định thời 1 là bộ định thời linh hoạt nhất và có thể được sử dụng để theo dõi
thời gian giữa các lần chuyển đổi tín hiệu trên chân đầu vào hoặc điều khiển thời gian
chuyển đổi chính xác trên chân đầu ra. Khi được sử dụng với chế độ chụp hoặc so sánh,
nó cho phép bộ vi điều khiển kiểm soát thời gian của đầu ra trên chân 17.
Bộ định thời 2 có thể được sử dụng để điều khiển chu kỳ đầu ra của một xung xung
điện. Đầu raPWM được cung cấp ở chân 16 và 17.
Bộ vi điều khiển PIC bao gồm mô-đun cổng nối tiếp đồng bộ (SSP) và mô-đun giao diện
truyền thông nối tiếp (SCI). Chân 18 có các chức năng thay thế của đầu vào hoặc đầu
ra đồng hồ nối tiếp đồng bộ cho chế độ giao diện ngoại vi nối tiếp SPI và I
2 2
chế độ C. cái tôi xe buýt C
cung cấp giao diện hai chiều hai dây có thể được sử dụng với nhiều loại chip khác; nó
cũng có thể được sử dụng để kết nối bộ vi điều khiển chính với bộ vi điều khiển phụ.
UART, tức là bộ phát máy thu không đồng bộ phổ quát, có thể được sử dụng để tạo giao
+5V
Hình 10.33 Điều khiển tần số.
VDD
R
22 pF
OSC1
OSC1
Pha lê C
OSC2 VSS
22 pF
(Một) (b)
Machine Translated by Google
Hình 10.33 (b) cái có thể được sử dụng để điều khiển tần số chi phí thấp; đối
với tần số 4 MHz, chúng ta có thể có R 5 4,7 kÆ và C 5 33 pF. Tốc độ xung nhịp
bên trong là tần số dao động chia cho 4.
Chân 1 là MCLR rõ ràng chính, tức là đặt lại đầu vào và được đưa xuống mức
thấp để đặt lại thiết bị theo yêu cầu và khởi động có trật tự. Khi phát hiện
thấy mức tăng VDD , xung cấp nguồn khi nghỉ (POR) được tạo ra để cung cấp độ
trễ hết thời gian chờ cố định và giữ cho bộ xử lý ở trạng thái đặt lại. Nếu
điện áp VDD xuống dưới mức điện áp quy định trong hơn một khoảng thời gian
nhất định, thiết lập lại mất điện sẽ được kích hoạt. Bộ đếm thời gian của cơ
quan giám sát là một cách khác để có thể thiết lập lại. Đây là bộ hẹn giờ hết
thời gian và cho bộ vi điều khiển nghỉ ngơi nếu một thao tác không được kết
thúc trong khoảng thời gian được coi là hợp lý.
Các thanh ghi có mục đích đặc biệt (Hình 10.34) được sử dụng cho đầu vào/
kiểm soát đầu ra, như được minh họa ở trên liên quan đến một vài thanh ghi này.
Hình 10.34 Các thanh ghi có mục Địa Ngân hàng 0 Ngân hàng 1 Tài liệu
0Ơ TMR1L PCON 8Ơ
1A RCREG 9A
1Ơ ĐỊA CHỈ 9Ơ
Các thanh ghi cho PIC16C73/74 được sắp xếp thành hai dãy và trước khi một thanh ghi cụ
thể có thể được chọn, dãy phải được chọn bằng cách thiết lập một bit trong thanh ghi
trạng thái (Hình 10.35).
Atmel AVR có nhiều bộ vi điều khiển 8 bit và sử dụng kiến trúc Harvard đã được sửa đổi
với chương trình và dữ liệu được lưu trữ ở các vị trí bộ nhớ riêng biệt. Arduino là
một bo mạch vi điều khiển nhỏ với các thành phần bổ sung được thiết kế để hỗ trợ việc sử
dụng vi điều khiển trong các dự án điều khiển. Bo mạch cơ bản, Arduino UNO Revision 3,
sử dụng bộ vi điều khiển Atmel 8 bit, Atmega328.
Bộ vi điều khiển này có hệ thống bộ nhớ, các cổng đầu vào/đầu ra, bộ hẹn giờ/
bộ đếm, điều chế độ rộng xung, ADC, hệ thống ngắt và truyền thông nối tiếp.
Bo mạch Arduino có thể được mua sẵn từ nhiều nhà bán lẻ. Bo mạch có một đầu cắm bus
nối tiếp đa năng (USB) để có thể kết nối trực tiếp với máy tính và một số ổ cắm kết nối
để có thể kết nối với các vật dụng bên ngoài như động cơ, rơle, v.v.
Bo mạch có thể được cấp nguồn bằng cách kết nối với nguồn điện bên ngoài, ví dụ như pin
9 V hoặc thông qua kết nối USB từ máy tính. Được lập trình sẵn trong chip vi điều khiển
trên bo mạch là bộ tải khởi động cho phép tải trực tiếp các chương trình vào bộ nhớ vi
điều khiển.
Các bo mạch cơ bản được bổ sung bởi các bo mạch phụ kiện, được gọi là bo mạch bảo vệ,
ví dụ như bo mạch hiển thị LCD (màn hình tinh thể lỏng), bo mạch động cơ và bo mạch
Ethernet, có thể được cắm lên trên bo mạch Arduino cơ bản và vào các đầu cắm của bo
mạch. Nhiều lá chắn có thể được xếp chồng lên nhau.
Hội đồng quản trị là nguồn mở. Điều này có nghĩa là bất kỳ ai cũng được phép tạo ra
các bo mạch tương thích với Arduino. Có sẵn bộ dụng cụ khởi động, thường bao gồm các
vật dụng như bo mạch Arduino, cáp USB để bo mạch có thể được lập trình từ máy tính, bảng
mạch bánh mì để sử dụng để lắp ráp mạch ngoài bằng dây dẫn và các bộ phận thường được
sử dụng như điện trở, điện trở quang chiết áp , tụ điện, nút bấm, cảm biến nhiệt độ, màn
hình chữ và số LCD, điốt phát sáng (LED), động cơ DC, trình điều khiển động cơ cầu H,
bộ ghép quang, bóng bán dẫn và điốt.
Hình 10.36 thể hiện các tính năng cơ bản của Arduino UNO Revision 3
Cái bảng. Những điều này được nêu dưới đây.
vi điều khiển
kết nối
giao tiếp.
Điều này được sử dụng để kết nối bảng với máy tính.
6 Đầu nối lập trình nối tiếp
Điều này cung cấp một phương tiện lập trình Arduino mà không cần sử dụng cổng USB.
7 đèn LED
Bảng mạch được trang bị ba đèn LED, một để biểu thị đường truyền nối tiếp
(TX), một đèn tiếp nhận (RX) và một đèn LED bổ sung để sử dụng trong các dự án.
8 Đầu nối nguồn điện
Nguồn điện bên ngoài có thể được kết nối với bo mạch thông qua đầu nối ở góc
dưới bên trái của bo mạch. Tuy nhiên, bo mạch có thể được cấp nguồn từ cổng
USB trong khi kết nối với máy tính.
9 Vi điều khiển
Bộ vi điều khiển ATmega328 được cài sẵn bộ tải khởi động cho phép tải mã
chương trình mới lên nó mà không cần sử dụng bộ lập trình phần cứng bên ngoài.
Khi mua, bo mạch Arduino thường được cài đặt sẵn chương trình mẫu. Chương
trình này dùng để làm đèn LED trên bảng nhấp nháy. Để bắt đầu chương trình, tất
cả những gì bạn cần làm là cấp nguồn, việc này có thể được thực hiện bằng cách cắm
vào cổng USB của máy tính. Sau đó, đèn LED sẽ nhấp nháy để xác minh rằng bo mạch
đang hoạt động. Để cài đặt phần mềm mới, được gọi là bản phác thảo cho bo mạch
Arduino, bạn cần cài đặt phần mềm Arduino và tải trình điều khiển USB vào máy tính
của mình. Hướng dẫn thực hiện việc này và phần mềm có thể được tìm thấy trên
trang web Arduino (www.arduino.cc). Sau khi cài đặt xong, bạn có thể tải chương
trình lên bo mạch Arduino.
Khi lựa chọn một bộ vi điều khiển, các yếu tố sau cần được xem xét.
Để minh họa cho sự đa dạng của các bộ vi điều khiển hiện có, Bảng 10.1 trình
bày chi tiết về các thành viên của họ Intel 8051, Bảng 10.2 họ PIC16Cxx và
Bảng 10.3 họ M68HC11.
8031AH 0 0 128 2 4 5
8051AH 4K 0 128 2 4 5
8052AH 8K 0 256 3 4 6
8751H 0 4K 128 2 4 5
PIC16C62A 22 2K 128 0 0 1
PIC16C63 22 4K 192 0 1 2
PIC16C64A 33 2K 128 0 0 1
PIC16C65A 33 4K 192 0 1 2
PIC16C72 22 2K 128 5 0 1
PIC16C73A 22 4K 192 5 1 2
PIC16C74A 33 4K 192 số 8 1 3
Là một chỉ dẫn ngắn gọn về cách sử dụng bộ vi điều khiển, Hình 10.37 cho
thấy các bộ phận chính của hệ thống đo nhiệt độ sử dụng MC68HC11. Cảm biến
nhiệt độ cung cấp điện áp tỷ lệ thuận với
Machine Translated by Google
Đồng hồ điện tử
ROM EEPROM RAM ADC Bộ định thời I/O nối tiếp MHz
68HC11C0 0 512 256 4 kênh, 4 bit (2) 0 2 ch., 8- 36 KHOA HỌC, SPI 3 2
Bộ định thời: (1) là chụp ba hoặc bốn đầu vào, so sánh năm đầu ra, ngắt thời gian thực, hẹn giờ theo dõi, tích lũy xung, (2) là chụp
ba hoặc bốn đầu vào, so sánh năm hoặc bốn đầu ra, thời gian thực ngắt, bộ đếm thời gian theo dõi, bộ tích lũy xung. Serial: SCI là giao
diện truyền thông nối tiếp không đồng bộ, SPI là giao diện ngoại vi nối tiếp đồng bộ.
dữ liệu BCD
Hình 10.37 Nhiệt độ
hệ thống đo lường.
đầu ra
bát phân
cổng B
D
dep Lê
68HC11 BCD
Hải cảng
dữ liệu Hiển thị hai chữ số
Đầu vào C
Thời gian
cổng E
Nhiệt độ 74HCT273
với nó xung từ
cảm biến vi điều khiển
ADC
nhiệt độ (ví dụ như một thermotransistor như LM35; xem Phần 2.9.4). Đầu
ra từ cảm biến nhiệt độ được kết nối với đường đầu vào ADC của vi điều
khiển. Bộ vi điều khiển được lập trình để chuyển đổi nhiệt độ thành đầu
ra thập phân được mã hóa nhị phân (BCD), có thể được sử dụng để bật các
phần tử của màn hình hai chữ số, bảy phần tử. Tuy nhiên, do nhiệt độ có
thể dao động nên cần phải sử dụng bộ ghi lưu trữ có thể lưu dữ liệu đủ
lâu để có thể đọc được trên màn hình. Thanh ghi lưu trữ, 74HCT273, là
một flip-flop loại D bát phân được đặt lại trên cạnh dương tiếp theo
của đầu vào đồng hồ từ vi điều khiển.
Hình 10.38 cho thấy cách sử dụng một bộ vi điều khiển làm bộ điều khiển
cho máy giặt gia đình. Bộ vi điều khiển thường được sử dụng là Motorola
M68HC05B6; cái này đơn giản và rẻ hơn bộ vi điều khiển Motorola M68HC11
đã thảo luận trước đó trong chương này và được sử dụng rộng rãi cho
các ứng dụng chi phí thấp.
Đầu vào từ các cảm biến về nhiệt độ nước và tốc độ động cơ đều thông
qua cổng đầu vào A/D. Cổng A cung cấp đầu ra cho các bộ truyền động khác
nhau được sử dụng để điều khiển máy và cũng là đầu vào cho mực nước.
Machine Translated by Google
ADC
MORPEE
Còi
Bàn phím
Hướng động cơ
công tắc. Cổng B cung cấp đầu ra cho màn hình. Cổng C cung cấp đầu ra cho
màn hình và cũng nhận đầu vào từ bàn phím được sử dụng để nhập vào máy các
lựa chọn chương trình khác nhau. PhầnPWM của bộ định thời cung cấp tín
hiệuPWM để điều khiển tốc độ động cơ. Toàn bộ chương trình của máy bị gián
đoạn và dừng lại nếu cửa máy giặt được mở.
10,5
Lập trình
Một phương pháp thường được sử dụng để phát triển chương trình tuân theo
các bước sau.
1 Xác định vấn đề, nêu rõ chức năng mà chương trình sẽ thực hiện, đầu vào
và đầu ra cần thiết, mọi ràng buộc về tốc độ hoạt động, độ chính xác,
kích thước bộ nhớ, v.v.
2 Xác định thuật toán được sử dụng. Thuật toán là trình tự các bước xác
định phương pháp giải quyết vấn đề.
3 Đối với các hệ thống có ít hơn hàng nghìn lệnh, một trợ giúp hữu ích là
biểu diễn thuật toán bằng biểu đồ luồng. Hình 10.39(a) hiển thị các ký
hiệu tiêu chuẩn được sử dụng trong việc chuẩn bị lưu đồ. Mỗi bước của
thuật toán được biểu thị bằng một hoặc nhiều ký hiệu này và được liên
kết với nhau bằng các dòng để thể hiện luồng chương trình. Hình 10.39(b)
hiển thị một phần của biểu đồ luồng, trong đó, sau khi bắt đầu chương
trình, có thao tác A, theo sau là một nhánh dẫn đến thao tác B hoặc thao
tác C tùy thuộc vào việc quyết định truy vấn là có hay không. Một công cụ
thiết kế hữu ích khác là mã giả. Mã giả là một cách mô tả các bước trong
thuật toán theo cách không chính thức mà sau này có thể được dịch thành
chương trình (xem Phần 10.5.1).
4 Chuyển biểu đồ/thuật toán thành các lệnh mà bộ vi xử lý có thể thực hiện.
Điều này có thể được thực hiện bằng cách viết hướng dẫn bằng một số ngôn
ngữ, ví dụ như hợp ngữ hoặc có thể là C, sau đó
Machine Translated by Google
Hoạt động
MỘT
Là
ĐÚNG
sản
Bắt đầu/kết thúc Quá trình chương trình con Đầu ra đầu vào
lượng cao?
Hoạt động
hoặc
C
(Một) (b)
chuyển đổi chúng, bằng tay hoặc bằng chương trình máy tính lắp ráp,
thành mã được bộ vi xử lý chấp nhận, tức là mã máy.
5 Kiểm tra và gỡ lỗi chương trình. Lỗi trong chương trình được gọi là
lỗi và quá trình theo dõi chúng cũng như loại bỏ chúng khi gỡ lỗi.
10.5.1Mã giả
Mã giả khá giống việc vẽ một biểu đồ và liên quan đến việc viết chương
trình dưới dạng một chuỗi các hàm hoặc thao tác với phần tử quyết định IF–
THEN–ELSE và phần tử lặp lại WHILE–DO.
Một chuỗi (Hình 10.40(a)) sẽ được viết là:
BẮT ĐẦU A
…
KẾT THÚC MỘT
…
BẮT ĐẦU B
…
KẾT THÚC B
NẾU X
SAU ĐÓ
BẮT ĐẦU A
…
KẾT THÚC MỘT
KHÁC
BẮT ĐẦU B
…
KẾT THÚC B
KẾT THÚC X
Machine Translated by Google
KHÔNG MỘT
B MỘT
Hình 10.40(b) thể hiện quyết định như vậy trong biểu đồ tiến trình. Sự lặp lại được viết
BẰNG:
KHI X
LÀM
BẮT ĐẦU A
BẮT ĐẦU B
KẾT THÚC B
Hình 10.40(c) hiển thị WHILE–DO dưới dạng biểu đồ luồng. Một chương trình được viết theo cách
BẮT ĐẦU A
NẾU X
BẮT ĐẦU B
KẾT THÚC B
KHÁC
BẮT ĐẦU C
KẾT THÚC C
KẾT THÚC X
BẮT ĐẦU D
NẾU Z
BẮT ĐẦU E
KẾT THÚC E
KẾT THÚC Z
KẾT THÚC D
Chương 11 cho thấy chương trình có thể được viết bằng hợp ngữ như thế nào và Chương 12
bằng C.
Machine Translated by Google
Các vấn đề
10.1 Giải thích, đối với bộ vi xử lý, vai trò của (a) bộ tích lũy, (b) trạng thái, (c) địa
chỉ bộ nhớ, (d) thanh ghi bộ đếm chương trình.
10.2 Bộ vi xử lý sử dụng tám dòng địa chỉ để truy cập bộ nhớ. cái gì là
số vị trí bộ nhớ tối đa có thể được xử lý?
10.3 Một chip nhớ có 8 dòng dữ liệu và 16 dòng địa chỉ. Kích thước của nó sẽ là bao nhiêu?
10.5 Vẽ sơ đồ khối của một bộ vi điều khiển cơ bản và giải thích chức năng của từng hệ thống
con.
10.6 Cổng M68HC11 nào được sử dụng cho (a) ADC, (b) cổng hai chiều, (c) đầu vào/đầu ra nối
tiếp, (d) chỉ là cổng chỉ đầu ra 8 bit?
10.8 Đối với Motorola M68HC11, cổng C là hai chiều. Nó được cấu hình như thế nào để trở
thành (a) đầu vào, (b) đầu ra?
10.9 Motorola M68HC11 có thể hoạt động ở chế độ chip đơn và chế độ mở rộng. Tại sao lại có
những chế độ này?
10.10 Mục đích của kết nối chân ALE với Intel 8051 là gì?
10.11 Cần có đầu vào nào để thiết lập lại bộ vi điều khiển Intel 8051?
mục tiêu
Mục tiêu của chương này là, sau khi nghiên cứu nó, người đọc sẽ có thể sử dụng hợp ngữ để viết các
chương trình liên quan đến truyền dữ liệu, số học, logic, nhảy, rẽ nhánh, chương trình con, độ trễ và
bảng tra cứu.