Микропроцессорные устройства



Download 3,03 Mb.
Pdf ko'rish
bet62/72
Sana25.02.2022
Hajmi3,03 Mb.
#282885
1   ...   58   59   60   61   62   63   64   65   ...   72
Bog'liq
mpus up

 
 


110 
Регистры скорости передачи UBRRL и UBRRH (рис. 7.20) 
Рис. 7.20 – Регистры UBRRL и UBRRH 

Bit 15 – USEL – выбор регистра. Этот разряд определяет, в какой из 
регистров модуля производится запись. Если разряд установлен в «1», 
обращение производится к регистру UCSRC. Если же разряд сброшен 
в «0», обращение производится к регистру UBRRH

Bit 11-0 UBRR[11..0] – значение скорости передачи в бодах. 
Установка скорости передачи в асинхронном режиме 
При работе в асинхронном режиме скорость обмена определяется не 
только содержимым регистра UBRR, но и состоянием разряда U2X регистра 
UCSRA. Если этот разряд установлен в «1», коэффициент деления предделите-
ля уменьшается в два раза, а скорость обмена соответственно удваивается. При 
работе в синхронном режиме этот разряд должен быть сброшен. 
Cкорость обмена определяется следующими формулами: 
Асинхронный 
Нормальный режим (U2X=0) 
OSC
OSC
BAUD
UBRR
1
16(UBRR 1)
16BAUD
f
f




Асинхронный 
Удвоенная скорость(U2X=1) 
OSC
OSC
BAUD
UBRR
1
8(UBRR 1)
8BAUD
f
f




Синхронный режим 
OSC
OSC
BAUD
UBRR
1
2(UBRR 1)
2BAUD
f
f




· · · · · · · · · · · · · · · · · · · · · · · · ·
Пример
· · · · · · · · · · · · · · · · · · · · · · · · ·
Например, для скорости 9 600 бит/сек, при встроенном 8 МГц осциллято-
ре в нормальном режиме в регистр UBRR нужно записать число: 


111 
UBRR
8 000 000 / 16 9 600
1 51,0833, округляем
51,
(
)


 

где BAUD – скорость передачи в бодах; 
OSC
f
– тактовая частота микроконтрол-
лера; UBRR – число в регистре контроллера скорости передачи (0…4 095), ко-
торое обеспечит требуемую скорость. 
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Полученное значение нужно прописать в 8-битные регистры UBRRL и 
UBRRH – в первый младшие 8 бит скорости, во второй – старшие 2 бита. В при-
мере число «51» размещаем в младшем регистре, в старшем пишется «0». 
Для инициализации и/или отправки нужно написать: 
// Пример инициализации 
void USART_Init( unsigned int baud ) 

/* Set baud rate */ 
UBRRH = (unsigned char)(baud>>8); 
UBRRL = (unsigned char)baud; 
/* Enable receiver and transmitter */ 
UCSRB = (1</* Set frame format: 8data, 2stop bit */ 
UCSRC = (1<
// Пример отправки 5–8 бит 
void USART_Transmit( unsigned char data ) 

/* Wait for empty transmit buffer */ 
while ( !( UCSRA & (1</* Put data into buffer, sends the data */ 
UDR = data; 

// Прием 5–8 бит 
unsigned char USART_Receive( void ) 

/* Wait for data to be received */ 
while ( !(UCSRA & (1</* Get and return received data from buffer */ 


112 
return UDR; 

// Отправка 9 бит 
void USART_Transmit( unsigned int data ) 

/* Wait for empty transmit buffer */ 
while ( !( UCSRA & (1</* Copy 9th bit to TXB8 */ 
UCSRB &= ~(1<if ( data & 0x0100 ) 
UCSRB |= (1</* Put data into buffer, sends the data */ 
UDR = data; 

// Прием 9 бит 
unsigned int USART_Receive( void ) 

unsigned char status, resh, resl; 
/* Wait for data to be received */ 
while ( !(UCSRA & (1</* Get status and 9th bit, then data */ 
/* from buffer */ 
status = UCSRA; 
resh = UCSRB; 
resl = UDR; 
/* If error, return -1 */ 
if ( status & (1<return -1; 
/* Filter the 9th bit, then return */ 
resh = (resh >> 1) & 0x01; 
return ((resh << 8) | resl); 



113 

Download 3,03 Mb.

Do'stlaringiz bilan baham:
1   ...   58   59   60   61   62   63   64   65   ...   72




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish