Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
92
Добавлен:
20.02.2016
Размер:
1.64 Mб
Скачать

ПРИЛОЖЕНИЕ Б (справочное)

СИСТЕМЫ СЧИСЛЕНИЯ

Так как естественным «алфавитом» микроконтроллера являются двоичные числа, то при их программировании используют запись чисел в двоичной и шестнадцатеричной системах счисления. Связь между двоичной и шестнадцатеричной системами счисления будет показана ниже по тексту. Чтобы избежать путаницы будем использовать обозначения чисел в различных системах счисления, принятые в Ассемблер Microchip:

двоичные – b’0101011’ (двоичное число заключено в апострофы);

шестнадцатеричные – 0х1A или 1Ah (число 1A).

Если число записано без дополнительных обозначений – оно по умолчанию считается десятичным.

Вспомним правила позиционной записи чисел на примере десятичных. Число 209

можно представить в виде 2·102+0·101+9·100. Нетрудно заметить, что цифры умножаются на основание системы счисления 10, возведенное в степень, соответствующую позиции (или разряда): единицы – нулевая степень, десятки – первая степень, сотни – вторая степень и т. д. Аналогично, в двоичной системе счисления, когда доступно только две

цифры, запись b’0101011’ можно представить в виде 0·27+0·26+1·25+0·24+1·23+0·22

+1·21+1·20 = 43.

В шестнадцатеричной системе счисления основанием является число 16, числа записываются следующими цифрами (значками для записи чисел): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F (таблица Б.1). Число 0x2C для перевода в десятичное можно

представить в виде 2·161+12·160 = 44.

Удобство шестнадцатеричной системы счисления заключается в простоте перевода чисел из нее в двоичную систему счисления и обратно. Если разделить байт (8 бит) на два полубайта по четыре бита (на старший и младший полубайты), то можно заметить, что каждый полубайт представляет собой число от 0 до 15 и, соответственно, может быть записан в виде шестнадцатеричной цифры. Другими словами, байт может быть записан двухзначным шестнадцатеричным числом, поэтому для перевода двоичного числа достаточно перевести отдельно старший и младший полубайты в шестнадцатеричные цифры (рисунок Б.1).

49

Таблица Б.1 Примеры записи чисел в различных системах счисления

Десятичное

Двоичное

Шестнадцатеричное

 

 

 

0

0

0

 

 

 

1

1

1

 

 

 

2

10

2

 

 

 

3

11

3

 

 

 

4

100

4

 

 

 

5

101

5

 

 

 

6

110

6

 

 

 

7

111

7

 

 

 

8

1000

8

 

 

 

9

1001

9

 

 

 

10

1010

A

 

 

 

11

1011

B

 

 

 

12

1100

C

 

 

 

13

1101

D

 

 

 

14

1110

E

 

 

 

15

1111

F

 

 

 

16

10000

10

 

 

 

 

 

 

255

11111111

FF

 

 

 

50

1110 0011

 

0хA7

1110=0хЕ

0011=0х3

0хА=1010

0х7=0111

 

0хE3

 

1010 0111

Перевод двоичного числа

Перевод шестнадцатеричного

в шестнадцатеричное

числа в двоичное

Рисунок Б.1 – Перевод чисел

51

ПРИЛОЖЕНИЕ В (справочное)

КАРТА ПАМЯТИ ДАННЫХ МИКРОКОНТРОЛЛЕРА PIC16F877A [2]

Символьное имя

Адрес

Символьное имя

Адрес

Символьное имя

Адрес

Символьное имя

Адрес

 

 

 

 

 

 

 

 

INDF

00h

INDF

80h

INDF

100h

INDF

180h

 

 

 

 

 

 

 

 

TMR0

01h

OPTION_REG

81h

TMR0

101h

OPTION_REG

181h

 

 

 

 

 

 

 

 

PCL

02h

PCL

82h

PCL

102h

PCL

182h

 

 

 

 

 

 

 

 

STATUS

03h

STATUS

83h

STATUS

103h

STATUS

183h

 

 

 

 

 

 

 

 

FSR

04h

FSR

84h

FSR

104h

FSR

184h

 

 

 

 

 

 

 

 

PORTA

05h

TRISA

85h

 

105h

 

185h

PORTB

06h

TRISB

86h

PORTB

106h

TRISB

186h

 

 

 

 

 

 

 

 

PORTC

07h

TRISC

87h

 

107h

 

187h

PORTD(1)

08h

TRISD(1)

88h

 

108h

 

188h

PORTE(1)

09h

TRISE(1)

89h

 

109h

 

189h

PCLATH

0Ah

PCLATH

8Ah

PCLATH

10Ah

PCLATH

18Ah

 

 

 

 

 

 

 

 

INTCON

0Bh

INTCON

8Bh

INTCON

10Bh

INTCON

18Bh

 

 

 

 

 

 

 

 

PIR1

0Ch

PIE1

8Ch

EEDATA

10Ch

EECON1

18Ch

 

 

 

 

 

 

 

 

PIR2

0Dh

PIE2

8Dh

EEADR

10Dh

EECON2

18Dh

 

 

 

 

 

 

 

 

TMR1L

0Eh

PCON

8Eh

EEDATH

10Eh

Резерв(2)

18Eh

TMR1H

0Fh

 

8Fh

EEADRH

10Fh

Резерв(2)

18Fh

T1CON

10h

 

90h

 

110h

 

190h

TMR2

11h

SSPCON2

91h

 

111h

 

191h

 

 

 

 

 

 

 

 

T2CON

12h

PR2

92h

 

112h

 

192h

 

 

 

 

 

 

 

 

SSPBUF

13h

SSPADD

93h

 

113h

 

193h

 

 

 

 

 

 

 

 

SSPCON

14h

SSPSTAT

94h

 

114h

 

194h

 

 

 

 

 

 

 

 

CCPR1L

15h

 

95h

Регистры

115h

 

195h

CCPR1H

16h

 

96h

116h

 

196h

 

общего

 

CCP1CON

17h

 

97h

назначения

117h

 

197h

 

 

 

RCSTA

18h

TXSTA

98h

16 байт

118h

 

198h

 

 

 

 

 

 

 

 

TXREG

19h

SPBRG

99h

 

119h

 

199h

 

 

 

 

 

 

 

 

RCREG

1Ah

 

9Ah

 

11Ah

 

19Ah

CCPR2L

1Bh

 

9Bh

 

11Bh

 

19Bh

CCPR2H

1Ch

 

9Ch

 

11Ch

 

19Ch

CCP2CON

1Dh

 

9Dh

 

11Dh

 

19Dh

 

 

 

 

 

 

 

 

52

Окончание приложения В

Символьное имя

Адрес

 

Символьное имя

Адрес

 

Символьное имя

Адрес

 

Символьное имя

Адрес

 

 

 

 

 

 

 

 

 

 

 

ADRESH

1Eh

 

ADRESL

9Eh

 

 

11Eh

 

 

19Eh

 

 

 

 

 

 

 

 

 

 

 

ADCON0

1Fh

 

ADCON1

9Fh

 

 

11Fh

 

 

19Fh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Регистры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20h

 

общего

A0h

 

Регистры

120h

 

Регистры

1A0h

Регистры

 

назначения

 

 

общего

 

 

общего

 

 

 

 

 

 

 

 

 

 

 

 

 

назначения

 

 

назначения

 

общего

 

 

80 байт

 

 

 

 

1EFh

 

 

 

 

 

 

 

 

назначения

 

 

EFh

 

80 байт

16Fh

 

80 байт

 

 

 

 

 

 

 

 

 

 

 

 

 

96 байт

 

 

 

 

 

 

 

 

 

 

 

 

Доступ к

F0h

 

Доступ к

170h

 

Доступ к

170h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7Fh

 

70h-7Fh

FFh

 

70h-7Fh

17Fh

 

70h-7Fh

17Fh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Банк 0

 

 

Банк 1

 

 

Банк 2

 

 

Банк 3

 

 

 

 

 

 

 

 

 

 

 

 

53