Thiết kế và thi côn hệ thống báo giờ tự động ứng dụng CPU Z80, chương 6

Chia sẻ: Nguyen Van Dau | Ngày: | Loại File: PDF | Số trang:12

0
69
lượt xem
16
download

Thiết kế và thi côn hệ thống báo giờ tự động ứng dụng CPU Z80, chương 6

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Phần mềm được thiết kế nhằm tạo cho Hệ Thống Báo Giờ Tự Động có 5 chức năng như sau:Chức năng tự động báo hiệu. Chức năng tạo thời gian thực và hiển thị thời gian thực. Chức năng điều chỉnh thời gian thực. Chức năng về Hottime gồm : Xem, xoá và đặt mới. Chức năng về Skiptime gồm : Xem, xoá và đặt mới. Mỗi chức năng nêu trên được một chương trình thực hiện. Do đó, phần mềm Hệ Thống gồm 5 chương trình thực hiện 5 chức năng chính của Hệ Thống và 3 chương trình...

Chủ đề:
Lưu

Nội dung Text: Thiết kế và thi côn hệ thống báo giờ tự động ứng dụng CPU Z80, chương 6

  1. Chương 6: 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
  2. 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 NMI 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 NMI ñ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. 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 INT . Chöông trình Settime ñöôïc ñaët ôû ñòa chæ 08h seõ ñaùp öùng ngaét INT 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 INT 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 INT 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)
  4. 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.
  5. 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 ÑÒA CHÆ NHIEÄM VUÏ CHÖÔNGTRÌNH MAIN 0000h Töï ñoäng baùo hieäu Taïo thôøi gian thöïc vaø RTP 0066h 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 Khoâng Bieán ñoåi HEX DISPLAY xaùc ñònh BCD vaø xuaát ra maïch hieån thò Khoâng Ñoïc döõ lieäu baøn KEYPRO xaùc ñònh phím vaø xöû lyù phím aán Khoâng ERROR Baùo loãi xaùc ñònh Baûng 7: TOÙM TAÉT CHÖÔNG TRÌNH PHAÀN MEÀM 3.2- Toå chöùc döõ lieäu:
  6. 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
  7. 0FA0h + 3(N - EORT (0FFh) End Of 1)+3 Restime 0FA0h + 3(N - Maõ chuoâng N 1)+2 0FA0h + 3(N - Phuùt Restime 1)+1 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:
  8. Duøng cho xoùa 1027h 0FEh 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
  9. Skiptime). EOST laø maõ baùo keát thuùc baûng Skiptime. Caáu truùc baûng Skiptime nhö ôû hình sau:
  10. 103Dh 0FEh End Of 103Ch EOST 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:
  11. 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 STACK 102Eh 103Dh BAÛNG SKIPTIME 1028h 1027h BAÛNG HOTTIME 1008h 1007h THÔØI GIAN THÖÏC
  12. 1005h 1004h VUØNG ÑEÄM 1000h 0FFFh BAÛNG RESTIME 0FA0h 0F9Fh PHAÀN MEÀM 0000h Hình 25: BAÛNG PHAÂN CHIA BOÄ NHÔÙ

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản