Курсовая работа (т): Разработка схемы микропроцессорной системы

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

7002 JNZ ?C0054

1500 R DEC IndexMas

?C0054:

14 DEC A

FF MOV R7,A

AE00 R MOV R6,IndexMas

A 120000 R LCALL _WriteToUART

; SOURCE LINE # 167

D E4 CLR A

E F500 R MOV IndexMas,A

F500 R MOV IndexMas+01H,A

; SOURCE LINE # 168

?C0026:

; SOURCE LINE # 169

AE00 R MOV R6,IndexMas

AF00 R MOV R7,IndexMas+01H

AD00 R MOV R5,Value+01H

120000 R LCALL _WriteEXTRAM

; SOURCE LINE # 171

B 0500 R INC IndexMas+01H

D E500 R MOV A,IndexMas+01H

F 7002 JNZ ?C0055

0500 R INC IndexMas

?C0055:

; SOURCE LINE # 172

C3 CLR C

9500 R SUBB A,CountMas+01H

E500 R MOV A,IndexMas

9500 R SUBB A,CountMas

A 4014 JC ?C0028

; SOURCE LINE # 173

; SOURCE LINE # 174

C E500 R MOV A,IndexMas+01HCOMPILER V9.00 HELLO 12/30/2010 14:08:56 PAGE 12

7002 JNZ ?C0056

0042 1500 R DEC IndexMas

?C0056:

14 DEC A

FF MOV R7,A

AE00 R MOV R6,IndexMas

120000 R LCALL _WriteToUART

; SOURCE LINE # 175

B E4 CLR A

C F500 R MOV IndexMas,A

E F500 R MOV IndexMas+01H,A

; SOURCE LINE # 176

; SOURCE LINE # 177

?C0028:

22 RET

; FUNCTION _WriteValue (END)

; FUNCTION main (BEGIN)

; SOURCE LINE # 187

; SOURCE LINE # 188

; SOURCE LINE # 189

E4 CLR A

F500 R MOV grad+03H,A

F500 R MOV grad+02H,A

F500 R MOV grad+01H,A

F500 R MOV grad,A

; SOURCE LINE # 190

F500 R MOV c,A

; SOURCE LINE # 191

B F500 R MOV svet,A

; SOURCE LINE # 192

D F500 R MOV tmpVal,A

F F500 R MOV tmpVal+01H,A

; SOURCE LINE # 194

758DFD MOV TH1,#0FDH

; SOURCE LINE # 195

758920 MOV TMOD,#020H

; SOURCE LINE # 196

758840 MOV TCON,#040H

; SOURCE LINE # 197

A 759850 MOV SCON,#050H

; SOURCE LINE # 198

D 53877F ANL PCON,#07FH

; SOURCE LINE # 199

D299 SETB TI

; SOURCE LINE # 200

D298 SETB RI

; SOURCE LINE # 202

5388C0 ANL TCON,#0C0H

; SOURCE LINE # 203

5389F0 ANL TMOD,#0F0H

; SOURCE LINE # 204

A 438901 ORL TMOD,#01H

; SOURCE LINE # 205

D 758AFE MOV TL0,#0FEH

; SOURCE LINE # 206

758C32 MOV TH0,#032H

; SOURCE LINE # 207

75A89A MOV IE,#09AH

; SOURCE LINE # 209

75EF7C MOV ADCCON1,#07CHCOMPILER V9.00 HELLO 12/30/2010 14:08:56 PAGE 13

; SOURCE LINE # 210

438810 ORL TCON,#010H

; SOURCE LINE # 212

C ?C0032:

; SOURCE LINE # 213

C 308DFD JNB TF0,?C0032

F ?C0033:

; SOURCE LINE # 214

F 5388C0 ANL TCON,#0C0H

; SOURCE LINE # 216

7B00 MOV R3,#00H

7A00 R MOV R2,#HIGH c

7900 R MOV R1,#LOW c

120000 R LCALL _ScanKBOnce

B 5009 JNC ?C0034

; SOURCE LINE # 217

D AF00 R MOV R7,c

F 120000 R LCALL _chrtoint

8E00 R MOV NumChanel,R6

8F00 R MOV NumChanel+01H,R7

?C0034:

; SOURCE LINE # 222

C3 CLR C

E500 R MOV A,NumChanel+01H

9409 SUBB A,#09H

B E500 R MOV A,NumChanel

D 9400 SUBB A,#00H

F 5013 JNC ?C0035

; SOURCE LINE # 228

E500 R MOV A,NumChanel+01H

14 DEC A

FF MOV R7,A

7401 MOV A,#01H

A807 MOV R0,AR7

08 INC R0

A 8002 SJMP ?C0058

C ?C0057:

C C3 CLR C

D 33 RLC A

006E ?C0058:

E D8FC DJNZ R0,?C0057

0070 F500 R MOV svet,A

8003 SJMP ?C0036

?C0035:

; SOURCE LINE # 230

7500FF R MOV svet,#0FFH

?C0036:

; SOURCE LINE # 231

AD00 R MOV R5,svet

7F07 MOV R7,#07H

B 7E00 MOV R6,#00H

D 120000 R LCALL _WriteMax

; SOURCE LINE # 232

C3 CLR C

E500 R MOV A,NumChanel+01H

9409 SUBB A,#09H

E500 R MOV A,NumChanel

9400 SUBB A,#00H

506D JNC ?C0037

; SOURCE LINE # 233

; SOURCE LINE # 235

B E5D8 MOV A,ADCCON2COMPILER V9.00 HELLO 12/30/2010 14:08:56 PAGE 14

D 54F0 ANL A,#0F0H

F 4500 R ORL A,NumChanel+01H

F5D8 MOV ADCCON2,A

; SOURCE LINE # 236

D2DC SETB SCONV

?C0038:

; SOURCE LINE # 237

E5F5 MOV A,ADCCON3

20E7FB JB ACC.7,?C0038

A ?C0039:

; SOURCE LINE # 239

A E5DA MOV A,ADCDATAH

C 540F ANL A,#0FH

E ADD9 MOV R5,ADCDATAL

A0 F500 R MOV tmpVal,A

A2 ED MOV A,R5

A3 F500 R MOV tmpVal+01H,A

; SOURCE LINE # 241

A5 E500 R MOV A,NumChanel+01H

A7 6408 XRL A,#08H

A9 4500 R ORL A,NumChanel

AB 703E JNZ ?C0040

; SOURCE LINE # 242

; SOURCE LINE # 243

AD AC00 R MOV R4,tmpVal

AF 120000 E LCALL ?C?FCASTI

B2 7BF6 MOV R3,#0F6H

B4 7A28 MOV R2,#028H

B6 791C MOV R1,#01CH

B8 783F MOV R0,#03FH

BA 120000 E LCALL ?C?FPMUL

BD A804 MOV R0,AR4

BF A905 MOV R1,AR5

C1 AA06 MOV R2,AR6

C3 AB07 MOV R3,AR7

C5 7F00 MOV R7,#00H

C7 7EC0 MOV R6,#0C0H

C9 7D28 MOV R5,#028H

CB 7C44 MOV R4,#044H

CD 120000 E LCALL ?C?FPSUB

D0 E4 CLR A

D1 FB MOV R3,A

D2 FA MOV R2,A

D3 7940 MOV R1,#040H

00D5 7840 MOV R0,#040H

D7 120000 E LCALL ?C?FPDIV

DA 8F00 R MOV grad+03H,R7

DC 8E00 R MOV grad+02H,R6

DE 8D00 R MOV grad+01H,R5

E0 8C00 R MOV grad,R4

; SOURCE LINE # 244

E2 120000 E LCALL ?C?CASTF

E5 AD00 R MOV R5,NumChanel+01H

E7 AC00 R MOV R4,NumChanel

; SOURCE LINE # 245

E9 8008 SJMP ?C0059

EB ?C0040:

; SOURCE LINE # 246

EB AD00 R MOV R5,NumChanel+01H

ED AC00 R MOV R4,NumChanel

EF AF00 R MOV R7,tmpVal+01H

F1 AE00 R MOV R6,tmpValCOMPILER V9.00 HELLO 12/30/2010 14:08:56 PAGE 15

F3 ?C0059:

F3 120000 R LCALL _WriteValue

; SOURCE LINE # 247

F6 8009 SJMP ?C0042

F8 ?C0037:

; SOURCE LINE # 248

F8 7BFF MOV R3,#0FFH

FA 7A00 R MOV R2,#HIGH ?SC_44

FC 7900 R MOV R1,#LOW ?SC_44

00FE 120000 E LCALL _printf

?C0042:

; SOURCE LINE # 249

850000 R MOV OldChanel,NumChanel

850000 R MOV OldChanel+01H,NumChanel+01H

; SOURCE LINE # 252

758AFE MOV TL0,#0FEH

; SOURCE LINE # 253

A 758C32 MOV TH0,#032H

; SOURCE LINE # 254

D 438810 ORL TCON,#010H

; SOURCE LINE # 255

; SOURCE LINE # 256

020000 R LJMP ?C0032

; FUNCTION main (END)COMPILER V9.00 HELLO 12/30/2010 14:08:56 PAGE 16 CLASS MSPACE TYPE OFFSET SIZE

==== ===== ====== ==== ====== ====. . . . . . . . . . . . . . . PUBLIC DATA U_INT 0000H 2. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00DCH 1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1

_WriteValue. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----. . . . . . . . . . . . . . . . AUTO DATA U_INT 0000H 2. . . . . . . . . . . . . . . * REG * DATA U_INT 0004H 2

_WriteToUART . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----

count. . . . . . . . . . . . . . . . AUTO DATA U_INT 0000H 2. . . . . . . . . . . . . . . . . . AUTO DATA U_INT 0002H 2. . . . . . . . . . . . . . . . . AUTO DATA U_INT 0004H 2_t . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2

_printf. . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1

_ScanKBOnce. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----. . . . . . . . . . . . . . . . . AUTO DATA PTR 0000H 3. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1. . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1. . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1. . . . . . . . . . . . . . . . . . * REG * DATA U_INT 0002H 2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1. . . . . . . . . . . . . . . PUBLIC DATA U_INT 0002H 2CCON . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00E8H 1

DCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00E8H 1

_ReadMax . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----. . . . . . . . . . . . . . . * REG * DATA PTR 0082H 2. . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1

main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----

grad . . . . . . . . . . . . . . . . AUTO DATA FLOAT 0000H 4. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0004H 1. . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0005H 1. . . . . . . . . . . . . . . AUTO DATA U_INT 0006H 2. . . . . . . . . . . . . . . SFR DATA U_CHAR 00DAH 1. . . . . . . . . . . . . . . PUBLIC DATA U_INT 0004H 2. . . . . . . . . . . . . . . SFR DATA U_CHAR 00D9H 1. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0087H 1. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1

_WriteMax. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----. . . . . . . . . . . . . . . * REG * DATA PTR 0082H 2. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1. . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1

_?ix1000 . . . . . . . . . . . . . . . STATIC CODE ARRAY 0045H 11. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008DH 1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008AH 1

_ReadEXTRAM. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----. . . . . . . . . . . . . . . . . * REG * DATA PTR 0082H 2. . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00EFH 1. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D8H 1_val . . . . . . . . . . . . . . . PUBLIC XDATA ARRAY 0000H 254. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F5H 1COMPILER V9.00 HELLO 12/30/2010 14:08:56 PAGE 17 CLASS MSPACE TYPE OFFSET SIZE

==== ===== ====== ==== ====== ====

_WriteEXTRAM . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----. . . . . . . . . . . . . . . . . * REG * DATA PTR 0082H 2. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1. . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0084H 1. . . . . . . . . . . . . . . PUBLIC DATA U_INT 0006H 2

_chrtoint. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----

ch . . . . . . . . . . . . . . . . . AUTO DATA CHAR 0000H 1. . . . . . . . . . . . . . . AUTO DATA ARRAY 0001H 11. . . . . . . . . . . . . . . . . * REG * DATA U_INT 0006H 2. . . . . . . . . . . . . . . . PUBLIC DATA ARRAY 0008H 17INFORMATION: STATIC OVERLAYABLESIZE = 663 ----SIZE = 80 ----SIZE = 254 ----SIZE = ---- ----SIZE = 25 31SIZE = ---- ----SIZE = ---- ----OF MODULE INFORMATION.COMPILATION COMPLETE. 3 WARNING(S), 0 ERROR(S)

Описание основных блоков:

1. char ReadEXTRAM(unsigned char xdata *adr)

{char oldDPP=DPP;char val=0;=MyData;=*adr;=oldDPP;

return val;

}

Данная функция читает из внеш.ОЗУ из страницы, номер которой записан в переменную MyData (0х3) (см. начало программы - описание переменных), по адресу adr и возвращает значение, хранящееся в ячейке по этому адресу.

2.WriteEXTRAM(unsigned char xdata *adr,unsigned char val)

{  char oldDPP=DPP;=MyData;// третья страница памяти

*adr=val;=oldDPP;// возвращаем старое значение

}

Данная функция является аналогом ReadEXTRAM, только используется для записи: пишем в ячейку с адресом adr значение переменной val.

3.WriteToUART(unsigned short count)

{  short i;// счетчикshort tmp=0;("ADC Channel: %d\nData start:\n", NumChanel);// номер канала и служебное слово(i=0;i<=count;i++)

{=ReadEXTRAM(i);

//val=conv_val[i];

printf ("%d\n", tmp);// передача данных

}("Data stop\n");// конец вывода данных

}

Данная функция вызывает чтение из внешней памяти (ReadEXTRAM) и записывает в COM-Port.

4.WriteValue(unsigned short Value,unsigned short Channel)

{

if (Channel!=OldChanel)// если был сменен канал нужно вывести данные

{

WriteToUART(--IndexMas);// вывод

IndexMas=0;// данные выведены можно заполнять массив сначала

}

WriteEXTRAM(IndexMas,Value);// пишем во внешнее ОЗУ

//conv_val[IndexMas]=Value;// пишем данные во внешнее ОЗУ

IndexMas++;// увеличиваем индекс

if (IndexMas>=CountMas)// Проверяем не конец ли это массива

{

WriteToUART(--IndexMas);// если массив заполнен выведем данные

IndexMas=0;// данные выведены можно заполнять массив сначала

}

}

Данная функция методом комбинирования вышеописанных функций выводит данные, если канал был сменен (т.е. срабатывает при смене канала, когда нажата клавиша). Затем когда данные выведены, заполняет массив снова и пишет во внеш. ОЗУ и выводит в COM-Port.

Источник: https://www.bibliofond.ru/detail.aspx?id=724323