Lời nói đầu
Kỹ thuật vi xử lí với tốc độ phát triển nhanh đã và đang mang đến những thay đổi to lớn trong khoa học và công nghệ cũng như trong đời sống hàng ngày. Ngày nay, các thiết bị, máy móc ngày càng trở nên thông minh hơn và dễ sử dụng hơn. Các công việc được thực hiện với hiệu quả cao hơn. Đó cũng nhờ vào kỹ thuật vi xử lí.
Kỹ thuật vi xử lí là kỹ thuật của tương lai, là chìa khóa đi vào công nghệ hiện đại. Đối với sinh viên chuyên ngành Điện Tử, đây là một lĩnh vực mới, hứa hẹn mở ra nhiều triển vọng. Để góp phần làm nền tảng ban đầu cho việc học tập, tìm hiểu kỹ thuật vi xử lí người viết đề nghị thực hiện đề tài : ỨNG DỤNG CPU Z80 VÀO HỆ THỐNG BÁO GIỜ TỰ ĐỘNG.
Trong quá trình thực hiện đề tài, mặc dù người viết đã rất cố gắng, xong chắc chắn không tránh khỏi thiếu xót. Rất mong nhận được sự góp ý, phê bình và chỉ dẫn của quí thầy cô và bạn đọc.
104 trang |
Chia sẻ: banmai | Lượt xem: 1686 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Ứng dụng cpu z80 vào hệ thống báo giờ tự động, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
B lôùn hôn taïi ñieåm A (VB > VA) neân accu vaø maïch naïp accu ñöôïc taùch khoûi 7805.
Khi ñieän theá accu thaáp hôn möùc qui ñònh (12,6V), transistor H1061 daãn ñieän vaø accu ñöôïc naïp ñieän, trong quaù trình naïp ñieän, ñieän theá accu ñöôcï naâng cao daàn. Khi accu ñaõ ñöôïc naïp ñaày, ñieän theá accu coù khuynh höôùng vöôït quaù 12,6 V. ñieàu naøy laøm cho transistor H1061 ngöng daãn, vieäc naïp accu seõ döøng laïi traùnh hieän töôïng naïp quaù no gaây hoûng accu. Ñieän theá accu duy trì ôû 12,6V.
Khi ñieän löôùi cung caáp bò giaùn ñoaïn (VA > VB) accu seõ caáp ñieän cho Heä Thoáng hoaït ñoäng, khi coù ñieän trôû laïi, neáu ñieän theá accu xuoáng thaáp hôn 12,6V, maïch naïp accu seõ hoaït ñoäng vaø quaù trình naïp dieãn ra nhö trình baøy ôû treân.
III- THIEÁT KEÁ PHAÀN MEÀM.
3.1- Toång quaùt phaàn meàm heä thoáng.
Phaàn meàm ñöôïc thieát keá nhaèm taïo cho Heä Thoáng Baùo Giôø Töï Ñoäng coù 5 chöùc naêng nhö sau:
Chöùc naêng töï ñoäng baùo hieäu.
Chöùc naêng taïo thôøi gian thöïc vaø hieån thò thôøi gian thöïc.
Chöùc naêng ñieàu chænh thôøi gian thöïc.
Chöùc naêng veà Hottime goàm : Xem, xoùa vaø ñaët môùi.
Chöùc naêng veà Skiptime goàm : Xem, xoùa vaø ñaët môùi.
Moãi chöùc naêng neâu treân ñöôïc moät chöông trình thöïc hieän. Do ñoù, phaàn meàm Heä Thoáng goàm 5 chöông trình thöïc hieän 5 chöùc naêng chính cuûa Heä Thoáng vaø 3 chöông trình con phuïc vuï chung cho caùc chöông trình.
3.1.1- Chöùc naêng baùo hieäu töï ñoäng :
Ñieàu kieän ñeå baùo hieäu: khi coù 1 Restime hay Hottime baèng vôùi thôøi gian thöïc vaø khoâng coù Skiptime naøo baèng vôùi thôøi gian thöïc thì tieán haønh vieäc baùo hieäu.
Vieäc baùo hieäu phaûi ñöôïc thöïc hieän töï ñoäng. Do ñoù, chöông trình ñaûm nhaän vieäc baùo hieäu töï ñoäng seõ ñöôïc ñaët ôû ñòa chæ 0000h trong vuøng nhôù. Teân chöông trình naøy ñöôïc ñaët laø MAIN.
Ñaây laø chöông trình ñieàu khieån chính cuûa Heä Thoáng. Ngoaøi vieäc thöïc hieän chöùc naêng baùo hieäu töï ñoäng, chöông trình MAIN phaûi giuùp khôûi ñoäng Heä Thoáng.
Khi Heä Thoáng vöøa ñöôïc caáp ñieän, chöông trình MAIN seõ khôûi ñoäng Heä Thoáng. Sau ñoù, 1 voøng laëp seõ thöïc hieän quaù trình so saùnh thôøi gian thöïc vôùi caùc thôøi ñieåm baùo hieäu (Restime, Hottime), caùc thôøi ñieåm caám baùo hieäu (Skiptime) vaø thöù trong tuaàn ñeå quyeát ñònh vieäc baùo hieäu hay khoâng ñoái vôùi töøng thôøi ñieåm hieän taïi. Neáu caàn baùo hieäu, chöông trính MAIN seõ ñieàu khieån maïch baùo hieäu …
3.1.2- Chöùc naêng taïo thôøi gian thöïc:
Tín hieäu ñònh thôøi goïi ngaét coù taàn soá 1Hz, neân thôøi gian thöïc ñöôïc taïo ra bôûi chöông trình phuïc vuï ngaét ñaët taïi ñòa chæ 0066h coù teân laø RTP (Real Time Program).
Khi ñöôïc goïi, chöông trình RTP seõ taêng thôøi gian thöïc theâm 1 giaây vaø hieån thò thôøi gian thöïc.
3.1.3- Chöùc naêng ñieàu chænh thôøi gian thöïc:
Vieäc ñieàu chænh thôøi gian thöïc do ngöôøi söû duïng quyeát ñònh thöïc hieän thoâng qua thieát bò goïi ngaét .
Chöông trình Settime ñöôïc ñaët ôû ñòa chæ 08h seõ ñaùp öùng ngaét mode 0 ñeå phuïc vuï chöùc naêng ñieàu chænh thôøi gian thöïc cho ngöôøi söû duïng.
Baèng baøn phím vaø ñeøn hieån thò, ngöôøi söû duïng deã daøng ñieàu chænh thôøi gian thöïc.
3.1.4- Chöùc naêng veà Hottime: ( Xem - Xoùa - Ñaët)
Caùc chöùc naêng veà Hottime ñöôïc thöïc hieän bôûi chöông trình Hottime. Chöông trình Hottime seõ ñaùp öùng ngaét mode 0 ôû ñòa chæ 18h.
Khi ngöôøi söû duïng quyeát ñònh thöïc hieän chöùc naêng veà Hottime nhôø thieát bò goïi ngaét, chöông trình seõ ñöôïc thi haønh. Thoâng qua baøn phím vaø ñeøn hieån thò, ngöôøi söû duïng coù theå thöïc hieän moät trong caùc chöùc naêng xem, xoùa vaø ñaët Hottime.
3.1.5- Chöùc naêng veà Skiptime: (Xem - Xoùa - Ñaët)
Töông töï nhö chöùc naêng veà Hottime, chöông trình Skiptime ñöôïc ñaët ôû ñòa chæ 28h seõ ñaùp öùng ngaét mode 0.
Chöông trình Skiptime ñöôïc thi haønh theo yeâu caàu cuûa ngöôøi söû duïng vaø nhaän söï ñieàu khieån töø baøn phím.
3.1.6- Caùc chöông trình con:
Chöông trình con hieån thò (teân laø DISPLAY):
Thöïc hieän vieäc bieán ñoåi döõ lieäu giôø vaø phuùt töø maõ HEX sang BCD. Sau ñoù thöïc hieän vieäc so saùnh töø 0 - 9 roài vieát sang 8279 ñeå hieån thò caùc thoâng tin veà thôøi gian.
Chöông trình xöû lyù baøn phím (teân laø KEYPRO)
Nhaän phím ñöôïc aán ñeå phuïc vuï vieäc löïa choïn Thöù - Giôø - Phuùt.
Chöông trình baùo loãi (teân laø ERROR):
Gôûi thoâng baùo loãi ñeán ngöôøi söû duïng thoâng qua ñeøn hieån thò.
Phaàn meàm Heä Thoáng ñöôïc vieát baèng ngoân ngöõ ASSEMBLY cho Z80, hôïp dòch baèng M80 vaø L80. Phaàn meàm Heä Thoáng ñöôïc naïp vaøo 1 vi maïch ROM 2732 coù ñòa chæ töø 0000h ñeán 0FFFh.
Baûng sau ñaây trình baøy toùm taét teân vaø ñòa chæ caùc chöông trình phaàn meàm.
TEÂN CHÖÔNGTRÌNH
ÑÒA CHÆ
NHIEÄM VUÏ
MAIN
0000h
Töï ñoäng baùo hieäu
RTP
0066h
Taïo thôøi gian thöïc vaø hieån thò thôøi gian thöïc
SETTIME
0008h
Ñieàu chænh thôøi gian thöïc
HOTTIME
0018h
Xem, xoùa vaø ñaët Hottime
SKIPTIME
0028h
Xem, xoùa vaø ñaët Skiptime
DISPLAY
Khoâng xaùc ñònh
Bieán ñoåi HEX® BCD vaø xuaát ra maïch hieån thò
KEYPRO
Khoâng xaùc ñònh
Ñoïc döõ lieäu baøn phím vaø xöû lyù phím aán
ERROR
Khoâng xaùc ñònh
Baùo loãi
Baûng 7: TOÙM TAÉT CHÖÔNG TRÌNH PHAÀN MEÀM
3.2- Toå chöùc döõ lieäu:
Döõ lieäu laø moät thaønh phaàn raát quan troïng cuûa phaàn meàm, caáu truùc cuûa noù quyeát ñònh giaûi thuaät xöû lyù döõ lieäu, döõ lieäu coù caáu truùc phuø hôïp laøm cho giaûi thuaät ñôn giaûn vaø chaët cheõ hôn.
Döõ lieäu cuûa phaàn meàm Heä Thoáng Baùo Giôø chuû yeáu laø thôøi gian (Thöù-Giôø-Phuùt-Giaây) döôùi daïng soá HEX coù caáu truùc nhö sau:
3.2.1- Thôøi gian thöïc:
Goàm 4 byte cho Thöù, Giôø, Phuùt vaø Giaây ñöôïc ñaët trong vuøng nhôù RAM coù ñòa chæ laø:
DATE EQU 1004H; Byte cöùa thöù thöïc
HOUR EQU 1005H; Byte chöùa Giôø thöïc
MIN EQU 1006H; Byte chöùa Phuùt thöïc
SEC EQU 1007H; Byte chöùa Giaây thöïc
Thôøi gian thöïc ñöôïc chöông trình RTP hay chöông trình Settime caäp nhaät.
3.2.2- Restime:
Caùc Restime ñöôïc ñaët lieân tieáp nhau trong moät vi maïch ROM 2732 taïo thaønh baûng Restime. Do ñoù, baûng Restime coù caáu truùc laø moät danh saùch tuaàn töï (coøn goïi laø danh saùch ñaëc). Ñòa chæ ñaàu baûng Restime laø 0FA0h. Cuoái baûng Restime laø byte EORT (End Of Restime). EORT coù giaù trò laø 0FFH duøng ñeå baùo keát thuùc baûng Restime.
Moãi Restime chieám 3 byte, moãi byte cho Giôø, Phuùt vaø Maõ chuoâng. Caáu truùc baûng Restime veõ bôûi hình nhö sau:
0FFFh
0FA0h + 3(N -1)+4
0FA0h + 3(N -1)+3
EORT (0FFh)
End Of Restime
0FA0h + 3(N -1)+2
Maõ chuoâng N
0FA0h + 3(N -1)+1
Phuùt Restime N
0FA0h + 3(N -1)
Giôø Restime N
..........
0FA5h
Maõ chuoâng 2
0FA4h
Phuùt Restime 2
0FA3h
Giôø Restime 2
0FA2h
Maõ chuoâng 1
0FA1h
Phuùt Restime 1
0FA0h
Giôø Restime 1
Hình 22: CAÁU TRUÙC BAÛNG RESTIME
3.2.3-Hottime
Vôùi caáu truùc töông töï nhö baûng Restime, baûng Hottime goàm 32 byte ñöôïc ñaët trong vuøng nhôù RAM töø ñòa chæ 1008h ñeán ñòa chæ 1027h.
Moãi Hottime goàm 3 byte (Giôø, Phuùt vaø Maõ chuoâng ). Baûng Hottime chöùa toái ña ñöôïc 10 Hottime, 2 byte cuoái cuûa baûng Hottime luoân coù giaù trò laø 0FEh. Byte EOHT (End Of Hottime) laø maõ keát thuùc baûng Hottime. Caáu truùc baûng Hottime nhö sau:
1027h
0FEh
Duøng cho xoùa Hottime
1026h
EOHT (0FEh)
END Of Hottime
1025h
Maõ chuoâng
1024h
Phuùt Hottime 10
1023h
Giôø Hottime 10
.............
100Ah
Maõ chuoâng 1
1009h
Phuùt Hottime 1
1008h
Giôø Hottime 1
Hình23 : CAÁU TRUÙC BAÛNG HOTTIME
Hottime laø loaïi döõ lieäu ñoäng. Khi khôûi ñoäng Heä Thoáng phaûi taïo baûng Hottime goàm 10 Hottime roãng, Hottime roãng coù giaù trò laø 0FEh.
Hottime ñöôïc thieát keá cho muïc ñích baùo hieäu ñoät xuaát. Moãi Hottime chæ coù taùc duïng cho moät laàn baùo hieäu, do ñoù Hottime seõ bò xoùa sau khi baùo hieäu.
3.2.4- Skiptime:
Caáu truùc baûng Hottime cuõng laø danh saùch tuaàn töï goàm 22 byte trong vuøng nhôù RAM töø ñòa chæ 1028h ñeán ñòa chæ 103Dh.
Moãi Skiptime goàm 2 byte, moät byte cho Giôø vaø moät byte cho Phuùt. Baûng Skiptime chöùa toái ña 10 Skiptime, 2 byte cuoái cuûa baûng Skiptime cuõng coù giaù trò 0FEh duøng laøm EOST (End Of Skiptime). EOST laø maõ baùo keát thuùc baûng Skiptime. Caáu truùc baûng Skiptime nhö ôû hình sau:
103Dh
0FEh
103Ch
EOST
End Of Skiptime
103Bh
Phuùt Skiptime10
103Ah
Giôø Skiptime 10
............
1029h
Phuùt Skiptime 1
1028h
Giôø Skiptime 1
Hình 24: CAÁU TRUÙC BAÛNG SKIPTIME
Cuõng nhö Hottime, Skiptime laø loaïi döõ lieäu ñoäng. Vì vaäy, khi Heä Thoáng môùi khôûi ñoäng phaûi taïo baûng Skiptime goàm 10 Skiptime roãng bôûi giaù trò 0FEh.
Moãi Skiptime chæ caám baùo hieäu moät thôøi ñieåm trong ngaøy, neân seõ bò xoùa ñi sau khi ñaõ ñöôïc söû duïng.
3.2.5-Maõ chuoâng:
Maõ chuoâng laø soá nhò phaân 8 bit. Moãi bit seõ taùc ñoäng leân maïch baùo hieäu trong moät giaây theo thöù töï töø bit cao ñeán bit thaáp. Möùc cao seõ laøm cho maïch ñieàu khieån baùo hieäu hoaït ñoäng.
Caùc Restime coù theå coù maõ chuoâng khaùc nhau, tuøy muïc ñích baùo hieäu cuûa töøng thôøi ñieåm. Maõ chuoâng cho caùc Hottime ñeàu gioáng nhau vaø theå hieän muïc ñích baùo hieäu ñoät xuaát. Ngöôøi vieát taïm thôøi qui ñònh maõ chuoâng nhö sau:
Maõ chuoâng Restime coù 2 kieåu:
Baét ñaàu tieát hoïc: 0ABh (10101011)
Keát thuùc tieát hoïc: 0CFh (11001111)
Maõ chuoâng cho Hottime: 0B7h (10110111).
3.2.6- Caùc bieán :
Ngoaøi caùc döõ lieäu treân, coøn söû duïng caùc bieán ñeå thuaän lôïi cho caùc chöông trình, teân vaø ñòa chæ nhö sau:
SPMASK EQU 1000h ; Maët naï che hieån thò thôøi gian thöïc.
; (1 : che )
HTSTA EQU 1001h ; Traïng thaùi baûng Hottime.
; Soá Hottime coù trong baûng.
SKTSTA EQU 1002h ; Traïng thaùi baûng Skiptime
; Soá Skiptime coù trong baûng
3.2.7- Phaân chia vuøng nhôù :
Trong khoâng gian 6KB goàm 4KB ROM vaø 2KB RAM boä nhôù cuûa Heä Thoáng ñöôïc phaân chia nhö sau:
17FEh
102Eh
STACK
103Dh
1028h
BAÛNG SKIPTIME
1027h
1008h
BAÛNG HOTTIME
1007h
1005h
THÔØI GIAN THÖÏC
1004h
1000h
VUØNG ÑEÄM
0FFFh
0FA0h
BAÛNG RESTIME
0F9Fh
0000h
PHAÀN MEÀM
Hình 25: BAÛNG PHAÂN CHIA BOÄ NHÔÙ
3.3- Caùc chöông trình.
3.3.1-Chöông trình MAIN:
Moâ taû chöông trình:
Chöông trình MAIN ñöôïc ñaët vaøo vuøng nhôù baét ñaàu töø ñòa chæ 0000h. Noù ñöôïc thöïc hieän ngay khi heä thoáng vöøa ñöôïc caáp ñieän. Chöông trình MAIN seõ khôûi ñoäng heä thoáng vaø thöïc hieän chöùc naêng töï ñoäng baùo hieäu. Löu ñoà toång quaùt nhö sau:
BAÉT ÑAÀU
CHÔØ 1 PHUÙT KHÔÛI ÑOÄNG HEÄ THOÁNG
N THÔØI GIAN
THÖÏC BAÈNG THÔØI ÑIEÅM
BAÙO HIEÄU ?
Y
COÙ BAÙO HIEÄU Y
KHOÂNG ?
N
XOÙA SKIPTIME BAÙO HIEÄU
N
PHAÛI HOTTIME
KHOÂNG?
Y
XOÙA HOTTIME
Hình 26 : LÖU ÑOÀ TOÅNG QUAÙT CHÖÔNG TRÌNH MAIN
Khôûi ñoäng heä thoáng nhö sau:
Khôûi ñoäng Stack ôû ñòa chæ 27FFh
Reset maïch baùo hieäu : xuaát ra giaù trò 0h ôû ñòa chæ 3000h.
Xoùa vuøng nhôù töø 1000h ñeán 1007h baèng giaù trò 00h.
Taïo baûng Hottime vaø Skiptime roãng coù ñòa chæ töø 1008h ñeán 103Dh baèng giaù trò 0FEh.
Choïn ngaét vaø cho pheùp ngaét.
Hieån thò thôøi gian thöïc ñaàu tieân 2 00 00 00.
Töï ñoäng baùo hieäu.
Quaù trình töï ñoäng baùo hieäu ñöôïc baét ñaàu ngay sau khi khôûi ñoäng heä thoáng, quaù trình naøy do moät voøng laëp thöïc hieän, moãi phuùt moät laàn.
_ Chöông trình baét ñaàu duyeät baûng Hottime vaø Restime ñeå tìm moät thôøi ñieåm baùo hieäu baèng vôùi thôøi gian thöïc, neáu khoâng coù chöông trình quay veà chôø thöïc hieän quaù trình môùi.
_ Neáu coù thôøi ñieåm truøng vôùi thôøi gian thöïc, chöông trình seõ duyeät baûng Skiptime. Neáu khoâng coù Skiptime baèng vôùi thôøi gian thöïc vaø thöù laø thöù 2 – 6 thì chöông trình ra quyeát ñònh baùo hieäu (neáu thôøi ñieåm baùo hieäu ñoù laø Restime). Neáu coù Skiptime baèng vôùi thôøi gian thöïc, nghóa laø thôøi ñieåm ñoù bò caám baùo hieäu, chöông trình seõ khoâng baùo hieäu vaø xoùa Skiptime ñoù.
_ Sau khi baùo hieäu hay xoùa Skiptime xong chöông trình seõ xoùa Hottime (neáu thôøi ñieåm baùo hieäu laø (Hottime) roài trôû veà thöïc hieän quaù trình môùi.
_ Khi nhaän quyeát ñònh baùo hieäu, chöông trình seõ laáy maõ chuoâng cuûa thôøi ñieåm caàn baùo hieäu. Moãi giaây 1 bit trong byte maõ chuoâng seõ ñöôïc truyeàn cho maïch baùo hieäu theo thöù töï töø D7 ñeán D0, möùc cao laøm chuoâng reo. Sau cuøng xuaát cho maïch möùc 0 ñeå reset. Sau 9 giaây chöông trình hoaøn taát vieäc baùo hieäu.
Ñeå phaân bieät thôøi ñieåm baùo hieäu laø Restime hay Hottime, ta duøng moät maõ ñònh höôùng. Maõ ñònh höôùng naøy naèm trong thanh ghi C:
Khi C = 0 ; ñònh höôùng Restime, C = 1; ñònh höôùng Hottime.
Vaán ñeà xoùa Hottime vaø Skiptime:
Ñeå baûng Hottime (Skiptime) vaãn giöõ ñöôïc caáu truùc laø danh saùch tuaàn töï sau khi xoùa Hottime (Skiptime), phaûi thöïc hieän theo caùch sau: dôøi nhöõng byte coøn laïi trong baûng keå töø sau khi Hottime (Skiptime) caàn xoùa ñeán ñòa chæ cuûa Hottime (Skiptime ) caàn xoùa.
Löu ñoà chi tieát chöông trình MAIN
N
Y
N
Y
N
N
Y
N
Y
MINWT
LAÁY ÑÒA CHÆ ÑAÀU
BAÛNG RESTIME TRÖØ 3
LAÁY PHUÙT THÖÏC
PHUÙT THAY ÑOÅI ?
LAÁY ÑÒA CHÆ ÑAÀU BAÛNG SKIPTIME TRÖØ 2
CAÁM NGAÉT INT
BAÈNG PHUÙT THÖÏC ?
BAÈNG GIÔØ THÖÏC?
PHAÛI EOFRT?
LAÁY PHUÙT BAÙO HIEÄU
PHAÛI EOFHT?
KHÔÛI ÑOÄNG HEÄ THOÁNG
ÑÒA CHÆ ÑAÀU BAÛNG
HOTTIME TRÖØ 3
LAÁY GIÔØ, PHUÙT
THÖÏC
LAÁY GIÔØ BAÙO HIEÄU KEÁ
BAÉT ÑAÀU
Y
COØN SKIPTIME ? N
N PHAÛI T7 HAY CN ?
Y
Y
LAÁY GIÔØ SKIPTIME
PHAÛI HOTTIME / N
Y
N BAÈNG GIÔØ THÖÏC ? LAÁY MAÕ CHUOÂNG
Y
LAÁY PHUÙT SKIPTIME
LAÁY GIAÂY THÖÏC
N BAÈNG PHUÙT THÖÏC ?
Y N COÙ THAY ÑOÅI ?
XOÙA SKIPTIME Y
CAËP NHAÄT SOÁ SKIPTIME
XUAÁT RA MAÏCH BAÙO HIEÄU
DÒCH TRAÙI MAÕ CHUOÂNG
N DÒCH ÑUÛ 9 BIT
CHÖA ?
Y
PHAÛI HOTTIME ? N
Y
XOÙA HOTTIME
CAP NHAÄT SOÁ HOTTIME
HÌnh 27 : LÖU ÑOÀ CHI TIEÁT CHÖÔNG TRÌNH MAIN
3.3.2- Chöông trình RTP (Realtime program).
Moâ taû chöông trình .
Chöông trình ñöôïc ñaët ôû ñòa chæ 0066h ñaùp öùng cho ngaét NMI. Taàn soá goïi ngaét laø 1Hz. Khi ñöôïc goïi, chöông trình RTP thöïc hieän nhö sau:
Taêng giaây theâm 1. Khi giaây = 60 phaûi taêng phuùt theâm 1 vaø cho giaây baèng 0.
Khi phuùt = 60 phaûi taêng giôø theâm 1 vaø cho phuùt baèng 0.
Khi giôø = 24 phaûi taêng thöù theâm 1 vaø gaùn giôø baèng 0.
Khi thöù = 8 phaûi gaùn thöù = 2
Khi giaây thöïc coù söï thay ñoåi, phaûi tham khaûo DPMASK ñeå quyeát ñònh vieäc hieån thò thôøi gian thöïc:
Neáu DPMASK = 0 ; Hieån thò
DPMASK = 1 ; Khoâng hieån thò.
Löu ñoà chi tieát chöông trình RTP
BAÉT ÑAÀU
CAÁT AF, BC, DE, HL VAØO STACK
GIAÂY + 1
GIAÂY = 60 ? N
Y
GIAÂY = 0, PHUÙT + 1
PHUÙT = 60 ? N
Y
PHUÙT = 0, GIÔØ + 1
GIÔØ = 24 ? N
Y
GIÔØ = 0, THÖÙ + 1
THÖÙ = 9 ? N
Y
THÖÙ = 2
Y COÙ CHE HIEÅN THÒ ?
N
HIEÅN THÒ THÔØI GIAN THÖÏC
HOÀI PHUÏC AF, BC, DE, HL
KEÁT THUÙC Hình 28 : LÖU ÑOÀ CHÖÔNG TRÌNH RTP
3.3.3-Chöông trình Settime.
Moâ taû chöông trình:
Chöông trình Settime phuïc vuï ngöôøi söû duïng trong vieäc ñieàu chænh thôøi gian thöïc thoâng qua baøn phím nhaèm giuùp ngöôøi söû duïng ñieàu chænh thôøi gian thöïc baèng baøn phím. Do ñoùù, chöông trình Settime ñöôïc ñaët ôû ñòa chæ 08h trong vuøng nhôù.
Chöông trình Settime seõ goïi chöông trình Keypro ñeå xöû lyù baøn phím nhaèm giuùp ngöôøi söû duïng ñieàu chænh thôøi gian thöïc baèng baøn phím. Tröôùc khi goïi Keypro, Settime caàn chuaån bò caùc döõ lieäu caàn thieát cho Keypro nhö:
Thanh ghi B chöùa giôø hieän taïi.
Thanh ghi C chöùa phuùt hieän taïi
Thanh ghi D chöùa thöù hieän taïi.
Tröôùc khi thoaùt, Settime phaûi hieån thò laïi thôøi gian thöïc.
Ngöôøi söû duïng phaûi theo qui ñònh cuûa chöông trình Keypro ñeå ñieàu chænh thôøi gian thöïc.
Löu ñoà chi tieát.
BAÉT ÑAÀU
CAÁT AF, BC,DE, HL VAØO STACK
LAÁY THÖÙ GIÔØ PHUÙT HIEÄN TAÏI
ÑAËT GIAÂY THUÏC = 0
KEYPRO
HIEÅN THÒ THÖÙ GIÔØ PHUÙT THÖÏC
PHUÏC HOÀI AF,BC,DE,HL TÖØ STACK
KEÁT THUÙC
Hình 29 : LÖU ÑOÀ CHÖÔNG TRÌNH SETTIME
3.3.4-Chöông trình Hottime.
Moâ taû chöông trình.
Ñaây laø chöông trình phuïc vuï ngaét mode 0 ôû ñòa chæ 018h ñaûm nhieäm chöùc naêng veà Hottime: Xem nhöõng Hottime ñaõ coù trong baûng (goïi laø preview), xoùa nhöõng Hottime ñaõ coù trong baûng (goïi laø delete), ñaët moät Hottime môùi (goïi laø Insert). Löu ñoà toång quaùt nhö sau:
BAÉT ÑAÀU
CAÁT AF,BC,DE,HL VAØO STACK
DPMASK =1
HIEÅN THÒ HOTTIME
Y ÑÒA CHÆ PHAÛI PHÍM “+” HOTTIME KEÁ SAU
N
Y ÑÒA CHÆ
PHAÛI PHÍM “-“ HOTTIME
KEÁ TRÖÔÙC
N
Y
PHAÛI PHÍM “DEL” XOÙA
HOTTIME N
Y
PHAÛI PHÍM “OK”
DPMASK = 0
N
Y ÑAËT 1
PHAÛI PHÍM “Ins” HOTTIME
MÔÙI
HIEÅN THÒ THÔØI GIAN THÖÏC N
HOÀI PHUÏC CAÙC THANH GHI
KEÁT THUÙC Hình 30 : LÖU ÑOÀ TOÅNG QUAÙT CHÖÔNG TRÌNH HOTTIME
Chöông trình Hottime seõ xöû lí caùc phím: Ins, +, -, Del/Date vaø phím OK ñeå giuùp ngöôøi söû duïng ñieàu khieån ba chöùc naêng treân.
Khi chöông trình ñöôïc goïi, maëc nhieân seõ laø cheá ñoä thöïc hieän chöùc naêng Review vaø Delete, caùc phím aán nhö sau:
“+” : Hieån thò Hottime keá sau (khoâng hieån thò quay voøng).
“-“ : Hieån thò Hottime keá tröôùc (khoâng hieån thò quay voøng)
“Del”: Xoùa Hottime hieän haønh (ñang ñöôïc hieån thò).
“Ins” : Ñaët 1 Hottime môùi.
“OK”: Thoaùt.
Neáu trong baûng coù Hottime thì Hottime ñaàu tieân seõ ñöôïc hieån thò khi chöông trình ñöôïc goïi. Coøn baûng Hottime roãng thì maïch hieån thò seõ taét (caùc Led 7 ñoaïn hieån thò giôø, phuùt ôû traïng thaùi Blank) vaø khi aán phím “+” hay “-“ maïch hieån thò vaãn taét.
Neáu khoâng coù Hottime naøo trong baûng (caùc Led 7 ñoaïn hieån thò giôø, phuùt ôû traïng thaùi Blank), khi aán phím “Del” thì xuaát hieän thoâng baùo loãi do chöông con Error thöïc hieän. Khi xoùa Hottime xong, chöông trình seõ hieån thò laïi Hottime ñaàu tieân trong baûng.
Khi ñaët 1 Hottime môùi:
Neáu trong baûng ñaõ ñuû 10 Hottime chöông trình seõ duøng chöông trình con Error ñeå baùo loãi, aán “OK” ñeå boû loãi.
Neáu trong baûng coøn Hottime roãng, chöông trình Hottime seõ goïi chöông trình con Keypro ñeå ngöôøi söû duïng duøng baøn phím choïn giôø, phuùt cho Hottime môùi. Tröôùc khi goïi Keypro, chöông trình Hottime phaûi xaùc ñònh ñòa chæ ñaët Hottime môùi ñeå truyeàn cho Keypro. Ngöôøi söû duïng duøng baøn phím theo quy ñònh cuûa chöông trình Keypro ñeå ñaët Hottime môùi.
Khi thoaùt khoûi Keypro chöông trình tieáp tuïc ghi maõ chuoâng cho Hottime (0B7h) vaø trôû veà chöùc naêng preview vaø hieån thò Hottime vöøa caøi ñaët.
Ñeå traùnh vieäc hieån thò thôøi gian thöïc do chöông trình RTP thöïc hieän, phaûi ñaët maët naï DPMASK=1 ñeå che hieån thò ôû ñaàu chöông trình Hottime vaø boû maët naï DPMASK = 0 ôû cuoái chöông trình Hottime ñeå cho pheùp RTP hieån thò thôøi gian thöïc trôû laïi.
Löu ñoà chi tieát
Löu ñoà tieát chöông trình Hottime veõ ôû hình sau:
BAÉT ÑAÀU
CAÁT AF, BC, DE, HL VAØO STACK
DPMASK = 1
ÑÒA CHÆ ÑAÀU BAÛNG HOTTIME
HIEÅN THÒ HOTTIME (HT)
READKEY
ÑOÏC BAØN PHÍM
Y
N Y
ÑÒA CHÆ HT CUOÁI ? PHAÛI PHÍM “+”?
HT SAU
N
N Y
Ñ/C HT HT ÑAÀU ? PHAÛI “-“ ? XOÙA HT
TRÖÔÙC
N Y
Y Y N
PHÍM “DEL” ? COÙ HT ? BAÙO LOÃI
N
Y
PHÍM “OK” ?
N
READKEY N DPMASK = 0
PHÍM “Ins” ?
Y
Y
BAÙO LOÃI ÑUÛ 10 HT ? H IEÅN THÒ THÔØI GIAN THÖÏC
N
PHUÏC HOÀI CAÙC THANH GHI
ÑÒA CHÆ HT MÔÙI
KEYPRO KEÁT THUÙC
GHI MAÕ CHUOÂNG
Hình 31 : LÖU ÑOÀ CHI TIEÁT CHÖÔNG TRÌNH HOTTIME
3.3.5- Chöông trình SKIPTIME.
Moâ taû chöông trình:
Chöông trình Skiptime töông töï nhö Hottime phuïc vuï 3 chöùc naêng veà Skiptime : Xem Skiptime coù trong baûng, xoùa Skiptime vaø ñaët Skiptime.
Chöông trình seõ ñöôïc ñaët taïi ñòa chæ 0028h trong vuøng nhôù ñeå phuïc vuï cho ngaét INT mode 0.
Veà hoaït ñoäng hoaøn toaøn gioáng chöông trình Hottime nhöng Skiptime khoâng caàn ñaët maõ chuoâng , ñòa chæ ñaàu baûng Skiptime laø 1028h vaø moãi Skiptime coù 2 byte.
Löu ñoà toång quaùt hoaøn toaøn gioáng nhö löu ñoà toång quaùt cuûa chöông trình Hottime.
Löu ñoà chi tieát:
Löu ñoà chi tieát chöông trình Skiptime gioáng nhö cuûa Hottime, ñöôïc veõ ôû hình sau:
BAÉT ÑAÀU
CAÁT AF, BC, DE, HL VAØO STACK
DPMASK = 1
ÑÒA CHÆ ÑAÀU BAÛNG SKIPTIME (ST)
HIEÅN THÒ SKIPTIME
READKEY
Y ÑOÏC BAØN PHÍM
N Y
ÑÒA CHÆ ST CUOÁI ? PHAÛI PHÍM “+”?
ST SAU
N
N Y
Ñ/C ST ST ÑAÀU ? PHAÛI “-“ ? XOÙA ST
TRÖÔÙC
N Y
Y Y N
PHÍM “DEL” ? COÙ ST ? BAÙO LOÃI
N
Y
PHÍM “OK” ?
N
READKEY N DPMASK = 0
PHÍM “Ins” ?
Y
Y
BAÙO LOÃI ÑUÛ 10 ST ? H IEÅN THÒ GIÔØ PHUÙT THÖÏC
N
PHUÏC HOÀI CAÙC THANH GHI
ÑÒA CHÆ ST MÔÙI
KEYPRO KEÁT THUÙC
Hình 32 : LÖU ÑOÀ CHI TIEÁT CHÖÔNG TRÌNH SKIPTIME
3.3.6- Chöông trình con DIPLAY:
Moâ taû chöông trình:
Ñeå coù theå hieån thò Thöù – Giôø – Phuùt - Giaây treân led 7 ñoaïn ôû daïng soá thaäp phaân, ta caàn bieán ñoåi döõ lieäu thôøi gian ôû daïng soá HEX sang BCD. Muïc ñích cuûa vieäc bieán ñoåi naøy laø ñeå chæ caàn thöïc hieän vieäc so saùnh thôøi gian thöïc taïo ra töø 0 ñeán 9 thay vì phaûi so saùnh töø 0 ñeán 59.
Döõ lieäu thôøi gian thöïc naèm trong 4 byte 1004h, 1005h, 1006h,1007h ñöôïc vieát sang vuøng ñeäm goàm 4 byte 1050h, 1051h,1052h,1053h töông öùng tröôùc khi bieán ñoåi töø HEX sang BCD ñeå hieån thò.
Qua khaûo saùt cuï theå 60 giaù trò ñaàu cuûa soá HEX töø 0h ñeán 3Bh, töông öùng vôùi soá BCD coù giaù trò töø 0 ñeán 59 ngöôøi vieát thaáy coù qui luaät bieán ñoåi nhö sau:
HEX
GIA SOÁ
BCD
HEX
GIA SOÁ
BCD
00
01
02
03
04
05
06
07
08
09
+ 00h
00
01
02
03
04
05
06
07
08
09
1E
1F
20
21
22
23
24
25
26
27
+ 12h
30
31
32
33
34
35
36
37
38
39
0A
0B
0C
0D
0E
0F
10
11
12
13
+ 06h
10
11
12
13
14
15
16
17
18
19
28
29
2A
2B
2C
2D
2E
2F
30
31
+ 18h
40
41
42
43
44
45
46
47
48
49
14
15
16
17
18
19
1A
1B
1C
1D
+ 0Ch
20
21
22
23
24
25
26
27
28
29
32
33
34
35
36
37
38
39
3A
3B
+ 1Eh
50
51
52
53
54
55
56
57
58
59
Caùch khôûi taïo 8279:
LD HL,2001h
LD (HL),00000000B ; Hieån thò 8 kí töï loái vaøo traùi
LD (HL),00100101B ; Chia taàn soá xung clock ôû ngoõ vaøo chaân soá 3 cho 5
Löu ñoà chöông trình hieån thò.
BAÉT ÑAÀU
CAÁT AF, BC, DE, HL VAØO STACK
ÑÒA CHÆ LED THÖÙ - 1
INC HL
ÑÒA CHÆ LED GIAÂY +1 ?
LD A,(HL)
HOÀI PHUÏC AF, BC, DE,HL
A < 0Ah ?
KEÁT THUÙC A < 14h ? A A+06h
A < 1Eh ? A A + 0Ch
A < 28h ? A A + 12h
A < 32h ? A A + 18h
A < 3Ch ? A A + 1Eh
HIEÅN THÒ
Hình 33 : LÖU ÑOÀ CHÖÔNG TRÌNH DISPLAY
3.3.7- Chöông trình con KEYPRO:
Moâ taû chöông trình :
Caùc chöùc naêng Settime, ñaët Hottime/Skiptime caàn söû duïng baøn phím ñeå thay ñoåi giôø, phuùt ñeán giaù trò mong muoán vaø quan saùt Giôø Phuùt ñang thay ñoåi treân maøn hình. Chöông trình con KEYPRO nhaèm phuïc vuï yeâu caàu chung ñoù.
KEYPRO seõ xöû lyù caùc toå hôïp phím “Ins_+”, “Ins_ -“ ,“Del/Date _ +”, “Del/Date _ -“ vaø caùc phím “+”, “-“,”OK”. Moãi phím khi aán seõ taïo ra 1 giaù trò vaø thöïc hieän 1 chöùc naêng cho trong baûng sau:
PHÍM
GIAÙ TRÒ
CHÖÙC NAÊNG
Date_+
0Edh
Taêng thöù
Date_-
0EBh
Giaûm thöù
Ins_+
0FCh
Taêng giôø
Ins_-
0FAh
Giaûm giôø
+
0FDh
Taêng phuùt
_
0FBh
Giaûm phuùt
OK
0F7h
Löu Giôø Phuùt vaø thoaùt
Baûng 8: CHÖÙC NAÊNG VAØ GIAÙ TRÒ CAÙC PHÍM
Löu yù: Caùc toå hôïp phím: ”Date_+” vaø “Date_-“, “Ins_+” vaø “Ins_-“ ñöôïc taïo ra do aán phím “+” hay ”-“ trong khi aán vaø giöõ phím “Ins”, “Date”. Vì baøn phím ñöôïc thieát keá nhö laø vuøng nhôù coù ñòa chæ töø 4000h ñeán 4FFFh neân khi ñoïc baøn phím, chöông trình con KEYPRO thöïc hieän leänh ñoïc boä nhôù taïi ñòa chæ 4000h hay lôùn hôn (giôùi haïn trong vuøng nhôù cho pheùp) vôùi chu kyø khoaûng 175mS. Khoaûng thôøi gian ñoù laø ñuû ñeå choáng doäi cho phím ñöôïc aán ñoàng thôøi ñeå quan saùt ñöôïc Giôø Phuùt ñang thay ñoåi lieân tuïc khi ngöôøi söû duïng aán vaø giöõ phím “+” hay “-“. Moãi khi coù phím ñöôïc aán (ngoaïi tröø phím” OK”) nghóa laø thöù, giôø, phuùt ñaõ coù söï thay ñoåi, KEYPRO seõ nhôø chöông trình con DISPLAY hieån thò giôø phuùt ñaõ thay ñoåi.
Chöông trình trieäu goïi KEYPRO phaûi truyeàn cho KEYPRO ñòa chæ boä nhôù ñeå ghi giôø phuùt ñaõ thay ñoåi, ñòa chæ naøy phaûi ñaët trong thanh ghi HL.
Löu ñoà chi tieát:
BAÉT ÑAÀU
CAÁT BC VAØO STACK
HIEÅN THÒ THÔÙI GIAN ÑANG THAY ÑOÅI
ÑOÏC BAØN PHÍM
LAÁY BC TÖØ STACK
Y Y
TAÊNG THÖÙ ? THÖÙ + 1 THÖÙ = 9 ? THÖÙ = 2
N N
Y Y
GIAÛM THÖÙ ? THÖÙ – 1 THÖÙ = 1 ? THÖÙ = 8
N N
Y Y
TAÊNG GIÔØ ? GIÔØ + 1 GIÔØ = 24 ? GIÔØ = 0
N N
Y Y
GIAÛM GIÔØ ? Giôø -1 GIôø = -1 ? GIôø = 23
N N
Y Y
TAÊNG PHUÙT ? PHuùTù + 1 PhùuùT = 60 ? PhuùT = 0
N N
Y Y
GIAÛM PHUÙT ? PhuùT –1 PhuùT = -1 ? PhuùT = 59
N N
N
PHAÛI OK ?
Y
GHI THÔØI GIAN THÖÏC VAØO BOÄ NHÔÙÙ
KEÁT THUÙC
Hình 34 : LÖU ÑOÀ CHI TEÁT CHÖÔNG TRÌNH KEYPRO
3.3.8- Chöông trình con ERROR.
Moâ taû chöông trình
Nhaèm baùo loãi cho ngöôøi söû duïng bieát nhöõng loãi nhö: xoùa Hottime/Skiptime roãng, theâm Hottime/Skiptime thöù 11.
Nhaán phím “OK” ñeå boû loãi (thoaùt khoûi ERROR)
Thoâng baùo loãi baèng caùch chôùp taét chöõ ERROR treân ñeøn hieån thò.
Löu ñoà:
Löu ñoà chöông trình ERROR nhö sau:
BAÉT ÑAÀU
CAÁT AF, BC, DE, HL VAØO STACK
HIEÅN THÒ “ERROR”
TRÌ HOAÕN
ÑOÏC PHÍM
Y
PHAÛI OK ?
N
TAÉT LED
TRÌ HOAÕN
PHUÏC HOÀI AF ,BC, DE, HL TÖØ STACK
KEÁT THUÙC
Hình 35 : LÖU ÑOÀ CHI TIEÁT CHÖÔNG TRÌNH ERROR
Toùm laïi
Toaøn boä phaàn meàm ñöôïc thieát keá ñeå ñaùp öùng cho yeâu caàu vaø muïc ñích cuûa ñeà taøi. Heä Thoáng baùo giôø töï ñoäng söû duïng caùc chöông trình:
Chöông trình MAIN ñeå khôûi ñoäng heä thoáng, so saùnh thôøi gian thöïc vôùi caùc Restime, Hotime, Skiptime vaø thöù trong tuaàn ñeå ra quyeát ñònh baùo hieäu vaø ñieàu khieån baùo hieäu.
Chöông trình RTP (Real Time Program) ñeå taïo thôøi gian thöïc
Chöông trình SETTIME phuïc vuï cho chænh söûa thôøi gian thöïc.
Chöông trình HOTTIME phuïc vuï cho vieäc ñaët thôøi ñieåm baùo hieäu ñoät xuaát.
Chöông trình SKIPTIME phuïc vuï cho ñaët thôøi ñieåm caám baùo hieäu.
Chöông trình con KEYPRO xöû lí baøn phím ñeå phuïc vuï cho Settime, Hottime, Skiptime.
Chöông trình con DISPLAY phuïc vuï cho hieån thò thôøi gian thöïc.
Chöông trình con ERROR ñeå thoâng baùo loãi cho ngöôøi söû duïng.
IV- Thi coâng.
Goàm sô ñoà maïch in lôùp treân, sô ñoà maïch in lôùp döôùi vaø sô ñoà boá trí linh kieän. Vì caùc sô ñoà naøy ñöôïc veõ ôû Eagle neân khoâng mang ñöôïc sang word (kích thöôùc lôùn) neân khoâng trình baøy ôû ñaây.
PHAÀN III
KEÁT LUAÄN VAØ KIEÁN NGHÒ
I- KEÁT QUAÛ THÖÏC NGHIEÄM.
Vôùi thieát keá nhö treân, phaàn meàm Heä Thoáng hoaït ñoäng toát vaø oån ñònh, hoaøn toaøn töông thích vôùi phaàn cöùng.
Qua thöïc nghieäm, Heä Thoáng hoaït ñoäng toát, caùc tính naêng ñaõ ñeà ra ñeàu ñaït yeâu caàu. Heä Thoáng coù caùch söû duïng ñôn giaûn.
Tuy nhieân Heä Thoáng cuõng coù moät soá haïn cheá:
Heä Thoáng ñoøi hoûi phaûi ñöôïc caáp ñieän lieân tuïc ñeå hoaït ñoäng ñeám thôøi gian vaø baùo hieäu chính xaùc. Do ñoù, Heä Thoáng phaûi duøng ñeán accu döï phoøng, ngöôøi söû duïng phaûi toán chi phí cho accu.
Heä Thoáng seõ khoâng baùo hieäu trong khi ngöôøi söû duïng ñang thöïc hieän caùc chöùc naêng veà Hottime vaø Skiptime.
II- MOÂ TAÛ HEÄ THOÁNG VAØ HÖÔÙNG DAÃN SÖÛ DUÏNG:
Baûng ñieàu khieån Heä Thoáng ñöôïc veõ nhö sau:
1
2 SET HOT SKIP
SELECT
3 ACCEPT INSERT DEL OK
Chuù thích :
Hieån thò ( thöù, giôø, phuùt, giaây ).
Ba ñeøn chæ thò chöùc naêng SETTIME , HOTTIME vaø SKIPTIME
3 Baøn phím.
Khi Heä Thoáng vöøa ñöôïc khôûi ñoäng xong, ñeøn hieån thò coù daïng 2 00 00 00 ñoàng thôøi ñeøn Settime saùng leân yeâu caàu ngöôøi söû duïng caàn phaûi ñieàu chænh thôøi gian thöïc.
Ñeå löïa choïn caùc chöùc naêng: SETTIME, HOTTIME hay SKIPTIME ngöôøi söû duïng aán phím “select” cho ñeán khi ñeøn chæ thò chöùc naêng mong muoán saùng leân. Khi khoâng muoán löïa choïn chöùc naêng nöõa hay sau khi thöïc hieän xong chöùc naêng naøo ñoù, ngöôøi söû duïng phaûi aán phím “sellect” cho ñeán khi caû ba ñeøn chæ thò ñeàu taét ñeå Heä Thoáng trôû laïi hoaït ñoäng bình thöôøng.
Sau khi ñaõ löïa choïn xong chöùc naêng mong muoán, ngöôøi söû duïng aán phím “accept” ñeå baét ñaàu thöïc hieän caùc chöùc naêng cuûa chöùc naêng ñoù.
Löu yù:
Chöùc naêng HOTTIME hay SKIPTIME coù ba phuïc vuï : xem, xoùa vaø ñaët môùi.
2.1- Chöùc naêng ñieàu chænh thôøi gian thöïc (SETTIME ).
Söû duïng caùc phím treân baøn phím ñeå ñieàu chænh thôøi gian thöïc theo qui ñònh nhö sau:
Phím “+ “ taêng phuùt.
Phím “-“ giaûm phuùt.
Phím “Ins _+” taêng giôø.
Phím “Ins_-“ giaûm giôø.
Phím “Del/Date_ +” taêng thöù.
Phím “Del/Date_-“ giaûm thöù.
Phím “OK” chaáp nhaän giôø phuùt ñaõ ñieàu chænh vaø thoaùt khoûi chöùc naêng SETTIME .
Khi aán caùc phím “+” hay “-“ coù theå aán vaø giöõ ñeå thöù, giô,ø phuùt taêng lieân tuïc.
Ghi chuù :
Phím “Ins_+”, “Ins_-“ hay “Del/Date_+”, “Del/Date_-“ ñöôïc taïo ra do aán phím “+” hay ”-“ trong khi aán vaø giöõ phím “Ins”, “Del/Date”.
2.2- Chöùc naêng veà Hottime.
Chöùc naêng HOTTIME goàm coù: Xem, xoùa vaø ñaët Hottime môùi. Caùch söû duïng baøn phím nhö sau:
Phím “+” Xem HOTTIME keá sau.
Phím “-“ Xem HOTTIME keá tröôùc.
Phím “Del” Xoùa HOTTIME hieän haønh.
Phím “OK” thoaùt khoûi chöùc naêng HOTTIME.
Phím “Ins” ñaët moät HOTTIME môùi. Sau ñoù söû duïng caùc phím treân baøn phím gioáng nhö “ñieàu chænh thôøi gian thöïc “ ñeå choïn giôø, phuùt cho HOTTIME môùi. Sau ñoù aán phím “OK” ñeå trôû veà chöùc naêng xem. Moãi laàn aán phím “Ins” chæ ñaët ñöôïc moät HOTTIME.
Löu yù: Khi khoâng coù moät HOTTIME naøo trong boä nhôù ñeøn hieån thò giôø, phuùt seõ taét.
Caùc tröôøng hôïp xuaát hieän thoâng baùo loãi.
Xoùa HOTTIME trong khi khoâng coù moät HOTTIME naøo trong boä nhôù.
Ñaët HOTTIME thöù 11.
Thoâng baùo loãi laø chöõ ERROR chôùp taét treân ñeøn hieån thò. Khi gaëp thoâng baùo loãi aán phím”OK” ñeå boû loãi.
2.3- Chöùc naêng veà Skiptime.
Chöùc naêng Skiptime goàm coù: Xem (Review), Xoùa (Del), Ñaët Skipptime (Ins). Söû duïng baøn phím nhö sau:
Phím “+” : Xem SKIPTIME keá tieáp
Phím “-“ : Xem SKIPTIME keá tröôùc
Phím “Del”: Xoùa SKIPTIME hieän haønh
(Ñang ñöôïc hieån thò)
Phím “OK”: Thoaùt khoûi chöùc naêng SKIPTIME
Phím “Ins” : ñaët 1 SKIPTIME môùi. Khi ñoù, söû duïng caùc phím treân baøn phím gioáng nhö “Ñieàu chænh thôøi gian thöïc” ñeå choïn Giôø Phuùt cho SKIPTIME môùi. Sau khi duøng caùc phím: “Ins_+”, “Ins_-“, “+”, “-“ ñeå choïn Giôø, Phuùt SKIPTIME, aán phím “OK” ñeå trôû veà chöùc naêng xem.
Moãi laàn aán “Ins” chæ ñaët ñöôïc moät SKIPTIME.
Löu yù: Khi khoâng coù Skiptime trong boä nhôù, ñeøn hieån thò giôø, phuùt seõ taét.
Caùc tröôøng hôïp xuaát hieän thoâng baùo loãi:
Xoùa Skiptime trong khi khoâng coù Skiptime naøo trong boä nhôù.
Ñaët Skiptime thöù 11
Thoâng baùo loãi laø chöõ ERROR chôùp taét treân ñeøn hieån thò. Khi gaëp thoâng baùo loãi aán phím “OK” ñeå boû loãi.
III- KEÁT LUAÄN VAØ HÖÔÙNG PHAÙT TRIEÅN CUÛA ÑEÀ TAØI
Kyõ thuaät vi xöû lí ngaøy caøng ñoùng vai troø quan troïng trong töï ñoäng ñieàu khieån. Noù laø kyõ thuaät cuûa töông lai, laø chìa khoùa ñi vaøo coâng ngheä hieän ñaïi. tuy nhieân ñoái vôùi sinh vieân ngaønh ñieän töû ñaây vaãn coøn laø moät lónh vöïc môùi meõ, höùa heïn vaø môû ra nhieàu trieån voïng. Chính vì vaäy, ñeå goùp phaàn taïo neàn taûng ban ñaàu cho vieäc hoïc taäp, tìm hieåu kyõ thuaät vi xöû lí ngöôøi vieát ñaõ thöïc hieän ñeà taøi : ÖÙNG DUÏNG CPU-Z80 VAØO HEÄ THOÁNG BAÙO GIÔØ TÖÏ ÑOÄNG.
Vôùi teân goïi Heä Thoáng Baùo Giôø Töï Ñoäng, Heä Thoáng ñaõ ñaït ñöôïc nhöõng khaû naêng sau:
_ Taïo ra thôøi gian thöïc goàm thöù, giôø, phuùt, giaây vaø hieån thò thöù, giôø, phuùt, giaây treân led 7 ñoaïn.
_ Töï ñoäng baùo hieäu baùo hieäu taïi nhöõng thôøi ñieåm coá ñònh haøng ngaøy (nhöõng thôøi ñieåm naøy ñöôïc ñaët saün trong IC-ROM). Khoâng baùo hieäu vaøo ngaøy chuû nhaät.
_ Cho pheùp ngöôøi söû duïng ñaët vaøo heä thoáng 10 thôøi ñieåm baùo hieäu ñoät xuaát (10 Hottime)
_ Cho pheùp ngöôøi söû duïng ñaët vaøo heä thoáng 10 thôøi ñieåm caám baùo hieäu (10 Skiptime)
_ Cho pheùp ngöôøi söû duïng ñieàu chænh thôøi gian thöïc goàm ñieàu chænh thöù, giôø, phuùt. Caùch thöùc ñieàu chænh laø ñieàu chænh thöù, giôø, phuùt ñoäc laäp vôùi nhau vaø coù theå ñieàu chænh theo höôùng taêng hoaëc giaûm.
_ Cho pheùp ngöôøi söû duïng xem laïi hay xoùa ñi caùc Hottime vaø Skiptime do ngöôøi söû duïng ñaët vaøo heä thoáng
_ Tieáng chuoâng baùo hieäu do phaàn meàm ñieàu khieån neân ña daïng nhaèm theå hieän muïc ñích cuûa töøng thôøi ñieåm baùo hieäu. Cuï theå seõ coù chuoâng cho vaøo tieát hoïc, chuoâng ra tieát hoïc vaø chuoâng baùo hieäu ñoät xuaát
_ Coù chöông trình baùo loãi ñeå baùo loãi cho ngöôøi söû duïng
Vôùi keát quaû ñaït ñöôïc nhö treân, Heä Thoáng coù theå ñöôïc caûi tieán vaø môû roäng ñeå ñaùp öùng söï ña daïng cuûa nhu caàu söû duïng.
Caûi tieán phaàn meàm ñeå heä thoáng coù khaû naêng phaân bieät ñöôïc thaùng, naêm vaø hieån thò ñöôïc thaùng, naêm khi coù yeâu caàu.
Caûi tieán phaàn meàm ñeå cho pheùp ngöôøi söû duïng ñaët vaøo Heä Thoáng thôøi ñieåm caám baùo hieäu laø moät thöù baát kì trong tuaàn, trong thaùng, trong naêm.
Tuøy theo nhu caàu söû duïng, chöông trình phaàn meàm ñieàu khieån baùo hieäu seõ ñöôïc caûi tieán ñeå coù theå ñieàu khieån thieát bò baùo hieäu phaùt tieáng nhaïc, tieáng noùi taïo söï phong phuù trong baùo hieäu.
Ngoaøi ra, Heä Thoáng coøn coù theå ñöôïc caûi tieán môû roäng ñeå lieân keát vôùi caùc thieát bò caûm bieán khoùi, caûm bieán nhieät ñoä ñeå thöïc hieän chöùc naêng baùo ñoäng khi coù hoûa hoaïn.
IV- KIEÁN NGHÒ :
Vôùi caùc tính naêng ñaõ ñöôïc thöïc hieän, Heä Thoáng Baùo Giôø Töï Ñoäng hoaøn toaøn coù theå ñaùp öùng toát cho caùc nhu caàu baùo giôø trong thöïc teá. Ngöôøi vieát xin ñeà nghò ñöôïc caûi tieán vaø thöông maïi hoùa Heä Thoáng thaønh saûn phaåm ñeå phuïc vuï cho nhu caàu ñôøi soáng.
Ngaøy nay, do nhu caàu phaùt trieån cuûa xaõ hoäi, töï ñoäng hoùa ñaõ ñi vaøo ñôøi soáng haøng ngaøy cuõng nhö caùc qui trình saûn xuaát coâng ngheä. Vieäc öùng duïng kyõ thuaät vi xöû lí vaøo töï ñoäng ñieàu khieån môû ra moät höôùng phaùt trieån ñaày trieån voïng. ÖÙng duïng töï ñoäng hoùa vaøo ñôøi soáng mang laïi nhöõng lôïi ích to lôùn veà kinh teá xaõ hoäi. Ñeå ñaït ñöôïc ñieàu naøy theo ngöôøi vieát chuùng ta phaûi :
Ñaàu tö nghieân cöùu kyõ thuaät vi xöû lí vaø töï ñoäng ñieàu khieån.
Trang bò caùc thieát bò phuïc vuï nghieân cöùu vaø giaûng daïy, tieáp caän daàn vôùi kyõ thuaät môùi.
ÖÙng duïng caùc thaønh quaû ñaït ñöôïc trong nghieân cöùu vaøo ñôøi soáng.
PHUÏ LUÏC
Chöông trình MAIN
Muïc ñích : khôûi ñoäng heä thoáng, töï ñoäng baùo hieäu. Khi caàn, xoùa Hottime, Skiptime vaø ñieàu khieån maïch baùo hieäu.
Ngoõ vaøo : thôøi gian thöïc, baûng Restime, Hottime, Skiptime
Ngoõ ra : Hottime hay/vaø Skiptime bò xoùa. Maïch baùo hieäu hoaït ñoäng
Caùc thanh ghi söû duïng : IX, AF, BC, DE, HL
Chöông trình con söû duïng : DISPLAY
ORG 0000H
DI
LD SP,17FFH
LD A,00000000B
LD (2001H),A
LD A,00100101B
LD (2001H),A
XOR A
LD (3000H),A
LD B,08h
LD HL,0FFFH
SET0: INC HL
LD (HL),A
DEC B
JR NZ,SET0
LD A,02H
LD (1004H),A
LD A,0FEH
LD B,36H
SETF: INC HL
LD (HL),A
DEC B
JR NZ,SETF
LD HL,1050H
LD A,(1004H)
LD (HL),A
LD A,(1005H)
INC HL
LD (HL),A
LD A,(1006H)
INC HL
LD (HL),A
LD A,(1007H)
INC HL
LD (HL),A
CALL DISPLAY
IM 0
EI
LD HL,1005H
LD D,(HL)
INC HL
LD E,(HL)
JR FIRST
MINWT: LD A,(1006H)
CP E
JR Z,MINWT
LD E,A
LD A,(1005H)
LD D,A
FIRST: LD C,01H
LD B,00H
LD IX,1005H
NEXT: INC B
INC IX
INC IX
INC IX
LD A,(IX+0)
CP 0FFH
JR Z,MINWT
CP 0FEH
JR NZ,COMP
LD C,00H
LD B,00H
LD IX,0F9DH
JR NEXT
COMP: CP D
JR NZ,NEXT
LD A,(IX+1)
CP E
JR NZ,NEXT
DI
PUSH DE
PUSH BC
LD B,00H
LD HL,1026H
NEXTS: INC B
INC HL
INC HL
LD A,(HL)
CP 0FEH
JR Z,COMPD
CP D
JR NZ,NEXTS
INC HL
LD A,(HL)
DEC HL
CP E
JR NZ,NEXTS
LD A,(1002H)
DEC A
LD (1002H),A
INC A
SUB B
ADD A,A
INC A
INC A
LD C,A
LD B,00H
LD D,H
LD E,L
INC HL
INC HL
LDIR
EXITM: EI
POP BC
BIT 0,C
JR Z,RESTART
LD HL,1001H
LD A,(HL)
DEC (HL)
SUB B
LD B,A
ADD A,A
ADD A,B
INC A
INC A
LD C,A
LD B,00H
PUSH IX
POP HL
LD D,H
LD E,L
INC HL
INC HL
INC HL
LDIR
RESTART: POP DE
JP MINWT
COMPD: LD A,(1004H)
SCF
CCF
CP 07H
JR C,BELL
BIT 0,C
JR Z,EXITM
BELL: LD D,(IX+2)
LD B,09H
LD HL,3000H
LD A,(1007H)
LD E,A
RING: LD A,(1007H)
CP E
JR Z,RING
LD E,A
LD (HL),D
SLA D
DEC B
JP Z,EXITM
JP RING
Chöông trình RTP (Real Time Program)
Muïc ñích : ñaùp öùng ngaét NMI taïo thôøi gian thöïc
Ngoõ vaøo : thöù, giôø, phuùt, giaây, DPMASK
Ngoõ ra : thöù, giôø, phuùt, giaây ñöôïc caäp nhaät, hieån thò thöù, giôø, phuùt, giaây
Caùc thanh ghi söû duïng : AF, BC, HL
Caùc chöông trình con söû duïng : DISPLAY
ORG 0066H
RTP: PUSH AF
PUSH BC
PUSH DE
PUSH HL
LD HL,1007H
LD A,(HL)
INC A
CP 3CH
JR NZ,UPDATE
LD (HL),00H
DEC HL
LD A,(HL)
INC A
CP 3CH
JR NZ,UPDATE
LD (HL),00H
DEC HL
LD A,(HL)
INC A
CP 18H
JR NZ,UPDATE
LD (HL),00H
DEC HL
LD A,(HL)
INC A
CP 09H
JR NZ,UPDATE
LD A,02H
UPDATE: LD (HL),A
LD A,(1000H)
BIT 0,A
JR NZ,EXIT
LD HL,1004H
LD A,(HL)
LD (1050H),A
INC HL
LD A,(HL)
LD (1051H),A
INC HL
LD A,(HL)
LD (1052H),A
INC HL
LD A,(HL)
LD (1053H),A
CALL DISPLAY
EXIT: POP HL
POP DE
POP BC
POP AF
RETN
Chöông trình SETTIME.
Muïc ñích : ñieàu chænh thôøi gian thöïc
Ngoõ vaøo : baøn phím vaø thöù, giôø, phuùt hieän taïi
Ngoõ ra : - Maïch hieån thò seõ hieån thò thöù, giôø, phuùt ñang thay ñoåi
- Thöù, giôø, phuùt thöïc ñöôïc ghi vaøo boä nhôù
Caùc thanh ghi söû duïng :AF, BC, DE, HL
Caùc chöông trìng con söû duïng : DISPLAY, KEYPRO
ORG 0008H
SETTIME: PUSH AF
PUSH BC
PUSH DE
PUSH HL
LD A,10010000B
LD (2001H),A
LD HL,2000H
LD (HL),01101101B
LD (HL),01111001B
LD (HL),01111000B
LD (HL),01111000B
LD (HL),00000110B
LD (HL),01010100B
LD (HL),01111001B
LD BC,0FFFFH
REPT: XOR A
DEC BC
CP B
JR NZ,REPT
LD HL,1007H
LD (HL),00H
DEC HL
LD C,(HL)
DEC HL
LD B,(HL)
DEC HL
LD D,(HL)
CALL KEYPRO
LD HL,1050H
LD A,(1004H)
LD (HL),A
INC HL
LD A,(1005H)
LD (HL),A
INC HL
LD A,(1006H)
LD (HL),A
INC HL
LD A,(1007H)
LD (HL),A
CALL DISPLAY
POP HL
POP DE
POP BC
POP AF
EI
RETI
Chöông trình Hottime.
Muïc ñích : thöïc hieän chöùc naêng veà Hottime : Xem, Xoùa, Ñaët
Ngoõ vaøo : baûng Hottime vaø caùc phím ñöôïc aán
Ngoõ ra : Hottime trong baûng coù theå bò xoùa, coù theå coù Hottime môùi ñöôïc ñaët. Hieån thò nhöõng thoâng tin caàn thieát veà thôøi gian vaø baùo loãi
Caùc thanh ghi söû duïng : A, BC, DE, HL, IY
Caùc chöông trình con söû duïng : DISPLAY, ERROR, KEYPRO
ORG 0018H
HOTTIME: PUSH AF
PUSH BC
PUSH DE
PUSH HL
LD HL,1000H
LD (HL),01H
LD A,10010000B
LD (2001H),A
LD HL,2000H
LD (HL),01110100B
LD (HL),00111111B
LD (HL),01111000B
LD (HL),01111000B
LD (HL),00000110B
LD (HL),01010100B
LD (HL),01111001B
LD BC,0FFFFH
REPH: XOR A
DEC BC
CP B
JR NZ,REPH
VIEW0: LD IY,1008H
LD D,01H
VIEW: XOR A
LD (1050H),A
LD (1053H),A
LD A,(IY+0)
LD (1051H),A
LD B,(IY+1)
LD HL,1052H
LD (HL),B
CALL DISPLAY
WT: LD BC,0D07H
WAIT: XOR A
DEC BC
CP B
JR NZ,WAIT
LD A,(4000H)
KEY1: CP 0FDH
JR NZ,KEY2
LD A,(1001H)
CP 00H
JR Z,WT
CP D
JR Z,WT
INC D
INC IY
INC IY
INC IY
JP VIEW
KEY2: CP 0FBH
JR NZ,KEY3
LD A,01
CP D
JR Z,WT
DEC D
DEC IY
DEC IY
DEC IY
JP VIEW
KEY3: CP 0EFH
JR NZ,KEY4
LD HL,1001H
LD A,(HL)
CP 0H
JR NZ,DEL
CALL ERROR
JP VIEW0
DEL: DEC (HL)
SUB D
LD B,A
ADD A,A
ADD A,B
INC A
INC A
LD C,A
LD B,00H
PUSH IY
POP HL
LD D,H
LD E,L
INC HL
INC HL
INC HL
LDIR
JP VIEW0
KEY4: CP 0FEH
JR NZ,KEY5
LD A,(1001H)
CP 0AH
JR NZ,SET
CALL ERROR
JP VIEW0
SET: LD B,A
ADD A,A
ADD A,B
LD BC,1008H
LD H,00H
LD L,A
ADD HL,BC
LD BC,0000H
CALL KEYPRO
INC HL
LD (HL),0B7H
LD HL,1001H
INC (HL)
JP VIEW
KEY5: CP 0F7H
JP NZ,VIEW
EXITH: LD A,10010000B
LD (2001H),A
XOR A
LD HL,2000H
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD BC,138BH
REPH1: XOR A
DEC BC
CP B
JR NZ,REPH1S
LD HL,1000H
LD (HL),L
LD HL,1050H
LD A,(1004H)
LD (HL),A
INC HL
LD A,(1005H)
LD (HL),A
INC HL
LD A,(1006H)
LD (HL),A
INC HL
LD A,(1007H)
LD (HL),A
CALL DISPLAY
POP HL
POP DE
POP BC
POP AF
EI
RETI
Chöông trình SKIPTIME.
Muïc ñích : Thöïc hieän chöùc naêng veà Skiptime : Xem, Xoùa, Ñaët
Ngoõ vaøo : Baûng Skiptime vaø caùc phím ñöôïc aán
Ngoõ ra : Skiptime trong baûng coù theå bò xoùa, coù theå coù Skiptime môùi ñöôïc ñaët. Hieån thò nhöõng thoâng tin caàn thieát veà thôøi gian vaø baùo loãi
Caùc thanh ghi söû duïng : A, BC, DE, HL, IY
Caùc chöông trình con söû duïng : DISPLAY, KEYPRO, ERROR
ORG 0028H
SKIPTIME: PUSH AF
PUSH BC
PUSH DE
PUSH HL
LD HL,1000H
LD (HL),01H
LD A,10010000B
LD (2001H),A
LD HL,2000H
LD (HL),01101101B
LD (HL),00000110B
LD (HL),01110011B
LD (HL),01111000B
LD (HL),00000110B
LD (HL),01010100B
LD (HL),01111001B
LD BC,0FFFFH
REPT: XOR A
DEC BC
CP B
JR NZ,REPT
VIEW0: LD IY,1028H
LD D,01H
VIEW: XOR A
LD (1050H),A
LD (1053H),A
LD A,(IY+0)
LD (1051H),A
LD B,(IY+1)
LD HL,1052H
LD (HL),B
CALL DISPLAY
WT: LD BC,0D07H
WAIT: XOR A
DEC BC
CP B
JR NZ,WAIT
LD A,(4000H)
KEY1: CP 0FDH
JR NZ,KEY2
LD A,(1002H)
CP 0H
JR Z,WT
CP D
JR Z,WT
INC D
INC IY
INC IY
JR VIEW
KEY2: CP 0FBH
JR NZ,KEY3
LD A,01H
CP D
JR Z,WT
DEC D
DEC IY
DEC IY
JR VIEW
KEY3: CP 0EFH
JR NZ,KEY4
LD HL,1002H
LD A,(HL)
CP 0H
JP NZ,DEL
CALL ERROR
JP VIEW0
DEL: DEC (HL)
SUB D
ADD A,A
INC A
INC A
LD C,A
LD B,00H
PUSH IY
POP HL
LD D,H
LD E,L
INC HL
INC HL
LDIR
JR VIEW0
KEY4: CP 0FEH
JR NZ,KEY5
LD A,(1002H)
CP 0AH
JR NZ,SET
CALL ERROR
JP VIEW
SET: ADD A,A
LD BC,1028H
LD H,00H
LD L,A
ADD HL,BC
LD BC,00H
CALL KEYPRO
LD HL,1002H
INC (HL)
JP VIEW
KEY5: CP 0F7H
JP NZ,VIEW
EXIT: LD A,10010000B
LD (2001H),A
XOR A
LD HL,2000H
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD BC,138BH
REPT1: XOR A
DEC BC
CP B
JR NZ,REPT1
LD HL,1000H
LD (HL),L
LD HL,1050H
LD A,(1004H)
LD (HL),A
INC HL
LD A,(1005H)
LD (HL),A
INC HL
LD A,(1006H)
LD (HL),A
INC HL
LD A,(1007H)
LD (HL),A
CALL DISPLAY
POP HL
POP DE
POP BC
POP AF
EI
RETI
Chöông trình KEYPRO cho Settime
Muïc ñích : Xöû lí baøn phím ñeå thay ñoåi thöù, giôø, phuùt treân maøn hình vaø ghi vaøo boä nhôù ñòa chæ trong HL
Ngoõ vaøo : maõ cuûa phím ñöôïc aán .
Ngoõ ra : thöù, giôø, phuùt thay ñoåi treân maøn hình vaø löu vaøo boä nhôù thöù, giôø, phuùt ñaõ thay ñoåi
Caùc thanh ghi söû duïng : D, BC, HL, AF
Chöông trình con söû duïng : DISPLAY
KEYPRO:
LD A,D
LD (1050H),A
PUSH BC
LD A,B
LD (1051H),A
LD A,C
LD (1052H),A
LD A,00H
LD (1053H),A
CALL DISPLAY
LD BC,0D07H
LOOP1: XOR A
DEC BC
CP B
JR NZ,LOOP1
LD A,(4000H)
POP BC
KEY1: CP 0FCH
JR NZ,KEY2
INC B
LD A,18H
CP B
JR NZ,KEYPRO
LD B,00H
JR KEYPRO
KEY2: CP 0FAH
JR NZ,KEY3
DEC B
LD A,0FFH
CP B
JR NZ,KEYPRO
LD B,17H
JR KEYPRO
KEY3: CP 0FDH
JR NZ,KEY4
INC C
LD A,03CH
CP C
JR NZ,KEYPRO
LD C,00H
JR KEYPRO
KEY4: CP 0FBH
JR NZ,KEY5
DEC C
LD A,0FFH
CP C
JR NZ,KEYPRO
LD C,03BH
JR KEYPRO
KEY5: CP 0EDH
JR NZ,KEY6
INC D
LD A,09H
CP D
JR NZ,KEYPRO
LD D,02H
JR KEYPRO
KEY6: CP 0EBH
JR NZ,KEY7
DEC D
LD A,01H
CP D
JR NZ,KEYPRO
LD D,08H
JR KEYPRO
KEY7: CP 0F7H
JR NZ,KEYPRO
LD (HL),D
INC HL
LD (HL),B
INC HL
LD (HL),C
LD A,10010000B
LD (2001H),A
XOR A
LD HL,2000H
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD BC,138BH
WT: XOR A
DEC BC
CP B
JR NZ,WT
RET
Chöông trình KEYPRO cho Hottime, Skiptime
Muïc ñích : Xöû lí baøn phím ñeå thay ñoåi giôø, phuùt treân maøn hình vaø ghi vaøo boä nhôù ñòa chæ trong HL
Ngoõ vaøo : maõ cuûa phím ñöôïc aán .
Ngoõ ra : giôø, phuùt thay ñoåi treân maøn hình vaø löu vaøo boä nhôù giôø, phuùt ñaõ thay ñoåi
Caùc thanh ghi söû duïng : BC, HL, AF
Chöông trình con söû duïng : DISPLAY
KEYPRO:
PUSH BC
LD A,B
LD (1051H),A
LD A,C
LD (1052H),A
LD A,00H
LD (1053H),A
CALL DISPLAY
LD BC,0D07H
LOOP1: XOR A
DEC BC
CP B
JR NZ,LOOP1
LD A,(4000H)
POP BC
KEY1: CP 0FCH
JR NZ,KEY2
INC B
LD A,18H
CP B
JR NZ,KEYPRO
LD B,00H
JR KEYPRO
KEY2: CP 0FAH
JR NZ,KEY3
DEC B
LD A,0FFH
CP B
JR NZ,KEYPRO
LD B,17H
JR KEYPRO
KEY3: CP 0FDH
JR NZ,KEY4
INC C
LD A,03CH
CP C
JR NZ,KEYPRO
LD C,00H
JR KEYPRO
KEY4: CP 0FBH
JR NZ,KEY5
DEC C
LD A,0FFH
CP C
JR NZ,KEYPRO
LD C,03BH
JR KEYPRO
KEY5: CP 0F7H
JR NZ,KEYPRO
LD (HL),B
INC HL
LD (HL),C
LD A,10010000B
LD (2001H),A
XOR A
LD HL,2000H
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD (HL),A
LD BC,138BH
WT: XOR A
DEC BC
CP B
JR NZ,WT
RET
Chöông trình DISPLAY.
Muïc ñích : hieån thò thöù, giôø, phuùt, giaây ra led 7 ñoaïn
Ngoõ vaøo : Thöù, giôø, phuùt, giaây
Ngoõ ra : thöù, giôø, phuùt, giaây hieän treân led 7 ñoaïn
Caùc thanh ghi söû duïng : AF, BC, DE, HL
7 ñoaïn cuûa led 7 ñoaïn töông öùng vôùi 7 bit cuûa byte hieån thò nhö sau
A B C D E F G
D0 D1 D2 D3 D4 D5 D6
DISPLAY: PUSH AF
PUSH BC
PUSH DE
PUSH HL
LD HL,104FH
LD C,10001110B
AGAIN: LD DE,1040H
INC HL
LD A,54H
CP L
JP Z,EXITD
LD A,(HL)
SCF
CCF
CP 0AH
JR C,DISP
SCF
CCF
CP 14H
JR NC,NEXT1
ADD A,06H
JR DISP
NEXT1: SCF
CCF
CP 1EH
JR NC,NEXT2
ADD A,0CH
JR DISP
NEXT2: SCF
CCF
CP 28H
JR NC,NEXT3
ADD A,12H
JR DISP
NEXT3: SCF
CCF
CP 32H
JR NC,NEXT4
ADD A,18H
JR DISP
NEXT4: SCF
CCF
CP 3CH
JR NC,DISP
ADD A,1EH
DISP: LD B,A
SRA A
SRA A
SRA A
SRA A
LD (DE),A
INC DE
LD A,B
AND 00001111B
LD (DE),A
DEC DE
COM: LD A,(DE)
CP 00H
JR NZ,COM1
LD A,00111111B
JR DISPL
COM1: CP 01H
JR NZ,COM2
LD A,00000110B
JR DISPL
COM2: CP 02H
JR NZ,COM3
LD A,01011011B
JR DISPL
COM3: CP 03H
JR NZ,COM4
LD A,01001111B
JR DISPL
COM4: CP 04H
JR NZ,COM5
LD A,01100110B
JR DISPL
COM5: CP 05H
JR NZ,COM6
LD A,01101101B
JR DISPL
COM6: CP 06H
JR NZ,COM7
LD A,01111101B
JR DISPL
COM7: CP 07H
JR NZ,COM8
LD A,00000111B
JR DISPL
COM8: CP 08H
JR NZ,COM9
LD A,01111111B
JR DISPL
COM9: CP 09H
JR NZ,COM11
LD A,01101111B
JR DISPL
COM11: LD A,00000000B
DISPL: INC C
PUSH HL
LD HL,2001H
LD (HL),C
POP HL
LD (2000H),A
LD A,41H
CP E
JP Z,AGAIN
LD E,A
JR COM
EXITD: POP HL
POP DE
POP BC
POP AF
RET
Chöông trình ERROR.
Muïc ñích : gôûi thoâng baùo loãi ñeán ngöôøi duøng
Ngoõ vaøo : phím OK
Ngoõ ra : led hieån thò Error chôùp, taét
Caùc thanh ghi söû duïng : A, HL, DE, BC
ERROR: PUSH AF
PUSH BC
PUSH DE
PUSH HL
WAIT: LD A,10010000B
LD (2001H),A
LD HL,2000H
LD (HL),01111001B
LD (HL),01010000B
LD (HL),01010000B
LD (HL),00111111B
LD (HL),01010000B
LD (HL),00000000B
LD (HL),00000000B
LD BC,138BH
WT: XOR A
LD A,(4000H)
CP 0F7H
JR Z,EXIT
XOR A
DEC BC
CP B
JR NZ,WT
LD A,10010000B
LD (2001H),A
LD HL,2000H
LD (HL),00000000B
LD (HL),00000000B
LD (HL),00000000B
LD (HL),00000000B
LD (HL),00000000B
LD (HL),00000000B
LD (HL),00000000B
LD BC,138BH
WT1: XOR A
DEC BC
CP B
JR NZ,WT1
JR WAIT
EXIT: POP HL
POP DE
POP BC
POP AF
RET
Baûng RESTIME.
Baûng chöùa caùc thôøi ñieåm baùo hieäu thöôøng tröïc.
ORG 0FA0H
DEFB 07H
DEFB 00H
DEFB 0ABH
DEFB 07H
DEFB 2DH
DEFB 0CFH
DEFB 07H
DEFB 32H
DEFB 0ABH
DEFB 08H
DEFB 23H
DEFB 0CFH
DEFB 08H
DEFB 2DH
DEFB 0ABH
DEFB 09H
DEFB 1EH
DEFB 0CFH
DEFB 09H
DEFB 23H
DEFB 0ABH
DEFB 0AH
DEFB 14H
DEFB 0CFH
DEFB 0AH
DEFB 1EH
DEFB 0ABH
DEFB 0BH
DEFB 0FH
DEFB 0CFH
DEFB 0BH
DEFB 14H
DEFB 0ABH
DEFB 0CH
DEFB 05H
DEFB 0CFH
DEFB 0CH
DEFB 0FH
DEFB 0ABH
DEFB 0DH
DEFB 00H
DEFB 0CFH
DEFB 0DH
DEFB 05H
DEFB 0ABH
DEFB 0DH
DEFB 32H
DEFB 0CFH
DEFB 0EH
DEFB 00H
DEFB 0ABH
DEFB 0EH
DEFB 2DH
DEFB 0CFH
DEFB 0EH
DEFB 32H
DEFB 0ABH
DEFB 0FH
DEFB 23H
DEFB 0CFH
DEFB 0FH
DEFB 2DH
DEFB 0ABH
DEFB 10H
DEFB 1EH
DEFB 0CFH
DEFB 10H
DEFB 23H
DEFB 0ABH
DEFB 11H
DEFB 14H
DEFB 0CFH
DEFB 0FFH
DEFB 0FFH
DEFB 0FFH
TAØI LIEÄU THAM KHAÛO
1- Leâ Vaên Vieät CAÁU TRUÙC MAÙY TÍNH
Ñaïi Hoïc Baùch Khoa TP. HCM 1988
2- Hoàng Minh Nhaät, Leâ Vaên Tuù, Huyønh Coâng Sanh, Nguyeãn Thaønh Nhaân
THIEÁT KEÁ VAØ LAÉP RAÙP MAÙY VI TÍNH CPU-Z80, TAÄP 1
NXB Giaùo Duïc 1994
3- Döông Minh Trí SÔ ÑOÀ CHAÂN LINH KIEÄN BAÙN DAÃN
NXB Giaùo duïc Vaø Ñaøo taïo TP. HCM 1992
4- Nguyeãn Ñình Phuù LÒCH SÖÛ PHAÙT TRIEÅN, CAÙC KHAÙI NIEÄM CÔ BAÛN VEÀ CAÁU TRUÙC VI XÖÛ LÍ
Tröôøng Ñaïi Hoïc Sö Phaïm Kyõ Thuaät
5- TAØI LIEÄU HÖÔÙNG DAÃN SÖÛ DUÏNG KIT VI XÖÛ LÍ Z80
Tröôøng Ñaïi Hoïc Sö Phaïm Kyõ Thuaät
6- Nguyeãn Minh Tuaán GIAÙO TRÌNH CAÁU TRUÙC MAÙY TÍNH VAØ HÔÏP NGÖÕ
NXB TREÛ
Các file đính kèm theo tài liệu này:
- LUANVAN.DOC