· регистр или байт/слово RAM для отслеживания передаваемых/получаемых битов (назовем его BitCnt)
В режиме получения данных, 8-bit T/C конфигурируется так, что спадающий фронт на линии P0.1 означает приход стартового бита и автоматически настраивает 8-bit T/C на работу. Для этого устанавливается в 1 первый бит регистра выбора отрицательного/положительного фронта, по которому будет генерироваться прерывание (P0IES), и устанавливается в 1 третий бит регистра разрешения прерываний IE1. Для 8-bit T/C и P0.1 используется один вектор прерывания. Установка в 1 бита ISCTL в регистре TCCTL назначает сигнал carry от 8-bit T/C источником прерывания. Затем 8-bit T/C работает так, что бит данных, поступающий на контакт P0.1, «запирается» в бите RXD регистра TCCTL – и генерируется прерывание, 8-bit T/C вырабатывает сигнал carry. Теперь программными средствами бит данных из RXD записывается в буфер RXTXData. Регистр TCPLD определяет точный временной интервал, по истечении которого T/C получает следующий бит данных. Следующий сигнал переполнения carry генерируется в середине следующего бита данных.
В режиме передачи данных, каждый бит данных из буфера RXTXData программными средствами помещается в бит TXD регистра TCCTL, который затем 8-bit T/C передает на контакт P0.2. Сигнал переполнения от 8-bit T/C автоматически «выталкивает» бит TXD на вывод P0.2. Затем 8-bit T/C автоматически перезапускается с помощью регистра TCPLD и продолжает пересылку данных.
Скорость передачи данных измеряется в бодах и задается двумя регистрами: UBR1 и UBR0. В зависимости от заданной скорости передачи данных, высчитывается битовый интервал в 8-bit T/C. Битовый интервал это интервал, в течение которого 8-bit T/C «запирает» бит данных в RXD или «выталкивает» бит данных из TXD, и находится просто как отношение частоты тактирования T/C и скорости передачи данных в бодах. Вычисленный битовый интервал загружается в регистр TCPLD, который автоматически активирует 8-bit T/C.
Приложение 1. Схема электрическая принципиальная
Приложение 2. Спецификация элементов схемы
Позиционное обозначение |
Наименование/Номинал |
Количество |
Микросхемы |
||
DD1 |
MSP430C325 |
1 |
DD2 |
ADM232A |
1 |
Резонатор кварцевый |
||
Q1 |
РК169 32768Гц |
1 |
Конденсаторы |
||
С1-С5 |
К10-17-H50-0,1мкФ |
5 |
Разъемы |
||
X1-X2 |
TB-01A |
2 |
X3 |
DB9M |
1 |
Приложение 3. Листинг программы freq_measure.asm
; *******************************************************
; * Frequency Measurement Program (without RS232 setup) *
; *******************************************************
;Определение символических констант
RAM_orig .set 00200h ; RAMStartaddress
ROM_orig .set 0C000h ; ROM Start
Stack .set 00400h ; RAM Stackpointer
I_vectors .set 0FFFFh ; Interrupt vectors
Main .equ ROM_orig ; Program Start
;
; CPU Registers Used
sec_counter .equ R5 ; Register used to count BT secs
N1_LSB .equ R6 ; Low word of counter for P0.3
N1_MSB .equ R7 ; High word of counter for P0.3
N2_LSB .equ R8 ; Low word of counter for P0.4
N2_MSB .equ R9 ; High word of counter for P0.4
;
; Выделение позиций битов для BASICTIMER
BTIE .equ 080h ; BT interrupt enable bit
IP0 .equ 001h ; separate bit addresses
IP1 .equ 002h ; of BTCTL register
IP2 .equ 004h
DIV .equ 020h
SSEL .equ 080h
;
; Выделение позиций битов для Port0
P0IFG3 .equ 008h ; interrupt flag for P0.3 line
P0IFG4 .equ 010h ; interrupt flag for P0.4 line
;
; LPM3 bits in SR
LPM3 .equ 0D0h
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.