Мазмұны:
- Жабдықтар
- 1-қадам: Z80asm-ді Z80-mbc2-ге орнатыңыз
- 2-қадам: Бастапқы кодты сізге Z80-mbc2 көшіріңіз
- 3 -қадам: Бағдарламаны құрастырыңыз және іске қосыңыз
Бейне: Z80-mbc2 Z80 Code Flash пайдаланушы жарық диоды: 3 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Бұл z80-mbc2 компьютері үшін Z80 ассемблерінде жазылған қолданушы LED бағдарламасының мысалы.
Мен бұл тестті және қайталау жаттығуын жасадым, бұл менің Z80 бағдарламасының 35 жылдан астам уақыт бойы жасаған алғашқы бағдарламасы.
Ләззат алыңыз
Жабдықтар
Z80-mbc2 компьютері
SLR Systems Rel Z80ASM көшірмесі. 1.32, көптеген cp/m мұрағаттарынан жүктеуге болады
Редактор, мен ZDE16 қолдандым, себебі ол z80-mbc2 үшін CP/M жүктеу кескінінде болды.
1-қадам: Z80asm-ді Z80-mbc2-ге орнатыңыз
Мен сіздің Z80-MBC2-ге арналған құралдармен, атап айтқанда, сіз қолданатын cpmtools-тың кез келген нұсқасымен таныспын деп ойлаймын. Пәрмен жолының нұсқаларын қолданатын қадамдар:
- Z80asm.com және z80asm.doc (міндетті емес) файлдарын негізгі компьютерден каталогтан алыңыз
- SD картасын сол компьютерге салыңыз, мен төменде E дискісі ретінде көрсетілген деп ойлаймын.
- Мен құрастырушыны CP/M дискіме қойдым, cp/m 2.2 үшін бұл DS0N00. DSK дискінің кескіні болады.
- Команда: cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.com 0: z80asm.com файлын кескінге көшіреді
- Cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.doc 0: пәрмені құжаттаманы дискіге көшіреді (міндетті емес)
Сіз z80-mbc-те cp/m 2.2 жүктеген кезде, енді A дискісінде z80asm.com және z80asm.doc (міндетті емес) болуы керек.
2-қадам: Бастапқы кодты сізге Z80-mbc2 көшіріңіз
Z80-mbc-ке терминалдық бағдарламаны пайдаланып қосылыңыз
Мен сізге бастапқы кодты сақтау үшін толтырылмаған дискіні пайдалануды ұсынамын, мысалы f: осы диск түрін таңдау үшін:
F:
бірнеше секундтан кейін сіз F: шақыруын көресіз.
Енді бос дискіні өңдеу үшін А дискісіндегі zde16 бағдарламасын қолданыңыз:
a: zde16 myled.z80
Бұл F: дискіде myled.z80 деп аталатын файл жасайды, ескеріңіз: z80asm жұмыс істеуі үшін.z80 атауында қажет.
Енді төмендегі кодты көшіріп, қойыңыз, терминалдың жылдамдығына және т.б. байланысты сізге кішкене бөліктерде көшіру және қою қажет болуы мүмкін. Немесе теріңіз! сол 1980 жылдардың сезімін қайтарыңыз.
;
Пайдаланушының жарық диоды мен пайдаланушы кілтін тексеру; BDOS теңдеуі 05h; cp/m BDOS кіру нүктесі USRLED теңдеуі 0; пайдаланушының жарықдиодты басқару үшін опкод USRKEY equ 80h; User Switch басқаруындағы опкод DPORT теңдеуі 0; DATA порты i/o CPORT теңдеуі 1; Командалық порт шығысы; ұйым 0100h; ld (estack), sp; cp/m ld sp, стекке қайту үшін бар ақпаратты сақтаңыз; ld hl, msg; сәлем. 0 қоңырау шалу қоңырауының кешігуі; jr z, lp пернесін/кілтін кешіктіру немесе күту; егер нөл, кілт/қосқыш болмаса, қайтадан өтіңіз; аяқтау: xor a; перне немесе қосқыш басылды, осылайша қоңырау шалды ld hl, қош; қоңырау _puts деп айтыңыз; хабарламаны көрсету HL = ld sp, (estack); бастапқы стек ret; cp/m -ге оралу; led: push af; 0 немесе 1 лд мәнін сақтау, USRLED шығу (CPORT), a; опт -код жіберілді қалқып шығу (DPORT), a; деректер жіберілді ret;; Терминал немесе пайдаланушы пернесінің кідірісінде басылатын тексеретін кідіріс циклы: ld bc, 00e00h; шамамен 1/2s 8mhz CPU, таза болжамды жұмыс циклы2: dec bc; циклді басуды bc санау; BDOS push de ld c шақыру кезінде тіркеулерді сақтау, 6; BDOS шикізат енгізу/шығару пернесі басылғанын тексеріңіз ld e, 0ffh BDOS pop де шақырыңыз; біздің мәндерді стек pop bc немесе a -ден қайтарыңыз; терминал ret nz -де басылғанын тексеріңіз; иә қайтару (сонымен қатар nz жалаушасын орнатады) ld a, USRKEY; Енді пайдаланушы кілтін тексеріңіз (CPORT), a; командалық порт a, (DPORT); оқу пернесі және а, 1; тек 0 ret nz биті қызықтырады; егер userkey ld a, b басылса, қайтыңыз; немесе bc = 0 немесе c jr nz, loop2; санау аяқталмады, xor a қайтадан өтіңіз; z жалаушасын 0 ретке қойыңыз; ешқандай пернені баспаңыз, кешіктірудің соңы; _puts: push bc; bdos қоңырауларына дайын біздің регистерді сақтаңыз push de nxt: ld a, (hl); char немесе a алу; бұл 0 екенін тексеріңіз, msg jr z аяқталды, жасалды; иә осылай жасалды ld e, a; char ld c, 2 push hl басып шығару үшін BDOS -қа қоңырауды орнатыңыз; мәтіндік көрсеткіш BDOS қоңырауын сақтаңыз; оны басып шығарыңыз hl inc hl; келесі char jr nxt; жалғастырыңыз: pop de; қалпына келтіруді аяқтаған тіркеулер bc ret; және қайтару; msg db 'User LED test, db 0ah, 0dh, 0 bye db' Exit 'db 0ah, 0dh, 0 estack dw 0 ds 256 - 2 стек: dw 0 шығатын кез келген перне
Файлды ESC x көмегімен сақтаңыз. Қосымша ақпарат алу үшін ZDE16 пайдалану нұсқаулығын қараңыз, бұл Ctrl-K опциялары әр түрлі болмаса, көптеген өңдеу үшін wordstar сияқты.
3 -қадам: Бағдарламаны құрастырыңыз және іске қосыңыз
Құрылғыда бастапқы кодты алғаннан кейін.
Түрі:
F>
F> a: z80asm myled/a Z80ASM Copyright (C) 1983-86, SLR Systems Rel. 1.32 MYLED/A Файлдың соңы Pass 1 0 Қателер анықталды. 406 Абсолюттік байт. 16 Таңбалар анықталды.
Бұл myled.z80 файлын іздейді және екілік (.com) файлын шығарады, бұл опция /а дегенді білдіреді.
Қосымша ақпарат алу үшін z80asm.doc файлын қараңыз.
Бағдарламаны іске қосу үшін теріңіз:
F> myled
Қолданушының жарықдиодты сынағы, F> шығу үшін кез келген перне
Шығу үшін пайдаланушы түймесін немесе терминалдағы пернені басыңыз.
Орындалды.
Ұсынылған:
Рождестволық жарық диодты жарық диоды: 3 қадам
Рождестволық жарық диодты жарық диоды: Мен Рождество мерекелеріне арналған Arduino -ның қызықты және мерекелік жобасын жасағым келді, сондықтан мен өз қолыммен жарық диодты шамдарды жасауды шештім. Бұл жоба дәнекерлеу машинасын қажет етеді, сондықтан оны есте сақтаңыз
Visuino жұмыс істейтін жарық диоды: 9 қадам
Visuino жұмыс істейтін жарық диоды: Бұл оқулықта біз 6x LED, Arduino UNO және Visuino светодиодты шамды реттілік компонентінің көмегімен іске қосамыз. Sequence компоненті бірнеше оқиғаны ретімен іске қосқымыз келетін жағдайлар үшін өте қолайлы. Демонстрациялық бейнені қараңыз
StickC M5Stack жарық диоды жыпылықтайды: 7 қадам
StickC M5Stack светодиодты жыпылықтау: Бұл жобада біз M5StickC ESP32 модулін қолданып жарық диодты жыпылықтауды қосуды және жасауды үйренеміз
Дыбыстық реактивті RGB 8x8 жарық диоды: 6 қадам
Дыбыстық реактивті RGB 8x8 жарықдиодты шамдары: Мен дыбыстық реактивті RGB светодиоды бар Arduino жобасын жасау қызықты болады деп ойладым. Менің түпкі мақсатым - ақырында реактивті көздер жасау үшін 2 жеке адрестелетін 8x8 жарықдиодты матрицаларды қолдану, бірақ мен әзірше жаңа әдістермен танысамын
Жарық диоды бар қарапайым жарық сенсоры (аналогты): 3 қадам
Жарық диоды бар қарапайым жарық сенсоры (аналогы): Сәлеметсіз бе, мен сізге жарық диодты жарықдиодты қалай жасау керектігін көрсетемін. Мен үшін бұл схема пайдасыз, өйткені сіз онымен көп нәрсе жасай алмайсыз, бірақ менің ойымша