Modul 8.LED diod
Konstrukce
Bipolární krokový motor
LCD displej
7.segmentový displej
Maticový displej
Maticová klávesnice
Připojení modulu LED diod k paralelnímu portu je nejjednodušší aplikací. Na schématu je znázorněno zapojení 8.LED s budičem 74HCT245. Uvažujeme, že modul je připojen k portu P1. Budič používáme z důvodu proudového zatížení portů. Použité odpory mají hodnotu 330 ohmů, dioda svítí při logické 0, při logické 1 je zhasnutá.
Asi nejjednodušším programem pro LED diody je běžící světlo, kdy svítí v daném okamžiku vždy
jen jedna dioda. Posun provedeme pomocí rotace akumulátoru. Nesmíme zapomenout, že dioda musí
svítit nějakou minimální dobu, což zajistíme pomocí zpožďovací smyčky. Zvolíme dobu cca 0,5 s,
při frekvenci 12MHz.
;***program pro bezici svetlo, modul led ,port p1,zpozdeni cca 0,5 s***
;***autor: miloslav siroky, vytvoreno 25.10.2005***********************
start: del: sma: smb: |
org mov mov call rr jmp mov mov mov djnz djnz djnz ret end |
00h a,#01111111b p1,a del a start r7,#4 r6,#250 r5,#250 r5,$ r6,smb r7,sma |
;nastaveni pocatku ;zapis cisla do akumulatoru ;presun cisla z akumulatoru na port p1 ;volani podprogramu zpozdeni ;rotace akumulatoru vpravo ;skok na start-vytvoreni cyklu ;zpozdovaci smycka-zapis cisla do r7 ;zapis cisla do r6 ;zapis cisla do r5 ;decrementuje r5 az do vynulovani ;decrementuje r6 a neni-li roven 0, skoci ;decrementuje r7 a neni-li roven 0, skoci ;navrat z podprogramu ;konec programu |
;***program pro bezici svetlo, modul led ,port p1,zpozdeni cca 0,5 s***********
;***zmeny provedeny pomoci postupneho nacitani tabulky, ulozene direktivou DB**
;***autor: miloslav siroky, vytvoreno 25.10.2005*******************************
start: blok: tab: include(del.inc) |
org mov mov mov movc mov call inc cjne jmp db db db db db db db db end |
00h dptr,#tab r0,#0 a,r0 a,@a+dptr p1,a del r0 r0,#8,blok start 01111111b 10111111b 11011111b 11101111b 11110111b 11111011b 11111101b 11111110b |
;nastaveni pocatku ;nacteni adresy tabulky do dptr ;nulovani r0 pro offset ;presun hodnoty r0 do a ;nacteni konstanty z adresy pameti ;dane souctem a+dptr do a ;presunuti hodnoty z a na p1 ;volani podprogramu zpozdeni ;incrementace r0 ;porovna obsah r0 s primou hodnotou a ;nejsou-li shodne, skoci, ;prima hodnota = pocet radku tabulky ;skok na nulovani r0 ;ulozeni konstant tabulky pomoci direktivy db ;do programove pameti ;vlozeni zpozdovaci smycky z externiho ;souboru pomoci directivy include ;konec programu |
;***program pro postupne rozsviceni diod od kraju proti sobe***
;***modul led, port p1,***autor miloslav siroky***1.11.2005****
start: blok: include(del.inc) |
org mov mov mov anl mov call jz mov clr rrc mov mov clr rlc mov jmp end |
00h r0,#255 r1,#255 a,r0 a,r1 p1,a del start a,r0 c a r0,a a,r1 c a r1,a blok |
;nastaveni pocatku ;naplneni registru r0 ;naplneni registru r1 ;presun r0 do a ;logicky soucin obsahu a s obsahem r1, ;vysledek v a ;presun vysledku z a na port p1 ;volani zpozdeni ;skok pri nulovem akumulatoru, ;po rozsviceni vsech diod skoci ;na znovunaplneni registru r0 a r1 ;nacteni hodnoty z r0 do a ;nulovani bitu c v registru psw ;rotace a doprava pres bit c ;presun rotovane hodnoty do r0 ;nacteni hodnoty z r1 do a ;nulovani c ;rotace a doleva pres bit c ;presun rotovane hodnoty do r1 ;cyklus bezi az do rozsviceni vsech diod ;vlozeni zpozdovaci smycky z externiho souboru ;konec programu |