Broka |
Дата: Чт, 04.11.2010, 21:25 | Сообщение # 26 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
253
Замечания:
±
На сайте с 30.09.2009
Статус:
Offline
|
mikhail09p Это просто ознакомление с передачей по RS - 485, ни чего интересного там по моему нет, да и смеятся наверно многие будут. слишком всё просто написано Приёмник! @ device pic16f628a, MCLR_ON, WDT_ON, PWRT_ON DEFINE OSC 4 ; Частота осциллятора 4 МГц define BUTTON_PAUSE 20 OUTPUT PORTB.6 OUTPUT PORTB.7 PORTB.6 = 0 PORTB.7 = 0 ;-------------------------- Настройки USART -------------------------- DEFINE HSERIAL_BAUD 9600 ; Скорость передачи данных, бод DEFINE HSERIAL_TXSTA = %00000000 ; Выключить передатчик USART DEFINE HSERIAL_RCSTA = %10010000 ; Включить приемник USART DEFINE HSERIAL_SPBRG 6 ; Значение регистра SPBRG для выбранной скорости DEFINE HSERIAL_CLEAR = ON ; Автоматическая очистка бита ошибки переполнения define HSER_CLROERR ;-----------Настройки подключения ЖКИ-------------------------- DEFINE LCD_TYPE ALPHA ;Тип ЖКИ - буквенно -цифровой DEFINE LCD_DPORT PORTA ;Порт данных ЖКИ DEFINE LCD_DBIT 0 ; Бит данных ЖКИ DEFINE LCD_EPORT PORTB ; Управление линией E DEFINE LCD_EBIT 3 ; Управление линией E DEFINE LCD_RSPORT PORTA ; Управление линией RS DEFINE LCD_RSBIT 4 ; Управление линией RS DEFINE LCD_BITS 4 ;Разрядность шины данных DEFINE LCD_COMMANDUS 2000 ; Задержка перед посылкой команды DEFINE LCD_DATAUS 50 ; Задержка перед посылкой данных DEFINE LCD_LINES 2 ; Количество строк ЖКИ ;---------------------------------------------------------------- J var byte main: clear hserin 1000,loop1,[J] loop1: if J = 135 then Norma if J = 110 then Pojar if J = 120 then Pvod if J = 130 then Temp if J = 140 then Metan if J = 145 then CO2 if J = 150 then Cirkle if J = 000 then Svyz goto main Norma: LCDOUT $FE, 1 ,$20,$42,$43,$45,$20,$A8,$41,$50,$41,$4D,$45,$54,$50,$AE LCDOUT $FE, $C0 ,$20,$20,$20,$20,$42,$20,$48,$4F,$50,$4D,$45 PAUSE 500 high PORTB.6 pause 500 low PORTB.6 pause 500 goto main Pojar: LCDOUT $FE, 1 ,$20,$A8,$50,$4F,$48,$A5,$4B,$48,$4F,$42,$45,$48,$A5,$45,$21 LCDOUT $FE, $C0 ,$20,$42,$20,$A8,$4F,$4D,$45,$E2,$45,$48,$A5,$45,$21 PAUSE 500 dtmfout PORTB.7,[2,4,2,4,8,0]:low PORTB.7 lcdout $FE,1 pause 100 goto main Pvod: LCDOUT $FE, 1 ,$E0,$41,$42,$A7,$45,$48,$A5,$45,$20,$42,$4F,$E0,$AE LCDOUT $FE, $C0 ,$20,$20,$20,$48,$45,$20,$42,$20,$48,$4F,$50,$4D,$45,$21 PAUSE 500 dtmfout PORTB.7,[2,4,2,4,8,0]:low PORTB.7 lcdout $FE,1 pause 100 goto main Temp: LCDOUT $FE, 1 ,$54,$45,$4D,$A8,$45,$50,$41,$54,$A9,$50,$41,$20,$42,$4F,$E0,$AE LCDOUT $FE, $C0 ,$20,$20,$20,$42,$AE,$43,$4F,$4B,$41,$B1,$21 PAUSE 500 dtmfout PORTB.7,[2,4,2,4,8,0]:low PORTB.7 lcdout $FE,1 pause 100 goto main Svyz: LCDOUT $FE, 1 ,$20,$43,$42,$B1,$A4,$62,$20,$43,$20,$A0,$A7,$4F,$4B,$4F,$4D LCDOUT $FE, $C0 ,$20,$20,$20,$48,$41,$50,$A9,$AC,$45,$48,$41,$21 PAUSE 500 dtmfout PORTB.7,[0,9,0,9] low PORTB.7 goto main Metan: LCDOUT $FE, 1 ,$A4,$41,$A1,$41,$A4,$4F,$42,$41,$48,$4F,$43,$54,$62 LCDOUT $FE, $C0 ,$20,$20,$20,$20,$4D,$45,$54,$41,$48,$21 PAUSE 500 dtmfout PORTB.7,[2,4,2,4,8,0]:low PORTB.7 lcdout $FE,1 pause 100 goto main CO2: LCDOUT $FE, 1 ,$43,$4F,$E0,$45,$50,$A3,$41,$48,$A5,$45,$20,$43,$4F LCDOUT $FE, $C0 ,$20,$20,$20,$A8,$4F,$42,$AE,$AC,$45,$48,$4F,$45,$21 PAUSE 500 dtmfout PORTB.7,[2,4,2,4,8,0]:low PORTB.7 lcdout $FE,1 pause 100 goto main Cirkle: LCDOUT $FE, 1 ,$20,$E1,$A5,$50,$4B,$A9,$A7,$B1,$E1,$A5,$B1 LCDOUT $FE, $C0 ,$4F,$54,$43,$A9,$54,$43,$54,$42,$A9,$45,$54,$21 PAUSE 500 dtmfout PORTB.7,[2,4,2,4,8,0]:low PORTB.7 lcdout $FE,1 pause 100 goto main Передатчик! DEFINE OSC 4 ; Частота осциллятора 4 МГц ;-------------------------- Настройки USART -------------------------- DEFINE HSERIAL_BAUD 9600 ; Скорость передачи данных, бод DEFINE HSERIAL_TXSTA = %00100000 ; Включить передатчик USART DEFINE HSERIAL_RCSTA = %10000000 ; Выключить приемник USART DEFINE HSERIAL_SPBRG 6 ; Значение регистра SPBRG для выбранной скорости DEFINE HSERIAL_CLEAR = ON ; Автоматическая очистка бита ошибки переполнения ;------------------Конфигурация------------------------------------ TRISA = %11110000 PORTA.0 = 0 ;------------------------ Главная программа ----------------------- OPTION_REG.7 = 0 J var byte loop: PORTA.0 = 1 clear pause 100 J = 135 if PORTB.0 = 0 then J = 110 if PORTB.3 = 0 then J = 120 if PORTB.4 = 0 then J = 130 if PORTB.5 = 0 then J = 140 if PORTB.6 = 0 then J = 145 if PORTB.7 = 0 then J = 150 Hserout [J] Goto loop ' Do it all over again End
Наладчик КИП и А
Сообщение отредактировал
Broka - Чт, 04.11.2010, 21:29
|
|
|
|