Les 6 - onderwerpen - PowerPoint PPT Presentation

1 / 40
About This Presentation
Title:

Les 6 - onderwerpen

Description:

Les 6 - onderwerpen Code paging Switch bounce A/D conversie Seriele communicatie met een PC (UART - USB - VCP) IR Muziek Hogeschool Utrecht / Institute for Computer ... – PowerPoint PPT presentation

Number of Views:68
Avg rating:3.0/5.0
Slides: 41
Provided by: PeterK232
Category:
Tags: les | onderwerpen

less

Transcript and Presenter's Notes

Title: Les 6 - onderwerpen


1
Les 6 - onderwerpen
  • Code paging
  • Switch bounce
  • A/D conversie
  • Seriele communicatie met een PC(UART - USB -
    VCP)
  • IR
  • Muziek

2
Code paging
  • 11 bits 2k instructies...

3
Code paging
  • Als je minder dan 2k code gebruikt ? geen
    probleem
  • Anders GOTO ? LGOTO
  • CALL ? LCALL
  • Maar LGOTO en LCALL worden vertaald naar
    meerdere instructies, dus je kan niet skippen!
    Wel kan
  • BANKSEL daarzo
  • SKPNZ
  • GOTO daarzo

4
Switch bounce (denderen)
  • Als je een drukknop indrukt maakt hij niet 1 keer
    contact hij dendert een tijdje (maximaal 50
    ms)

5
PIC - USART
  • USART Universal Synchronous / Asynchronous
    Receiver Transmitter
  • wij gebruiken asynchroon
  • PIC UART pins zijn verbonden met een FT232R
    USB-to-asynchronous converter
  • Op de PC wordt een (virtuele) seriele poort
    aangemaakt (XP heeft al een driver)
  • control panel ? system ? hardware ? device
    manager ? ports
  • evt driver van www.ftdichip.com gebruiken
  • op de PC gebruik je een terminal, bv
    HyperTerminal
  • (hypertrm, 19k2, no parity, no flow control, hu
    com3 (?))
  • In de image staat een icoon

6
PIC - USART
7
(No Transcript)
8
BRGH 0
BRGH 1
9
1
0
0
-
1
-
-
R
10
R
R
-
0
1
0
1
-
11
PIC USART - init
  • make TxD (RC6) output, RxD (RC7) input
  • SPBRG 19k2 value for high speed
  • TXSTA 8 bit, enable, asynch, high speed
  • RCSTA enable, 8 bit, continuous, no ADDEN

12
PIC USART - send
  • wacht tot TSR bit aangeeft dat TSR empty is
  • copy het te verzenden byte naar TXREG
  • (wacht tot TSR bit aangeeft dat TSR empty is)

13
PIC USART - receive
  • als OERR bit gezet is
  • clear CREN
  • wacht een paar instructies
  • set CREN
  • als PIR1 TXIF op 0 gezet is
  • lees RCREG, dit is het ontvangen byte
  • (anders is er nog niets ontvangen)

14
power van de 2e USB poort
15
PIC USART demo code subroutines
  • UART_INIT call to inistialise the UART for 19k2
  • UART_CHAR_SEND sends the char in W
  • UART_CHAR_RECEIVE checks the UART for a
    received char, C flag set when a char is received
    (char in W), C flag is cleared when no char is
    received
  • UART_CLRF_SEND sends the CR LF sequence

16
PIC USART demo code main
  • MAIN
  • CALL UART_INIT
  • MOVLW 'H'
  • CALL UART_CHAR_SEND
  • MOVLW 'i'
  • CALL UART_CHAR_SEND
  • CALL UART_CLRF_SEND
  • MAIN_LOOP
  • CALL UART_CHAR_RECEIVE
  • SKPC
  • GOTO MAIN_LOOP
  • MOVWF Char
  • MOVLW '"'
  • CALL UART_CHAR_SEND
  • MOVFW Char
  • CALL UART_CHAR_SEND
  • MOVLW '"'

17
De IR ontvanger (1)
  • TFM5360
  • (alleen) gevoelig voor een 36 kHz signaal.
  • Dat signaal mag niet continu zijn (goed is bv.1
    kHz 500 us signaal, 500 us uit)

18
De IR ontvanger (2)
  • (alleen) gevoelig voor een 36 kHz signaal.
  • Bij 10 afwijking, dus 33-40 kHz, 60 vd.
    Afstand.

19
De IR ontvanger (3)
  • Aanbevolen puls gt 400uS, periode lt 0.4

20
De IR ontvanger (4)
21
Eenvoudig IR zenden / ontvangen
  • 36 kHz ? 28 us per puls ? 5 28 instructies per
    fase (hoog en laag)
  • 400 us / 28 us ? minimaal 14 pulsen, neem bv 30
    pulsen
  • Onmiddelijk daarna de IR ingang lezen (laag
    signaal gedetecteerd)
  • Pauze! (bv. 400 us)
  • herhaal

22
DB038 circuit multiplexers
23
PIC A/D
RA0 ?
  • A/D converter vertaald een analoge spanning naar
    een waarde 0..255 (8 bits) of 0..1023 (10 bits)

24
PIC A/D configure pin as analog
25
PIC A/D aan zetten
26
PIC A/D channel
?
27
PIC A/D clock
28
PIC A/D start, wait
29
PIC A/D start, wait
?
?
30
PIC A/D enable, go / done
31
PIC A/D result format
32
Read an analog input
  • Zet de juiste code op poort RE
  • Configureer de pin (RA0) als input (TRISA)
  • Configureer de pin (RA0 AN0) in ANSEL als
    analoog
  • Activeer de A/D, selecteer het betreffende
    kanaal, selecteer de conversie clock (ADCON0)
  • Selecteer VSS en VDD als referenties, en de
    alignment (ADCON1)
  • wacht 100 us
  • start de conversie (ADCON0)
  • wacht tot de conversie voltooid is (ADCON0)
  • lees het resultaat (ADRESH, eventueel ADRESL)

33
DB038 circuit luidspreker
34
piepen
  • RE0..RE3 output, waarde 0x02
  • RA1 output
  • En nu maar knipperen op RA1

35
Hoogte en duur
Met een punt er achter 50 langer
36
nootnaam ? frequentie
37
C4 ¼ E4 ¼ C4 ¼ E4 ¼ C4 ¼ E4 ¼ G4
3/8 Stilte 1/8 G4 3/8 F4 1/8 ...
38
oefening (facultatief) toetsenbord, A/D,
display, UART
  • Schrijf een programma dat het toetsenbord leest,
    en de ingedrukte toets laat zien op het meest
    linker display. De ingedrukte toets bepaald het
    A/D kanaal dat wordt gelezen, en (hexadecimaal)
    wordt weergegeven op de rechter 2 displays.

39
oefening A/D (facultatief)
  • 1) Lees met de A/D converter de potentiometer uit
    en laat het 8-bits resultaat zien op 2
    zeven-segment displays.
  • 2) Lees met de A/D converter de LDR uit en laat
    het 8-bit resultaat zien op de LEDs

40
oefening piepen (facultatief)
  • Maak een programma dat 1 keer een piep laat horen
  • (bv 4 seconde op 1 kHz)
  • Piepen is niets anders dan knipperen, maar dan
    met een luidspreker in plaats van een LED, en wat
    sneller.
  • 1 kHz 1ms per puls 500 us hoog / 500 us laag
  • 4 seconde 4000 pulsen 80 x 250
Write a Comment
User Comments (0)
About PowerShow.com