ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠœΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½Ρ‹Π΅ устройства

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’Ρ‹Π·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π–Πš экрана. ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΡΠΎΡ…ранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² измСрСния. ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΡΠΎΡ…ранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² измСрСния. ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° чтСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² измСрСния ΠΈΠ· ΠžΠ—Π£ PCF 8583. ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π–Πš экрана. ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ записки ΠΊ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ. ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° записи Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² измСрСния Π² ΠžΠ—Π£ PCF 8583… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠœΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½Ρ‹Π΅ устройства (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π€Π΅Π΄Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ агСнтство ΠΏΠΎ Π°Ρ‚ΠΎΠΌΠ½ΠΎΠΉ энСргии БнСТинская государствСнная Ρ„ΠΈΠ·ΠΈΠΊΠΎ-тСхничСская акадСмия ΠšΠ°Ρ„Π΅Π΄Ρ€Π° ΠΠ˜Π’Π‘ ΠŸΠžΠ―Π‘ΠΠ˜Π’Π•Π›Π¬ΠΠΠ― Π—ΠΠŸΠ˜Π‘ΠšΠ К ΠšΠ£Π Π‘ΠžΠ’ΠžΠ™ Π ΠΠ‘ΠžΠ’Π• ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅: «ΠœΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½Ρ‹Π΅ устройства».

Π“Ρ€ΡƒΠΏΠΏΠ° Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚______________

(подпись) ΠŸΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ________

(подпись) БнСТинск

Аннотация ЦСль Ρ€Π°Π±ΠΎΡ‚Ρ‹: Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅Π»ΡŒ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ наТатия клавиши.

Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ курсовым ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ трСбуСтся ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ:

— ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ задания;

— Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°;

— Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π½Π° PIC-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅;

— ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ записки ΠΊ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ

1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

2. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

3. Π“Ρ€Π°Ρ„-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

4. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ элСктричСская схСма

5. БпСцификация

6. Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

Π˜Π·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π˜Π·ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹Π΅ значСния ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² ΠžΠ—Π£ ΠΌΠΈΠΊΡ€ΠΎcΡ…Π΅ΠΌΡ‹ PCF8583. Π˜Π·ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹Π΅ значСния вывСсти Π½Π° Π–Πš — дисплСй.

2. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

LIST P=16F84f

INCLUDE

count EQU 0×10

count1 EQU 0×20

count2 EQU 0×21

LCDcfg EQU 0×22

LCDout EQU 0×23

Time EQU 0×11

temp EQU 0×12

DATA_I2C EQU 0×34

TX_Buffer EQU 0×32

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _RC_OSC

GOTO START

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° записи Π±Π°ΠΉΡ‚Π° control ΠΏΠΎ ΡˆΠΈΠ½Π΅ I2C

Write_I2C

CALL Start_Bit_I2C; Π’Ρ‹Π΄Π°Ρ‡Π° Π½Π° ΡˆΠΈΠ½Ρƒ I2C Start Bit

АдрСс часов с ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π±ΠΈΡ‚ΠΎΠΌ для записи

MOVLW 0xA0

CALL Transmit_Data

Π’Π½ΡƒΡ‚Ρ€Π΅Π½ΠΈΠΉ адрСс часов для записи

MOVLW 0×00; адрСс для записи

CALL Transmit_Data; Π½Π° ΡˆΠΈΠ½Ρƒ I2C…

MOVF DATA_I2C, w; Π’Ρ‹Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ…

CALL Transmit_Data; Π½Π° ΡˆΠΈΠ½Ρƒ I2C…

CALL Stop_Bit_I2C; Π’Ρ‹Π΄Π°Ρ‡Π° Π½Π° ΡˆΠΈΠ½Ρƒ I2C Stop Bit

RETURN

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сброса счётчика сСкунд Π½Π° Ρ‡Π°ΡΠ°Ρ… PCF 8583

Write_time_I2C

CALL Start_Bit_I2C; Π’Ρ‹Π΄Π°Ρ‡Π° Π½Π° ΡˆΠΈΠ½Ρƒ I2C Start Bit

АдрСс часов с ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π±ΠΈΡ‚ΠΎΠΌ для записи

MOVLW 0xA0

CALL Transmit_Data

Π—Π°ΠΏΠΈΡΡŒ рСгистра с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ с ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π±ΠΈΡ‚ΠΎΠΌ Π½Π° Π·Π°ΠΏΠΈΡΡŒ

MOVLW 0×02

CALL Transmit_Data

MOVLW 0×00

CALL Transmit_Data

MOVLW 0×00

CALL Transmit_Data

CALL Stop_Bit_I2C; Π’Ρ‹Π΄Π°Ρ‡Π° Π½Π° ΡˆΠΈΠ½Ρƒ I2C Stop Bit

RETURN

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° чтСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² измСрСния ΠΈΠ· ΠžΠ—Π£ PCF 8583

Read_Saved_I2C

CALL Start_Bit_I2C; Π’Ρ‹Π΄Π°Ρ‡Π° Π½Π° ΡˆΠΈΠ½Ρƒ I2C Start Bit

адрСс часов с ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π±ΠΈΡ‚ΠΎΠΌ для записи

MOVLW 0xA0

CALL Transmit_Data

Π—Π°ΠΏΠΈΡΡŒ рСгистра с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ с ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π±ΠΈΡ‚ΠΎΠΌ Π½Π° Π·Π°ΠΏΠΈΡΡŒ

MOVLW 0×11

CALL Transmit_Data

Новая стартовая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

CALL Start_Bit_I2C; Π’Ρ‹Π΄Π°Ρ‡Π° Π½Π° ΡˆΠΈΠ½Ρƒ I2C Start Bit

АдрСс часов с ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π±ΠΈΡ‚ΠΎΠΌ для чтСния

MOVLW 0xA1

CALL Transmit_Data

CALL Receive_data

CALL Stop_Bit_I2C; Π’Ρ‹Π΄Π°Ρ‡Π° Π½Π° ΡˆΠΈΠ½Ρƒ I2C Stop Bit

RETURN

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° записи Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² измСрСния Π² ΠžΠ—Π£ PCF 8583

Save_time_I2C

MOVWF Time

CALL Start_Bit_I2C; Π’Ρ‹Π΄Π°Ρ‡Π° Π½Π° ΡˆΠΈΠ½Ρƒ I2C Start Bit

АдрСс часов с ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π±ΠΈΡ‚ΠΎΠΌ для записи

MOVLW 0xA0

CALL Transmit_Data

Π—Π°ΠΏΠΈΡΡŒ рСгистра с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ с ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π±ΠΈΡ‚ΠΎΠΌ Π½Π° Π·Π°ΠΏΠΈΡΡŒ

MOVLW 0×10

CALL Transmit_Data

Новая стартовая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

CALL Start_Bit_I2C; Π’Ρ‹Π΄Π°Ρ‡Π° Π½Π° ΡˆΠΈΠ½Ρƒ I2C Start Bit

АдрСс часов с ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π±ΠΈΡ‚ΠΎΠΌ для чтСния

MOVLW 0xA0

CALL Transmit_Data

MOVLW 0×10

CALL Transmit_Data

MOVF Time, W

CALL Transmit_Data

MOVF Time, W

CALL Transmit_Data

CALL Stop_Bit_I2C; Π’Ρ‹Π΄Π°Ρ‡Π° Π½Π° ΡˆΠΈΠ½Ρƒ I2C Stop Bit

RETURN

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° чтСния сСкунд с Ρ‡Π°ΡΠΎΠ² PCF 8583

Read_I2C

CALL Start_Bit_I2C; Π’Ρ‹Π΄Π°Ρ‡Π° Π½Π° ΡˆΠΈΠ½Ρƒ I2C Start Bit

АдрСс часов с ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π±ΠΈΡ‚ΠΎΠΌ для записи

MOVLW 0xA0

CALL Transmit_Data

Π—Π°ΠΏΠΈΡΡŒ рСгистра с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ с ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π±ΠΈΡ‚ΠΎΠΌ Π½Π° Π·Π°ΠΏΠΈΡΡŒ

MOVLW 0×02

CALL Transmit_Data

Новая стартовая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

CALL Start_Bit_I2C; Π’Ρ‹Π΄Π°Ρ‡Π° Π½Π° ΡˆΠΈΠ½Ρƒ I2C Start Bit

АдрСс часов с ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π±ΠΈΡ‚ΠΎΠΌ для чтСния

MOVLW 0xA1

CALL Transmit_Data

CALL Receive_data

CALL Stop_Bit_I2C; Π’Ρ‹Π΄Π°Ρ‡Π° Π½Π° ΡˆΠΈΠ½Ρƒ I2C Stop Bit

RETURN

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° чтСния Π±Π°ΠΉΡ‚Π° с ΡˆΠΈΠ½Ρ‹ IIC

Receive_data

CLRF DATA_I2C

MOVLW 8

MOVWF temp

BCF STATUS, 5

BCF PORTB, 4; SDA — Π²Ρ…ΠΎΠ΄

BCF STATUS, 5

RX_Data_LP

RLF DATA_I2C, 1

BCF PORTB, 5

NOP

NOP

NOP

NOP

NOP

BCF DATA_I2C, 0

BTFSS PORTB, 4

BCF DATA_I2C, 0

BCF PORTB, 5

DECFSZ temp, 1

GOTO RX_Data_LP

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π±ΠΈΡ‚Π° подтвСрТдСния ASK=1

BCF STATUS, 5

BCF PORTB, 4 ;SDA — Π²Ρ‹Ρ…ΠΎΠ΄

BCF STATUS, 5

BCF PORTB, 4

NOP

BCF PORTB, 5

NOP

NOP

NOP

NOP

BCF PORTB, 5

RETURN

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π±Π°ΠΉΡ‚Π° ΠΏΠΎ ΡˆΠΈΠ½Π΅ I2C

Transmit_Data

MOVWF TX_Buffer

MOVLW 8

MOVWF temp

BCF STATUS, 5; Π²Ρ‹Π±ΠΎΡ€ Π±Π°Π½ΠΊΠ° 1

BCF PORTB, 4; SDA — Π²Ρ‹Ρ…ΠΎΠ΄

BCF STATUS, 5; Π²Ρ‹Π±ΠΎΡ€ Π±Π°Π½ΠΊΠ° 0

BCF PORTB, 5

TX_Data_LP

BTFSS TX_Buffer, 7

GOTO TX_Data_Lo; bits 7 = 0

BCF PORTB, 4

GOTO TX_Data_LP1

TX_Data_Lo

BCF PORTB, 4

TX_Data_LP1

BCF PORTB, 5

NOP

NOP

NOP

NOP

BCF PORTB, 5

RLF TX_Buffer, 1

DECFSZ temp, 1

GOTO TX_Data_LP

RLF TX_Buffer, 1

BCF PORTB, 4

Π§Ρ‚Π΅Π½ΠΈΠ΅ Π±ΠΈΡ‚Π° подтвСрТдСния — ASK

BCF STATUS, 5

BCF TRISB, 4; PORTB, 4 — Π²Ρ…ΠΎΠ΄

BCF STATUS, 5

BCF PORTB, 5

NOP

NOP

NOP

NOP

NOP

BTFSC PORTB, 4

NOP

BCF PORTB, 5

RETURN

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ стартовой Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Start_Bit_I2C

BCF PORTB, 4

BCF STATUS, 5; Π²Ρ‹Π±ΠΎΡ€ 1 Π±Π°Π½ΠΊΠ°

BCF PORTB, 4; SDA — ΠΊΠ°ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· MCU Π²

EEPROM

BCF STATUS, 5; Π²Ρ‹Π±ΠΎΡ€ 0 Π±Π°Π½ΠΊΠ°

BCF PORTB, 4

NOP

NOP

NOP

NOP

BCF PORTB, 5

NOP

NOP

NOP

NOP

NOP

BCF PORTB, 4

NOP

NOP

NOP

NOP

NOP

BCF PORTB, 5

RETLW 0

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ стопой Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Stop_Bit_I2C

BCF PORTB, 4

BCF STATUS, 5; Π²Ρ‹Π±ΠΎΡ€ 1 Π±Π°Π½ΠΊΠ°

BCF PORTB, 4; SDA — ΠΊΠ°ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· MCU Π²

;EEPROM

BCF STATUS, 5; Π²Ρ‹Π±ΠΎΡ€ 0 Π±Π°Π½ΠΊΠ°

BCF PORTB, 4

NOP

NOP

BCF PORTB, 5

NOP

NOP

BCF PORTB, 4

NOP

NOP

RETURN

############################################################

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ

Wait250ms

MOVLW 0×77; 250 мс

MOVLW count2

c03 MOVLW 0×02

MOVWF count

c02 MOVLW 0x1F

MOVWF count1

c01 DECFSZ count1

GOTO c01

DECFSZ count

GOTO c02

DECFSZ count2

GOTO c03

RETURN

Wait100

MOVLW 0×02; 100 мкс

MOVWF count1

w50 MOVLW 0×14

MOVWF count

c24 DECFSZ count

GOTO c24

DECFSZ count1

GOTO w50

RETURN

Wait50

MOVLW 0×14; 50 мкс

MOVWF count

c13 DECFSZ count

GOTO c13

RETURN

Wait15

MOVLW 0×06; 4 мкс

MOVWF count

c15 DECFSZ count

GOTO c15

RETURN

Wait160

MOVLW 0×35; 160 мкс

MOVWF count

c16 DECFSZ count

GOTO c16

RETURN

Wait1k; 1 сСк

MOVLW 0×04

MOVWF count2

w2 MOVLW 0xE0

MOVWF count1

w1 DECFSZ count1

GOTO w1

DECFSZ count2

GOTO w2

RETURN

#################################################################

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄Π° Π±Π°ΠΉΡ‚Π° Π½Π° Π–Πš экран

NumOut

MOVWF temp

BCF temp, 7; 0 Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ

BCF temp, 6; 0 Π½ΠΎΠΌΠ΅Ρ€

BCF temp, 5; 1 столбца

BCF temp, 4; 1 содСрТащий символы для Π²Ρ‹Π²ΠΎΠ΄Π°

BCF LCDcfg, 0

MOVF temp, W

CALL LCD_write; Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сначало ΡΡ‚Π°Ρ€ΡˆΡƒΡŽ Ρ‚Π΅Ρ‚Ρ€Π°Π΄Ρƒ

RETURN

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° записи ΠΏΠΎ Π»ΠΈΠ½ΠΈΡΠΌ Π΄Π°Π½Π½Ρ‹Ρ… младшСй Ρ‚Π΅Ρ‚Ρ€Π°Π΄Ρ‹.

LCD_writehalf

MOVWF LCDout

BCF STATUS, RP0

BCF PORTA, 4

ALL Wait250ms

MOVF LCDout, W

MOVWF PORTA

BCF PORTB, 0

CALL Wait160

BCF PORTB, 0

CLRF PORTB

CLRF PORTA

RETURN

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° записи ΠΏΠΎ Π»ΠΈΠ½ΠΈΡΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Ρ†Π΅Π»ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π°.

LCD_write

BCF STATUS, RP0

MOVWF LCDout

SWAPF LCDout, W;

MOVWF PORTA

BTFSS LCDcfg, 0

BCF PORTA, 4

BTFSC LCDcfg, 0

BCF PORTA, 4

BCF PORTB, 0

BTFSS LCDcfg, 0

CALL Wait250ms

BTFSC LCDcfg, 0

CALL Wait50

BCF PORTB, 0

MOVF LCDout, W

MOVWF PORTA

BTFSS LCDcfg, 0

BCF PORTA, 4

BTFSC LCDcfg, 0

BCF PORTA, 4

BCF PORTB, 0

BTFSS LCDcfg, 0

CALL Wait250ms

BTFSC LCDcfg, 0

CALL Wait50

BCF PORTB, 0

CALL Wait250ms

RETURN

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π–Πš экрана.

IniLCD

MOVLW 0x0E

wait_power

CALL Wait1k

DECFSZ temp

GOTO wait_power

BCF LCDcfg, 0

MOVLW 0×03

CALL LCD_writehalf

CALL Wait250ms

MOVLW 0×03

CALL LCD_writehalf

CALL Wait160

BCF LCDcfg, 0

MOVLW 0×03

CALL LCD_writehalf

CALL Wait50

MOVLW 0×02

CALL LCD_writehalf

CALL Wait50

MOVLW 0×20

CALL LCD_write

CALL Wait50

MOVLW 0×20

CALL LCD_write

CALL Wait50

MOVLW 0x0E

CALL LCD_write

CALL Wait50

MOVLW 0x0F

CALL LCD_write

CALL Wait50

MOVLW B'11 111'

CALL LCD_write

CALL Wait50

MOVLW B'10 000 000'

CALL LCD_write

CALL Wait50

BCF LCDcfg, 0 MOVLW B'110'; установка Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСмСщСния курсора Π–Πš экрана

CALL LCD_write

MOVLW 0×02;

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ курсор Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС.

CALL LCD_write

MOVLW 0×01;

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Π–Πš экрана

CALL LCD_write

CALL Wait250ms

CALL Wait250ms

CALL Wait250ms

RETURN

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

OutTime

BCF LCDcfg, 0

MOVLW 0×02; ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ курсор Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС.

CALL LCD_write

CALL Read_I2C

SWAPF DATA_I2C, W

CALL NumOut

MOVF DATA_I2C, W

CALL NumOut

CALL Save_time_I2C; сохраняСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π² ΠžΠ—Π£

PCF 8583

RETURN

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΡΠΎΡ…ранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² измСрСния

GetTime

BCF LCDcfg, 0

MOVLW 0×02; ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ курсор Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС.

CALL LCD_write

CALL Read_I2C; read seconds from clock

MOVF DATA_I2C, W

MOVWF Time

CALL Save_time_I2C; сохраняСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π² ΠžΠ—Π£

PCF 8583

CALL Read_Saved_I2C; считываСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΈΠ· ΠžΠ—Π£

PCF 8583

SWAPF DATA_I2C, W

CALL NumOut; Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° Π–Πš экран Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ

MOVF DATA_I2C, W

CALL NumOut; Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° Π–Πš экран Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ

RETURN

Основная ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

START

CLRF PORTB

CLRF PORTA

BCF STATUS, RP0

Настройка ΠΏΠΎΡ€Ρ‚ΠΎΠ²

MOVLW B'11 100 000'

MOVWF TRISA&0x7F

MOVLW B'11 001 100'

MOVWF TRISB

BCF OPTION_REG, 7

CALL IniLCD;

Π’Ρ‹Π·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π–Πš экрана.

BCF STATUS, RP0; Π²Ρ‹Π±ΠΎΡ€ 0Π³ΠΎ Π±Π°Π½ΠΊΠ° памяти

CALL Read_Saved_I2C; считываСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΈΠ· ΠžΠ—Π£

PCF 8583 ΠΏΡ€ΠΈ сохранСнии

SWAPF DATA_I2C, W

CALL NumOut; Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° Π–Πš экран Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ

OVF DATA_I2C, W

CALL NumOut; Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° Π–Πš экран Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ

MZ

BTFSC PORTB, 3

GOTO MZ; ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ MZ, ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π΅ Π½Π°ΠΆΠ°Ρ‚Π°

CALL Write_time_I2C; Ρ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° сброс счСтчика, Π½Π°Ρ‡Π°Π»ΠΎ отсчСта

M1

BTFSS PORTB, 3

GOTO M1; ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ M1, ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°ΠΆΠ°Ρ‚Π°, ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ отпускания ΠΊΠ½ΠΎΠΏΠΊΠΈ Если отпустили ΠΊΠ½ΠΎΠΏΠΊΡƒ,

CALL GetTime;

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΡΠΎΡ…ранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² измСрСния

CALL Wait250ms

GOTO MZ; Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

END

4. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ элСктричСская схСма

5. БпСцификация

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ

Π’ΠΈΠΏ, Π½ΠΎΠΌΠΈΠ½Π°Π»

Кол.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ΡˆΡ‚.

ΠšΠΎΠ½Π΄Π΅Π½ΡΠ°Ρ‚ΠΎΡ€Ρ‹

Π‘1

25Π’ — 10,0ΠΌΠΊΠ€

Π‘2

SMD1206 — 0,1ΠΌΠΊΠ€

ΠœΠΈΠΊΡ€ΠΎΡΡ…Π΅ΠΌΡ‹

DD1

Π–ΠšΠ˜ HD44780

DD2

Часы Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ PCF 8583

РСзисторы

R1

1кОм

R2

5,1кОм

R3

5,1кОм

R4

1кОм

ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ элСмСнты

Z1

ΠšΠ²Π°Ρ€Ρ†Π΅Π²Ρ‹ΠΉ Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€ 32 768Π“Ρ†

SB3

Кнопки ПКн — 159

SW1.1

ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ

SW1.2

ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ

XC1

Ρ€Π°Π·ΡŠΠ΅ΠΌ

XC2

Ρ€Π°Π·ΡŠΠ΅ΠΌ

6. Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

1) Π―Ρ†Π΅Π½ΠΊΠΎΠ² Π’. Π‘. — ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ MicroChip ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄-ство (2002 Π³ΠΎΠ΄).

2) Майкл ΠŸΡ€Π΅Π΄ΠΊΠΎ. — Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ΠΏΠΎ PIC — ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌ: ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π». — Πœ.: Π”ΠœΠš ΠŸΡ€Π΅ΡΡ, 2006. — 512с.: ΠΈΠ». (БСрия «Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ»)

3) ΠšΡƒΡ€Ρ Π»Π΅ΠΊΡ†ΠΈΠΉ.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ