Tài liệu tham khảo công nghệ thông tin Sử dụng giao tiếp cổng COM và Sound card làm hòm thư
Trang 1LỚP : TIN 99
NHA TRANG THÁNG 05/2003
Trang 2BẢN NHẬN XÉT ĐÁNH GIÁ CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên HV:Lê Bá Thiện – Lớp tin 99Chuyên nghành:Kỹ sư II – Công nghệ thông tinGiáo viên HD:Lưu Ngọc Quang
LỜI NHẬN XÉT ĐÁNH GIÁ CỦA GIÁO VIÊN HƯỚNG DẪN
LƯU NGỌC QUANG
A LƠÌ GIỚI THIỆU.
Khoa học và công nghệ, đặc biệt là tin học ngày càng phục vụ đắc lực cho cuộc sống conngười Từ sản xuất đến kinh doanh, thông tin cho đến những nhu cầu giải trí, dịch vụ…Khi màmáy tính ngày càng trở nên phổ biến đến mọi người thì việc xử dụng và khai thác máy cho nhữngnhu cầu muôn mặc của cuộc sống là điều tấc yếu Chính vì thế đề tài sử dụng máy tính làm hộpthư làmột ứng dụng phục vụ cho nhu cầu thông tin thể hiện tính hiệu quả của máy tính, sự cần
Trang 3Đề tài sử dụng giao tiếp cổng COM và SOUND CARD của máy tính làm hộp thư thoại chomột cá nhân qua mạng điện thoại công cộng Một người nào đó có thể đọc lời nhắn qua máy điệnthoại khi chủ hộp thư đi vắng , và chủ hộp thư có thể quay số điện thoại để nghe lời nhắn với mậtmã của riêng mình
Thông tin lời nhắn được lưu trong máy tính ở dạng file * WAV Ngồi thông tin lời nhắn, chủhộp thư còn biết được số máy nào nhắn tới và thời gian nhắn Hộp thư còn có thể sử dụng chomột nhóm người khi được ứng dụng mở rộng, lúc này mỗi người ngồi mật mã riêng còn có mộtmã số nhận diện riêng
Để thực hiện đề tài cần có máy tính gắn SOUND CARD Thi công mạch giao tiếp với IC viđiều khiển 8951 để truyền báo hiệu qua cổng COM và điều khiển kết nối tín hiệu âm thanh thoạiđến sound card Viết chương trình ghi ROM cho IC vi điều khiển và chương trình hộp thư máytính bằng ngôn ngữ VISUAL BASIC.
B NỘI DUNG ĐỀ TÀI:
I Nguyên lý hoạt động của đường dây điện thoại:
1 Yêu cầu của vòng thuê bao(máy điện thoại):
Vòng nội bộ của thuê bao là 1 đường 2 dây cân bằng nối với đầu cuối , có trởkháng đặc tính khoảng 500 - 1000 , thông thường là 600
Một nguồn chung của đầu cuối cung cấp nguồn 48VDC cho mỗi vòng thuêbao , hai dây dẫn được nối với hai đầu Tip và Ring Đường Ring có điện thế
48VDC đối với đàu Tip Đầu Tip được nối với đất (chỉ đối với DC) ở đầu cuối
Khi thuê bao nhấc máy (off-hook) làm đóng tiếp điểm chuyển mạch tạo nêndòng điện xấp xỉ 20 mA chạy trong vòng thuê bao Ở chế độ off-hook điện thế DC
Mạng Điện Thoại Công Cộng (PSTN)
Card Giao TiếpMáy Tính
Trang 4rơi trên đường dây giữa 2 đầu Típ và Ring khoảng 8 - 10 VDC ở thiết bị đầu cuốicủa thuê bao điện thoại
Tín hiệu thoại âm tần được truyền trên mỗi hướng của đường dây khi có sựthay đổi nhỏ của dòng điện vòng Sự thay đổi của dòng điện bao gồm tín hiệu ACchồng chập với dòng điện vòng DC
2 Các chỉ tiêu tối thiểu cho một máy điện thoại :
* Tổng trở DC khi gác máy > 20K * Tổng trở Ac khi gác máy : 4 - 10 K * Tổng trở DC khi nhấc máy < 1K * Gởi số về tổng đài dạng Pulsse hay tone
3 Nhận định phương thức làm việc:
3.1 Thuê bao gọi nhấc máy:
Tổng đài sẽ nhận biết trạng thái thuê bao chủ gọi nhấc máy thông qua sựthay đổi điện trở vòng của đường dây thuê bao Bình thường khi thuê bao ở trạngthái nghĩ điện trở vòng rất lớn , ta có thể coi như hở mạch
Khi thuê bao nhấc máy điện trở vòng giảm đi nhiều , tổng đài có thể nhậnbiết sự thay đổi điện trở của thuê bao tức là thay đổi của trạng thái thuê bao thôngqua bộ cảm biến trạng thái
3.2 Cấp âm hiệu mời quay số cho thuê bao:
Khi tổng đài phát hiện trạng thái nhấc máy (off-hook) , xung mời quay số
được phát đến vòng thuê bao ; đó là âm hiệu mời gọi báo cho người gọi biết cuộcgọi đã sẵn sàng chờ quay số Tín hiệu này có dạng hình sin có tần số 425Hz vàphát liên tục cho tới khi bắt đầu quay số thứ nhất
Trang 5Trong trường hợp người gọi nhấc máy nhưng không quay số , sau một thờigian khoảng 15s tổng đài sẽ ngắt Dia tone và phát busy tone về phía người quaysố
VDC
Tín hiệu Dial tone
3.3 Tín hiệu báo bận Busy tone:
Khi thuê bao bị gọi đang thông thoại trước đó hoặc các đường kết nối thôngthoại đều bị bận thì tổng đài sẽ cấp busy tone cho thuê bao gọi Âm hiệu này cũnglà tín hiệu hình Sin có tần số 425Hz nhưng được ngắt quãng 0,5s làm việc 0,5s nghỉ.
VDC
0,5s 0,5s
Tín hiệu Busy tone
Nếu các đường dây thông thoại không bận thì tổng đài phải nhận biết cácthuê bao gọi và xem xét :
* Nếu số đầu nằm trong tập thuê bao của tổng đài thì tổng đài sẽ phục vụ nhưcuộc gọi nội đài
* Nếu số đầu không nằm trong tập thuê bao của tổng đài thì tổng đài sẽ phụcvụ như 1 cuộc gọi liên đài qua trung kế và giữ tồn bộ phần định vị số quay sangsang tổng đài đối phương để giải mã
* Nếu số đầu là mã gọi chức năng đặc biệt thì tổng đài sẽ thực hiện các chứcnăng đó để phục vụ cho thuê bao
Trang 6Nếu thuê bao được gọi rảnh thì tổng đài sẽ cấp chuông cho thuê bao đượcgọi vớid điện áp AC 70 - 110 V , tần số f= 16 - 25 Hz ( thường là 90VAC/25Hz)với chu kỳ 2s có tín hiệu và 3s không có tín hiệu
VAC90
3s 2s
Tín hiệu Ring Back Tone
Khi thuê bao được gọi nhấc máy thì tổng đài sẽ nhận biết trạng thái nhấcmáy này , tiến hành cắt dòng chuông cho thuê bao bị gọi một cách kịp thời để tránhhư hỏng cho thuê bao Đồng thời tổng đài cũng tắt âm hiệu hồi chuông cho thuêbao chủ gọi và tiến hành kết nối thông thoại cho cả 2 thuê bao
3.4 Tổng đài sẽ giải toả : một số thiết bị không cần thiết để tiếp tục phục vụ
cho các cuộc đàm thoại khác ( mạch giả mã DTMF)
Trang 7Tổng đài nhận biết trạng thái gác máy này , cắt các thông thoại cho cả 2 thuêbao , đồng thời cấp busy tone cho thuê bao còn lại , giải toả đường dây đã kết nốiđể phục vụ cuộc đàm thoai khác Khi thuê bao còn lại gác máy , tổng đài xác địnhtrạng thái gác máy này và kết thúc chương trình phục vụ cho thuê bao
Tấùt cả các hoạt động trên được điều khiển bằng các chương trình , ngườivận hành tổng đài có thể theo dõi hoạt động của tổng đài thông qua màn hình máytính của tổng đài
II Giao tiếp nối tiếp qua cổng com RS232:1 Vài nét cơ bản về cổng nối tiếp:
Cổng nối tiếp RS232 là một loại giao diện phổ biến rộng rãi nhất, ta còn gọi làcổng COM1 , COM2 để tự do cho các ứng dụng khác nhau.
Giống như cổng máy in,cổng nối tiếp RS232 cũng được sử dụng rất thuậntiện trong việc ghép nối máy tính với các thiết bị ngoại vi Việc truyền dữ liệu quacổng RS232 được tiến hành theo cách nối tiếp, nghĩa là các bit dữ liệu được gởi đinối tiếp vối nhau trên một đường dẫn.
Trước hết loại truyền này có khả năng dùng cho những khoảng cách lớn hơn,bởi vì khả năng gây nhiễu là nhỏ đáng kể hơn là khi dùng một cổng song song.Việc dùng cổng song song có một nhược điểm đáng kể là cáp truyền nhiều sợi và vìvậi rất đắt tiền, hơn nưa mức tín hiệu nằm trong khỏang 0 5V đã tỏ ra không thichứng với khoảng cách lớn.
Trên hình dưới là sự bố trí chân của phích cắm RS232 của máy tính PC.
1 2 3 4 5
6 7 8 9O O O O O O O O O
14 25O O O O O O O O O O O O O O O O O O O O O O O O O
Trang 8CHÂN(loại 9chân )
CHÂN( loại 25
chân )
Data carrier detectNhận dữ liệu
Mức tín hiệu trên chân ra RxD tùy thuộc vào đường dẫn TxD và thông tinthường nằm trong khoảng – 12V + 12V các bit dữ liệu được đảo ngược lại Mứcđiện áp ở mức cao nằm trong khoảng – 3V và – 12V và mức thấp nằm trongkhoảng từ + 3Vvà +12V Trạng thái tĩnh trên đường dẫn có mức điện áp – 12V
Trang 9Bằng tốc độ baud ta thiết lập tốc độ truyền dữ liệu các giá trị thông thường là300, 600, 1200, 2400, 4800, 9600 và 19200 baud Ký hiệu baud là số lượng bittruyền trong 1s.
Còn một vấn đề nữa là khuôân mẫu (Format) truyền dữ liêu cần phải đượcthiết lập như nhau cả bên gửi cũng như bên nhận các thông số truyền có thể đượcthiết lập trên máy tính PC bằng các câu lệnh trên DOS
Ngày nay Windows cũng có các chương trình riêng để sử dụng, khi đó cácthông số truyền dữ liệu như: tốc độ baud, số bit dữ liệu, số bít dừng, bit chẵn lẻ(parity) có thể được thiết lập một cách rất đơn giản.
2 Sự Trao Đổi Của Các Đường Dẫn Tín Hiệu :
Cũng như ở cổng máy in, các đường dẫn tín hiệu riêng biệt cũng cho phép traođổi qua lại các địa chỉ trong máy tính PC Trong trường hợp này người ta thường sửdụng những vi mạch có độ tích hợp cao để có thể hợp nhất nhiề chức năng trên 1chip.
Ở máy tính PC thường có một bộ phát/nhận không đồng bộ vạn năng gọi tắt làUART: Universal Asynchronous Receiver/Transmister Để điều khiển sự trao đổithông tin giữa máy tính và các thiết bị ngoại vi Phổ biến nhất là vi mạch 8250 củahãng NSC hoặc các thiết bị tiếp theo, chẳng hạn như 16C550
Bộ AURT này có 10 thanh ghi để điều khiển tất cả chức năng của việc nhậpvào, xuất ra dữ liệu theo cách nối tiếp liên quan đến nội dung của phần này chỉ đềcập đến hai điều đáng quan tâm đó là:
- Thanh ghi điều khiển modem - Thanh ghi trạng thái modem.a) Thanh ghi điều khiển modem:
D7 D6 D5 D4 D3 D2 D1 D0
D0 =1 đưa /DTR =0D0 =0 đưa /DTR =1D1 =1 đưa /RTS =0D1 =0 đưa /RTS =1
Trang 10OUT1 và OUT2 điều khiển đầu ra phụ
b) Thanh ghi trạng thái modem :(địa chỉ cơ bản +6)
Cũng giống như ở cổng ghép nối với máy in, các Thanh ghi được trao đổi quaô nhớ trong vùng vào/ra (input/output) Địa chỉ đầu tiên có thể tới được của cổngnối tiếp gọi là địa chỉ cơ bản (basic Address) các đỉa chỉ của các thanh ghi tiếp theođược đạt tới bằng việc cộng thêm số thanh ghi đã gặp của bộ UART vào địa chỉ cơbản
Địa chỉ cơ bản của cổng nối tiếp của máy tính PC được tóm tắt trong bảngsau:
CỔNG ĐỊA CHỈ CƠ BẢNCOM 1
COM 2COM 3COM 4
III TÌM HIỂU LINH KIỆN ĐIỆN TỬ VI XỬ LÝ IC 8951:
1 nếu RI có biến đổi
1: nếu có sự thay đổ các tín hiệu tương ứng
Có các giá trị của các bít out 2 out 1 , DTR , RTS , trong MCR khi bit LOOP = 1
Trang 111 Giới thiệu cấu trúc phần cứng họ MSC-51 (8951):
Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hồn tồn tương tựnhư nhau Ở đây giới thiệu IC 8951 là một họ IC vi điều khiển do hãng Intel củaMỹ sản xuất Chúng có các đặc điểm chung như sau:
Các đặc điểm của 8951 được tóm tắt như sau: 4 KB EPROM bên trong.
128 Byte RAM nội.
4 Port xuất /nhập I/O 8 bit. Giao tiếp nối tiếp.
64 KB vùng nhớ mã ngồi 64 KB vùng nhớ dữ liệu ngoại.
Xử lý Boolean (hoạt động trên bit đơn). 210 vị trí nhớ có thể định vị bit.
4s cho hoạt động nhân hoặc chia.
2 Khảo sát sơ đồ chân 8951 và chức năng từng chân:
2.1 Sơ đồ chân 8951:
Sơ đồ chân IC 8951
2.2 Chức năng các chân của 8951
8951 có tất cả 40 chân có chức năng như các đường xuất nhập Trong đó có24 chân có tác dụng kép (có nghĩa là 1 chân có 2 chức năng), mỗi đường có thểhoạt động như đường xuất nhập hoặc như đường điều khiển hoặc là thành phần củacác bus dữ liệu và bus địa chỉ.
P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7
Trang 12Port 0 là port có 2 chức năng ở các chân 32 - 39 của 8951 Trong các thiết kế cỡnhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường I/O Đối với cácthiết kế cỡ lớn có bộ nhớ mở rộng, nó được kết hợp giữa bus địa chỉ và bus dữ liệu.
Port 1:
Port 1 là port I/O trên các chân 1-8 Các chân được ký hiệu P1.0, P1.1, p1.2, p1.7 có thể dùng cho giao tiếp với các thiết bị ngồi nếu cần Port 1 không có chứcnăng khác, vì vậy chúng chỉ được dùng cho giao tiếp với các thiết bị bên ngồi.
Port 2:
Port 2 là 1 port có tác dụng kép trên các chân 21- 28 được dùng như cácđường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớmở rộng.
Port 3:
Port 3 là port có tác dụng kép trên các chân 10-17 Các chân của port này có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tính đặc biệt của8951 như ở bảng sau:
P3.0 RXT Ngõ vào dữ liệu nối tiếp.P3.1 TXD Ngõ xuất dữ liệu nối tiếp.P3.2 INT0\ Ngõ vào ngắt cứng thứ 0P3.3 INT1\ Ngõ vào ngắt cứng thứ 1
P3.4 T0 Ngõ vào củaTIMER/COUNTER thứ 0.P3.5 T1 Ngõ vào củaTIMER/COUNTER thứ 1.P3.6 WR\ Tín hiệu ghi dữ liệu lên bộ nhớ ngồiP3.7 RD\ Tín hiệu đọc bộ nhớ dữ liệu ngồi.
b.Các ngõ tín hiệu điều khiển:
Ngõ tín hiệu PSEN (Program store enable):
PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chươngtrình mở rộng thường được nối đến chân OE\ (output enable) của Eprom cho phépđọc các byte mã lệnh
PSEN ở mức thấp trong thời gian Microcontroller 8951 lấy lệnh Các mãlệnh của chương trình được đọc từ Eprom qua bus dữ liệu và được chốt vào thanhghi lệnh bên trong 8951 để giải mã lệnh Khi 8951 thi hành chương trình trongEPROM nội PSEN sẽ ở mức logic 1.
Trang 13Ngõ tín hiệu điều khiển ALE (Address Latch Enable)
Khi 8951 truy xuất bộ nhớ bên ngồi, port 0 có chức năng là bus địa chỉ vàbus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ Tín hiệu ra ALE ở chânthứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khikết nối chúng với IC chốt.
Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò làđịa chỉ thấp nên chốt địa chỉ hồn tồn tự động.
Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thểđược dùng làm tín hiệu clock cho các phần khác của hệ thống Chân ALE đượcdùng làm ngõ vào xung lập trình cho EPROM trong 8951
Ngõ tín hiệu EA\(External Access):
Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0 Nếu ở mức1, 8951 thi hành chương trình từ EPROM nội trong khoảng địa chỉ thấp 4 Kbyte.Nếu ở mức 0, 8951 sẽ thi hành chương trình từ bộ nhớ mở rộng Chân EA\ đượclấy làm chân cấp nguồn 12V khi lập trình cho Eprom trong 8951.
Ngõ tín hiệu RST (Reset) :
Ngõ vào RST ở chân 9 là ngõ vào Reset của 8951 Khi ngõ vào tín hiệu này đưa lêncao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trị thíchhợp để khởi động hệ thống Khi cấp điện mạch tự động Reset.
Các ngõ vào bộ dao động X1,X2:
Bộ dao động được được tích hợp bên trong 8951, khi sử dụng 8951 người thiết kếchỉ cần kết nối thêm thạch anh và các tụ như hình vẽ trong sơ đồ Tần số thạch anhthường sử dụng cho 8951 là 12Mhz.
Chân 40 (Vcc) được nối lên nguồn 5V
3 Cấu trúc bên trong vi điều khiển:
3.1 Tổ chức bộ nhớ:
Trang 14Bảng tóm tắt các vùng nhớ 8951.
Bộ nhớ trong 8951 bao gồm EPROM và RAM RAM trong 8951 bao gồm
nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank
thanh ghi và các thanh ghi chức năng đặc biệt.
8951 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt chochương trình và dữ liệu Chương trình và dữ liệu có thể chứa bên trong 8951 nhưng8951 vẫn có thể kết nối với 64K byte bộ nhớ chương trình và 64K byte dữ liệu.
On -ChipMemory
Enable viaPSEN
Enable viaRD&WR
External Memory
Trang 15Bản đồ bộ nhớ Data trên Chip như sau:
F0 F7 F6 F5 F4 F3 F2 F1 F0 BRAM đa dụng
E0 E7 E6 E5 E4 E3 E2 E1 E0 ACCD0 D7 D6 D5 D4 D
D2 D1 D0 PSW
B9 B8 IP2F 7F 7E 7D 7C 7B 7A 79 78
2E 77 76 75 74 73 72 71 70B0 B7 B6 B5 B4 B3 B2 B1 B0 P.32D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61 60A8 AFAC ABAA A9 A8 IE2B 5F 5E 5D 5C 5B 5A 59 58
2A 57 56 55 54 53 52 51 50A0 A7 A6 A5 A4 A3 A2 A1 A0 P229 4F 4E 4D 4C 4B 4A 49 48
28 47 46 45 44 43 42 41 4099 không được địa chỉ hố bitSBUF27 3F 3E 3D 3C 3B 3A 39 3898 9F 9E 9D 9C 9B 9A 99 98 SCON26 37 36 35 34 33 32 31 30
25 2F 2E 2D 2C 2B 2A 29 2890 97 96 95 94 93 92 91 90 P124 27 26 25 24 23 22 21 20
23 1F 1E 1D 1C 1B 1A 19 188D không được địa chỉ hố bitTH122 17 16 15 14 13 12 11 108C không được địa chỉ hố bitTH021 0F 0E 0D 0C 0B 0A 09 088B không được địa chỉ hố bitTL120 07 06 05 04 03 02 01 008A không được địa chỉ hố bitTL0
07 Bank thanh ghi 081 không được địa chỉ hố bitSP00 (mặc định cho R0 -R7)88 87 86 85 84 83 82 81 80 P0
RAM bên trong 8951 được phân chia như sau:
Các bank thanh ghi có địa chỉ từ 00H đến 1FH.
RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH.
RAM đa dụng từ 30H đến 7FH.
Trang 16 Các thanh ghi chức năng đặc biệt từ 80H đến FFH.
RAM đa dụng:
Mặc dù trên hình vẽ cho thấy 80 byte đa dụng chiếm các địa chỉ từ 30H đến7FH, 32 byte dưới từ 00H đến 1FH cũng có thể dùng với mục đích tương tự (mặcdù các địa chỉ này đã có mục đích khác).
Mọi địa chỉ trong vùng RAM đa dụng đều có thể truy xuất tự do dùng kiểu địa chỉtrực tiếp hoặc gián tiếp
RAM có thể truy xuất từng bit:
8951 chứa 210 bit được địa chỉ hóa, trong đó có 128 bit có chứa các bytechứa các địa chỉ từ 20H đến 2FH và các bit còn lại chứa trong nhóm thanh ghi cóchức năng đặc biệt.
Ý tưởng truy xuất từng bit bằng phần mềm là các đăëc tính mạnh củamicrocontroller xử lý chung Các bit có thể được đặt, xóa, AND, OR, … , với 1lệnh đơn Đa số các microcontroller xử lý đòi hỏi một chuỗi lệnh đọc-sửa- ghi đểđạt được mục đích tương tự Ngồi ra các port cũng có thể truy xuất được từng bit.
128 bit có chứa các byte có địa chỉ từ 00H -1FH cũng có thể truy xuất nhưcác byte hoặc các bit phụ thuộc vào lệnh được dùng.
Các bank thanh ghi :
32 byte thấp của bộ nhớ nội được dành cho các bank thanh ghi Bộ lệnh 8951hổ trợ 8 thanh ghi có tên là R0 -R7 và theo mặc định sau khi reset hệ thống, cácthanh ghi này có các địa chỉ từ 00H - 07H
Các lệnh dùng các thanh ghi RO - R7 sẽ ngắn hơn và nhanh hơn so với cáclệnh có chức năng tương ứng dùng kiểu địa chỉ trực tiếp Các dữ liệu được dùngthường xuyên nên dùng một trong các thanh ghi này.
Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghiđược truy xuất bởi các thanh ghi RO - R7 đểà chuyển đổi việc truy xuất các bankthanh ghi ta phải thay đổi các bit chọn bank trong thanh ghi trạng thái.
3.2 Các thanh ghi có chức năng đặc biệt:
Các thanh ghi nội của 8951 được truy xuất ngầm định bởi bộ lệnh.
Các thanh ghi trong 8951 được định dạng như một phần của RAM trên chipvì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ đếm chương trình vàthanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp) Cũng như R0đến R7, 8951 có 21 thanh ghi có chức năng đặc biệt (SFR: Special FunctionRegister) ở vùng trên của RAM nội từ địa chỉ 80H - FFH
Chú ý: tất cả 128 địa chỉ từ 80H đến FFH không được định nghĩa, chỉ có 21 thanhghi có chức năng đặc biệt được định nghĩa sẵn các địa chỉ.
Ngoại trừ thanh ghi A có thể được truy xuất ngầm như đã nói, đa số các thanh ghicó chức năng điệt biệt SFR có thể địa chỉ hóa từng bit hoặc byte.