Юрий Ревич - Занимательная микроэлектроника

Здесь есть возможность читать онлайн «Юрий Ревич - Занимательная микроэлектроника» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Санкт-Петербург, Год выпуска: 2007, ISBN: 2007, Издательство: БХВ-Петербург, Жанр: sci_radio, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Занимательная микроэлектроника: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Занимательная микроэлектроника»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Книга на практических примерах рассказывает о том как проектировать, отлаживать и изготавливать современные электронные устройства в домашних условиях. Теоретические основы, физические принципы работы электронных схем и различных типов радиоэлектронных компонентов иллюстрируются практическими примерами в виде законченных радиолюбительских конструкций и дополняются советами по технологии изготовления любительской аппаратуры. На доступном уровне излагаются теоретические основы цифровой техники — математическая логика и различные системы счисления. Вторая часть книги полностью посвящена программированию микроконтроллеров, как основы современной электроники. Особое внимание уделяется обмену данными микроэлектронных устройств с персональным компьютером, приводятся примеры программ на Delphi.
Для широкого круга радиолюбителей

Занимательная микроэлектроника — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Занимательная микроэлектроника», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

rjmp contPT

prs:

sbrs Flag,1 ;расчет давления

rjmp contPT

ldi r28,pZH ;установка адреса коэфф. Z

ld temp,Y+

mov KoeffH,temp

ld temp,Y

mov KoeffL,temp ;получили коэфф. Z давления

adc AregL,KoeffL

add AregH,KoeffH ;прибавили к величине

ldi r28,pKH ;установка адреса коэфф. К

ld temp,Y+ mov

KoeffH,temp

ld temp,Y

mov KoeffL,temp ;получили коэфф. К давления

rcall Мр16 ;умножили

;деление на 1024

mov AregL,temp1

mov AregH,temp2 ;на 256

lsr AregH ;сдвинули старший

ror AregL ;сдвинули младший

lsr AregH ;сдвинули старший

ror AregL ;сдвинули младший; еще на 4

contPT:

sbrc Flag,0

ldi r28,TdH ;установка адреса — T

sbrc Flag,1

ldi r28,PdH ;установка адреса — P

rcall bin2BCD16 ;преобраз в дв. дес.

st Y+,ResH ;запоминаем в памяти старший BCD

mov temp,ResL ;младший распаковываем

swap temp

andi temp,0b00001111

st Y+,temp

mov temp,ResL

andi temp,0b00001111

st Y,temp ;и тоже сохраняем в памяти

;установка флагов и переменных для следующего цикла

clr count

sbrc Flag,0

rjmp _F0

clr Flag

sbr Flag,0x1 ;был бит 1, устанавливаем бит 0

reti

_F0:

clr Flag ;был бит 0, устанавливаем бит 1

sbr Flag,0x2

reti ;TIME0

readADC: ;чтение АЦП по прерыванию

sbrc Flag,0

ldi r28,Tram ;установка адреса — T

sbrc Flag,1

ldi r28,Pram ;установка адреса — P

ld AregH,Y+

ld AregL,Y

in temp1,ADCL ;получаем младший

in temp,ADCH ;старший

add AregL,tempi ;суммируем

adc AregH,temp

dec r28

st Y+,AregH ;запоминаем сумму

st Y,AregL ;в памяти

reti ;ADC

Мр16: ;умножение двух 16-разрядных величин

;AregL multiplicand low byte

;AregH multiplicand high byte

;KoeffL multiplier low byte

;KoeffH multiplier high byte

;temp result byte 0 (LSB)

;tempi result byte 1

;temp2 result byte 2

clr temp2 ;очистить ставший

mul AregL,KoeffL ;умножаем младшие

mov temp,r0 ;в r0 младший результата операции mul

mov temp1,r1 ;в r01 старший результата операции mul

mul AregH,KoeffL ;умножаем старший на младший

add tempi,r0 ;в r младший результата операции mul

adc temp2,r1 ;в r01 старший результата операции mul

mul AregL,KoeffH ;умножаем младший на старший

add temp1,r0 ;в r0 младший результата операции mul

adc temp2,r1 ;в r01 старший результата операции mul

mul AregH,KoeffH ;умножаем старший на старший

add temp2,r0 ;4-й разряд нам тут не требуется, но он в r01

ret

bin2BCD16: ;преобразование 16-разрядного hex в упакованный BCD

;input: hex value low=AregL hex value high = AregH

;output: BCD value digits 1 and 0 ResL

;BCD value digits 2 and 3(=0) ResH

ldi tempi,16 ;Init loop counter

clr ResH

clr ResL

clr ZH ;clear ZH (not needed for AT90Sxx0x)

bBCDx_1: lsl AregL ;shift input value

rol AregH ;through all bytes

rol ResL;

rol ResH

dec temp1 ;decrement loop counter

brne bBCDx_2 ;if counter not zero

ret ;return

bBCDx_2:ldi r30,AtBCD2+1 ;Z points to result MSB + 1

bBCDx_3:

ld temp, — Z ;get (Z) with pre-decrement

subi temp, — $03 ;add 0x03

sbrc temp,3 ;if bit 3 not clear

st Z, temp ;store back

ld temp, Z ;get (Z)

subi temp, — $30 ;add 0x30

sbrc temp, 7 ;if bit 7 not clear

st Z,temp ;store back

cpi ZL,AtBCDO ;done all three?

brne bBCDx_3 ;loop again if not

rjmp bBCDx_1

bin2bcd8: ;преобразование 8-разрядного hex в неупакованный BCD

;вход hex= temp, выход BCD temp1 — старш.; temp — младш.

;эта процедура работает только для исходного меньше 100

clr tempi ;clear result MSD

bBCD8_1: subi temp,10 ;input = input — 10

brcs bBCD8_2 ;abort if carry set

inc temp1 ;inc MSD

rjmp bBCD8_1 ;loop again

bBCD8_2:subi temp, — 10 ;compensate extra subtraction

ret

RESET: ;точка запуска программы после включения

ldi temp,low(RAMEND) ;загрузка указателя стека

out SPL,temp

ldi temp,high(RAMEND) ;загрузка указателя стека

out SPH,temp

ldi temp,1<

out ACSR,temp ;выкл. аналог, компаратор на всякий

;установка портов вход-выход

ldi temp,0b00111111 ;разряды

out DDRB,temp

ldi temp,0b01111111 ;сегменты

out DDRC,temp

ldi temp,0b10000000 ;знак "минус"

out DDRD,temp

;установка АЦП

ldi temp, 1<<<<

;start ADC 1/32 такт = 128 кГц ;interrupt enable

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Занимательная микроэлектроника»

Представляем Вашему вниманию похожие книги на «Занимательная микроэлектроника» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Занимательная микроэлектроника»

Обсуждение, отзывы о книге «Занимательная микроэлектроника» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x