Нажмите "Enter", чтобы перейти к содержанию

Állítsa be a Nokia 5 megjelenítési számát.1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

#Include p16f628a.Inc

Listp = 16f628a

__Configh’3f18 ‘; mikrokontroller konfiguráció

HibaLrel-302; Ne jelenítse meg az üzeneteket egy 302-es hibával a listában

Sec us 0020h; fiók nyilvántartása

SEC1ECH 0021H;

SEC2ECH 0022H;

Nomer EQU 0023H; szimbólum ASCII kód ​​tároló regiszter

SCETBIT EQU 0024H; COUNT COUNT COUNT

Perem EQU 0025H; Kiegészítő byte Váltó Regisztráljon SPI

TEMPECH 0026H; fiók regiszter

TMP_TAB EQU 0027H; táblázatszám tárolási nyilvántartás

#Define res_lcd portb, 0; az I / O vonalak hozzárendelése

#Define csportb, 1; dolgozni az LCD kijelzőn Nokia 5110

#Define Dat_com PORTB, 2;

#Define sdata portb, 3;

#Define sclkportb, 4;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG 0000H; Indítsa el a program végrehajtását a 0000h címről

Gotostart; menjen el a címke elindításához

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;

; Alapvető program

START MOVLW B’00010011 ‘; A kikötő kikötőinek értékének beállítása

MOVWF PORTB;

Movlw b’00000111 ‘, kikapcsolja a komparátorokat

MOVWF CMCON;

BSF állapot, RP0; Válassza ki az 1. bankot

MOVLW B’11100000 ‘; bemeneti vonalak beállítása \ port kimenet b

MOVWF TRISB; RB0, RB1 — a bejáratnál, a többi

BCF állapot, RP0; válassza a 0. bankot

callinit_lcd; hívás inicializálási szubrutin

Callclear_lcd; hívja a kijelző tisztító rutinjait

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;

MOVLW «"»; Szöveg kimenet ("Radiolaba.Ruhatár")

Callviv_symb;

MOVLW ‘R’;

Callviv_symb;

MOVLW ‘A’;

Callviv_symb;

Movlw ‘d’;

Callviv_symb;

Movlw ‘i’;

Callviv_symb;

Movlw ‘o’;

Callviv_symb;

MOVLW ‘L’;

Callviv_symb;

MOVLW ‘A’;

Callviv_symb;

MOVLW ‘B’;

Callviv_symb;

MOVLW ‘A’;

Callviv_symb;

Movlw ‘.»;

Callviv_symb;

MOVLW ‘R’;

Callviv_symb;

Movlw ‘u’;

Callviv_symb;

Movlw ‘"»;

Callviv_symb;

Callpaus1s; szünet 1 sec

Callust_Cur_2; A kurzor telepítése a 2. sor elején

MOVLW »; Szövegkijelző (tesztkód)

Callviv_symb;

Movlw ‘t’;

Callviv_symb;

Movlw ‘e’;

Callviv_symb;

MOVLW ‘C’;

Callviv_symb;

Movlw ‘t’;

Callviv_symb;

Movlw ‘o’;

Callviv_symb;

Movlw «in»;

Callviv_symb;

Movlw ‘s’;

Callviv_symb;

Movlw ‘y’;

Callviv_symb;

Movlw »;

Callviv_symb;

MOVLW ‘K’;

Callviv_symb;

Movlw ‘o’;

Callviv_symb;

Movlw ‘d’;

Callviv_symb;

Callpaus1s; szünet 1 sec

CALLUST_CUR_3; A kurzor telepítése a 3. sor elején

Movlw », szöveg kimenet (* kijelző *)

Callviv_symb;

Movlw »;

Callviv_symb;

Movlw ‘*’;

Callviv_symb;

Movlw ‘d’;

Callviv_symb;

MOVLW ‘ÉS’;

Callviv_symb;

MOVLW ‘C’;

Callviv_symb;

Movlw ‘p’;

Callviv_symb;

MOVLW ‘L’;

Callviv_symb;

Movlw ‘e’;

Callviv_symb;

Movlw ‘y’;

Callviv_symb;

Movlw ‘*’;

Callviv_symb;

Callpaus1s; szünet 1 sec

Callust_Cur_4; A kurzor telepítése a 4. sor elején

MOVLW »: Szövegkimenet (Nokia 5110)

Callviv_symb;

Movlw »;

Callviv_symb;

Movlw ‘n’;

Callviv_symb;

Movlw ‘o’;

Callviv_symb;

MOVLW ‘K’;

Callviv_symb;

Movlw ‘i’;

Callviv_symb;

MOVLW ‘A’;

Callviv_symb;

Movlw »;

Callviv_symb;

MOVLW ‘5’;

Callviv_symb;

MOVLW ‘1’;

Callviv_symb;

MOVLW ‘1’;

Callviv_symb;

MOVLW ‘0’;

Callviv_symb;

Callpaus1s; szünet 1 sec

Callust_Cur_5; A kurzor telepítése az 5. karakterlánc elején

MOVLW » » szöveg kimenet (vezérlő)

callviv_symb;

MOVLW »;

callviv_symb;

MOVLW ‘K’;

callviv_symb;

MOVLW ‘O’;

callviv_symb;

MOVLW ‘H’;

callviv_symb;

MOVLW ‘T’;

callviv_symb;

MOVLW ‘R’;

callviv_symb;

MOVLW ‘O’;

Callviv_symb;

MOVLW ‘L’;

Callviv_symb;

MOVLW ‘L’;

Callviv_symb;

Movlw ‘e’;

Callviv_symb;

MOVLW ‘R’;

Callviv_symb;

Callpaus1s; szünet 1 sec

Callust_Cur_6; A kurzor telepítése a 6. sor elején

MOVLW »; Szöveg kimenet (RS16F628A)

Callviv_symb;

Movlw »;

Callviv_symb;

Movlw ‘p’;

Callviv_symb;

Movlw ‘i’;

Callviv_symb;

MOVLW ‘C’;

Callviv_symb;

MOVLW ‘1’;

Callviv_symb;

MOVLW ‘6’;

Callviv_symb;

Movlw ‘f’;

Callviv_symb;

MOVLW ‘6’;

Callviv_symb;

MOVLW ‘2’;

Callviv_symb;

MOVLW ‘8’;

Callviv_symb;

MOVLW ‘A’;

Callviv_symb;

Met_1 nop; programhívás

gotomet_1;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;

init_lcdbcfres_lcd; megjelenítési inicializálási rutin

Movlw.200; napló kibocsátás.0 RST Line: Kijelző visszaállítása

MOVWFSCETBIT; szünet 0,6 ms

In_1decfsz scetbit, f;

Goto in_1;

bsfres_lcd;

MOVLW0X21; Engedélyezze a kijelzővezérlőt, a horizontot.Címzés, fejlett parancsok

Hívja a sendispcomot;

MOVLW0X13; BIAS feszültség beépítése 1:48

Hívja a sendispcomot;

MOVLW0X04, a hőmérséklet-koefficiens telepítése 0

Hívja a sendispcomot;

MOVLW0XC1; A kontraszt felszerelése (0x65 érték)

Hívja a sendispcomot;

MOVLW0X20, szabványos parancsok

Hívja a sendispcomot;

MOVLW0X0C; telepítés — normál üzemmód

Hívja a sendispcomot;

Visszatérés; kimenet

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;

UST_CUR_1 MOVLW 0X40; Telepítési kurzor az Y0 helyzetben

ADISENDISPCOM

Gotoust

UST_CUR_2 MOVLW 0X41; Telepítési kurzor az Y1 helyzetben

ADISENDISPCOM

Gotoust

Ust_cur_3 MOVLW 0x42; A kurzor beállítása y2 pozícióba

ADISENDISPCOM

Gotoust

UST_CUR_4 MOVLW 0X43; A kurzor beállítása y3 pozícióba

ADISENDISPCOM

Gotourt

UST_CUR_5 MOVLW 0X44; A kurzor beállítása az y4 pozícióba

ADISENDISPCOM

Gotourt

UST_CUR_6 MOVLW 0X45; A kurzor beállítása az y5 pozícióba

ADISENDISPCOM

Ust movlw 0x80; Telepítési kurzor kurzor x0

ADISENDISPCOM

Visszatérés

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;

Clear_lcd movlw0x40, kijelző tisztító program

Hívja a SendisPComot; Telepítési kurzor az Y0 állásban

Movlw0x80

Hívás sendispcom; telepítés kurzor kurzor x0

Movlw.6; rögzítési számláló, 504 érték

MOVWFSEC1

Povt4 movlw.84

MOVWFSEC

POVT3 MOVLW.0

Hívja sendispdat; Sending 0x00 értéket a kijelzőre

Decfsz másodperc, f; az érték 504-szer kerül elküldésre

Goto povt3; a kijelző tisztításához

Decfsz sec1, f

Goto povt4

Visszatérés

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;

Sendispcommovwfperem, subrutine küldés parancs / adatok a kijelzőn

Bcfdat_com

Goto povt1

Sendispdatmovwfperem

bsfdat_com

Povt1 movlw.nyolc

MOVWFSCETBIT

BCFCS

Povt2 bcfsclk

BTFSCPEREM, 7

Bsfsdata

BTFSSPEREM, 7

BCFSDATA

BSFSCLK

RLFPEREM, F

Decfsz SCETBIT, F

Goto Povt2

bsfcs

Visszatérés

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;

Viv_symbmovwf nomer; szimbólum kimeneti szubrutin a kijelzőn

Movlw .32;

Subwf Nomer, W;

BTFSS állapot, C;

Visszatérés; 32-nél kisebb szimbólumérték: Kilépés a szubrutinból

Movfnomer, W

Sublw .82

BTFSS állapot, c

gotoviv_symb_1; szimbólumértéke több mint 82: Viv_Symb_1 címke átkapcsolása

Movlw .32; A szimbólum értéke több mint 31 és kevesebb 83: a szimbólum a tab_symb_1 táblázatban

Subwf Nomer, F; az ASCII szimbólumkód 32-es számának kivonása, kapunk

Movlw .1; átalakított szimbólumérték

MOVWF TMP_TAB; Asztali számbevitel (1) a tmp_tab regiszterben

Gotosymb_lcd

VIV_SYMB_1MOVFNOMER, W

Sublw .126

BTFSS állapot, c

Gotoviv_symb_2; szimbólumértéke több mint 126: Ugrás a VIV_SYMB_2 címke

Movlw .83; A szimbólum értéke több mint 82 és kevesebb, mint 128: a szimbólum a tab_symb_2 táblázatban

alwf nomer, f; az ASCII szimbólumkód 83-as számának kivonása

Movlw .2; átalakított szimbólumérték

MOVWF TMP_TAB; Asztali számbevitel (2) a TMP_TAB regiszterben

Gotosymb_lcd

Viv_symb_2movfnomer, W

Sublw .191

BTFSS állapot, c

gotoviv_symb_3; szimbólumértéke több mint 191: az átmenet a VIV_SYMB_3 címke

Movlw .176; Check Regisztráció Nomer egy egybeesés a 176-os számmal

Xorwf Nomer, W; 176 — ASCII szimbólum szimbólum szimbólum, sarok

BTFSS állapot, z

Visszatérés; az érték nem egyezik: kimenet a szubrutinból

Movlw .13; szimbólumérték 176, hőmérsékletméret szimbólum, szög

MOVWF NOMER, TELEPÍTÉS kézi konvertálása. Szimbólumérték

Movlw .4

MOVWF TMP_TAB; Asztali számbevitel (4) a TMP_TAB regiszterben

Gotosymb_lcd

Viv_symb_3movfnomer, W

Sublw .242

BTFSS állapot, c

Gotoviv_symb_4, szimbólumérték 242: Átmenet a VIV_SYMB_4 címke

Movlw .192; A szimbólum értéke több mint 191 és kevesebb, mint 243: a szimbólum tab_symb_3 táblázatban

Subwf Nomer, F; az ASCII szimbólumkódból 192-es szám kivonása

Movlw .3; átalakított szimbólumérték

MOVWF TMP_TAB; Asztali számbevitel (3) a TMP_TAB regiszterben

Gotosymb_lcd

VIV_SYMB_4MOVLW .243; szimbólumértéke több mint 242: szimbólum a táblázatban tab_symb_4

Subwf Nomer, F

MovLw .4

MOVWF TMP_TAB; táblázat száma bejegyzés (4) a TMP_TAB regiszter

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;; ;;;;;;

SYMB_LCDMOVFNOMER, W; szaporodását a konvertált szimbólum értéket 5

ADDWF Nomer, F

ADDWF Nomer, F

ADDWF Nomer, F

ADDWF Nomer, F

MovLw .5

MOVWF TEMP; Vedd számláló kimeneti 5 bájt szimbólum

SYMB_1MOVLW .1. meghatározása korábban rögzített száma Talitsa

xorwf tmp_tab, w, hogy hívja a megfelelő táblázatban

BTFSS állapota, Z

Gotosymb_m1

Calltab_symb_1

Gotosymb_2

SYMB_M1 MOVLW .2

Xorwf TMP_TAB, W

BTFSS állapota, Z

Gotosymb_m2

Calltab_symb_2

Gotosymb_2

SYMB_M2 MOVLW .3

Xorwf TMP_TAB, W

BTFSS állapota, Z

Gotosymb_m3

Calltab_symb_3

Gotosymb_2

SYMB_M3 CALTAB_SYMB_4

SYMB_2CALLSENDISPDAT; Symbol bájt kimenet kijelző

Incfnomer, F

Decfsztemp, F

Gotosymb_1

MovLw .0

CallSendispdat; kimenete egy üres oszlop (0x00) Jelölés szeparátor

Visszatérés

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;

Tab_symb_1movlw magas tabl;

MOVWF PCTH, speciális jelek, 0-9 ábrák, latin szimbólumok A-R

MOVFNOMER, W;

Addlw alacsony tab1;

BTFSC állapot, C;

Incfpclath, f;

MOVFNOMER, W;

Addwf pcl, f

Tab1dt 0x00, 0x00, 0x00, 0x00, 0x00; (Tér) ASCII kód ​​32

DT 0x00, 0x00, 0x5f, 0x00, 0x00; !

DT 0x00, 0x07, 0x00, 0x07, 0x00; "

DT 0x14, 0x7f, 0x14, 0x7f, 0x14; #

DT 0x24, 0x2a, 0x7f, 0x2a, 0x12; $

DT 0x23, 0x13, 0x08, 0x64, 0x62; %

DT 0x36, 0x49, 0x55, 0x22, 0x50;

DT 0x00, 0x05, 0x03, 0x00, 0x00; ‘

DT 0x00, 0x1c, 0x22, 0x41, 0x00; (

DT 0x00, 0x41, 0x22, 0x1c, 0x00; )

DT 0x08, 0x2a, 0x1c, 0x2a, 0x08; *

Комментарии закрыты, но обратные ссылки и pingbacks ещё работают.