| 
 
 
 
 | Broka | Дата: Чт, 04.11.2010, 21:25  |                                                                                                                Сообщение # 26 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 252
 
 
 Замечания: ± На сайте с 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
 
  |  
 |  |  |  |