LỜI MỞ ĐẦU 
1 .GIỚI THIỆU: 
 
 Sự phát triển của khoa học kỹ thuật ngày càng nhanh góp phần nâng cao năng suất lao động. Đặt biệt sự ra đời và phát triển các công nghệ mới nhằm tạo ra sự tự động hóa , sự tiện lợi trong xã hội cũng như trong công nghiệp . 
 Đối với các nước ngoài thì việc điều khiển bằng giọng nói đã được nghiên cứu và chế tạo để ứng dụng vào đời sống và sản suấtû cũng chỉ mới ra đời vài năm trở lại đây. Như ở MỸ đã được ứng dụng để điều khiển robotcam trong y khoa. Riêng ở nước ta lĩnh vực này còn khá mới mẽ. Do đó chúng ta cần có sự đầu tư để nghiên cứu theo kịp công nghệ mới này để phục vụ trực tiếp cho công việc giảng dạy tại trường nhằm giúp cho sinh viên hiểu rỏ hơn về lý thuyết , tạo điều kiện cho việc dạy và học được áp sát kỹ thuật mới . 
 Bức xúc trước nhu cầu tìm hiểu về điều khiển bằng giọng nói từ chính bản thân và của những người yêu thích về lĩnh vực này, tôi đã bắt tay vào việc thực hiện nghiên cứu đề tài: “THIẾT KẾ MẠCH ĐIỀU KHIỂN THIẾT BỊ BẰNG GIỌNG NÓI ”.
 
2 . TẦM QUAN TRỌNG : 
 Ở Việt Nam nói chung việc ứng dụng công nghệ mới còn chậm phát triển, việc đưa công nghệ mới vào đời sống , sản xuất gặp nhiều khó khăn . Tận dụng những ic đã nhập sẵn và ic chuyên dụng do nước ngòai sản suất để thiết kế thành sản phẩm cụ thể trước hết là ứng dụng 
làm phương tiện giảng dạy trong trường học và từ đó phát triển cao hơn để ứng dụng vào trong các nghành sẽ là hướng đi . Đề tài : “THIẾT KẾ MẠCH ĐIỀU KHIỂN THIẾT BỊ BẰNG GIỌNG NÓI ” không nằm ngoài nhận định trên. Điều quan trọng hơn hết là các vấn 
đề liên quan đến đề tài , nguyên lý hoạt động của mạch và phần lý thuyết về phân tích phổ của giọng nói sẽ được giới thiệu trong đề tài này. Nó sẽ là nguồn thông tin hữu ích cho những ai muốn tìm hiểu về lĩnh vực này. 
 
3 .GIỚI HẠN THIẾT KẾ: 
 Do việc điều khiển bằng giọng nói còn nhiều mới mẽ và có rất ít thông tin nói về nó phải làm đề tài trong điều kiện: Mạch chưa thể ứng dụng rộng rãi do chưa chính xác cao 
 
ã Thời gian thực hiện đề tài chỉ trong 12 tuần 
ã Kinh nghiệm thực tế chưa có nhiều 
ã Tài liệu về IC chuyên dụng HM2007 còn hiếm 
 
Vì vậy em đã thực hiện nghiên cứu đề tài với những đặc điểm chính 
sau đây: 
ã Nguyên lý hoạt động của HM2007 
ã Thiết kế mạch cho HM2007 
ã Phối hợp 8951 và hm2007 để thiết kế mạch điều khiển thiết bị . 
 
4 . MỤC ĐÍCH NGHIÊN CỨU 
 Thực hiện đề tài “THIẾT KẾ MẠCH ĐIỀU KHIỂN THIẾT BỊ BẰNG GIỌNG NÓI” là một công việc để người thực hiện đề tài nghiên cứu kỹ khái niệm về giọng nói, nguyên lý làm việc của IC chuyên dụng cũng như một phần tập lệnh của vi xử lí. 
 Sản phẩm của đề tài trước hết có thể được ứng dụng vào phương tiện giảng dạy tại trường , và nếu được phát triển rộng, đi sâu hơn thì có thể ứng dụng vào trong thực tế sản xuất công nghiệp ,và đặc biệt cung cấp một cái nhìn tổng quát về xử lý bằng giọng nói.
                
              
                                            
                                
            
 
            
                 81 trang
81 trang | 
Chia sẻ: banmai | Lượt xem: 2251 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang tài liệu Thiết kế mạch điều khiển thiết bị bằng giọng nói, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
û lyù audio coù caùc giao dieän vaøo ra khaùc nhau , ñöôïc 
chia thaønh 3 loaïi : 
 .Audio vaøo\ ra soá : tín hieäu audio coù theå xöû lyù , truyeàn daãn vaø thu 
vôùi khoaûng phoøng veä laø 20 dB maø khoâng coù vaán ñeà gì xaûy ra . 
 .Ñaàu vaøo / ra laø tín hieäu töông töï . Tín hieäu aâm thanh ñöôc thu 
nhaän töø caùc thieát bò phaùt töông töï coù khoaûng phoøng veä döôùi 12 dB . Sau 
khi chuyeån sang tín hieäu soá mhôø boä bieán ñoåi A/D , chuùng ñöôïc xöû lyù 
vaø bieán ñoåi trôû laïi tín hieäu töông töï tröôùc khi ñem truyeàn daãn vôùi 
khoaûng phoøng veä goác vaø khoâng coù xöï coá vôùi loaïi naøy . 
 .Ñaàu vaøo laø töông töï ñaàu ra laø soá . Vôùi caáu hình thieát bò nhö vaäy 
seõ gaëp raéc roái khi ñaàu ra laø töông töï . Khi tín hieäu vaøo laø tín hieäu audio 
soá thu nhaän vôùi khoaûng troáng phoøng veä laø 20 dB töø thieát bò naøy seõ bieán 
ñoåi laïi thaønh tín hieäu töông töï coù giaù trò ñænh laø +28 dBm . Ñieàu ñoù seõ 
laøm quaù taûi heä thoáng audio töông töï noái vôùi ñaàu ra thieát bò treân . 
Daûi taàn : 
 Tín hieäu ñöôøng ñi thöôøng bò giôùi haïn trong moät daõy taàn soá , tuyø 
thuoäc vaøo chaát löôïng cuûa keânh . Tín hieäu taàn soá thaáp vaø thaønh phaàn 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 42 
ñieän aùp moät chieàu cuõng nhö taàn soá raát cao cuoái daõy taàn , thöôøng khoâng 
ñöôïc chuyeån taûi ñaày ñuû hoaëc bò maát hoaøn toaøn . 
 Toác ñoä truyeàn vaø baêng thoâng : 
 Löôïng thoâng tin truyeàn ñi trong moät ñôn vò thôøi gian ñöôïc goïi laø 
toác ñoä bit (bit rate) ñôn vò laø bit/sec 
 C = fs. n (bit/s) 
fs laø taàn soá laáy maãu 
n laø soá bit nhò phaân 
c laø toác ñoä bit 
 hoaëc 
Vôùi B laø ñoä roâng keânh truyeàn . 
 laø tæ soá tín hieäu treân nhieõu traéng . Thöïc teá ñeå truyeàn tín hieäu coù 
toác ñoä bit C (b/c)caàn baêng taàn keânh truyeàn laø : 
Vôùi 4 bit , fs = 44.1KHz coù toác ñoä bit truyeàn thoâng tin laø 
C=fs.n=44,1.4=176,4.103 bit/s neân ñoä roäng baêng taàn laø 
X / Caùc taàn soá laáy maãu chuaån : 
 Hieän nay thöôøng söû duïng 3 taàn soá laáy maãu chuaån : 
. 332KHz ( tieâu chuaån chuyeân duïng ) : duøng trong truyeàn daãn ñeán 
maùy phaùt thanh FM stereo . 
. 44,1 KHz ( tieâu chuaån daân duïng ): taàn soá laáy maãu naøy ñöôïc choïn 
söû duïng trong caùc heä NTSC or PAL qua caùc baêng Video vôùi ñieàu cheá 
PCM nhaèm löu tröõ vaø phaùt tín hieäu audio soá . Sau naøy , VTRS ñöôïc söû 
duïng roäng raõi trong lónh vöïc CD vaø taàn soá treân trôû thaønh taàn soá tieâu 
chuaån cho caùc öùng duïng maùy ghi aâm soá chæ ñoïc 
. 48 KHz (tieâu chuaån phaùt thanh ) : coù theå duøng vôùi baêng taàn 
audio töông töï leân ñeán 22 KHz . 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 43 
XI / Chöùc naêng tieàn nhaán : 
 Kyõ thuaät tieàn nhaán ( preemphasis ) vaø deemphasis (ngöôïc laïi vôùi 
tìeân nhaán ) ñöôïc duøng trong ghi aâm vaø phaùt laïi . Noù laøm nhieãu löôïng töû 
hoaù ôû mieàn taàn soá cao vaø chöùc naêng naøy ñöôïc duøng trong maùy ghi aâm 
vôùi tín hieäu audio taïi ñaàu vaøo laø töông töï coøn ñoái vôùi maùy ghi aâm soá thì 
khoâng caàn söû duïng chöùc naêng naøy . 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 44 
Chöông III : 
 KHAÛO SAÙT VI ÑIEÀU KHIEÅN 89C51 
I. GIÔÙI THIEÄU CAÁU TRUÙC PHAÀN CÖÙNG HOÏ MSC-51 (8951): 
 -Ñaëc ñieåm vaø chöùc naêng hoaït ñoäng cuûa caùc IC hoï MSC-51 hoaøn 
toaøn töông töï nhö nhau. ÔÛ ñaây giôùi thieäu IC8951 laø moät hoï IC vi ñieàu 
khieån ñaõ coù nhieàu öùng duïng raát roäng raõi . Chuùng coù caùc ñaëc ñieåm 
chung nhö sau: 
 Caùc ñaëc ñieåm cuûa 8951 ñöôïc toùm taét nhö sau : 
√ 4 KB EPROM beân trong. 
√ 128 Byte RAM noäi. 
√ 4 Port xuaát /nhaäp I/O 8 bit. 
√ Giao tieáp noái tieáp. 
√ 64 KB vuøng nhôù maõ ngoaøi 
√ 64 KB vuøng nhôù döõ lieäu ngoaïi. 
√ Xöû lí Boolean (hoaït ñoäng treân bit ñôn). 
√ 210 vò trí nhôù coù theå ñònh vò bit. 
√ 4 µs cho hoaït ñoäng nhaân hoaëc chia. 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 45 
Sô ñoà khoái cuûa 8951: 
OTHER 
REGISTER 
128 byte 
RAM 
128 byte 
RAM 
8051\8052 
ROM
4K: 8031 
4K: 8051 
EPROM 
4K: 8951 
INTERRUPT 
CONTROL 
SERIAL PORT 
TIMER 0 
TIMER 1 
TIME 2 
CPU 
OSCILATOR 
BUS 
CONTROL 
I/O PORT
SERIAL 
PORT 
EA\ 
RST 
ALE\
PSEN\ 
P0 P1 P2 P3
Address\Data TXD RXD 
TIMER 2 
TIMER1 
TIMER1 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 46 
II. KHAÛO SAÙT SÔ ÑOÀ CHAÂN 8951, CHÖÙC NAÊNG TÖØNG CHAÂN: 
 1.Sô ñoà chaân 8951: 
 30pF 
 30pF 
Sô ñoà chaân IC 8951 
 2. Chöùc naêng caùc chaân cuûa 8951: 
 - 8951 coù taát caû 40 chaân coù chöùc naêng nhö caùc ñöôøng xuaát nhaäp. 
Trong ñoù coù 24 chaân coù taùc duïng keùp (coù nghóa 1 chaân coù 2 chöùc 
naêng), moãi ñöôøng coù theå hoaït ñoäng nhö ñöôøng xuaát nhaäp hoaëc nhö 
ñöôøng ñieàu khieån hoaëc laø thaønh phaàn cuûa caùc bus döõ lieäu vaø bus ñòa 
chæ. 
 a.Caùc Port: 
32 AD7 
33 AD6 
34 AD5 
35 AD4 
36 AD3 
37 AD2 
38 AD1 
39 AD0 
8 
7 
6 
5 
4 
3 
2 
1 
28 A15 
27 A14 
26 A13 
25 A12 
24 A11 
23 A10 
40
Vcc 
 XTAL.1 
 XTAL.2 
PSEN\ 
 ALE 
 EA\ 
 RST 
P0.7 
P0.6 
P0.5 
P0.4 
P0.3 
P0.2 
P0.1 
P0.0 
P1.7 
P1.6 
P1.5 
P1.4 
P1.3 
P1.2 
P1.1 
P1.0 
P2.7 
P2.6 
P2.5 
P2.4 
P2.3 
P2.2 
P2.1 
P2 0
18
19
12 
P3.7 
P3.6 
P3.5 
P3.4 
P3.3 
P3.2 
P3.1 
P3.0
17
16
15
14
13
12
11
10
RD 
WR 
T1 
T0 
INT1 
INT0 
TXD 
RXD 
8951
29
30
31
9 
20
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 47 
 Port 0 : 
 - Port 0 laø port coù 2 chöùc naêng ôû caùc chaân 32 – 39 cuûa 8951. Trong 
caùc thieát keá côõ nhoû khoâng duøng boä nhôù môû roäng noù coù chöùc naêng nhö 
caùc ñöôøng I/O. Ñoái vôùi caùc thieát keá côõ lôùn coù boä nhôù môû roäng, noù ñöôïc 
keát hôïp giöõa bus ñòa chæ byte thaáp vaø bus döõ lieäu. Trong nöûa chu kì ñaàu 
laø bus ñòa chæ nöûa chu kì sau laø bus döõ lieäu . 
  Port 1: 
- Port 1 laø port I/O treân caùc chaân 1-8. Caùc chaân ñöôïc kyù hieäu P1.0, 
P1.1, P1.2, … P1.7 coù theå duøng cho giao tieáp vôùi caùc thieát bò ngoaøi neáu 
caàn. Port 1 khoâng coù chöùc naêng khaùc, vì vaäy chuùng chæ ñöôïc duøng cho 
giao tieáp vôùi caùc thieát bò beân ngoaøi. 
 Port 2: 
 - Port 2 laø 1 port coù taùc duïng keùp treân caùc chaân 21 - 28 ñöôïc 
duøng nhö caùc ñöôøng xuaát nhaäp hoaëc laø byte cao cuûa bus ñòa chæ ñoái 
vôùi caùc thieát bò duøng boä nhôù môû roäng. Trong nöûa chu kì ñaàu laø bus ñòa 
chæ nöûa chu kì sau laø bus döõ lieäu . 
 Port 3: 
- Port 3 laø port coù taùc duïng keùp treân caùc chaân 10 - 17. Caùc chaân 
cuûa port naøy coù caùc chöùc naêng ñaëc bieät cuûa 8951 nhö ôû baûng 
sau: 
 Bit Teân Chöùc naêng chuyeån ñoåi 
P3.0 RXT Ngoõ vaøo döõ lieäu noái tieáp. 
P3.1 TXD Ngoõ xuaát döõ lieäu noái tieáp. 
P3.2 
P3.3 
P3.4 
P3.5 
P3.6 
P3.7 
INT0\ 
INT1\ 
T0 
T1 
WR\ 
RD\ 
Ngoõ vaøo ngaét cöùng thöù 0. 
Ngoõ vaøo ngaét cöùng thöù 1. 
Ngoõ vaøo cuûa TIMER/COUNTER thöù 0. 
Ngoõ vaøo cuûa TIMER/COUNTER thöù 1. 
Tín hieäu ghi döõ lieäu leân boä nhôù ngoaøi. 
Tín hieäu ñoïc boä nhôù döõ lieäu ngoaøi. 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 48 
. Caùc ngoõ tín hieäu ñieàu khieån: 
 Ngoõ tín hieäu PSEN (Program store enable): 
 - PSEN laø tín hieäu ngoõ ra ôû chaân 29 coù taùc duïng cho pheùp ñoïc boä 
nhôù chöông trình môû roäng thöôøng ñöôïc noùi ñeán chaân 0E\ (output 
enable) cuûa Eprom cho pheùp ñoïc caùc byte maõ leänh. 
 - PSEN ôû möùc thaáp trong thôøi gian Microcontroller 8951 laáy 
leänh. Caùc maõ leänh cuûa chöông trình ñöôïc ñoïc töø Eprom qua bus döõ lieäu 
vaø ñöôïc choát vaøo thanh ghi leänh beân trong 8951 ñeå giaûi maõ leänh. Khi 
8951 thi haønh chöông trình trong ROM noäi PSEN seõ ôû möùc logic 1. 
  Ngoõ tín hieäu ñieàu khieån ALE (Address Latch Enable ) : 
 - Khi 8951 truy xuaát boä nhôù beân ngoaøi, port 0 coù chöùc naêng laø 
bus ñòa chæ vaø bus döõ lieäu do ñoù phaûi taùch caùc ñöôøng döõ lieäu vaø ñòa chæ. 
Tín hieäu ra ALE ôû chaân thöù 30 duøng laøm tín hieäu ñieàu khieån ñeå giaûi ña 
hôïp caùc ñöôøng ñòa chæ vaø döõ lieäu khi keát noái chuùng vôùi IC choát. 
 - Tín hieäu ra ôû chaân ALE laø moät xung trong khoaûng thôøi gian 
port 0 ñoùng vai troø laø ñòa chæ thaáp neân choát ñòa chæ hoaøn toaøn töï ñoäng. 
 Caùc xung tín hieäu ALE coù toác ñoä baèng 1/6 laàn taàn soá dao ñoäng treân 
chip vaø coù theå ñöôïc duøng laøm tín hieäu clock cho caùc phaàn khaùc cuûa heä 
thoáng. Chaân ALE ñöôïc duøng laøm ngoõ vaøo xung laäp trình cho Eprom 
trong 8951. 
 Ngoõ tín hieäu EA\(External Access): 
- Tín hieäu vaøo EA\ ôû chaân 31 thöôøng ñöôïc maéc leân möùc 1 hoaëc möùc 0. 
Neáu ôû möùc 1, 8951 thi haønh chöông trình töø ROM noäi trong khoaûng 
ñòa chæ thaáp 8 Kbyte. Neáu ôû möùc 0, 8951 seõ thi haønh chöông trình töø boä 
nhôù môû roäng. Chaân EA\ ñöôïc laáy laøm chaân caáp nguoàn 21V khi laäp 
trình cho Eprom trong 8951. 
 Ngoõ tín hieäu RST (Reset) : 
 -Ngoõ vaøo RST ôû chaân 9 laø ngoõ vaøo Reset cuûa 8951. Khi ngoõ vaøo 
tín hieäu naøy ñöa leân cao ít nhaát laø 2 chu kyø maùy, caùc thanh ghi beân 
trong ñöôïc naïp nhöõng giaù trò thích hôïp ñeå khôûi ñoäng heä thoáng. Khi caáp 
ñieän maïch töï ñoäng Reset. 
 Caùc ngoõ vaøo boä dao ñoäng X1, X2: 
- Boä dao ñoäng ñöôïc tích hôïp beân trong 8951, khi söû duïng 8951 ngöôøi 
thieát keá chæ caàn keát noái theâm thaïch anh vaø caùc tuï nhö hình veõ trong sô 
ñoà. Taàn soá thaïch anh thöôøng söû duïng cho 8951 laø 12Mhz. 
 Chaân 40 (Vcc) ñöôïc noái leân nguoàn 5V. 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 49 
III. CAÁU TRUÙC BEÂN TRONG VI ÑIEÀU KHIEÅN 
 Baûng toùm taét caùc vuøng nhôù 8951. 
Baûn ñoà boä nhôù Data treân Chip nhö sau : 
7F FF 
 F0 F7 F6 F5 F4 F3 F2 F1 F0 B 
 RAM ña duïng 
 E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC 
 D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW 
30 B8 - - - BC BB BA B9 B8 IP 
2F 7F 7E 7D 7C 7B 7A 79 78 
2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P.3 
2D 6F 6E 6D 6C 6B 6A 69 68 
2C 67 66 65 64 63 62 61 60 A8 AF AC AB AA A9 A8 IE 
2B 5F 5E 5D 5C 5B 5A 59 58 
2A 57 56 55 54 53 52 51 50 A0 A7 A6 A5 A4 A3 A2 A1 A0 P2 
29 4F 4E 4D 4C 4B 4A 49 48 
28 47 46 45 44 43 42 41 40 99 khoâng ñöôïc ñòa chæ hoaù bit SBUF 
27 3F 3E 3D 3C 3B 3A 39 38 98 9F 9E 9D 9C 9B 9A 99 98 SCON 
26 37 36 35 34 33 32 31 30 
25 2F 2E 2D 2C 2B 2A 29 28 90 97 96 95 94 93 92 91 90 P1 
24 27 26 25 24 23 22 21 20 
23 1F 1E 1D 1C 1B 1A 19 18 8D khoâng ñöôïc ñòa chæ hoaù bit TH1 
22 17 16 15 14 13 12 11 10 8C khoâng ñöôïc ñòa chæ hoaù bit TH0 
21 0F 0E 0D 0C 0B 0A 09 08 8B khoâng ñöôïc ñòa chæ hoaù bit TL1 
20 07 06 05 04 03 02 01 00 8A khoâng ñöôïc ñòa chæ hoaù bit TL0 
1F Bank 3 89 khoâng ñöôïc ñòa chæ hoaù bit TMOD
18 88 8F 8E 8D 8C 8B 8A 89 88 TCON 
17 Bank 2 87 khoâng ñöôïc ñòa chæ hoaù bit PCON 
10 
0F Bank 1 83 khoâng ñöôïc ñòa chæ hoaù bit DPH 
08 82 khoâng ñöôïc ñòa chæ hoaù bit DPL 
07 Bank thanh ghi 0 81 khoâng ñöôïc ñòa chæ hoaù bit SP 
00 (maëc ñònh cho R0 -R7) 88 87 86 85 84 83 82 81 80 P0 
 CAÙC THANH GHI CHÖÙC NAÊNG ÑAËC BIEÄT 
Ñòa chæ 
byte Ñòa chæ bit Ñòa chæ bit 
Ñòa chæ 
byte
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 50 
 1. Toå chöùc boä nhôù: 
 FFFF FFFF 
 FF 
 00 
 On - Chip 0000 0000 
 Memory 
 External Memory 
 - Boä nhôù trong 8951 bao goàm ROM vaø RAM. RAM trong 8951 bao 
goàm nhieàu thaønh phaàn: phaàn löu tröõ ña duïng, phaàn löu tröõ ñòa chæ hoùa 
töøng bit, caùc bank thanh ghi vaø caùc thanh ghi chöùc naêng ñaëc bieät. 
- 8951 coù boä nhôù theo caáu truùc Harvard: coù nhöõng vuøng boä nhôù rieâng 
bieät cho chöông trình vaø döõ lieäu. Chöông trình vaø döõ lieäu coù theå chöùa 
beân trong 8951 nhöng 8951 vaãn coù theå keát noái vôùi 64K byte boä nhôù 
chöông trình vaø 64K byte döõ lieäu. 
 Hai ñaëc tính caàn chuù yù la ø: 
  Caùc thanh ghi vaø caùc port xuaát nhaäp ñaõ ñöôïc ñònh vò (xaùc 
ñònh) trong boä nhôù vaø coù theå truy xuaát tröïc tieáp gioáng nhö caùc ñòa chæ 
boä nhôù khaùc. 
 Ngaên xeáp beân trong Ram noäi nhoû hôn so vôùi Ram ngoaïi nhö 
trong caùc boä Microcontroller khaùc. 
 RAM beân trong 8951 ñöôïc Phaân chia nhö sau: 
  Caùc bank thanh ghi coù ñòa chæ töø 00H ñeán 1FH. 
  RAM ñòa chæ hoùa töøng bit coù ñòa chæ töø 20H ñeán 2FH. 
  RAM ña duïng töø 30H ñeán 7FH. 
  Caùc thanh ghi chöùc naêng ñaëc bieät töø 80H ñeán FFH. 
 RAM ña duïng: 
 - Maëc duø treân hình veõ cho thaáy 80 byte ña duïng chieám caùc ñòa chæ töø 
30H ñeán 7FH, 32 byte döôùi töø 00H ñeán 1FH cuõng coù theå duøng vôùi muïc 
ñích töông töï (maëc duø caùc ñòa chæ naøy ñaõ coù muïc ñích khaùc). 
 - Moïi ñòa chæ trong vuøng RAM ña duïng ñeàu coù theå truy xuaát töï do 
duøng kieåu ñòa chæ tröïc tieáp hoaëc giaùn tieáp. 
CODE 
Memory 
Enable 
via 
PSEN 
DATA 
Memory 
Enable 
via 
RD & 
WR
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 51 
 RAM coù theå truy xuaát töøng bit: 
 - 8951 chöùa 210 bit ñöôïc ñòa chæ hoùa, trong ñoù coù 128 bit coù chöùa caùc 
byte coù chöùa caùc ñòa chæ töø 20F ñeán 2FH vaø caùc bit coøn laïi chöùa trong 
nhoùm thanh ghi coù chöùc naêng ñaëc bieät. 
 - YÙ töôûng truy xuaát töøng bit baèng phaàn meàm laø caùc ñaëc tính maïnh 
cuûa microcontroller xöû lyù chung. Caùc bit coù theå ñöôïc ñaët, xoùa, AND, 
OR, . . . , vôùi 1 leänh ñôn. Ña soá caùc microcontroller xöû lyù ñoøi hoûi moät 
chuoåi leänh ñoïc – söûa - ghi ñeå ñaït ñöôïc muïc ñích töông töï. Ngoaøi ra caùc 
port cuõng coù theå truy xuaát ñöôïc töøng bit. 
 - 128 bit maø truy xuaát töøng bit naøy cuõng coù theå truy xuaát nhö caùc 
byte hoaëc nhö caùc bit phuï thuoäc vaøo leänh ñöôïc duøng. 
 Caùc bank thanh ghi: 
 - 32 byte thaáp cuûa boä nhôù noäi ñöôïc daønh cho caùc bank thanh ghi. Boä 
leänh 8951 hoå trôï 8 thanh ghi coù teân laø R0 ñeán R7 vaø theo maëc ñònh sau 
khi reset heä thoáng, caùc thanh ghi naøy coù caùc ñòa chæ töø 00H ñeán 07H. 
 - Caùc leänh duøng caùc thanh ghi RO ñeán R7 seõ ngaén hôn vaø nhanh hôn 
so vôùi caùc leänh coù chöùc naêng töông öùng duøng kieåu ñòa chæ tröïc tieáp. 
Caùc döõ lieäu ñöôïc duøng thöôøng xuyeân neân duøng moät trong caùc thanh ghi 
naøy. 
- Do coù 4 bank thanh ghi neân taïi moät thôøi ñieåm chæ coù moät bank thanh 
ghi ñöôïc truy xuaát bôûi caùc thanh ghi RO ñeán R7 ñeå chuyeån ñoåi vieäc 
truy xuaát caùc bank thanh ghi ta phaûi thay ñoåi caùc bit choïn bank trong 
thanh ghi traïng thaùi. 
2. Caùc thanh ghi coù chöùc naêng ñaëc bieät: 
 - Caùc thanh ghi noäi cuûa 8951 ñöôïc truy xuaát ngaàm ñònh bôûi boä leänh. 
- Caùc thanh ghi trong 8951 ñöôïc ñònh daïng nhö moät phaàn cuûa 
RAM treân chip vì vaäy moãi thanh ghi seõ coù moät ñòa chæ (ngoaïi tröø 
thanh ghi boä ñeám chöông trình vaø thanh ghi leänh vì caùc thanh ghi 
naøy hieám khi bò taùc ñoäng tröïc tieáp). Cuõng nhö R0 ñeán R7, 8951 coù 
21 thanh ghi coù chöùc naêng ñaëc bieät (SFR: Special Function 
Register) ôû vuøng treân cuûa RAM noäi töø ñòa chæ 80H ñeán FFH. 
Chuù yù: taát caû 128 ñòa chæ töø 80H ñeán FFH khoâng ñöôïc ñònh 
nghóa, chæ coù 21 thanh ghi coù chöùc naêng ñaëc bieät ñöôïc ñònh nghóa 
saün caùc ñòa chæ. 
- Ngoaïi tröø thanh ghi A coù theå ñöôïc truy xuaát ngaàm nhö ñaõ 
noùi, ña soá caùc thanh ghi coù chöùc naêng ñaëc bieät SFR coù theå ñòa 
chæ hoùa töøng bit hoaëc byte. 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 52 
• Thanh ghi traïng thaùi chöông trình (PSW: Program Status Word): 
Töø traïng thaùi chöông trình ôû ñòa chæ D0H ñöôïc toùm taét nhö sau: 
BIT SYMBOL ADDRESS DESCRIPTION 
PSW.7 CY D7H Cary Flag 
PSW.6 AC D6H Auxiliary Cary Flag 
PSW.5 F0 D5H Flag 0 
PSW4 RS1 D4H Register Bank Select 1 
PSW.3 RS0 D3H Register Bank Select 0 
 00=Bank 0; address 00H÷07H 
 01=Bank 1; address 08H÷0FH 
 10=Bank 2; address 10H÷17H 
 11=Bank 3; address 18H÷1FH 
PSW.2 OV D2H Overlow Flag 
PSW.1 - D1H Reserved 
PSW.0 P DOH Even Parity Flag 
Chöùc naêng töøng bit traïng thaùi chöông trình 
• Côø Carry CY (Carry Flag): 
- Côø nhôù coù taùc duïng keùp. Thoâng thöôøng noù ñöôïc duøng cho 
caùc leänh toaùn hoïc: C=1 neáu pheùp toaùn coäng coù söï traøn hoaëc pheùp 
tröø coù möôïn vaø ngöôïc laïi C= 0 neáu pheùp toaùn coäng khoâng traøn vaø 
pheùp tröø khoâng coù möôïn. 
• Carry phuï AC (Auxiliary Carry Côø Flag): 
- Khi coäng nhöõng giaù trò BCD (Binary Code Decimal), côø nhôù phuï AC 
ñöôïc set neáu keát quaû 4 bit thaáp naèm trong phaïm vi ñieàu khieån 0AH÷ 
0FH. Ngöôïc laïi AC= 0. 
• Côø 0 (Flag 0): 
 Côø 0 (F0) laø 1 bit côø ña duïng duøng cho caùc öùng duïng cuûa ngöôøi 
duøng. 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 53 
• Nhöõng bit choïn bank thanh ghi truy xuaát: 
- RS1 vaø RS0 quyeát ñònh daõy thanh ghi tích cöïc. Chuùng ñöôïc xoùa 
sau khi reset heä thoáng vaø ñöôïc thay ñoåi bôûi phaàn meàm khi caàn thieát. 
 - Tuøy theo RS1, RS0 = 00, 01, 10, 11 seõ ñöôïc choïn Bank tích 
cöïc töông öùng laø Bank 0, Bank1, Bank2, Bank3. 
RS1 RS0 BANK 
0 0 0 
0 1 1 
1 0 2 
1 1 3 
• Côø traøn OV (Over Flag) : 
- Côø traøn ñöôïc set sau moät hoaït ñoäng coäng hoaëc tröø neáu coù söï 
traøn toaùn hoïc. Khi caùc soá coù daáu ñöôïc coäng hoaëc tröø vôùi nhau, phaàn 
meàm coù theå kieåm tra bit naøy ñeå xaùc ñònh xem keát quaû coù naèm trong 
taàm xaùc ñònh khoâng. Khi caùc soá khoâng coù daáu ñöôïc coäng bit OV ñöôïc 
boû qua. Caùc keát quaû lôùn hôn +127 hoaëc nhoû hôn –128 thì bit OV = 1. 
• Bit Parity (P): 
 - Bit töï ñoäng ñöôïc set hay Clear ôû moãi chu kyø maùy ñeå laäp Parity 
chaún vôùi thanh ghi A. Söï ñeám caùc bit 1 trong thanh ghi A coäng vôùi bit 
Parity luoân luoân chaün. Ví duï A chöùa 10101101B thì bit P set leân moät ñeå 
toång soá bit 1 trong A vaø P taïo thaønh soá chaün. 
 - Bit Parity thöôøng ñöôïc duøng trong söï keát hôïp vôùi nhöõng thuû tuïc 
cuûa Port noái tieáp ñeå taïo ra bit Parity tröôùc khi phaùt ñi hoaëc kieåm tra bit 
Parity sau khi thu. 
• Thanh ghi B: 
 - Thanh ghi B ôû ñòa chæ F0H ñöôïc duøng cuøng vôùi thanh ghi A cho 
caùc pheùp toaùn nhaân chia. Leänh MUL AB   seõ nhaän nhöõng giaù trò 
khoâng daáu 8 bit trong hai thanh ghi A vaø B, roài traû veà keát quaû 16 bit 
trong A (byte cao) vaø B(byte thaáp). Leänh DIV AB laáy A chia B, keát 
quaû nguyeân ñaët vaøo A, soá dö ñaët vaøo B. 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 54 
- Thanh ghi B coù theå ñöôïc duøng nhö moät thanh ghi ñeäm trung gian 
ña muïc ñích. Noù laø nhöõng bit ñònh vò thoâng qua nhöõng ñòa chæ töø 
F0H÷F7H. 
• Con troû Ngaên xeáp SP (Stack Pointer) : 
- Con troû ngaên xeáp laø moät thanh ghi 8 bit ôû ñòa chæ 81H. Noù chöùa ñòa 
chæ cuûa byte döõ lieäu hieän haønh treân ñænh ngaên xeáp. Caùc leänh treân ngaên 
xeáp bao goàm caùc leänh caát döõ lieäu vaøo ngaên xeáp (PUSH) vaø laáy döõ lieäu 
ra khoûi Ngaên xeáp (POP). Leänh caát döõ lieäu vaøo ngaên xeáp seõ laøm taêng 
SP tröôùc khi ghi döõ lieäu vaø leänh laáy ra khoûi ngaên xeáp seõ laøm giaûm SP. 
Ngaên xeáp cuûa 8031/8051 ñöôïc giöõ trong RAM noäi vaø giôùi haïn caùc ñòa 
chæ coù theå truy xuaát baèng ñòa chæ giaùn tieáp, chuùng laø 128 byte ñaàu cuûa 
8951. 
 - Ñeå khôûi ñoäng SP vôùi ngaên xeáp baét ñaàu taïi ñòa chæ 60H, caùc 
leänh sau ñaây ñöôïc duøng: 
 MOV SP , #5F 
 - Vôùi leänh treân thì ngaên xeáp cuûa 8951 chæ coù 32 byte vì ñòa chæ 
cao nhaát cuûa RAM treân chip laø 7FH. Sôû dó giaù trò 5FH ñöôïc naïp vaøo SP 
vì SP taêng leân 60H tröôùc khi caát byte döõ lieäu. 
 - Khi Reset 8951, SP seõ mang giaù trò maëc ñònh laø 07H vaø döõ 
lieäu ñaàu tieân seõ ñöôïc caát vaøo oâ nhôù ngaên xeáp coù ñòa chæ 08H. Neáu 
phaàn meàm öùng duïng khoâng khôûi ñoäng SP moät giaù trò môùi thì bank 
thanh ghi1 coù theå caû 2 vaø 3 seõ khoâng duøng ñöôïc vì vuøng RAM naøy ñaõ 
ñöôïc duøng laøm ngaên xeáp. Ngaên xeáp ñöôïc truy xuaát tröïc tieáp baèng caùc 
leänh PUSH vaø POP ñeå löu tröõ taïm thôøi vaø laáy laïi döõ lieäu, hoaëc truy 
xuaát ngaàm baèng leänh goïi chöông trình con ( ACALL, LCALL) vaø caùc 
leänh trôû veà (RET, RETI) ñeå löu tröõ giaù trò cuûa boä ñeám chöông trình khi 
baét ñaàu thöïc hieän chöông trình con vaø laáy laïi khi keát thuùc chöông trình 
con … 
• 
• Con troû döõ lieäu DPTR (Data Pointer): 
 -Con troû döõ lieäu (DPTR) ñöôïc duøng ñeå truy xuaát boä nhôù ngoaøi laø 
moät thanh ghi 16 bit ôû ñòa chæ 82H (DPL: byte thaáp) vaø 83H (DPH: byte 
cao). Ba leänh sau seõ ghi 55H vaøo RAM ngoaøi ôû ñòa chæ 1000H: 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 55 
 MOV A , #55H 
 MOV DPTR, #1000H 
 MOV @DPTR, A 
 - Leänh ñaàu tieân duøng ñeå naïp 55H vaøo thanh ghi A. Leänh thöù 
hai duøng ñeå naïp ñòa chæ cuûa oâ nhôù caàn löu giaù trò 55H vaøo con troû döõ 
lieäu DPTR. Leänh thöù ba seõ di chuyeån noäi dung thanh ghi A (laø 55H) 
vaøo oâ nhôù RAM beân ngoaøi coù ñòa chæ chöùa trong DPTR (laø 1000H). 
• Caùc thanh ghi Port (Port Register): 
 - Caùc Port cuûa 8951 bao goàm Port0 ôû ñòa chæ 80H, Port1 ôû ñòa 
chæ 90H, Port2 ôû ñòa chæ A0H, vaø Port3 ôû ñòa chæ B0H. Taát caû caùc Port 
naøy ñeàu coù theå truy xuaát töøng bit neân raát thuaän tieän trong khaû naêng 
giao tieáp. 
• Caùc thanh ghi Timer (Timer Register): 
 - 8951 coù chöùa hai boä ñònh thôøi/ boä ñeám 16 bit ñöôïc duøng cho 
vieäc ñònh thôøi ñöôïc ñeám söï kieän. Timer0 ôû ñòa chæ 8AH (TLO: byte 
thaáp ) vaø 8CH (THO: byte cao). Timer1 ôû ñòa chæ 8BH (TL1: byte thaáp) 
vaø 8DH (TH1: byte cao). Vieäc khôûi ñoäng timer ñöôïc SET bôûi Timer 
Mode (TMOD) ôû ñòa chæ 89H vaø thanh ghi ñieàu khieån Timer (TCON) ôû 
ñòa chæ 88H. Chæ coù TCON ñöôïc ñòa chæ hoùa töøng bit . 
• Caùc thanh ghi Port noái tieáp (Serial Port Register) : 
 - 8951 chöùa moät Port noái tieáp cho vieäc trao ñoåi thoâng tin vôùi 
caùc thieát bò noái tieáp nhö maùy tính, modem hoaëc giao tieáp noái tieáp vôùi 
caùc IC khaùc. Moät thanh ghi ñeäm döõ lieäu noái tieáp (SBUF) ôû ñòa chæ 99H 
seõ giöõ caû hai döõ lieäu truyeàn vaø döõ lieäu nhaäp. Khi truyeàn döõ lieäu ghi leân 
SBUF, khi nhaän döõ lieäu thì ñoïc SBUF. Caùc mode vaän khaùc nhau ñöôïc 
laäp trình qua thanh ghi ñieàu khieån Port noái tieáp (SCON) ñöôïc ñòa chæ 
hoùa töøng bit ôû ñòa chæ 98H. 
• Caùc thanh ghi ngaét (Interrupt Register): 
- 8951 coù caáu truùc 5 nguoàn ngaét, 2 möùc öu tieân. Caùc ngaét bò caám 
sau khi bò reset heä thoáng vaø seõ ñöôïc cho pheùp baèng vieäc ghi 
thanh ghi cho pheùp ngaét (IE) ôû ñòa chæ A8H. Caû hai ñöôïc ñòa chæ 
hoùa töøng bit. 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 56 
-Thanh ghi ñieàu khieån nguoàn PCON (Power Control Register): 
- Thanh ghi PCON khoâng coù bit ñònh vò. Noù ôû ñòa chæ 87H chöùa 
nhieàu bit ñieàu khieån. Thanh ghi PCON ñöôïc toùm taét nhö sau: 
√ Bit 7 (SMOD) : Bit coù toác ñoä Baudrate mode 1, 2, 3 . 
√ Bit 6, 5, 4 : Khoâng coù ñòa chæ. 
√ Bit 3 (GF1) : Bit côø ña naêng 1. 
√ Bit 2 (GF0) : Bit côø ña naêng 2 . 
√ Bit 1 (PD) : Set ñeå khôûi ñoäng mode Power Down vaø thoaùt ñeå 
reset. 
√ Bit 0 (IDL) : Set ñeå khôûi ñoäng mode Idle vaø thoaùt khi ngaét 
maïch hoaëc reset. 
 Caùc bit ñieàu khieån Power Down vaø Idle coù taùc duïng chính trong 
taát caû caùc IC hoï MSC-51 nhöng chæ ñöôïc thi haønh trong söï bieân dòch 
cuûa CMOS. 
3. Boä nhôù ngoaøi (external memory) : 
- 8951 coù khaû naêng môû roäng boä nhôù leân ñeán 64K byte boä nhôù chöông 
trình vaø 64k byte boä nhôù döõ lieäu ngoaøi. Do ñoù coù theå duøng theâm RAM 
vaø ROM neáu caàn. 
- Khi duøng boä nhôù ngoaøi, Port0 khoâng coøn chöùc naêng I/O nöõa. Noù 
ñöôïc keát hôïp giöõa bus ñòa chæ (A0-A7) vaø bus döõ lieäu (D0-D7) 
vôùi tín hieäu ALE ñeå choát byte cuûa bus ñòa chæ khi baét ñaàu moãi 
chu kyø boä nhôù. Port ñöôïc cho laø byte cao cuûa bus ñòa chæ. 
- Truy xuaát boä nhôù maõ ngoaøi (Accessing External Code Memory) : 
 - Boä nhôù chöông trình beân ngoaøi laø boä nhôù ROM ñöôïc cho pheùp 
cuûa tín hieäu PSEN\. Söï keát noái phaàn cöùng cuûa boä nhôù EPROM nhö sau: 
 Port 0 
 EA 
 ALE 
 Port 2 
 PSEN 
8951
 D0 ÷ D7 
 A0 ÷ A7 
 A8 ÷ A15 
 OE 
 74HC373
 O 
D EPROM
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 57 
- Trong moät chu kyø maùy tieâu bieåu, tín hieäu ALE tích 2 laàn. Laàn thöù nhaát 
cho pheùp 74HC373 môû coång choát ñòa chæ byte thaáp, khi ALE xuoáng 0 thì 
byte thaáp vaø byte cao cuûa boä ñeám chöông trình ñeàu coù nhöng EPROM 
chöa xuaát vì PSEN\ chöa tích cöïc, khi tín hieäu leân moät trôû laïi thì Port 0 ñaõ 
coù döõ lieäu laø Opcode. ALE tích cöïc laàn thöù hai ñöôïc giaûi thích töông töï 
vaø byte 2 ñöôïc ñoïc töø boä nhôù chöông trình. Neáu leänh ñang hieän haønh laø 
leänh 1 byte thì CPU chæ ñoïc Opcode, coøn byte thöù hai boû ñi. 
• Truy xuaát boä nhôù döõ lieäu ngoaøi (Accessing External Data Memory): 
- Boä nhôù döõ lieäu ngoaøi laø moät boä nhôù RAM ñöôïc ñoïc hoaëc ghi 
khi ñöôïc cho pheùp cuûa tín hieäu RD\ vaø WR. Hai tín hieäu naøy naèm ôû 
chaân P3.7 (RD) vaø P3.6 (WR). Leänh MOVX ñöôïc duøng ñeå truy xuaát boä 
nhôù döõ lieäu ngoaøi vaø duøng moät boä ñeäm döõ lieäu 16 bit (DPTR), R0 hoaëc 
R1 nhö laø moät thanh ghi ñòa chæ. 
- Caùc RAM coù theå giao tieáp vôùi 8951 töông töï caùch thöùc nhö EPROM 
ngoaïi tröø chaân RD\ cuûa 8951 noái vôùi chaân OE\ (Output Enable) cuûa 
RAM vaø chaân WR\ cuûa 8951 noái vôùi chaân WE\ cuûa RAM. Söï noái caùc 
bus ñòa chæ vaø döõ lieäu töông töï nhö caùch noái cuûa EPROM. 
• Söï giaûi maõ ñòa chæ (Address Decoding): 
 - Söï giaûi maõ ñòa chæ laø moät yeâu caàu taát yeáu ñeå choïn EPROM, 
RAM, 8279, … Söï giaûi maõ ñòa chæ ñoái vôùi 8951 ñeå choïn caùc vuøng nhôù 
ngoaøi nhö caùc vi ñieàu khieån. Neáu caùc con EPROM hoaëc RAM 8K ñöôïc 
duøng thì caùc bus ñòa chæ phaûi ñöôïc giaûi maõ ñeå choïn caùc IC nhôù naèm 
trong phaïm vi giôùi haïn 8K: 0000H÷1FFFH, 2000H÷3FFFH, . . 
- Moät caùch cuï theå, IC giaûi maõ 74HC138 ñöôïc duøng vôùi nhöõng ngoõ 
ra cuûa noù ñöôïc noái vôùi nhöõng ngoõ vaøo choïn Chip CS (Chip 
Select) 
 Port 0 
 EA\ 
 ALE 
89C51 
 D0 – D7 
CS RAM 
 A0 ÷ A7 
 74HC373 
 O D
G
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 58 
- treân nhöõng IC nhôù EPROM, RAM, … Hình sau ñaây cho pheùp keát 
noái nhieàu EPROM vaø RAM. 
 74HC138 
 Address Decoding (Giaûi maõ ñòa chæ) 
• Söï ñeø leân nhau cuûa caùc vuøng nhôù döõ lieäu ngoaøi: 
 - Vì boä nhôù chöông trình laø ROM, neân naûy sinh moät vaán ñeà baát 
tieän khi phaùt trieån phaàn meàm cho vi ñieàu khieån. Moät nhöôïc ñieåm 
chung cuûa 8951 laø caùc vuøng nhôù döõ lieäu ngoaøi naèm ñeø leân nhau, vì 
tín hieäu PSEN\ ñöôïc duøng ñeå ñoïc boä nhôù maõ ngoaøi vaø tín hieäu RD\ 
ñöôïc duøng ñeå ñoïc boä nhôù döõ lieäu, neân moät boä nhôù RAM coù theå 
chöùa caû chöông trình vaø döõ lieäu baèng caùch noái ñöôøng OE\ cuûa 
RAMù ñeán ngoõ ra moät coång AND coù hai ngoõ vaøo PSEN\ vaø RD\. Sô 
ñoà maïch nhö hình sau cho pheùp cho pheùp boä nhôù RAM coù hai chöùc 
naêng vöøa laø boä nhôù chöông trình vöøa laø boä nhôù döõ lieäu: 
Overlapping the External code and data space 
CS
CS
D0 - D7 
 OE 
 EPROM 
 A0 ÷ A12 
 8K Bytes 
CS
 C 
 B 
 A 
 E 
0 
1 
2 
3 
4 
5 
6
CS 
CS 
 OE D0 - D7 
 W 
 RAM 
 A0 ÷ A12 
 8K Bytes 
CS
PSE RD\
WR
Address Bus (A0 
Data Bus (D0 ÷
Select other 
EPROM/RAM
RAM 
 WR\ 
 OE\
WR\ 
RD\ 
PSEN\ 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 59 
 -Vaäy moät chöông trình coù theå ñöôïc taûi vaøo RAM baèng caùch xem 
noù nhö boä nhôù döõ lieäu vaø thi haønh chöông trình baêng caùch xem noù nhö 
boä nhôù chöông trình. 
 Hoaït ñoäng Reset: 
 - 8951 coù ngoõ vaøo reset RST taùc ñoäng ôû möùc cao trong khoaûng 
thôøi gian 2 chu kyø xung maùy, sau ñoù xuoáng möùc thaáp ñeå 8951 baét ñaàu 
laøm vieäc. RST coù theå kích baèng tay baèng moät phím nhaán thöôøng hôû, sô 
ñoà maïch reset nhö sau: 
 + 5 V 
 Reset 
Reset baèng tay. 
Traïng thaùi cuûa taát caû caùc thanh ghi trong 8951 sau khi reset heä thoáng 
ñöôïc toùm taét nhö sau: 
Thanh ghi Noäi dung 
Ñeám chöông trình PC
Thanh ghi tích luõy A 
Thanh ghi B 
Thanh ghi thaùi PSW 
SP 
DPRT 
Port 0 ñeán port 3 
IP 
IE 
Caùc thanh ghi ñònh 
thôøi 
SCON SBUF 
PCON (MHOS) 
PCON (CMOS) 
0000H 
00H 
00H 
00H 
07H 
0000H 
FFH 
XXX0 0000 B 
0X0X 0000 B 
00H 
00H 
00H 
0XXX XXXXH 
0XXX 0000 B 
RST
 10 µF
8.2 KΩ
100Ω 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 60 
-Thanh ghi quan troïng nhaát laø thanh ghi boä ñeám chöông trình PC ñöôïc 
reset tai ñòa chæ 0000H. Khi ngoõ vaøo RST xuoáng möùc thaáp, chöông 
trình luoân baét ñaàu taïi ñòa chæ 0000H cuûa boä nhôù chöông trình. Noäi dung 
cuûa RAM treân chip khoâng bò thay ñoåi bôûi taùc ñoäng cuûa ngoõ vaøo reset. 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 61 
IV)Toùm taét taäp leänh cuûa vxl 8051 – 8951 – 8952 : 
 Data Transfer Instructions. 
Instruction code 
Mnemonic 
D7 D6 D5 D4 D3 D2 D1 D0 
Hexa 
decimal 
Explanation 
MOV A, Rn 1 1 1 0 1 n2 n1 n0 E8 ÷ EF (A) ← (Rn) 
MOV A, direct 1 1 1 0 0 1 0 1 
a7 a6 a5 a4 a3 a2 a1 a0 
E5 
Byte 2 
(A) ← (direct) 
MOV A, @Ri 1 1 1 0 0 1 1 I E6 ÷ E7 (A) ← ((Ri)) 
MOV A, #data 0 1 1 1 0 1 0 0 
d7 d6 d5 d4 d3 d2 d1 d0 
74 
Byte 2 
(A) ← #data 
MOV Rn, A 1 1 1 1 1 n2 n1 n0 F8 ÷ FF (Rn) ← (A) 
MOV Rn, direct 1 0 1 0 1 n2 n1 n0 
a7 a6 a5 a4 a3 a2 a1 a0 
A8 ÷ 
AF 
Byte 2 
(Rn) ← (direct) 
MOV Rn, #data 0 1 1 1 1 n2 n1 n0 
d7 d6 d5 d4 d3 d2 d1 d0 
78 ÷ 7F 
Byte 2 
(Rn) ← #data 
MOV direct, A 1 1 1 1 0 1 0 1 
a7 a6 a5 a4 a3 a2 a1 a0 
F5 
Byte 2 
 (direct) ← (A) 
MOV direct, Rn 1 0 0 0 1 n2 n1 n0 
a7 a6 a5 a4 a3 a2 a1 a0 
88 ÷ 8F 
Byte 2 
 (direct) ← (Rn) 
MOV direct, 
direct 
1 0 0 0 0 1 0 1 
a7 a6 a5 a4 a3 a2 a1 a0 
a7 a6 a5 a4 a3 a2 a1 a0 
88 ÷ 8F 
Byte 2 
Byte 3 
 (direct) ← (direct) 
(source) 
(destination) 
MOV direct, @Ri 1 0 0 0 0 1 1 I 
a7 a6 a5 a4 a3 a2 a1 a0 
86 ÷ 87 
Byte 2 
(direct) ← ((Ri)) 
MOV direct, 
#data 
0 1 1 1 0 1 0 1 
a7 a6 a5 a4 a3 a2 a1 a0 
d7 d6 d5 d4 d3 d2 d1 d0 
75 
Byte 2 
Byte 3 
(direct) ← #data 
MOV @Ri, A 1 1 1 1 0 1 1 I F6 ÷ F7 ((Ri)) ← (A) 
MOV @Ri, direct 1 0 1 0 0 1 1 I 
a7 a6 a5 a4 a3 a2 a1 a0 
A6 ÷ A7
Byte 2 
 ((Ri)) ← (direct) 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 62 
MOV @Ri, #data 0 1 1 1 0 1 1 i 
d7 d6 d5 d4 d3 d2 d1 d0 
76 ÷ 77 
Byte 2 
 ((Ri)) ← (data) 
MOV dptr, #data 
16 
1 0 0 1 0 0 0 0 
d15 d14 d13 d12 d11 d10 d9 
d8 
d7 d6 d5 d4 d3 d2 d1 d0 
75 
Byte 2 
Byte 3 
(dptr) ← #data 15-0 
(dpH) ← #data 15-8 
(dpL) ← #data 7-0 
MOVC A, @A + 
dptr 
1 0 0 1 0 0 1 1 93 (A) ← ((A) + 
(dptr)) External 
Ram 
MOVC A, @A + 
PC 
1 0 0 0 0 0 1 1 83 (A) ← ((A) + (PC)) 
External Ram 
MOVX A, @Ri 1 1 1 0 0 0 1 i E2 ÷ E3 (A)←((Ri)) 
External Ram 
MOVX A, @ dptr 1 1 1 0 0 0 0 0 93 (A)←((dptr)) 
External Ram 
MOVX @Ri, A 1 1 1 1 0 0 1 i F2 ÷ F3 ((Ri)) ← (A) 
MOVX @ dptr, A 1 1 1 1 0 0 0 0 F0 ((dptr)) ← (A) 
PUSH direct 1 1 0 0 0 0 0 0 
a7 a6 a5 a4 a3 a2 a1 a0 
C0 
Byte 2 
(SP) ← (SP) + 1 
((SP)) ← (direct) 
POP direct 1 1 0 1 0 0 0 0 
a7 a6 a5 a4 a3 a2 a1 a0 
D0 
Byte 2 
(direct) ← ((SP)) 
(SP) ← (SP) – 1 
XCH A, Rn 1 1 0 0 1 n2 n1 n0 C8 ÷ CF (direct) ↔ (Rn) 
XCH A, direct 1 1 0 0 0 1 0 1 
a7 a6 a5 a4 a3 a2 a1 a0 
C5 
Byte 2 
(A) ↔ (direct) 
XCH A, @Ri 1 1 0 0 0 1 1 i C6 ÷ C7 (A) ↔ ((Ri)) 
XCHD A, @Ri 1 1 0 1 0 1 1 i D6 ÷ D7 (A3-0) ↔ ((Ri3-0)) 
Mathematical (Arithmetic) Instructions. 
Instruction code 
Mnemonic 
D7 D6 D5 D4 D3 D2 D1 D0 
Hexa 
decimal 
Explanation 
ADD A, Rn 0 0 1 0 1 n2 n1 n0 28 ÷ 2F (A) ← (A) + (Rn) 
ADD A, direct 0 0 1 0 0 1 0 1 25 (A) ← (A) + (direct) 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 63 
a7 a6 a5 a4 a3 a2 a1 a0 Byte 2 
ADD A, @Ri 0 0 1 0 0 1 1 I 26 ÷ 27 (A) ← (A) + ((Ri)) 
ADD A, #data 0 0 1 0 0 1 0 0 
d7 d6 d5 d4 d3 d2 d1 d0 
24 
Byte 2 
(A) ← (A) + #data 
ADDC A, Rn 0 0 1 1 1 n2 n1 n0 38 ÷ 3F (A) ← (A) + (Rn) + (C) 
ADDC A, direct 0 0 1 1 0 1 0 1 
a7 a6 a5 a4 a3 a2 a1 a0 
35 
Byte 2 
(A) ← (A) + (direct) + 
(C) 
ADDC A, @Ri 0 0 1 1 0 1 1 I 36 ÷ 37 (A) ← (A) + ((Ri)) + 
(C) 
ADDC A, #data 0 0 1 1 0 1 0 0 
d7 d6 d5 d4 d3 d2 d1 d0 
34 
Byte 2 
(A) ← (A) + #data +(C)
SUBB A, Rn 1 0 0 1 1 n2 n1 n0 98 ÷ 9F (A) ← (A) - (Rn) - (C) 
SUBB A, direct 1 0 0 1 0 1 0 1 
a7 a6 a5 a4 a3 a2 a1 a0 
95 
Byte 2 
(A) ← (A) - (direct) - 
(C) 
SUBB A, @Ri 1 0 0 1 0 1 1 I 96 ÷ 97 (A) ← (A) - ((Ri)) - (C) 
SUBB A, #data 1 0 0 1 0 1 0 0 
d7 d6 d5 d4 d3 d2 d1 d0 
94 
Byte 2 
(A) ← (A) - #data -(C) 
INC A 0 0 0 0 0 1 0 0 04 (A) ← (A) + 1 
INC Rn 0 0 0 0 1 n2 n1 n0 08 ÷ 0F (Rn) ← (Rn) + 1 
INC direct 0 0 0 0 0 1 0 1 
a7 a6 a5 a4 a3 a2 a1 a0 
05 
Byte 2 
(direct) ← (direct) + 1 
INC @Ri 0 0 0 0 0 1 1 I 06 ÷ 07 ((Ri)) ← ((Ri)) + 1 
INC dptr 1 0 1 0 0 0 1 1 A3 (dptr) ← (dptr) + 1 
DEC A 0 0 0 1 0 1 0 0 14 (A) ← (A) - 1 
DEC Rn 0 0 0 1 1 n2 n1 n0 18 ÷ 1F (Rn) ← (Rn) - 1 
DEC direct 0 0 0 1 0 1 0 1 
a7 a6 a5 a4 a3 a2 a1 a0 
15 
Byte 2 
(direct) ← (direct) - 1 
DEC @Ri 0 0 0 1 0 1 1 I 16 ÷ 17 ((Ri)) ← ((Ri)) - 1 
MUL AB 1 0 1 0 0 1 0 0 A4 (B15-8),(A7-0) ← 
(A)×(B) 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 64 
DIV AB 1 0 0 0 0 1 0 0 84 (A15-8),(B7-0) ← (A)/(B) 
DA A 1 1 0 1 0 1 0 0 D4 Content of A laø BCD 
 Logic Instructions. 
Instruction code 
Mnemonic 
D7 D6 D5 D4 D3 D2 D1 D0 
Hexa 
decimal 
Explanation 
ANL A, Rn 0 1 0 1 1 n2 n1 n0 58 ÷ 5F (A) ← (A) AND 
(Rn) 
ANL A, direct 0 1 0 1 0 1 0 1 
a7 a6 a5 a4 a3 a2 a1 a0 
55 
Byte 2 
(A) ← (A) AND 
(direct) 
ANL A, @Ri 0 1 0 1 0 1 1 I 56 ÷ 57 (A) ← (A) AND 
((Ri)) 
ANL A, #data 0 1 0 1 0 1 0 0 
d7 d6 d5 d4 d3 d2 d1 d0 
54 
Byte 2 
(A) ← (A) AND 
#data 
ANL direct, A 0 1 0 1 0 0 1 0 
a7 a6 a5 a4 a3 a2 a1 a0 
52 
Byte 2 
(direct)←(direct) 
and (A) 
ANL direct, #data 0 1 0 1 0 0 1 1 
a7 a6 a5 a4 a3 a2 a1 a0 
d7 d6 d5 d4 d3 d2 d1 d0 
53 
Byte 2 
Byte 3 
(direct)←(direct) 
and #data 
ORL A, Rn 0 1 0 0 1 n2 n1 n0 48 ÷ 4F (A) ← (A) OR (Rn) 
ORL A, direct 0 1 0 0 0 1 0 1 
a7 a6 a5 a4 a3 a2 a1 a0 
45 
Byte 2 
(A) ← (A) OR 
(direct) 
ORL A, @Ri 0 1 0 0 0 1 1 I 46 ÷ 47 (A) ← (A) OR ((Ri)) 
ORL A, #data 0 1 0 0 0 1 0 0 
d7 d6 d5 d4 d3 d2 d1 d0 
44 
Byte 2 
(A) ← (A) OR #data 
ORL direct, A 0 1 0 0 0 0 1 0 
a7 a6 a5 a4 a3 a2 a1 a0 
42 
Byte 2 
(direct)←(direct) 
OR (A) 
ORL direct, #data 0 1 0 0 0 0 1 1 
a7 a6 a5 a4 a3 a2 a1 a0 
d7 d6 d5 d4 d3 d2 d1 d0 
43 
Byte 2 
Byte 3 
(direct)←(direct) 
OR #data 
XRL A, Rn 0 1 1 0 1 n2 n1 n0 68 ÷ 6F (A) ← (A) XOR 
(Rn) 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 65 
XRL A, direct 0 1 1 0 0 1 0 1 
a7 a6 a5 a4 a3 a2 a1 a0 
65 
Byte 2 
(A) ← (A) XOR 
(direct) 
XRL A, @Ri 0 1 1 0 0 1 1 I 66 ÷ 67 (A) ← (A) XOR 
((Ri)) 
XRL A, #data 0 1 1 0 0 1 0 0 
d7 d6 d5 d4 d3 d2 d1 d0 
64 
Byte 2 
(A) ← (A) XOR 
#data 
XRL direct, A 0 1 1 0 0 0 1 0 
a7 a6 a5 a4 a3 a2 a1 a0 
62 
Byte 2 
(direct)←(direct) 
XOR (A) 
XRL direct, #data 0 1 1 0 0 0 1 1 
a7 a6 a5 a4 a3 a2 a1 a0 
d7 d6 d5 d4 d3 d2 d1 d0 
63 
Byte 2 
Byte 3 
(direct)←(direct) 
XOR #data 
CLR A 1 1 1 0 0 1 0 0 E4 (A) ← 0 
CPL A 1 1 1 1 0 1 0 0 F4 (A) ← (⎯A) 
RL A 0 0 1 0 0 0 1 1 23 The contents of the 
accumulator are 
rotated left by one 
bit. 
RLC A 0 0 1 1 0 0 1 1 33 The contents of the 
accumulator and 
carry are rotated left 
by one bit. 
RR A 0 0 0 0 0 0 1 1 03 The contents of the 
accumulator are 
rotated right by one 
bit. 
RRC A 0 0 0 1 0 0 1 1 13 The contents of the 
accumulator and 
carry are rotated 
right by one bit. 
SWAP A 1 1 0 0 0 1 0 0 C4 (A3-0) ↔ (A7-4) 
Control Transfer Instructions. 
Instruction code 
Mnemonic 
D7 D6 D5 D4 D3 D2 D1 D0 
Hexa 
decimal 
Explanation 
ACALL addr A10 a9 a8 1 0 0 0 1 Byte 1 (PC) ← (PC) + 2 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 66 
11 a7 a6 a5 a4 a3 a2 a1 a0 Byte 2 (SP) ← (SP) + 1 
((SP)) ← (PC7-0) 
(SP) ← (SP) + 1 
((SP)) ← (PC15-8) 
(PC) ← page 
address 
LCALL addr 
16 
0 0 0 1 0 0 1 0 
a15 a14 a13 a12 a11 a10 a9 a8 
a7 a6 a5 a4 a3 a2 a1 a0 
12 
Byte 2 
Byte 3 
(PC) ← (PC) + 3 
(SP) ← (SP) + 1 
((SP)) ← (PC7-0) 
(SP) ← (SP) + 1 
((SP)) ← (PC15-8) 
(PC) ← addr15-0 
RET 0 0 1 0 0 0 1 0 
22 (PC15-8) ← ((SP)) 
(SP) ← (SP) - 1 
 (PC7-0) ←((SP)) 
(SP) ← (SP) - 1 
RETI 0 0 1 1 0 0 1 0 
32 (PC15-8) ← ((SP)) 
(SP) ← (SP) - 1 
 (PC7-0) ←((SP)) 
(SP) ← (SP) - 1 
AJMP addr 11 a10 a9 a8 0 0 0 0 1 
a7 a6 a5 a4 a3 a2 a1 a0 
Byte 1 
Byte 2 
(PC) ← (PC) + 2 
(PC) ← page 
address 
LJMP addr 16 0 0 0 0 0 0 1 0 
a15 a14 a13 a12 a11 a10 a9 a8 
a7 a6 a5 a4 a3 a2 a1 a0 
02 
Byte 2 
Byte 3 
 (PC) ← addr15-0 
SJMP rel 1 0 0 0 0 0 0 0 
r7 r6 r5 r4 r3 r2 r1 r0 
80 
Byte 2 
(PC) ← (PC) + 2 
(PC) ← (PC) + rel 
JMP @A + dptr 0 1 1 1 0 0 1 1 73 (PC) ← (A) + (dptr) 
JZ rel 0 1 1 0 0 0 0 0 
r7 r6 r5 r4 r3 r2 r1 r0 
60 
Byte 2 
(PC) ← (PC) + 2 
IF (A) = 0 then 
(PC)←(PC) + rel 
JNZ rel 0 1 1 1 0 0 0 0 
r7 r6 r5 r4 r3 r2 r1 r0 
70 
Byte 2 
(PC) ← (PC) + 2 
IF (A) ≠ 0 then 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 67 
(PC)←(PC) + rel 
JC rel 0 1 0 0 0 0 0 0 
r7 r6 r5 r4 r3 r2 r1 r0 
40 
Byte 2 
(PC) ← (PC) + 2 
IF (C) = 0 then 
(PC)←(PC) + rel 
JNC rel 0 1 0 1 0 0 0 0 
r7 r6 r5 r4 r3 r2 r1 r0 
50 
Byte 2 
(PC) ← (PC) + 2 
IF (C) ≠ 0 then 
(PC)←(PC) + rel 
JB bit, rel 0 0 1 0 0 0 0 0 
b7 b6 b5 b4 b3 b2 b1 b0 
r7 r6 r5 r4 r3 r2 r1 r0 
20 
Byte 2 
Byte 3 
(PC) ← (PC) + 3 
IF (bit)=0 then 
(PC)←(PC) + rel 
JNB bit, rel 0 0 1 1 0 0 0 0 
b7 b6 b5 b4 b3 b2 b1 b0 
r7 r6 r5 r4 r3 r2 r1 r0 
30 
Byte 2 
Byte 3 
(PC) ← (PC) + 3 
IF (bit)≠ 0 then 
(PC)←(PC) + rel 
JBC bit, rel 0 0 0 1 0 0 0 0 
b7 b6 b5 b4 b3 b2 b1 b0 
r7 r6 r5 r4 r3 r2 r1 r0 
10 
Byte 2 
Byte 3 
(PC) ← (PC) + 3 
IF (bit)= 0 then (bit) 
← 0 
(PC)←(PC) + rel 
CJNE A, direct, 
rel 
1 0 1 1 0 1 0 1 
a7 a6 a5 a4 a3 a2 a1 a0 
r7 r6 r5 r4 r3 r2 r1 r0 
B5 
Byte 2 
Byte 3 
(PC) ← (PC) + 3 
IF (direct) < (A) 
then (C)←0 and 
(PC)←(PC) + rel 
IF (direct) > (A) 
then (C)←1 and 
(PC)←(PC) + rel 
CJNE A, #data, 
rel 
1 0 1 1 0 1 0 0 
d7 d6 d5 d4 d3 d2 d1 d0 
r7 r6 r5 r4 r3 r2 r1 r0 
B4 
Byte 2 
Byte 3 
(PC) ← (PC) + 3 
IF #data < (A) then 
(C)←0 and 
(PC)←(PC) + rel 
IF #data > (A) then 
(C)←1 and 
(PC)←(PC) + rel 
CJNE 
Rn,#data, rel 
1 0 1 1 0 n2 n1 n0 
d7 d6 d5 d4 d3 d2 d1 d0 
r7 r6 r5 r4 r3 r2 r1 r0 
B8 ÷ BF 
Byte 2 
Byte 3 
(PC) ← (PC) + 3 
IF #data < (Rn) then 
(C)←0 and 
(PC)←(PC) + rel 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 68 
IF #data > (Rn) then 
(C)←1 and 
(PC)←(PC) + rel 
CJNE 
@Ri,#data, rel 
1 0 1 1 0 1 1 0 
d7 d6 d5 d4 d3 d2 d1 d0 
r7 r6 r5 r4 r3 r2 r1 r0 
B6 ÷ B7 
Byte 2 
Byte 3 
(PC) ← (PC) + 3 
IF #data <((Ri)) 
then (C)←0 and 
(PC)←(PC) + rel 
IF #data >((Ri)) 
then (C)←1 and 
(PC)←(PC) + rel 
DJNZ Rn, rel 1 1 0 1 1 n2 n1 n0 
r7 r6 r5 r4 r3 r2 r1 r0 
D8 ÷ DF
Byte 2 
(PC) ← (PC) + 2 
 (Rn) ← (Rn) – 1 
IF ((Ri)) ≠ 0 then 
(PC)←(PC) + rel 
DJNZ direct, 
rel 
1 1 0 1 0 1 0 1 
a7 a6 a5 a4 a3 a2 a1 a0 
r7 r6 r5 r4 r3 r2 r1 r0 
D5 
Byte 2 
Byte 3 
(PC) ← (PC) + 3 
 (direct) ← (direct) 
– 1 
IF (direct) ≠ 0 then 
(PC)←(PC) + rel 
NOP 0 0 0 0 0 0 0 0 00 (PC) ← (PC) + 1 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 69 
Bit Oriented Instructions. 
Instruction code 
Mnemonic 
D7 D6 D5 D4 D3 D2 D1 D0 
Hexa 
decimal 
Explanation 
CLR C 1 1 0 0 0 0 1 1 C3 (C) ← 0 
CLR bit 1 1 0 0 0 0 1 0 
b7 b6 b5 b4 b3 b2 b1 b0 
C2 
Byte 2 
(bit) ← 0 
SETB C 1 1 0 1 0 0 1 1 D3 (C) ← 1 
SETB bit 1 1 0 1 0 0 1 0 
b7 b6 b5 b4 b3 b2 b1 b0 
D2 
Byte 2 
(bit) ← 1 
CPL C 1 0 1 1 0 0 1 1 B3 (C) ← (⎯C) 
CPL bit 1 0 1 1 0 0 1 0 
b7 b6 b5 b4 b3 b2 b1 b0 
B2 
Byte 2 
(bit) ← (bit) 
ANL C,bit 1 0 0 0 0 0 1 0 
b7 b6 b5 b4 b3 b2 b1 b0 
82 
Byte 2 
(C) ← (C) AND (bit) 
ANL C,/bit 1 0 1 1 0 0 0 0 
b7 b6 b5 b4 b3 b2 b1 b0 
B0 
Byte 2 
(bit) ←(C) AND (bit) 
ORL C,bit 0 1 1 1 0 0 1 0 
b7 b6 b5 b4 b3 b2 b1 b0 
72 
Byte 2 
(C) ← (C) OR (bit) 
ORL C,/bit 1 0 1 0 0 0 0 0 
b7 b6 b5 b4 b3 b2 b1 b0 
A0 
Byte 2 
(bit) ←(C) OR (bit) 
MOV C,bit 1 0 1 0 0 0 1 0 
b7 b6 b5 b4 b3 b2 b1 b0 
A2 
Byte 2 
(C) ← (bit) 
MOV bit,C 1 0 0 1 0 0 1 0 
b7 b6 b5 b4 b3 b2 b1 b0 
92 
Byte 2 
 (bit) ← (C) 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 70 
BOÄ NHÔÙ RAM 
 -Ram laø boä nhôù truy xuaát ngaãu nhieân, coù nghóa laø baát kì oâ nhôù naøo 
cuõng deã daøng truy xuaát nhö nhöõng oâ nhôù khaùc. 
 -Khuyeát ñieåm cuûa Ram laø ødöõ lieäu löu tröõ trong Ram seõ maát khi 
maátñieän. 
 -Öu ñieåm chính cuûa Ram laø coù theå ñoïc vaø ghi nhanh choùng 
 1.Caáu Truùc Cuûa Ram 
 Töông töï nhö boä nhoù Rom,boä nhôù Ram cuõng goàm coù moät soá thanh 
ghi .moåi thanh ghi löu tröõ 1 töø döõ lieäu duy nhaát vaø moät döõ lieäu duy 
nhaát.Dung löôïng cuûa boâ nhôù Ram laø 1K,2K ,8K, 16K ,32K, 64K, 128K, 
256K, 512K, vaø 1024K.vaø töø 72 döõ lieäu laø 8 hoaëc 4 bit. 
Hình 4.3 Sô ñoà caáu truùc beân trong Ram 64x4 
a.Hoaït ñoäng ñoïc döõ lieäu töø Ram 
 Maõ ñòa chæ cuûa oâ nhôù caàn ñoïc döõ lieäu ñöôcï ñöa ñeán ngoõ vaøo ñòa 
chæ cuaû Ram ñoàng thôøi ngoõ tín hieäu ñieàu khieån R/W phaûi ôû möùc logic 1 
Address 
CS
Data 
A5
A4
A3
A2
A1
A0
Oo O1 O2 O3 
R
Data 
Selects One 
Deco
der 
 6 
line 
INPUT BUFFER
Register 
Register 
Register 
2
Register 
Register 
Output 
•
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 71 
vaø ngoõ vaøo cho pheùp(CS) phaûi ôû möùc logic1.khi ñoù döõ lieäu môùi xuaát hieän 
ôû ngoõ ra döõ lieäu. 
Khi R/W=1 seõ khoâng cho pheùp boä ñeäm ngoõ vaøo, do ñoù döõ lieäu ngoõ 
vaøo khoâng aûnh höôûng gì ñeán oâ nhôù ñang truy xuaát. 
b. Hoaït ñoäng ghi döõ lieäu leân Ram 
Ñeå ghi döõ lieäu vaøo thanh ghi ñaõ ñöôïc löïa choïn bôûi caùc ngoõ vaøo ñòa chæ 
cuûa boä nhôù Ram,ñoøi hoûi ngoõ vaøoR/W=0 vaø CS=1.Toå hôïp hai möùc logic 
naøy seõ cho pheùp boä ñeäm ngoõ vaøo ñeå ñöa töø döõ lieäu (4bit) ôû caùc ngoõ vaøo 
se õ ñöôïc naïp thanh ghi ñöôïc choïn 
 KhiR/W ôû möùc thaáp seõ khoâng cho pheùp boä ñeäm ngoõ ra vaø ngoõ ra ôû traïng 
thaùi toång trôû cao(trong luùc ghi döõ lieäu).Khi ghi döõ lieäu vaøo oâ nhôù thì döõ 
lieäu tröôùc ñoù seõ maát ñi . 
c.Chip selet (cs) 
 Haàu heát caùc boä nhôù ñeàu coù hoaët nhieàu ngoõ vaøo CS ,ñöïôc duøng ñeå 
cho pheùp hoacë khoâng cho pheùp boä nhôù hoaït ñoäng trong nhieàu tröôøng 
hôïp keát noái nhieàu boä nhôù.Khi khoâng cho taát caû caùc ngoõ vaùo döõ lieäu vaø 
ngoõ ra döõ lieäu ôû traïng thaùi toång trôû cao. 
d.Nhöõng chaân data input-output 
Ñeå giaûm soá chaân cho moät Icnhaø cheá taïo keát hôïp 2 chöùc naêng data 
input vaø data output thaønh moät chaân Input/output, chuùng coù chöùc naêng 
cuûa caùc chaân I/O.Khi hoaït ñoäng ñoïc,caù chaân I/O hoaït ñoäng nhö laù caùc 
chaân xuaát döõ lieäu.Khi ghi döõ lieäu, caùc chaân I/o hoaït ñoäng nhö laø caùc 
chaân döõ lieäu. 
 2.Caùc loaïi Ram 
 Ram ñöïôc chia laøm 2 loaïi: 
 -SRAM(Static RAM);laø moät loaïi linh kieän maø vieäc löu tröõ döõ lieäu 
döïa vaøo nguyeân taéc hoaït ñoäng cuûa flip flop D.Döõ lieäu vaøo toàn taïi ôû moät 
trong haitraïng thaùi logic cuûa maïch soá. 
 DRAM(Dynamic Ram):laø loaïi linh kieän nhôù maø döõ lieäu löu tröõ 
nhö ñieän tích tröõ trong tuï ñieän. 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 72 
SRAM 6264: laø boä nhôù ñöôïc cheá taïo theo coâng ngheä CMOS, 
coù dung löôïng 
65536 bit ñöôïc toå chöùc thaønh 8192x8 bit (8KByte), ñieän aùp cung caáp laø +5V, 
thôøi gian truy caäp khoaûng 150ns. Ngoõ vaøo/ra döõ lieäu ñöôïc duøng chung, caùc 
ngoõ vaøo/ra naøy töông thích TTL. Coâng suaát tieâu taùn ôû traïng thaùi chôø raát 
thaáp chæ khoaûng 0,1mW so vôùi khi hoaït ñoäng bình thöôøng laø 200mW. 
 Sô ñoà chaân vaø sô ñoà logic cuûa 6264 nhö sau: 
Töø sô ñoà chaân cho ta thaáy caù chaân ñöôïc chia thaønh 4 nhoùm: 
 + Vcc, GND : chaân nguoàn 
 + Do ñeán D7 : chaân döõ lieäu 
 + Ao ñeán A12 : chaân ñòa chæ 
 + 
DQ0-DQ7
6264 
A0-A12 
CE1\ 
CE2 
OE\ 
WE\ 
N.C 
A12 
A7 
A6 
A5 
A4 
A3 
A2 
A1 
A0 
DQ0 
DQ1 
DQ2 
Vss 
6264 
Vcc
WE\ 
CE2 
A8 
A9 
A11 
OE\ 
A10 
CE1\ 
DQ7 
DQ6 
DQ5 
DQ4 
DQ3 
Mode \ Pin WE\ CE1\ CE2 OE\ Output 
x H x x Not Select 
x x L x 
Hi-Z 
Output 
Disable 
H L H H Hi-Z 
Read H L H L Dout 
Write L L H H Din 
WE, OE, CS1, CS2 : chaân ñieàu khieån
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 73 
* IC CHOÁT : 
 Khi duøng boä nhôù ngoaøi, port 0 khoâng coøn laø port IO thuaàn tuùy. 
Noù ñöôïc keát hôïp giöõa bus ñòa chæ vaø bus döõ lieäu neân duøng tín hieäu 
ALE vaø IC choát ñeå choát byte thaáp cuûa bus ñòa chæ khi baét ñaàu moãi 
chu kyø boä nhôù. Port2 cho byte cao cuûa bus ñòa chæ. Ôû ñaây chuùng em 
duøng IC choát 74373. Sô ñoà chaân, ñaëc ñieåm vaø baûng traïng thaùi cuûa 
74373 
Sô ñoà chaân 
 Baûng traïng thaùi 
 Ñaëc ñieåm 
_ 74LS373 goàm 8 D-FF coù ngoõ ra 3 traïng thaùi ñöôïc ñieàu khieån 
choát vaø xuaát döõ lieäu baèng chaân G vaø OC. Trong öùng duïng naøy chaân G 
ñöôïc noái vôùi chaân ALE cuûa 8051, chaân OC noái mass. 
_ laø IC choát 8 bit 
_ Caùc boä ñeäm ngoõ ra 3 traïng thaùi 
_ Tín hieäu ñieàu khieån ngoõ ra 3 traïng thaùi chung. 
74373 
D0-D7
Q0-Q7 
OC \ 
G 
Output 
Control (OC)
Enable 
G 
D OUTPUT 
L H H H 
L H L L 
L L x Q0 
H HI Z
Vcc
Q0 
Q1 
Q2 
Q3 
Q4 
Q5 
Q6 
Q7 
G 
OE\ 
D0 
D1 
D2 
D3 
D4 
D5 
D6 
D7 
GND 
74373 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 74 
PHAÀN B: 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 75 
Ñeå deã daøng cho vieäc thieát keá ta choïn cho HM2007 hoaït ñoäng ôû cheá ñoä 
thöôøng . Nhö vaäy vieäc xöû lyù vaø nhaän bieát gioïng noùi hoaøn toaøn ñieàu do 
HM2007 laøm . Moãi laàn nhaän bieát gioïng noùi xong keát quaû ñöôïc ñöa ra töø 
HM2007 döôùi daïng 2 digit soá nhò phaân . Ta lôïi duïng keát quaû nhò phaân ñoù , laáy 
noù ñöa vaøo 89C51 ñeå xöû lyù . Do vieäc ñieàu khieån ñöôïc laäp trình bôûi 89C51 
neân deã daøng thay ñoåi caáu truùc hoaït ñoäng . Ñeå ñieàu khieån thieát bò coù nguoàn 
220vac ta choïn caùc rôle coù khaû naêng chòu taûi . Rôle neân duøng loaïi 5v cho 
cuøng nguoàn toaøn maïch . Ngoaøi ra ñeå cho rôle hoaït ñoäng ta phaûi duøng 
transisitor keùo cho rôle vaø TST chòu söï ñieàu khieån cuûa 89C51 . 
Thieát keá maïch nguyeân lyù : 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 76 
Thieát keá phím nhaán : 
 Choïn loaïi phím nhoû goïn , deã daøng söû duïng . Chæ caàn loaïi chòu doøng nhoû 
nhöng neân coù tính cô hoïc toát . 
Thieát keá saép seáp linh kieän: 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 77 
Thieát keá maïch in 2 maët : 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 78 
Thieát keá maïch in cho 89C51 : 
Thieát keá boä nguoàn cho maïch: 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 79 
Thieát keá maïch in cho rôle ñieàu khieån thieát bò : 
Phaàn meàm cho 89C51 : 
org 0000h 
mov p3,#0 
lap: 
mov a,p1 
cjne a,#11000000b,tiep 
setb p3.0 
sjmp lap 
tiep:cjne a,#10100000b,tiep1 
clr p3.0 
sjmp lap 
tiep1:cjne a,#11100000b,tiep2 
setb p3.1 
sjmp lap 
tiep2:cjne a,#10010000b,tiep3 
clr p3.1 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 80 
sjmp lap 
tiep3:cjne a,#11010000b,tiep4 
setb p3.2 
sjmp lap 
tiep4:cjne a,#10110000b,tiep5 
clr p3.2 
sjmp lap 
tiep5:cjne a,#11110000b,tiep6 
setb p3.3 
sjmp lap 
tiep6:cjne a,#10001000b,tiep7 
clr p3.3 
sjmp lap 
tiep7:cjne a,#11001000b,tiep8 
setb p3.4 
sjmp lap 
tiep8:cjne a,#10000100b,tiep9 
clr p3.4 
sjmp lap 
tiep9:cjne a,#11000100b,tiep10 
setb p3.5 
sjmp lap 
tiep10:cjne a,#10100100b,tiep11 
clr p3.5 
sjmp lap 
tiep11:cjne a,#11100100b,tiep12 
setb p3.6 
sjmp lap 
tiep12:cjne a,#10010100b,tiep13 
clr p3.6 
sjmp lap 
tiep13:cjne a,#11010100b,tiep14 
setb p3.7 
sjmp lap 
tiep14:cjne a,#10110100b,lap 
clr p3.7 
sjmp lap 
end 
ÑIEÀU KHIEÅN THIEÁT BÒ BAÈNG GIOÏNG NOÙI GVHD:ÑINH QUOÁC HUØNG 
SVTH: NGUYEÃN MINH TRÍ 98ÑT344 81 
TAØI LIEÄU THAM KHAÛO 
1. Hoï Vi Ñieàu Khieån 8051 
Toáng Vaên On _ Hoaøng Ñöùc Haûi _NXB Lao Ñoäng _ XH 
2.Thieát bò nghe nhìn 1 vaø2 
 PHAN THANH 
3.SPEECHRECOGINITION KIT 
 Images Conpany 
 39 Seneca Loop 
 Staen Island NY 10314 
 718.698.8305 voice 
 718.982.6145 fax 
            Các file đính kèm theo tài liệu này:
 Dieu_khien_thiet_bi_bang_giong_noi.pdf Dieu_khien_thiet_bi_bang_giong_noi.pdf