Символ |
Позиция |
Имя и назначение |
|||||||||||||||
SM0 |
SCON.7 |
Биты управления режимом работы приемопередатчика. Устанавливаются/сбрасываются программно см. примечание 1
|
|||||||||||||||
SM1 |
SCON.6 |
||||||||||||||||
SM2 |
SCON.5 |
Бит управления режимом приемопередатчика. Устанавливается программно для запрета приема сообщения, в котором девятый бит имеет значение 0 |
|||||||||||||||
REN |
SCON.4 |
Бит разрешения приема. Устанавливается/сбрасывается программно для разрешения/запрета приема последовательных данных |
|||||||||||||||
TB8 |
SCON. 3 |
Передача бита 8. Устанавливается/сбрасывается программно для задания девятого передаваемого бита в режиме 9-битового передатчика |
|||||||||||||||
RB8 |
SCON.2 |
Прием бита 8. Устанавливается/сбрасывается аппаратно для фиксации девятого принимаемого бита в режиме 9-битового приемника |
|||||||||||||||
TI |
SCON. 1 |
Флаг прерывания передатчика. Устанавливается аппаратно при окончании передачи байта. Сбрасывается программно после обслуживания прерывания |
|||||||||||||||
RI |
SCON.0 |
Флаг прерывания приемника. Устанавливается аппаратно при приеме байта. Сбрасывается программно после обслуживания прерывания |
Для того, чтобы включить первый режим работы последовательного порта, достаточно выполнить следующую команду присваивания:
SCON=0x40|//выбрать 8-ми битный режим работы последовательного порта
0x10|//разрешить работу приёмника
0x02;// разрешить запись первого байта в передатчик
Конечно можно занести сразу готовую константу, но намного удобнее для понимания работы с регистром управления последовательного порта расписывать каждый бит отдельно. Пример использования готовой константы приведён ниже:
SCON=0x52;//8 bit UART, разрешение работы приёмника и передатчика
Скорость работы последовательного порта обычно задаётся таймером 1. На высоких скоростях обмена информации этот таймер используется в режиме с автоперезагрузкой (старшая тетрада TMOD = 0010В). При синхронизации последовательного порта от таймера 1 скорость обмена определяется выражением:
В следующей таблице приведена настройка таймера 1 для наиболее часто применяющихся скоростей обмена по последовательному порту:
Частота приема/передачи (BAUD RATE) |
Частота резонатора МГц |
Таймер/счетчик 1 |
|||
SMOD |
С/Т |
Режим (MODE) |
Перезагружаемое число |
||
19,2 Кгц |
11,059 |
1 |
0 |
2 |
0FDH |
9,6 Кгц |
11,059 |
0 |
0 |
2 |
0FDH |
4,8 Кгц |
11,059 |
0 |
0 |
2 |
0FAH |
2,4 Кгц |
11,059 |
0 |
0 |
2 |
0F4H |
1,2 Кгц |
11,059 |
0 |
0 |
2 |
0F4H |
3.4. Описание примера программы работы с последовательным портом
Листинги примеров программ, позволяющих отображать надписи на экране компьютера, приведены в приложении к методическим указаниям.
В первой программе, построенной по одномодульному принципу, используется две подпрограммы. В главной подпрограмме с именем main выполняются все необходимые действия по выводу строки символов на экран персонального компьютера. Эта подпрограмма записана в строках от 25 по 48. Имя подпрограммы определяется языком программирования C, который после предварительной инициализации переменных всегда передаёт управление подпрограмме с именем main.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.