Раздел: Документация
0 ... 90 91 92 93 94 95 96 ... 105 dummy:=dummy+(read status port(P address) and 1)*bit weight(i); («Считывание данных с линии SDA.*) delay(1); (*SCL=1 - 0.*) (*Если приняты последние данные, то SDA=1.> («Если принятые данные еще не последние, то SDA=0 для подтверждения. («Генерация тактовых импульсов подтверждения.*) SCL(O); end; if stop flag then begin SDA(1); ACK; end else begin SDA(O); ACK; SDA(1); end; receive:=dummy; end: (*TP6 программная библиотека PC № 9, генерация условия "СТОП" Procedure STOP; (•Генерация условия "СТОП".*) begin SDA(O); (*SDA=0.*) SCL(1); (*SCL=1.*) SDA(1); (*SDA=0 - 1.*) end; procedure init time; («Инициализация времени.*) begin write(Input initial second:); write(Input initial minute:); write(Input initial hour:); wnte(Input initial day:); write(Input initial date:); write(Input initial month:); write(Input initial year:); write(Input initial control word: end; procedure init 41T56(second,minute,hour,day,date,month,year,control word; byte) (•Установка значения секунд, минут, часов, дня недели, числа, месяца и года.*) begin («Генерация условия "СТАРТ".*) (•Передача подчиненного адреса, R/W=0.*) (•Смещение указателя на адрес 9.*) (•Передача секунд.*) read(second); read(minute); read(hour); read(day); read(date); read(month); read(year); read(control word) start; transmit(208); transmit(O); transmit(BCD(second)) transmit(BCD(minute)) transmit(BCD(hour)): transmit(BCD(day)); transmit(BCD(date)); transmit(BCD(month)); transmit(BCD(year)); transmit(BCD(control word (•Передача минут. С function МК41Т56(х:byte):real; var data:аггау[1..500] of byte; begin start;(«Генерация условия "СТАРТ".*) transmit(208);(«Передача подчиненного адреса, R/W=0.*) transmit(O);(«Смещение указателя на адрес 0 «) start;(«Новая генерация условия "СТАРТ" для чтения.*) transmit(208+1 );(«Передача подчиненного адреса 208+1 D, R/W=1.*) for i:=1 to 6 do data[i]:=receive(false); («Считывание данных с подтверждением. data[7]:=receive(true); («Считывание данных без подтверждения.») («При чтении адрес регистра увеличивается автоматически.») (•Преобразование данных в формат времени.*) if х=1 then MK41T56:=data[1] and (64+32+16)/16.10+data[1] and (8+4+2+1); if x=2 then MK41T56:=data[2] and (64+32+16)/16«10+data[2] and (8+4+2+1); if x=3 then MK41T56:=data[3] and (32+16)/16«10+data[3] and (8+4+2+1): if x=4 then MK41T56:=data[4] and (4+2+1); if x=5 then MK41T56:=data[5] and (32+16)/16«10+data[5] and (8+4+2+1); if x=6 then MK41T56:=data[6] and (32+16)/16«10+data[6] and (8+4+2+1); if x=7 then MK41T56:=data[7] and (128+64+32+16)/16«10+data[7] and (8+4+2+1); end; procedure show time; begin writelnC Inter 1С bus 41T456 Timer); writeln; writeCInput initial second:); writeln(MK41T56( 1):5:0); writeCInput initial minute:); writeln(MK41T56(2):5:0); write(Input initial hour:); writeln(MK41T56(3):5:0); writeCInput initial day:); writeln(MK41T56(4):5:0); writeCInput initial date:); writeln(MK41T56(5):5:0); writeCInput initial month:); writeln(MK41T56(6):5:0); writeCInput initial year:); writeln(MK41T56(7):5:0); end; begin centronic address; init time; init;(«Инициализация линий SCL и SDA.*) init 41T56(second,minute,hour,day,date,month,year,control word); repeat clrscr; show time; delay(10000); until keypressed; end. 7.5. Генераторы сигналов с цифровым управлением Генераторы сигналов с цифровым управлением позволяют формировать цифровые и аналоговые сигналы с частотой, устанавливаемой цифровой схемой управления. Микросхемы 8253/8254 - это интегральные таймеры/счетчики, которые широко используются для генерации цифровых сигналов. Микросхемы HSP45102 и ML2036 - программируемые генераторы синусоидальных колебаний. 7.5.1. Программируемый таймер/счетчик 8254 Микросхема (рис. 7.18) снабжена тремя 16-разрядными программируемыми счетчиками, каждый из которых имеет по три линии ввода/вывода: CLK, GATE и OUTPUT. На вход CLK подается тактовый сигнал частотой от 0 до 8 МГц. Вход GATE управляет запуском и остановкой счетчика. Если на этот вход поступает сигнал высокого уровня, то счетчик включается. На выходе OUTPUT появляется выходной сигнал счетчика. Режимы работы микросхемы задаются с помощью восьмиразрядной двунаправленной шины данных и пяти линий управления (АО, Al, WR, RD и CS). Данные записываются в четыре внутренних регистра: регистр 1 (DO D7 Буфер донних Регистр управления Счетмик О Снетчик 1 Счетмик 2 {9JCLK0 {jj)gateo {ш)оито {l5)CLKl {и) GATE 1 {t3)outi {?8)CLK2 {f)GATE2 {l7)0UT2 Рис. 7.18. Назначение выводов и внутренняя блок-схема 8253/8254 0 ... 90 91 92 93 94 95 96 ... 105
|