Ứng dụng cpu z80 vào hệ thống báo giờ tự động

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.

doc104 trang | Chia sẻ: banmai | Lượt xem: 1686 | Lượt tải: 0download
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:

  • docLUANVAN.DOC