PSEN ở mức thấp trong thời gian vi điều khiển 8951 lấy lệnh .Các mã lệnh của chương trình đọc từ EPROM qua bus dữ liệu và được chốt vào thanh ghi lệnh bên trong 8951 để giải mã lệnh .Kh
Trang 1BO GIAO DUC VA DAO TAO TRUONG DAI HOC SU’ PHAM KY THUAT
THÀNH PHÓ HÒ CHÍ MINH
HGMUIIE
ĐỎ ÁN TÓT NGHIỆP NGÀNH LUẬN VĂN TÓT NGHIỆP
UNG DUNG VI DIEU KHIEN 8951 THIET KE DONG HO SO
GVHD: TRAN VAN TRONG
Trang 2BO GIAO DUC VA DAO TAO
ca Oe _ Tai ĐẠI HỌC SƯ PHẠM KỸ kg TP.HCM
Tí =L$% KHOA ĐIỆN- BIEN TI —
Trang 3Luận văn tốt nghiệp
422 Ø1 Ø7 (
cận văn tốt nghiệp này được hoàn thành tốt đẹp và
đúng thời hạn là nhờ vào sự giúp dờ của các thầy cô trong khoa
Điện Trường Dat hoe Su phạm Kỳ thuật TP.HCM Chúng em xin
chân thành cảm on qui thầy cô đã tận tâm giúp dd trong sui
thời gian qua Đặc biệt là thầy Trần Văn Trọng dã hướng dẫn
nhóm thực luện đề tài này tới tất cá tòth thuần trách nhiệm và
lòng nhiệt thành
Chân thành cảm ơn điên Thứ viền trường Đại Học Sự
phạm KỸ thuật, các bạn vừnh viễn cùng khóa đã tạo điêu kiện
và đóng góp ý kiến cho nhòm để: đề tài này thực hoàn thành tốt
Trang 4Luận văn tốt nghiệp
6 Ngày giao nhiệm vụ:
7 Ngày hoàn thành nhiệm vi
Cán bộ hướng dẫn: Thông qua bộ môn
Ngày tháng năm 2002
Chủ nhiệm bộ môn Trần Văn Trọng
“Trang ii
Trang 5Luận văn tốt nghiệp
Trang 6Luận văn tốt nghiệp
Trang 7Luận văn tốt nghiệp
Trang nhận xét giáo viên hướng dẫn iii
Trang nhận xét giáo viên phản biện iv
I, Giới thiệu cầu trie 8951 4
I Khảo sắt ví điểu khiển 89ST 5
2 Thanh ghi điều khiển port nối tiếp 31
3 Cac chế độ port nối tiếp 32
Trang 8Tài liệu tham khảo
———ễễễềễễễễ
Trang vi
Trang 9Luận vấn tốt nghiệp
£69 N09 PAU
ong quá trinh phat trién cia khoa hoe kj tual tide day oào
uhitug thời diém chia phéi la xa lim , ngudi ta chi phan bigt hai pham ta
kỹ that diéu khiéu la diéu khién bang eo khi va diéu khién bing dign Mutug từ caối thập diều 20 nqudi ta dang uhiéu chi tiêu chỉ tiết dé phan biét ede logi kg thugl điều khién bei de khong ugiuy nang ean vige ty dong
khóa nên các ngành cảng nghiệp đã nà đang đồi khói nbitug beg thuật dieu khién mang tinh ting thé han chi piíải tôak độ các hệ Hung vám sud day chuyén céng ugh) 4 clit khang edn li điều khiéu don lé ting thiét bi hay từng egan thiết Bị
Higu nay, nde ta dang phan dia dé phat tridn leinh té «a hoi, trong
uhiing nam qua da at due aluing think twa ding khich lp , lao litn dé
cho Cong ughifp hoa - hign dai hea dit wide Tvong cdug enpe (26g ughi¢n hda- higu ial hoa dat mucde , dign td la nganh muti uhon then chét đầm cơ vở nà động lực Húic đâu cúc dgàdk Kiuáe phat triểu đồug bộ
đự nhát triển của kù tuuệt tự động dựa trêu et sé tin hoe aing 066 hang logt phiit mink much tich hep FC , b6 v6 xit ly, vi diéu khién da déng gép mgt vai Wd quan trong od quyét dink troug vi¢e séng tao „uy dung rgug rai kg thagt diéu khién eb khi nang lap With duge Tiy theo yeu edu cia ngudi ui dung ma chon thiét bi thich hep od lap tinh la duge
Gi dang lugn van nay uham gidi thitu khdi quat vé vi diéu khién
8951 vt tug dung nd để thiết kế (Đô hé 66° theo nha cầu của người sử dung
Do thoi gian , tai liệu tham khéo 0a trinh dé eb han nén luận oan udy khéug trénh khébi uhiing thiéu sét , rat mong sự góp ý, eÌa ede qui thay
6 ott ete ban
Thanh phé HOM thang 02 nam 2002
Dthim thite hign
FRAN QUANG OU
FHA CONE LOM
SS
Trang vii
Trang 10Luận văn tốt nghiệp
CHƯƠNG I: DAN NHAP
1.ĐẶT VẤN ĐỀ
Ngày nay kỹ thuật vi điều khiển đã xâm nhập mạnh vào các lĩnh vực
khoa học kỹ thuật và trở nên quen thuộc trong ngành điện tử Nhìn chung,từ các
dây chuyển sản xuất lớn đến các thiết bị dan dung đều có sự tham gia của vi
điều khiển Các bộ vi điều khiển có khẩ năng xử lý nhiều hoạt động phức tạp
mà chỉ cần một chip vi mạch nhỏ chứa đưng
thay thế các hệ thống điều khiển lồn và phức tạp bằng những mạch điện đơn
giản và gọn nhẹ hơn đồng thời các thao tác cho người sử dụng được dễ dàng
hơn
ác chương trình điều khiển, nó đã
Vi điều khiển không những góp phần vào kỹ thuật điều điện tử ma củn
góp phần to lớn vào việc phải tiến các ngành thuộc Hình vực truyền thông Đó
chính là sự ra đời của hàng loạt tuét bị ti tin trong ngành viền thông, tựu
hình, đặc biệt là sự ra đơi của màng Eaternet, góp phần đưa con ngưới đế:
cao của nền văn mình nhân loại Chính vì vậy mà việc tìm hiểu, khảo sát
khiển ño thiết kề các mạch điện chuyên ngành kỹ thuật
tử là điều mà các sinh viên hệt sức quản tầm nói chung và của nhóm nói riéng nhằm đáp ứng nhù cầu do
toán phức tạp trong vài phần triệu giây, điều đó thực hiện được là do kha nang
của con người Nếu không có sự tham gia của con người thì hệ thống vi điều
khiển cũng chỉ là một vật vô tri Do vậy vi điều khiển cũng giống như máy tính
bao gồm 2 phân chính là phần cứng và phần mềm Với công nghệ tiên tiến,
ngày nay các máy tính có thể đi đến việc suy nghĩ và nhận biết được các thông
tin đưa vào , đó là các máy tính thuộc thế hệ trí tuệ nhân tạo
Mặc dù vi diéu khiển đã đi được những bước dài như vậy nhưng để tiếp
cận được với kỹ thuật này không thể là một việc có được trong một sớm một
chiều Việc hiểu được cơ chế hoạt động của bộ vi điểu khiển là cơ sở để chúng ta tìm hiểu và sử dụng chúng để điều khiển một cách tối tân hơn, do vậy
mà việc tìm hiểu này sẽ tạo tiền để cho sau này thâm nhập vào các kỹ thuật lập
trình và điều khiển bằng vi xử lý Để tìm hiểu bộ vi điều khiển một cách khoa
Trang 1
Trang 11Luận văn tốt nghiệp
“———-———————-—-— -
học và mang lại hiệu quả cao làm nền tẩn cho việc xâm nhập vào những hệ
thống tối tân hơn Việc tìm hiểu về kiến thức vi điều khiển là hết sức cần thiết
Để đáp ứng các yêu cầu trên , chúng em bắt tay vào tìm hiểu chip vi điều
khiển 8951 và thiết kế đồng hổ số báo giờ tự động ứng dụng vào các nhà
máy ,xí nghiệp ,trường học để thực hiện báo giờ theo một lịch trình mong muốn
II GIỚI HẠN VẤN ĐỀ
Vì thời gian có hạn, tài liệu tham khảo và kiến thức còn hạn chế nên việc
thực hiện để tài * Ứng dụng vi điều khiến 8951 thiết kế đồng hồ số báo giờ tự
động “ chỉ giới hạn ở 3 phần
+ Khảo sắt ví điều khiển R95]
+ Thiết kế thí công phần cứng mạch đồng hồ báo giờ tự đồng,
+ Xây dựng lưu đồ khôi, viết chương tình phán mềm điều khiến theo yêu
cầu trên
Tuy nhiên, trong xuất quá trình thí hiện không ranh khối những thiếu sót
và khó có thể hoàn chính một cách tuyết đội , nên chỉ có thể đạt được ở
phạm vi tương đôi, rất mong sự đong góp ý Kiên của các quí thầy có và các bạn
để cho để tài được hoàn chính hơn
II MỤC ĐỈCH NGHI CỨU,
Quá để tài nhầm trang bi cho sinh viên những kiến thức tổng quát vé vi
điều khiển từ cấu ưue phần cứng , cách thức kết nối phần cứng cho đến sử dụng tập lệnh để viết chương trình phần mềm theo yêu cầu để ra
Đề tài giới thiệu chỉ tiết về vi điều khiển 8951 giúp cho sinh viên sử dụng thành thạo tập lệnh để thiết kế phần mềm Trên cơ sở đó xây dựng lý thuyết về
vi điều khiển 8951
Khi nghiên cứu thực hiện để tài chúng em muốn phát huy những ứng dụng vốn có của vi điều khiển để tạo ra sản phẩm của riêng mình Ngoài ra khi thực
hiện để tài là cơ hội để chúng em tự kiểm tra lại những kiến thức đã học ở
trường ,đồng thời phát huy tính sáng tạo khả năng giải quyết vấn để theo yêu cầu đặt ra và đây cũng là dịp để chúng em tự khẳng định mình trước khi ra
trường để tham gia vào các hoạt động sản xuất trong xã hội Ngoài ra tập luận văn này cũng có thể làm tài liệu tham khảo cho những sinh viên khóa sau giúp
họ hiểu rõ hơn những ứng dụng của vi điều khiển
Trang 2
Trang 12Luận văn tốt nghiệp
”———————————ễễễễễ-
1V THỂ.THỨC NGHIÊN CỨU
1 Đối tượng nghiên cứu
Như đã giới thiệu ở trên để tài “ Ứng dụng vi điều khiển 8951 thiết kế
đồng hồ số báo giờ tự động “ đã được thực hiện qua sự phân tích khảo sát vi
điều khiển 8951 , người nghiên cứu đã xây dựng sơ đồ nguyên lý phần cứng ,
viết chương trình phần mêm ,
2 Phương pháp nghiên cứu
Do tính chất của để tài là ứng dụng vi điều khiển 8951 thiết kế đồng hỗ
số báo giờ tự động , trong quá trình nghiên cứu thực hiện để tài , người nghiên cứu đã thực hiện các phương pháp sau :
© Phương pháp tham khảo tài liều
® Phương pháp trò chuyên trao đổi, tham khảo ý kiến của giáo viên
hướng
Xây dựng mạch điện phẩn cứng „ viết chương trình phần mễm tiến cỡ sở
những tài liệu tham khảo được qua phần ch Kháo sắt những ứng dụng của vị
điều khiển ,kết hợp những hiểu biết về vì mạch ví điều khiển , người nghiên cứu
ln và các bạn sinh viên
cố gắng đưa ra tập luận vấn và thì công để đưa vào ứng dụng thực tế,
3 Kế hoạch nghiên cứu
Trong thực tế ,vấn để về vì điển Khiế
không còn là mới mẻ nữa , ngưởi
lầy đúng thời gian đã định Vì váy kế
sười nghiên cứu được đề ra như sau:
“Thủ thặp tài Hiệu tham khảo
®- Soạn để cường chỉ tiết cho luận văn như sau : Chương 1: Dần nhập
Chương 2 : Khảo sát vi điều khiển 8951 để ứng dụng vào thiết
Trang 3
Trang 13
Luận văn tốt nghiệp
—————ễễễễễ
CHƯƠNG 2: KHẢO SÁT VI ĐIỀU KHIỂN
1 GIỚI THIỆU CẤU TRÚC PHAN CUNG CUA HỌ MSC-51
MSC-51 là một họ IC vi diéu khién do hang INTEL san xuất Các IC tiêu biểu cho họ MSC-51 là 8031, 8051 , 8751 , 8951 ,892051 Chúng, có đặc điểm chung như sau :
Dao động Điều khiển bus Các port ƯO Port nối tiếp
Trang 14Luận văn tốt nghiệp
- 4portnhap xuat /O 8 bit
- 26 dinh thdi 16 bit (riêng họ 8xx2 có 3 bộ )
-_ 1 cổng nối tiếp
- _ 64 Kbyte không gian bộ nhớ chương trình mở rộng
-_ 64 Kbyte không gian bộ nhớ dữ liệu mở rộng
-_1 bộ xử lý luận lý (thao tắc trên các bit đơn )
- 210 bit dia chi hóa ( nằm trang vùng RAM nội )
- Bộ nhân và hộ chia 4 pis,
Nhìn vào sơ đồ khôi ta thấy nó báo gồm một ví xử lý và các thiết bị tối
®- Có 128 byte RAM nội
® Có 4 Port xuất nhập VO 8 bit
ø _ Có khả năng giao tiếp truyền dữ liệu nối tiếp
© Cé thé giao tiếp với 64 Kbyte bộ nhớ EPROM bên ngoài dùng để
lưu chương trình điều khiển
© Có thể giao tiếp với 64 Kbyte bộ nhớ bên ngoài dùng để lưu dữ
Trang 15Luận văn tối nghiệp
l XTAL2 poa [Ss Abd
An Alo
3 Chức năng các chân của 8951
Vi điều khiển 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à I chân có 2 chức năng ) ,mỗi
đường có thể hoạt động như đường xuất nhập điều khiển hoặc là thành phần của các bus dữ liệu va bus địa chỉ để tải địa chỉ và dữ liệu khi giao tiếp với bộ nhớ
ngoài
¬———“——>—-———-
Trang 6
Trang 16Luận văn tốt nghiệp
——————————————ễễễễễ-—— 3.1 Cac Port
e Port0:
Port 0 là một Port có hai chức năng với số thứ tự trên các chân từ 32-39
-Trong các hệ thống điều khiển đơn giẩn sử dụng bộ nhớ bên trong (không
dùng bộ nhớ mở rộng bên ngoài ) thì Port 0 có chức năng như các đường
điều khiển xuất nhập IO Trong các hệ thống điều khiển lớn sử dụng
bộ nhớ mở rộng bên ngoài thì Port0 có chức năng là bus dữ liệu 8 bit ADO-AD7
© Portl:
Port 1 là một Port xuất nhập O có số thứ tự chân từ I-§ các chân được
ký hiệu PI.0, PI.L, PI.2 PI.7 có thể dùng cho giao tiết
bị ngoài để điều khiển xuât nhập - Por 1 không có chúc nấng khác ,vì vậy
Port 2 là Pon có 3 chức năng ( tác du
21-28 Trong các hệ thông điều khiển đứa giản sử dụng bộ nhớ bén trong
kép) với số thứ tự chán từ
khong ding bo ahd med rong bến ngoài thì Port 2 được dung lãm các
đường điều khiển xuất nhập Trong các hệ thống điều khiến lớn sứ
dụng bộ nhữ mở rồng bên ngoài thì Port 2 có chức năng là bus đi
cao A8 -ÄAIã
® PorL3:
Port 3 la Port co 2 chive nàng với số thứ tự chân 10 — 17, các chân của
Port này có nhiều chức năng ,vừa có chức năng trao đổi dữ liệu vừa có
chức năng đặc biệt như ở bảng sau :
Bit Tên Chức năng chuyển đổi
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 INTO\ Ngõ vào ngắt cứng thứ 0
P3.3 INTI\ Ngõ vào ngắt cứng thứ 1
P3.5 ‘Eh Ngõ vào của TIMER/COUNTER thứ 1 P3.6 WR\ Tín hiệu ghi dữ liệu lên bộ nhớ ngoài P3.7 RD\ Tín hiệu đọc bộ nhớ dữ liệu ngoài
Trang 7
Trang 17Luận văn tốt nghiệp
._—————————
3.2 Các ngõ tín hiệu điều khiển
« Ngõ tín hiệu PSEN (Program Store Enable )
PSEN là ứn hiệu ngõ ra trên chân 29 có tác dụng cho phép đọc bộ nhớ
chương trình mở rộng thường nối đến chin OE ( Output Enable) ctia EPROM cho phép đọc các byte mở rộng
PSEN ở mức thấp trong thời gian vi điều khiển 8951 lấy lệnh Các mã
lệnh của chương trình đọc từ EPROM qua bus dữ liệu và được chốt vào
thanh ghi lệnh bên trong 8951 để giải mã lệnh Khi 8951 thi hành chương
trình trong ROM nội thì PSEN ở mức l
© Ngo tin hiệu điều khiển ALE (Address Latch Enahle )
Khi vi điều khiển 8951 truy xuất bộ nhớ bên ngoài , PorL0 có chức năng,
là bus địa chỉ và bus dữ liệu do đó phải tách các đường địa chỉ và dữ liệu,
Tín hiệu ALE ở chân 30 dùng làm tin hiệu điều khiển để giải đá hợp các
đường địa chỉ và dữ liệu khủ kết nội chúng với ÍC chốt
Tín hiệu ra ở chân AT là một xung trong Khoảng thời gian Pon 0 đồng vai trò là đ
lá chí thấp nền việc chốt địa chí được thực hiện một c
toàn tự động, Các xung Hi liệu AE có tốc độ bằng 1/6 lần tán số
trên chỉp và có thế di dàng làm tú hiệu xung clock cúng cấp cho c phần khác của hệ thông Chỉ ngoại ưrừ khi thí hành lệnh MOVX, một
bị mất (Trong chế độ lắp trình cho bộ nhớ nội thì chân ALE dude
đồng làm ngõ vàu xung làp trình cho EPROM trong 8951
e Ngo tin higu MA (lh xternal Access )
Tín hiệu vào BA 6 chin 31 thudng nối lên mức 1 (Vcc) hoặc mức Ø
(GND) Nếu nồi lên mức logic 1 thì vi điểu khiển sẽ thi hành chương
trình từ ROM nội trong khoảng địa chỉ thấp 4 Kbyte Nếu EA nối với mức
logic 0 thì vi điều khiển 8951 sẽ thi hành chương trình từ bộ nhớ mở rộng
©_ Các ngõ vào bộ đao động trên chip X1 ,X2
Bộ dao động đượ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 tụ thạch anh ,và các tụ như sơ đổ tân số tụ thạch'anh thường sử dụng cho 8951 là 12 MHz, được kết nối ở 2 chân
Trang 18Luận văn tốt nghiệp
© Các chân nguễn :
Vi mạch 8951 được vận hành với nguồn đơn +5V , Vec nối vào chân
40, Vss (GND) nối vào chân 20
II CẤU TRÚC BỘ NHỚ BÊN TRONG VI ĐIỀU KHIỂN
nhiên chúng có thể mở rộng bằng các thành phần bên ngoài lên đến tối đa 64
Kbytes bộ nhớ chương trình và 64 Kbytes bộ nhớ dữ liệu
Bộ nhớ bên trong bao gồm EPROM nội và RAM trên chip , EPROM gồm
bộ nhớ dữ liệu và bộ nhớ mã , RAM trên chip bao gồm nhiều 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
——=—
Trang 9
Trang 19Luận văn tốt nghiệp
E0 [E7 | E6 | E5 | E4 |E3|E2| E1 | E0 |ACC
“JAB LAA} a9 [as
qH|d1a [12 +tr|0 su không được dia chi hod bit SBUF
[ABP AAT 301 a8 98 |9E|9E |9D|9C JĐB|9A|99| 95 SCON
SAP DP aad |
25 |2F|2E [2D] 2C [2B] 2A] 29 | 28 | 90 [97] 96 | 95 | 94 |93|92|91 | 90 Pi
24 [27] 26] 25 | 24] 23] 22/21] 20]
23 |IF|IE|ID|LC|tn [1A] 19 [18 §D | _ không được địa chỉ hoá bit [THI
22 |17|16|15|14|13|12|1110 §C không được địa chỉ hoá bit {THO
21 0E |0E |0D |0C|0B |0A | 09 | 08 8B không duge dia chi hod bit ÍTLI
20 [07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 8A không được địa chỉ hoá bit _[TLO 1F Bank 3 89 không được địa chỉ hoá bit MOD
18 88 | 8F|8E|8D|8C |8B/8A/ 89 | 88 [TCON
17 Bank 2 87 không được dia chi hod bit PCON
10
OF Bank 1 83 không được dia chi hod bit DPH
08 82 không được địa chỉ hoá bit PL
07 Bank thanh ghi 0 81 không được địa chỉ hoá bit SP
00 (mặc định cho R0 -R7) 88 |87 | 86 | 85 | 84 [83/82] 81| 80 [PO
RAM Các thanh ghi chức năng đặc biệt
—
Tran, 2 10
Trang 20
PEE—————————
Hai đặc tinh can lưu ý là :
* Các thanh ghi và các Port đã được xếp trong bộ nhớ và có thể truy xuất
trực tiếp giống như các địa chỉ bộ nhớ khác
* Ngăn xếp bên trong RAM nội nhỏ hơn so với RAM ngoại so với các bộ
vi xử lý khác
® Chỉ tiết về bộ nhớ RAM trên chip :
® Các Bank thanh ghi có địa chỉ từ 00H - IFH
® RAM dia chỉ hóa từng bit có địa chỉ từ 20H - 2FH e@ RAM da dung tit 30H — 2FH
© Các thanh ghi chức năng đặc biệt từ 80H - FIH
Œ RAM đa dụng:
Mặc dù trên hình vẻ cho thầy ÑÚ bvte đa dụng chiếm các địa chỉ từ 30H
đến 7FH, 32 byte dưới từ 00H đến I1H cũng có thể dùng với mục đích lương tứ
Ye tiếp hoặc gián Hep Ví du, để đọc nội dụng ở dia chi SEH cia
xác định địa chỉ nguồn (SH), Địch nhận dữ liệu được ngầm xác định trong mã
lệnh là thanh ghi tích lủy A
RAM bên trong cũng có thể truy xuất dùng cách đánh địa chỉ gián
qua thanh ghi RO hay RI Vidy , hai lệnh sau thí hành cùng nhiệm vụ như lệ:
đơn ở trên :
MOV RO, #5FH MOV A, @RO
Lệnh đầu dùng địa chí tức thời để đi chuyển giá trị 5FH vao thanh ghi RO
và lệnh thứ hai dùng địa chỉ trực tiếp để di chuyển dữ liệu vào thanh ghi tích lũy
R0
O RAM có thể truy xuất từng bit:
Vi điểu khiển 8951 chứa 210 bit được địa chỉ hóa, trong đó có 128 bit có
chứa các byte có chứa các địa chỉ từ 20F đế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ủavi
điều khiển Các bit có thể được đặt, xóa, AND, OR, , với 1 lệnh đơn Đa số
các vi xử lý đòi hỏi một chuổi lệnh đọc - sửa - ghi để đạt được mục đích tương
tự Ngoài ra các port cũng có thể truy xuất được từng bit
—————————————
Trang 11
Trang 21
Luận văn tốt nghiệp
.————————————————ễ——
Có 128 bit truy xuất từng bit này cũng có thể truy xuất như các byte hoặc
như các bit phụ thuộc vào lệnh được dùng Ví dụ , để đặt bit 67H ta dùng lệnh
sau :
SET 67H
Chú ý rằng địa chi 67H là bit có trọng số lớn nhất (MSB) 6 dia chi byte 2CH Lệnh trên không tác động đến các bit khác ở địa chỉ này Các vi xử lý sẽ
thi hành nhiệm vụ tương tự sau :
MOV A,2CH ¡ đọc cả byte
ORL A,#10000000B ;set(MSB) MOV 2CH.A ‡ phí lai ca byte
Ø1 Các bank thanh ghi:
32 byte thấp của bộ nhớ nội đc đành cho các banh thanh ghi, BO lệnh
8951 hổ trợ 8 thanh phí có tên là RO đến R7 và theo mặc định sau khi reset hé
thống, các thanh phí này có các địa chỉ từ OOH đến 07H Lệnh sau sẽ đúc nội
dung ở địa chỉ 0511 vào thanh ghụ tịch lây Á
MOV ALRS
Day là lénh Thyte diuy dia chi thank gia Tháo bác tướng từ có thể đưc
hành bằng lệnh 2 byte dung dha chỉ tức tiếp nam tong byte thứ hai
Do c6 4 bank thành phí nên tại một thời điểm chỉ có một bank thanh ghi
¡ RO đến R7 để chuyển đổi việc truy xuất các
bit chọn bank trong thanh ghi trạng thái
dùng thường xuyên nên dùng một trong
được truy xuất bởi cúc thành
bank thanh ghi ta phái thay d
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
chip vì 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 (SER: Special
Function Register) ở vùng trên của RAM nội từ địa chi 80H đến FFH
Chú ý: tất cá 128 địa chỉ từ 80H đến FFH không được định nghĩa, chỉ có
21 thanh ghi 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 ghi có chức năng đặc biệt SFR có thể địa chỉ hóa từng bit hoặc byte
—————————=——_————-
Trang 12
Trang 22Luận văn tốt nghiệp
————————————ễễễễễễễễ
«Thanh ghi trạng thái chương trình (PSW: Program Status Word):
Từ trạng thái chương trình ở địa chỉ D0H chứa các bit trạng thái được tóm
Cờ nhớ cũng có thể xem như thanh ghi 1 bit cho các lệnh luận lý thi hành
trên bit Ví dụ , để AND bit 25H với cờ nhớ và đặt kết quả trở vào cờ nhớ „ta
dùng lệnh như sau :
ANL C, 25H
¢ C@nhé phu AC (Auxiliary Carry Flag) :
Khi cộng những giá trị BCD (Binary Code Decimal), cờ nhớ phụ AC được
set nếu kết quả 4 bit thấp nằm trong phạm vi điều khiển 0AH+ 0FH Ngược lại
AC=0
Trang 13
Trang 23Luận văn tốt nghiệp
——————————————
e Cờ0(Flag0):
Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứng dụng của người dùng
«Các bit chọn bank thanh ghi truy xuất:
RS1 va RSO quyết định dãy thanh ghi tích cực Chúng được xóa sau khi
reset hệ thống và được thay đổi bởi phần mễm khi cần thiết
Tùy theo RS1, RS0 = 00, 01, 10, 11 sẽ được chọn Bank tích cực tương ứng
là Bank 0, Bank 1, Bank 2, Bank 3
_RSO | BANK
o | 0 1L | q1
0 2
® Cờ trànOV (Over Play):
Cờ trần được set sau một hoạt động công hoặc trừ nếu có sự trần toán học
số có dấu được công hoặc trừ với nhau, phần mêm có thể kiểm tra bít này đi € định xem kết quả có nằm trong tầm xác định không Khi các số không có dấu được cộng bì OV được bổ qua Các kết quả lớn hơn +127 hoặc
nhỏ hơn — 128 thi bit OV = 1
« Bit Parity (P):
Bit P ty déng được set hay Clear ở mỗi chu kỳ máy để lập Parity chẩn với
thanh ghỉ A Sự đếm các bit 1 trong thanh ghi A cộng với bit Parity luôn luôn
chấn Ví dụ A chứa 10101101B thì bit P set lên một để tổng số bit l trong A và
P tạo thành số chan
Bit Earity thường được dùng trong sự kết hợp với những thú tục của Port
nối tiếp để tạo ra bit Parity trước khi phát đi hoặc kiểm tra bit Parity sau khi thu
e Thanh ghi B:
Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi A để thực hiện các phép toán nhân chia Lệnh MUL AB sẽ nhận những giá trị không dấu 8 bit trong hai thanh ghi A và B, rồi trả về két qua 16 bit trong A (byte cao)
———ễ————Ễ——_Ễ_—_——————
Trang 14
Trang 24Luận văn tốt nghiệp
“——————
và B (byte thấp) Lệnh DIV AB lấy A chia B, kết quả nguyên đặt vào A, số dư
đặt vào B
Thanh ghi B có thể được dùng như một thanh ghi đệm trung gian đa mục
đích Nó là những bit định vị thông qua những địa chỉ từ F0H+F7H
« Con tré Ngan xép SP (Stack Pointer) :
Con trổ ngăn xếp là một thanh ghi 8 bit ở địa chỉ 81H Nó chứa địa chỉ của
nh trên ngăn xếp bao gồm các
; dữ liệu ra khỏi Ngăn xếp (POP)
Lệnh cất dữ liệu vào ngăn xếp sẽ làm tang SP tude khí phi dữ liệu và lệnh lấy
ra khỏi ngăn xếp sẽ làm giảm SP Ngăn xếp của 8031/8051 được giữ trong RAM nội và giới hạn các địa chỉ có thể truy xuất
byte dau ciia 8951,
lệnh cất dữ liệu vào ngăn
ằng địa chí gián tiếp, chúng là 128
Để khởi động SP với ngân xếp bất đâu tại địa chí 6Ó, các lệnh sau đầy
được dùng:
MOVSP",#SEH
Với lệnh trên thì ngắn xếp của S9ẤI chỉ có 32 byte vi dia chi cao nhất của
RAM chíp là 7EH, Số dị má trị SEN được nạp vào SP vì SP tăng lên 60H
trước khi cất byte dữ liệu
Khi Reset 895L, SP sẻ mù i trị mặc định là 07H và dữ liệu đầu tiền sẽ
được cất vào ô nhớ n ia chi 08H Nếu phần mềm ứng dụng khóng
khởi động SP một giá trị mới thì bank thanh ghi1 có thể cả 2 và 3 sé không dùng
được vì vùng RAM: này đã được dùng làm ngăn xếp Ngăn xếp được truy xuất
trực tiếp bằng các lệnh PUSH và POP để lưu trữ tạm thời và lấy lại dữ liệu, hoặc truy xuất ngầm bằng lệnh gọi chương trình con ( ACALL, LCALL) và các lệnh
trở về (RET, RETD để lưu trữ giá trị của bộ đếm chương trình khi bắt đâu thực
hiện chương trình con và lấy lại khi kết thúc chương trình con
săn Xếp c
¢ Con tré dữ liệu DPTR (Data Pointer) :
Con trỏ dữ liệu (DPTR) được dùng để truy xuất bộ nhớ ngoài là một thanh
ghi 16 bit 6 dia chỉ 82H (DPL: byte thấp) và 83H (DPH: byte cao) Ba lệnh sau
sẽ ghi 55H vào RAM ngoài ở địa chỉ 1000
MOV DPTR, #1000H MOV @DPTR, A
———
Trang 15
Trang 25Luận văn tốt nghiệp
“—————————————
Lệnh đầu tiên dùng để nạp 55H vào thanh ghi A Lệnh thứ hai dùng để
nạp địa chỉ của ô nhớ cần lưu giá trị 55H vào con trỏ dữ liệu DPTR Lệnh thứ ba
sẽ di chuyển nội dung thanh ghi A (55H) vào ô nhớ RAM bên ngoài có địa chỉ chứa trong DPTR (1000H )
« Các thanh ghi Port (Port Register) :
Các Port của 8951 bao gồm Port0 ở dia chi 80H, Portl ở địa chỉ 90H, Port2 6 dia chi AOH, va Port3 ở địa chỉ B0H Tất cả các Port nay đều có thể truy
xuất từng bit nên rất thuận tiện trong khẩ năng giao tiếp
e Cac thanh ghi Port (Port Register) :
Các Port của 8951 bạo gồm Pon0 ở dia chi 8OH, Port 1d địa chỉ 20H,
Por2 ở địa chỉ AOIH, và Per3 ở địa chỉ BỌN, Tất cả các Pon này đến có thể
truy xuất từng bỉL nên rãi thuận tiện tong kha nang giao ep Vi du, acu mit motor được nối qua một cuôn diy co Gansister lar den bil 7 cua Port £ ne cd thé
tắt và bật bằng I lệnh đưn
SEP PL? + BẬt motOF CLR PL? ¡ KẤt motOr
Các lệnh trên dùng dâu châm để xác định một bít trong một bytc Trình
hợp địch sẽ thì hành sự chuyển đổi cần thiết vi vay hai lệnh sau đây như nhau :
Khi xem xét giap tiếp đến một thiết bị với một bit trạng thái gọi là BUSY được xét khi thiết bị đang bận và được xóa khi thiết bị đã sẵn sàng Nếu BUSY được nối tới P1.5 , vòng lặp sau đây được dùng để chờ thiết bị trở lại rạng thái sẵn sang :
WAIT: JB P1.5, WAIT
e Cac thanh ghi Timer (Timer Register) :
Vi mạch 8951 có chứa hai bộ định thời / bộ đếm 16 bit được dùng cho việc
định thời được đếm sự kiện Timer0 ở địa chi 8AH (TLO: byte thấp ) và 8CH (THO: byte cao) Timerl ở địa chỉ 8BH (TLI: byte thấp) và 8DH (THI: byte cao) Việc khởi động timer được SET bởi Timer Mode (TMOD) ở địa chỉ 89H và
Trang 16
Trang 26Luận văn tốt nghiệp
———————————ễỄễễ
thanh ghi điều khiển Timer (TCON) ở địa chỉ 88H Chỉ có TCON được địa chỉ
hóa từng bit
« _ Các thanh ghi Port nối tiếp (Serial Port Register) :
Vi điều khiển 8951 chứa một Port nối tiếp cho việc trao đổi thông tin với
các thiết bị nối tiếp như máy tính, modem hoặc giao tiếp nối tiếp với các IC
khác Một thanh ghỉ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả hai dữ liệu truyền và dữ liệu nhập Khi truyền dữ liệu ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF Các mode vận khác nhau được lập trình qua thanh ghi điều khiển
Port nối tiếp (SCON) được địa chỉ hóa từng bit ở địa chỉ 98H,
e_ Các thanh ghi ngắt (Interrupt Register):
Vi diéu khiển Ñ9SL có cầu trúc Š nguồn ngất, 2 mức tu tiến Các ngất bị
cấm sau khi bị reset hệ thông và sẽ đước chị
phép ngắt (E) ở địa chỉ ARH Cả hài thành chì ¿
ép bằng việc phí thánh phí cho
dc địa chỉ hóa tưng bít
© Thanh ghi diéu khién ayudn POON (Power Control Register):
Thanh ghi PCON khong có bú định vị No ở địa chỉ 87H chứa nhiều bịt
điều khiển Thanh phí PCON được tôm tắt như sau:
[tp — | $A
7 SMOD Bit gấp đôi tốc độ baud , nếu được set thì tốc đó |
baud tăng gấp đôi trong các mode 1 ,2 và 3 của
port nối tiếp
3 GEI Bit cd đa dụng 1
2 GFO Bit cd da dung 0
it PD Giảm công suat , duoc set dé kich hoat mode gam
công suất , chi thoat khi reset ,
0 IDL Mode chi , set dé kích hoạt mode chờ , chỉ thoát
` | khi cố ngắt hoặc reset hệ thống
re
oer OTS Trang 17
Trang 27
Luận văn tốt nghiệp
———=ễễỄễễễễễễễ—ễễễ
3 Bộ nhớ ngoài ( External Memory ) :
Vi điều khiển 8951 có khả năng mở rộng bộ nhớ lên đến 64K byte bộ nhớ
chương trình và 64k byte bộ nhớ dữ liệu ngoài Do đó có thể dùng thêm RAM và
ROM nếu cần
Khi dùng bộ nhớ ngoài, Port0 không còn chức năng LO nữa Nó được kết
hợp giữa bus địa chỉ (A0-A7) và bus dữ liệu (D0-D7) với tín hiệu ALE để chốt
byte của bus địa chỉ khi bắt đầu mỗi chu kỳ bộ nhớ Port dude cho là byte cao
của bus địa chỉ
Trong nữa đả
của chu kỳ bộ nhớ ,byte thấp của địa chí được cấp trong Port 0 và được chốt bằng xung AL.E Mỏt vì mạch chốt sẽ giữ byIe địa chỉ thấp trong phân còn lại của chủ kỳ bộ nhỏ Trong nữa sau của chủ kỹ bộ nhớ , Port 0
dùng như bus đữ liệu và được đọc hoặc phì tùy theo lệnh
3.1 Truy xuft bé nhé ma ngoai (Accessing External Code Memory: +
Bộ nhớ chướng trình bên ngoặt là bộ nhớ ROM được cho phép của tín hiệu
PSENV Sự kết nối phần cứng của bộ nhĩ F PROM như sau
Trong một chu ky máy tiêu biểu, tín hiệu ALE tích 2 lần Lần thứ nhất cho
phép 74HC373 ống chốt dia chi byte thấp, khi ALE xuống 0 thì byte thấp và byte cao của bộ đếm chương trình đều có nhưng EPROM chưa xuất vì PSEN\ chưa
tích cực, khi tín hiệu lên một trở lại thì Port 0 đã có dữ liệu là Opcode ALE tích
cực lần thứ hai được giải thích tương tự và byte 2 được đọc từ bộ nhớ chương trình Nếu lệnh đang hiện hành là lệnh 1 byte thì CPU chỉ đọc Opcode, còn byte thứ hai
bồ đi
3.2 Truy xuất bộ nhớ đữ liệu ngoài (Accessing External Data Memory) :
Bộ nhớ dữ liệu ngoài là một bộ nhớ RAM được đọc hoặc ghi khi được cho phép của tín hiệu RD\ và WR Hai tín hiệu này nằm ở chân P3.7 (RD) và P3.6
(WR) Lệnh MOVX được dùng để truy xuất bộ nhớ dữ liệu ngoài và dùng một
bộ đệm dữ liệu 16 bit (DPTR), R0 hoặc R1 như là một thanh ghi địa chỉ
Trang l8
Trang 28Luận văn tốt nghiệp
————————————
Các,RAM có thể giao tiếp với 8951 tương tự cách thức như EPROM ngoại trừ chân RD\ của 8951 nối với chân OE\ (Output Enable) của RAM và chân WR\ của 8951 nối với chân WE\ của RAM Sự nối các bus địa chỉ và dữ liệu tương tự
như cách nối của EPROM
Cs\
OE\ D0- D7 IWR\
RAM
‘A0+AI2 8K Bytes
Trang 29Luận văn tối nghiệp
Sự giải mã địa chỉ là một yêu câu tất yếu để chọn EPROM, RAM, Sự
giải mã địa chỉ đối với 8951 để chọn các vùng nhớ ngoài như các vi điều khiển
'Nếu các EPROM hoặc RAM 8K được dùng thì các bus địa chí phái được giải mã
để chọn các IC nhớ nằm trong phạm vi giới hạn 8K: 0000HzIFFFH,
2000H+3FFFH,
Một cách cụ thể, IC giải mã 74HC138 được dùng với những ngõ ra của nó được nối với những ngõ vào chọn Chip CS (Chip Select) trên những IC nhớ
EPROM, RAM, Hình trên cho kết nối nhiều EPROM va RAM
3.3 Sự xếp chông các vùng bộ nhớ chương trình và dữ liệu bên ngoài:
Vĩ bộ nhớ chương trình là ROM nên nảy sinh một vấn để bất tiện khi phát
triển phần mềm cho vi điển khiển Mỗi nhước điểm chúng của 8951 lá các vùng,
nhớ dữ liệu ngoài nầm đè lên nhàn, vì tín hiệu PSUNV được dùng để đọc bộ nhớ
mã ngoài và tín hiệu RA được dũng để đọc bộ nhớ dự liệu, nền mốt bọ nhớ
RAM có thể chứa cả chủng bình và dữ hee bang cach noi dudng OF) cua RAM đến ngõ ra một cổng AND có hài ngà vào PSENN và RỦV SƯ đó mạch như
hình sau cho phép cho phép bà nh RAM vò hai chức nàng vừa là bộ nhớ chứ
Vậy một chương trình có thể được tải vào RAM bằng cách xem nó như bộ
nhớ dữ liệu và thi hành chương trình băng cách xem nó như bộ nhớ chương
trình
Hoạt déng Reset:
Vi điểu khiển 8951 có ngõ vào reset (RST) tác động ở mức cao trong
khoảng thời gian 2 chu kỳ xung máy, sau đó xuống mức thấp để 8951 bắt đầu
làm việc RST có thể kích bằng tay bằng một phím nhấn thường hở, sơ đồ mạch
reset nhu sau:
LEE
Trang 20
Trang 30Reset bing tay
“Trạng thái của tất cá các thanh phì trong SOSL sau Khí reseL hé thông được
Trang 31
Luận văn tốt nghiệp
—————————ễễễ
Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC được Reset
tai dia chi OOOOH Khi ngõ vào RST xuống mức thấp, chương trình luôn bắt đầu
tại địa chỉ 0000H của bộ nhớ chương trình Nội dung của RAM trên chip không
bị thay đổi bởi tác động của ngõ vào Reset
IV HOẠT ĐỘNG ĐỊNH THỜI CỦA 8951:
1 Giới thiệu :
Bộ định thời của Timer là một chuỗi các Flip Flop được chia làm 2, nó
nhận tín hiệu vào là một nguồn xung clock, xung clock được đưa vào Flip Flop
thứ nhất là xung clock của Flip Flop thứ hai mà nó cũng chia tin số clock này
cho 2 và cứ tiếp tục
Vì:mỗi tầng kế tiếp chia cho 2, nén Timer ñ tầng phải chía tấn số clock
ngõ vào cho 2" Ngõ ra của tầng cuối cùng là clock của Flip Flop tran Timer hoặc cờ mà nó kiểm tra bởi phần mễm hoặc sình tá ngất, Giá 0 nhì phán trong các FE của bộ Timer có thế được nhì như đếm xung clock hoặc các sự kiến quan trọng béi vi Timer dite khổi dong Vid Timer 16 bit co thể đếm đến tư
FEFFH sang 000011 Hoài dụng của Tuner đơn giản 3 bít được mình hoa nhữ sau:
Trang 32| Trong hình trên mỗi tầng là một EF loại D phủ định tác động cạnh xuống
được hoạt động ở mode chia cho 2 (ngõ ra Q\ được nối vào D) FF cờ là một bộ
' chốt đơn giẩn loại D được set bởi tầng cuối cùng trong Timer Trong biểu đồ + thời gian, tẳng đầu đổi trạng thái ở 1 tần số clock, tầng thứ hai đổi trạng thái ở
Ỉ tần số 4 tần số clock Số đếm được biết ở dạng thập phân và được kiểm tra
i lai dé dàng bởi việc kiểm tra các tầng của 3 FF Ví dụ số đếm “4” xuất hiện khi
| Q2=1,Q1=0, Q0=0 (4;9=100,),
| Các Timer được ứng dụng thực tế cho các hoạt động định hướng 8951 có
Í_ 2 bộ Timer 16 bit, mỗi Timer có 4 mode hoạt động Các Timcr dùng để đếm giờ,
| đếm các sự kiện cần thiết và sự sinh ra tỏc độ của tốc độ J3aud bởi sự gắn liên
Port nối tiếp
Mỗi sự định thời ld mot Timer 16 bit, do đồ tầng cuối cũng lá táng thứ 16
Trong các ứng dụng định thời, E Punet được lắp Đình để tran ở môi khuẩng
thời gian đều đặn và đức set cờ trần Thiết Cờ được dùng để đồng bố chưới trình để thực hiện màt hoạt đong nhữ việc đưa tới T tảng cí
dữ liệu đếm ngò tà, Cúc ứng dụng Khác có sử dụng việc ghí gig déu
Timer để đo thời gián đã trôi quá hài trật i
đếm một sự kiện được dùng đẻ xác định só lần xuất hiện của sự kién dd, vite thei
ng thai (vi du do độ rộng xung
Ỉ gian trôi qua gìửa các sự kiện
| Các Timer của R95L được truy xuất bởi việc dùng 6 thanh ghi chức náng
+ đặc biệt như suu :
Trang 33Luận văn tốt nghiệp
2 Các thanh ghi điều khiển Timer:
2.1 Thanh ghi điều khiển chế độ timer TMOD (Timer Mode Register) :
Thanh ghỉ mode gồm hai nhóm 4 bit là: 4 bịt thấp đặt mode hoạt động cho Timer 0 và 4 bit cao đặt mode hoạt động cho Timer 1 8 bit của thanh ghỉ TMOD
được tóm tắt như sau:
7 GATE i Khi GATE = 1, Timer chi lam viéc khi INTI=1
6 cr 1 Bitcho dém su kiện hay phi gis
C/T = Dem sit _kign
CIV = 0- Ghi gies đều đặn _
5 MI \ Ha chon mode cia Timer |
3 GATE 0 Ni vòng của Timer 0
2 Cre 0 Rit chon Counter/Timer cia Timer 0
1 ML 0 Ritchon mode ctta Timer 0
0 Mo 0 | BiLchon mode của Timer 0 |
Hai bit MO va MI cla TMOD dé chon mode cho Timer 0 hodc Timer 1
0 0 0 Mode Timer 13 bit (mode 8048)
0 1 1 Mode Timer 16 bit
1 0 2 Mode tự động nạp 8 bit
Mode Timer tách ra :
1 1 3 Timer 0 : TL0 là Timer 8 bit được điều khiển bởi
các bit của Timer 0 THO tương tự nhưng được
điều khiển bởi các bit của mode Timer I
Timer 1 ; Được ngừng lại
Trang 24
Trang 34
Luận văn tốt nghiệp
TMOD không có bit định vị, nó thường được LOAD một lân bởi phần mềm
ở đầu chương trình để khởi động mode Timer Sau đó sự định giờ có thể dừng
lại, được khởi động lại như thế bởi sự truy xuất các thanh ghi chức năng đặc biệt của Timer khác
2.2 Thanh ghi điều khiển TCON (Timer Control Register) :
Thanh ghi điều khiển bao gồm các bit trạng thái và các bit điều khiển bởi
Timer 0 va Timer 1 Thanh ghỉ TCON có bit định vị Hoạt động của từng bit
được tóm tắt như sau :
Stn Cỡ tan Timer | duge set bdi phan cứng Ở
sv trăn, được xóa bởi phân mém boác bới phần cứng khi các vecld xứ lí đến thú tục |
phúc vụ ngắt ISR
TCON.6 TRI SELL Ria dieu kien chay Timer | duge set heae |
xóa bởi phần mềm để chạy hoae ng
vhay Timer
TCON.5 TRO SDH Cờ tràn Timer 0 (hoạt động tương tự TF1)
TCON.4 TRO SCH Bit điều khiển chạy Timer 0 (giống TR1) |
TCON.3 Wl §BH Cờ kiểu ngắt I ngoài Khi cạnh xuống xuất
hiện trên INTI thì IEI được xóa bởi phân
mềm hoặc phần cứng khi CPU định hướng đến thủ tục phục vụ ngắt ngoài
TCON.2 TTI 8AH | Cờ kiểu ngất 1 ngoài được set hoặc xóa
bằng phấn mềm bởi cạnh kích hoạt bởi sự ngắt ngoài
TCON.1 IE0 89H Cờ cạnh ngắt 0 ngoài
TCON TT0 88H | Cờ kiểu ngắt 0 ngoài
—=—=ƑƑ:: _
Trang 25
Trang 35Luận văn tốt nghiệp
"”————————————ễễễễễễ
2.3 Các nguồn xung nhịp cho Timer (Clock Sources):
Có hai nguồn xung clock có thể đếm giờ là sự định giờ bên trong và sự
đếm sự kiện bên ngoài Bit C/T trong TMOD cho phép chọn 1 trong 2 khi Timer
b= Down (Event Counting)
©— Đếm giờ bên trong (Enterval Piming) :
Néu bit C/T = 0 thi hoat động của Thuer liên tục được chọn vào bộ Timer được ghỉ giờ từ dao động trên Chín, Một bộ chia 12 được thêm vào để giá:
số clock đến 1 giá trị phù hợp với các ứng dụng, Các thanh ghi TLx va THx tang
ở tốc độ 1/13 lần tần số đào dòng trên Chip Néu ding thạch anh 12MHz thi sé
đưa đến tốc độ clock LMH¿
tán
Các sự tràn Timer sinh ra sau một con số cố định của những xung clock,
nó phụ thuộc vào giá trị khởi tạo được LOAĐ, vào các thanh ghi THx và TLx
e _ Đếm các sự kiện bên ngoài (Event Counting) :
Nếu bịt C/T = 1 thì bộ Timer được ghi giờ từ nguồn bên ngoài trong nhiều
ứng dụng, nguồn bên ngoài này cung cấp 1 sự định giờ với 1 xung trên sự xảy ra
của sự kiện Sự định giờ là sự đếm sự kiện Con số sự kiện được xác định trong
phần mềm bởi việc đọc các thanh ghi Timer TLx/THx, bởi vì giá tri 16 bit trong các thanh này tăng lên cho mỗi sự kiện
Nguồn xung clock bên ngoài đưa vào chân P3.4 là ngõ nhập của xung
clock bởi Timer 0 (TO) va P3.5 là ngõ nhập của xung clock bởi Timer 1 (T1)
Trang 26
Trang 36Luận văn tốt nghiệp
Trong các ứng dụng đếm các thanh ghi Timer được tăng trong đáp ứng của
sự chuyển trạng thái từ 1 sang 0 ở ngõ nhập Tx Ngõ nhập bên ngoài được thử
trong suốt S5P2 của mọi chu kỳ máy: Do đó khi ngõ nhập đưa tới mức cao trong
một chu kỳ và mức thấp trong một chu kỳ kế tiếp thì bộ đếm tăng lên một Giá
trị mới xuất hiện trong các thanh ghi Timer trong suốt S5P1 của chu kỳ theo sau một sự chuyển đổi Bởi vì nó chiếm 2 chu kỳ máy (2us) để nhận ra sự chuyển
đổi từ 1 sang 0, nên tần số bên ngoài lớn nhất là 500KHz nếu dao động thạch
anh 12 MHz
2.4 Quá trình bắt đầu đếm , kết thúc đếm và điều khiển các Timer
(Starting, Stopping and Controlling the Timer) :
Bit TRx trong thanh ghi có bít định vị TCON được điều khiển bởi phần mềm để bắt đầu hoặc kết thúc các Timer Để bắt đầu cae Timer ta set bit TRx
và để kết thúc Timer ta Clear TRx, Ví dụ Timer 0 được bất đầu bởi lénh SHPB
TRO và được kết thúc bởi lệnh CÍR TRÒ (bit Gate= 0) Bí TRx bị xóa sau sử
reset hệ thong, dodo cae Timer bream bằng sự mặc định
Thêm phương phái vita dé dieu ken cae Tuner ti dung bit GATE ue
thanh ghi TMOD va yd nhap bea ngoar INTA, Dieu nay duve dung dé d
độ rộng xung Giả sử xung đưa vào chân TN TỦ tí khới động Timer Ô cho moặc }
là mode Timer 16 bit vai EI 0/EHO = OOOOH, GATE = 1, TRO = I Như váy khi
INTO =1 thi Timer “diate nở công” và ghí giờ với tốc độ của tần số IMHz
INT0 xuống thấp thì Timer "đong công” và khoảng thời gian của xung tính b; 1s là sự đếm được trong thanh ghi TLO/THO
Trang 37
Luận văn tối nghiệp
2.5 Sự khởi động và truy xuất các thanh ghỉ Timer:
Các Timer được khởi động 1 lần ở đầu chương trình để đặt mode hoạt
động cho chúng Sau đó trong chương trình các Timer được bắt đầu, được xóa,
các thanh ghi Timer được đọc và cập nhật theo yêu câu của từng ứng dụng cụ
Trong lệnh này MI =0, M0 = I để vào mode | va C/T = 0, GA
cho phép shi giờ bên trong đồng thời xóa các bít mode cha Timer 0, Sau lệnh trên Timer vẫn chưa đếm giờ, nó chỉ bắt đầu đêm giờ khi set bít điều khiển chạy TRI của nó
Nếu ta không khởi gân giá tị đầu cho các thành phí TA/PHš th Timef sẽ
bắt đầu đếm từ 00001lền và khí nàn từ ĐEN sáng Q0U00HE nộ sẽ bất đầu trái:
TEx rồi tiếp tục đếm từ 000011 lén tiếp
Nếu ta khởi gan pid ty du cho TLYTHs, thi Timer sé bat dau đếm tư giá
trị khởi gần đó lên nhưng khi trần từ FEEEH sang 0000H lại đếm từ 0000H lén
Chú ý rằng cờ trăn TES ay dong due set bởi phần cứng sau mỗi sự tran vã
sẽ được xóa bởi phần mềm, Chúnh vì vậy ta có thể lập trình chờ sau mỗi lần tran
ta sẽ xóa cờ TEx và quay vòng lặp khởi gán cho TLX/THx để Timer luôn luôn
bất đầu đếm từ giá trị khởi gắn lèn theo ý ta mong muốn
Đặc biệt những sự khởi gần nhỏ hơn 256 ps, ta sé gọi mode Timer ty dong nạp 8 bit của mode 2 Sau khi khởi gán giá trị đầu vào THx, khi set bit TRx thì
Timer sẽ bắt đầu đếm giá trị khởi gán và khi tràn từ FFH sang 00H trong TLx,
cờ TFx tự động được set đồng thời giá trị khởi gán mà ta khởi gán cho Thx được , nạp tự động vào TLx và Timer lại được đếm từ giá trị khởi gán này lên Nói cách khác, sau mỗi tràn ta không cần khởi gán lại cho các thanh ghi Timer mà chúng vẫn đếm được lại từ giá trị ban đầu
3 Các chế độ Timer và cờ tràn (Timer Modes and Overflow):
Vi điều khiển 8951 có 2 Timer là Timer 0 va timer 1 Ta ding ký hiệu TLX
và Thx để chỉ 2 thanh ghi byte thấp và byte cao của Timer 0 hoặc Timer 1
Trang 28
Trang 38Luận văn tốt nghiệp
Mode 0 1A mode Timer 13 bit, trong 46 byte cao cla Timer (Thx) duge dat
thấp và 5 bit trọng số thấp nhất của byte thấp Timer (TLx) đặt cao để hợp thành
Timer 13 bit 3 bit cao cia TLx khéng ding
3.2 MODE 1 (Mode Timer 16 bit) :
tăng lên 0000H, 000111, 000211, , và mùi sự trần xế xuất hiện khi có sự chủ
trên bộ đếm Timer từ PEELE sang OOOOH và sẽ set cỡ wan Time, sau d6 Tir
đếm tiếp
Cờ tràn là bít TIx trong thành chỉ TCON mà nó sẽ được đọc hoặc ghi bởi
phần mềm
Bit c6 trọng số lớn nhất (MSB) của giá trị trong thanh ghi Timer là bít 7
của THx va bit 6 trọng số thấp nhất (LSB) la bit 0 của TLx Bit LSB đổi trạng
thái ở tần số clock vào được chia 2! = 65.536
Các thanh ghi Timer TLx va Thx 06 thể được đọc hoặc ghi tại bất kỳ thời
điểm nào bởi phần mềm
3.3 MODE 2 (Mode ty dong nap 8 bit) :
Trang 39; Luận văn tốt nghiệp
đếm tràn từ FFH sang 00H, không chỉ cờ tràn được set mà giá trị trong THx
cũng được nạp vào TLx : Bộ đếm được tiếp tục từ giá trị này lên đến sự chuyển
trạng thái từ FFH sang 00H kế tiếp và cứ thế tiếp tục Mode này thì phù hợp bởi
vì các sự tràn xuất hiện cụ thể mà mỗi lúc nghỉ thanh ghi TMOD và THx được
Mode 3 1A mode ‘Timer teh ra và Tà sự khác biệt cho mit Timer
Timer 0 ở mode 3 được chúa là 2 umer § bụi TÔ và THÔ hoạt động như những Timer riêng lẻ với sự tràn sẻ set các bị PUO và TET tương ứng
Timer 1 hị dừng lại ở mode 1, những có thể được khởi động bởi việc
nó vào một trong các mode Khác, Chỉ có nhược điểm là cờ tràn TF1 của Timer í
không bị ảnh hưởng bởi các sự trần của Timer | bdi vi TFI được nối với THƠ
§ bit là Timer thứ ba của 8951 Khi vao
Timer 0 & mode 3, Tìmer có thể hoạt động hoặc tắt bởi sự ngắt nó ra ngoài va vào trong mode của chính nó hoặc có thể được dùng bởi Port nối tiếp như là một
máy phát tốc độ Baud, hoặc nó có thể dùng trong hướng nào đó mà không sứ
dụng Interrupt
Mode 3 cung cấp 1 Timer
V HOẠT ĐỘNG PORT NỔI TIẾP
1 Giới thiệu
Vi điều khiển 8951 có một port nối tiếp trong chip có thể hoạt động ở nhiều chế độ trên một dãy tần số rộng Chức năng chủ yếu là thực hiện chuyển
đổi song song sang nối tiếp với dữ liệu xuất và chuyển đổi nối tiếp sang song
song với dữ liệu nhập
Port nối tiếp cho hoạt động song công (full duplex: thu và phát đồng thời)
và đệm thu (receiver buffering) cho phép một ký tự sẽ được thu và được giữ
————Ễ—Ễ—————-——
Trang 30
Trang 40Bit | Ky higu | Dia chi
Luận văn tốt nghiệp
trong khi ký tự thứ hai được nhận Nếu CPU đọc ký tự thứ nhất trước khi ký tự
thứ hai được thu đầy đủ thì dữ liệu sẽ không bị mất
Hai thanh ghi chức năng đặc biệt cho phép phần mềm truy xuất đến port
nối tiếp là: SBUF và SCON Bộ đệm port nối tiếp (SBUF) ở dia chỉ 99H nhận dữ
liệu để thu hoặc phát Thanh ghi điều khiển port nối tiếp (SCON) ở dia chi 98H
là thanh ghi có đi chỉ bit chứa các bit trạng thái và các bit điều khiển Các bit
điều khiển đặt chế độ hoạt động cho port nối tiếp, và các bit trạng thái Báo cáo
kết thúc việc phát hoặc thu ký tự Các bit trạng thái có thể được kiểm tra bằng phần mềm hoặc có thể lập trình để tạo ngắt
2 Thanh ghi điều khiển port n 2
Chế độ hoạt động của port nối tiếp được đặt bằng cách ghỉ vào thanh ghi
chế độ port nối tiếp (SCON) ở địa chỉ 9§H Sau dây các bắn tóm tắt thanh ghi SCON và các chế độ của port nổi trếp:
SCON.7 SMO OPH | Bí của chế đề pod nói tiếp
SCON.6 SMI 911 [HH beta che dé port mor tiep
SCON.5 SM3 ODE | Hie 2 ola che dO port nor ep Cho phép tuys
| thong xa Ww tong cae ehé dO 2 va 3, RE sé
| by tae dong nêu bít thử 9 thụ được là Ó
SCON.4 | REN OCH | Cho phép bệ thụ phải được đặt lên ] để thu các ký
§CON.3 | TRS 9H81 Tự
, | Hic § phat, bit thir 9 duge phát trong chế độ 2 v2
SCON.2 RBS OAH | được đặt và xóa bằng phần mềm
Cờ ngắt phát Đặt lên 1 khi kết thúc phat ky wy, |
§CON.0 RI 98H | được xóa bằng phần mềm |
Cờ ngắt thu Đặt lên 1 khi kết thúc thu ký tự, được
xóa bằng phần mềm
'Tóm tắt thanh ghi chế độ port nối tiếp
0 0 0 Thanh ghi | Cố định (Fosc/12)
0 1 1 địch Thay đổi ( đặt bằng Timer )
1 0 8 UART 8bit | Cố định (Fosc /12 hoặc Fosc/64 )
1 1 3 UART 9 bit | Thay đổi ( đặt bằng Timer )