PIC16F877 - Prescaler - Newbie

M

mpride63

Guest
Hei.
Päätin pari kuukautta sitten halusin oppia Microcontrollers (lue Extreme newbie).Olen kirjoittanut pienen määrän koodi kokoonpanossa, että toivon käyttää perustana loppuun projektin.Olen kuitenkin M joilla on kaikenlaisia ongelmia täytäntöön PRESCALER.En yritän käyttää TMR0 (minun tulisi käyttää toista ajastin?) Ja ulkoinen 32kHz oskillaattorin.Haluan käyttää PRESCALER on 1 / 256.Olen tajunnut, miten määrittää viiveitä jne., mutta elämäni olisi paljon helpompaa, jos voisin ymmärtää, miten muuttaa koodia hyödyntää PRESCALER.

I m käyttäen PIC16F877 ja käynnissä minun simulointia MPLAB SIM.En ole varma, miten tämä ja olisi suuresti apua.Kyllä, olen lukenut muiden virkaa aiheesta mutta ei pääse sen läpi minun paksu kallo.

Koodi:
-------------------------------------------------- ---------------

TMR0 EQU 1
OPTION_REG EQU 81H
PORTA EQU 5
PORTB EQU 6
PORTC EQU 7
PORTD EQU 8
Trisa EQU 5
TRISB EQU 6
TRISC EQU 7
TRISD EQU 8
Tila EQU 3
ZEROBIT EQU 2
CARRY EQU 0
EEADR EQU 0DH
EEDATA EQU 0CH
EECON1 EQU 0CH
EECON2 EQU 0DH
RD EQU 0
WR EQU 1
Wren EQU 2
COUNTER_A EQU 20H
COUNTER_B EQU 21H

;************************************************* *******

LIST P = 16F877
ORG 0; alkaa osoite muistissa on 0

;************************************************* ********
, Alusta ja Set Satamat panos-ja valtion

; MOVLW B'00000111 "
; Movwf TMR0
, BSF STATUS, 5
; MOVLW B'00000000 "
; Movwf TRISB
; MOVLW B'00000000 "
; Movwf TRISC
; MOVLW B'00000000 "
; Movwf TRISD
, BCF STATUS, 5
;************************************************* *********
; Program Setup

BSF STATUS, 5
MOVLW B'00100111 "
Movwf OPTION_REG
BCF STATUS, 5

BEGIN CLRF COUNTER_A
MOVLW B'11111111 "
Movwf COUNTER_A
CLRF COUNTER_B
MOVLW B'00100101 "
Movwf COUNTER_B
;************************************************* ********
; Monitor Inputs

MONITOR BTFSC PORTC, 0; Test vähän 0 tiedoston PORTC ja siirtyä seuraavaan instrucion jos selkeä (pieni)
GOTO-monitori, Loopback jotta Järjestäjä jos bitti 0 tiedostossa PORTC on asetettu (korkea) --
;************************************************* ********
; Counter Määritelmä

COUNTER_DEF DECFSZ COUNTER_A
GOTO ALARM_ON
DECFSZ COUNTER_B
GOTO ALARM_ON
GOTO ALERTS_ON
GOTO BEGIN
;************************************************* ********
; Luo hälytykset

ALARM_ON BTFSC PORTC, 0; Test vähän 0 tiedostossa PORTC
GOTO ALARM_OFF
GOTO COUNTER_DEF

ALERTS_ON BSF PORTB, 0; Kytke Punainen Status LED
BSF PORTD, 0; päälle Summeri
; Lähetä On Command
GOTO BEGIN

ALARM_OFF BCF PORTB, 0; Sammuta LED
Biologinen kertymistekijä BCF PORTD, 0; Sammuta Summeri
; Lähetä OFF Command
GOTO BEGIN; Loopback jotta Järjestäjä

Asiantuntija

; Selvittää, miten valvoa kellon.
; Selvitä, miksi minulla on vaikeuksia käyttää PORTA kuin tulo.
; Kuva tarkalleen, mitä on alustaa.
; Määritä ohjelman tarkastella satamissa eikä vain yksittäisiä nastoja.

 
RESET org 0x00; začátek programu
goto INIT; Skok na pocatecni inicializaci

org 0x04; adresa přerušení
goto KESKEYTTÄÄ

;******************** Přerušení ********************

KESKEYTTÄÄ
movwf TMP_W; ulozi W
swapf STATUS, W; prohodi napostella Tila ulozi eivät W
clrf asema, pankki 0
movwf TMP_S;
movf PCLATH, W
movwf TMP_PCL
clrf PCLATH; nastavení banky 0
biologinen kertymistekijä BCF INTCON, T0IF; vynulovat priznak

;-------------------------------; Keskeytä toiminto!
; Tässä aseta toiminto
, Hälytys päälle / pois päältä ...tms.

;-------------------------------
INT_END movf TMP_PCL, W
movwf PCLATH; Obnova PCLATH
swapf TMP_S, W; prohodi napostella TMP_S ulozi eivät W
movwf STATUS; Obnova STATUS
swapf TMP_W, F; prohodi napostella TMP_W ulozi eivät W
swapf TMP_W, W; Obnova W
retfie

;******************** Inicializace procesoru ********************

INIT BCF STATUS, RP0; nastavení BANKY 0
biologinen kertymistekijä BCF STATUS, RP1; nastavení BANKY 0
; ------------------------
; Movlw b'000000 "; prednastaveni Portu
; Movwf PORTA
; Movlw b'00000000 "; prednastaveni Portu B
; Movwf PORTB
; Movlw b'11111111 "; prednastaveni Portu C
; Movwf PORTC
; Movlw b'11111111 "; přednastavení Portu D
; Movwf PORTD;!jen PIC16F874 PIC16F877!
; Movlw b'111 "; přednastavení Portu E
; Movwf PORTE;!jen PIC16F874 PIC16F877!
; ------------------------
.
.
.
.
.
.
;******************** Hlavní ohjelma ********************

TÄRKEIMMISTÄ;!zde napiste vlasni ohjelma!goto MAIN

.
.
.
Asiantuntija

 
Hänen Olet yksinkertaisen koodin käyttö 16f84 timer0 PRESCALER
yksinkertaisesti muuntaa ..
Koodi:

;************************************************* **************************************************

; tiedostotyyppi: ASM.

, prosessori: PIC16F84.

; ohjelma Kuvaus: yksinkertainen ohjelma osoittaa, miten TMR0 toimii

; Kirjoittaja: OMNaas

, contact: king_rero (at) yahoo.c.uk

;************************************************* **************************************************Luettelo p = 16f84

Lukujärjestelmä hex

;************************************************* **************************************************

tmr0 equ 0x01

PORTB equ 0x06

trisb equ 0x86

porta equ 0x05

Trisa equ 0x85

intcon EQU 0x0b

status equ 0x03

option_reg equ 0x81

;************************************************* **************************************************Orgista 0x00

goto tärkeimmät

Orgista 0x04

goto tärkeimmät

tärkeimmät BSF asema, 5, valitse bank0.

movlw 0xff

movwf Trisa

movlw 0x00

movwf trisb

movlw b'00010111 "setup vaihtoehto rekisteriin.

movwf option_reg

BCF asema, 5

clrf PORTB

clrf tmr0

tarjonta

movf tmr0, w, laita tmr0 sisällön W

movwf PORTB

goto loop

loppu
 

Welcome to EDABoard.com

Sponsor

Back
Top