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
104 trang | 
Chia sẻ: banmai | Lượt xem: 1835 | 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 LUANVAN.DOC