Sprawko swb, WAT, semestr IV, Systemy wbudowane


WOJSKOWA AKADEMIA TECHNICZNA

im. Jarosława Dąbrowskiego

Laboratorium z przedmiotu

SYSTEMY WBUDOWANE

0x08 graphic

SPRAWOZDANIE

Z ĆWICZENIA LABORATORYJNEGO


Temat ćwiczenia: Wyświetlacz 7-segmentowy.

Prowadzący: mgr inż. Sławomir Kaźmierczak

Wykonał: Damian Sulej

Grupa: I8Y3S1

Data wykonania ćwiczenia: 20.05.2010

  1. Zadanie do zrealizowania

Celem laboratorium było stworzenie wyświetlacza 7-segmentowego wyświetlającego cyfry w systemie szesnastkowym (heksadecymalnym) opierającego się o mikrokontroler ATMEL - AT89C52. Wyświetlanie cyfr ma odbywać się za pomocą 16 przycisków podłączonych do AT89C52. Każda cyfra wyświetlana oddzielnie za pomocą swojego przycisku. Problem z jakim należało się zmierzyć to podłączyć sterowanie wyświetlacza do jednego 8-bitowego portu (mając do dyspozycji 16 przycisków).

  1. Zmontowany układ

0x01 graphic

  1. Opis wyświetlacza

0x01 graphic

  1. Kod źródłowy programu

#include <REGX52.H>

#define _A 0xFE

#define _B 0xFD

#define _C 0xFB

#define _D 0xF7

#define _E 0xEF

#define _F 0xDF

#define _G 0xBF

#define _H 0x7F

unsigned char code tab [16]= {

_A&_B&_C&_D&_E&_F, //0

_B&_C, //1

_A&_B&_G&_D&_E, //2

_A&_B&_C&_D&_G, //3

_B&_C&_F&_G, //4

_A&_F&_G&_C&_D, //5

_A&_C&_D&_E&_F&_G, //6

_A&_B&_C, //7

_A&_B&_C&_D&_E&_F&_G, //8

_A&_B&_C&_D&_F&_G, //9

_A&_B&_C&_E&_F&_G, //A

_C&_D&_E&_F&_G, //B

_A&_D&_E&_F, //C

_B&_C&_D&_E&_G, //D

_A&_D&_E&_F&_G, //E

_A&_E&_F&_G, //F

};

unsigned char code mask [5]={

0xEF, //1110 1111

0xDF, //1101 1111

0xBF, //1011 1111

0x7F, //0111 1111

};

void main (void){

while(1){

P1=0xFF;

for(i = 0;i<4;++i){

P2 = mask [i];

while(P2_0==0){

if(P2_4==0)P1=tab[0];

if(P2_5==0)P1=tab[1];

if(P2_6==0)P1=tab[2];

if(P2_7==0)P1=tab[3];

}

while(P2_1==0){

if(P2_4==0)P1=tab[4];

if(P2_5==0)P1=tab[5];

if(P2_6==0)P1=tab[6];

if(P2_7==0)P1=tab[7];

}

while(P2_2==0){

if(P2_4==0)P1=tab[8];

if(P2_5==0)P1=tab[9];

if(P2_6==0)P1=tab[10];

if(P2_7==0)P1=tab[11];

}

while(P2_3==0){

if(P2_4==0)P1=tab[12];

if(P2_5==0)P1=tab[13];

if(P2_6==0)P1=tab[14];

if(P2_7==0)P1=tab[15];

}

}

}

}

  1. Przykładowe działanie programu

0x01 graphic

  1. Krótki opis działania układu

Do rozwiązania naszego problemu mieliśmy wykorzystać jeden port 8-bitowy. Podłączenie do niego 16 przycisków tak aby każdy odpowiadał za inną cyfrę było nie lada wyzwaniem. Okazało się jednak że aby tego dokonać należało używać dwóch bitów do sygnalizowania wciśniętego przez nas przycisku. Z tego też względu każdy przycisk został podłączony do 2 bitów portu. Przyciski ułożyłem wierszami dla lepszej czytelności układu, zresztą na układzie naniosłem legendę ukazująca który przycisk odpowiada jakiej cyfrze. Pierwsze 4 bity portu P2 układu zostały podłączone do pierwszych zacisków poszczególnych przycisków (zacisk znajdujący się po lewej stronie przycisku) natomiast kolejne 4 bity do drugich zacisków przycisku ( zacisk znajdujący się po prawej stronie przycisku). Wciśnięcie klawisza było sygnalizowane za pomocą jednego bitu z pierwszych 4 bitów (0,1,2,3) oraz jednego bitu z 4 kolejnych bitów(4,5,6,7) portu P2. Dzięki temu każdy z przycisków posiadał własny zestaw bitów. Napisany program swoim działaniem uaktywniał jeden z bitów na bitach 4-7. Tak naprawdę na tych bitach odbywało się główne sterowanie wyświetlaczem. Po wciśnięciu przycisku sygnał przechodzi na jeden z bitów 0-3 i staję się aktywny. Zwolnienie przycisku powoduje że taki stan przestaje się utrzymywać. Dzięki pętli for aktywny bit przechodzi po bitach 4-7 ustawiając w ten sposób odpowiednie maski, rozróżniające poszczególne cyfry do wyświetlenia. Maski te szybko się zmieniają. Pętla while wewnętrzna natomiast utrzymuje stan na bitach 0-3 po wciśnięciu jakiegoś przycisku. Połączenie stanu bitów na pierwszych 4 bitach (0-3) oraz stanu bitów na kolejnych 4 bitach (4-7), które ustawiają aktywny bit powoduje wyświetlenie odpowiedniej cyfry na wyświetlaczu cyfrowym. Cyfra przestaje być wyświetlana po zwolnieniu przycisku i wyświetlacz zostaje wtedy wyzerowany.

Strona 5 z 5



Wyszukiwarka

Podobne podstrony:
swb-sciaga, WAT, semestr IV, Systemy wbudowane
ściąga(1), WAT, semestr IV, Systemy wbudowane
kody, WAT, semestr IV, Systemy wbudowane
Egzamin6, WAT, semestr IV, Systemy wbudowane
Mikrokontroler 8051(1), WAT, semestr IV, Systemy wbudowane
referat TM, WAT, semestr IV, Systemy wbudowane
Sylabus(1), WAT, semestr IV, Systemy wbudowane
arch powerPC, WAT, semestr IV, Systemy wbudowane
Przerwania, WAT, semestr IV, Systemy wbudowane
1AlfabetStasiaka, WAT, semestr IV, Systemy wbudowane
system przerwan, WAT, semestr IV, Systemy wbudowane
ściąga(1), WAT, semestr IV, Systemy wbudowane
Przeglad ukladow graficznych ATI, WAT, semestr IV, Systemy wbudowane
Referat, WAT, semestr IV, Systemy wbudowane
odpowiedzi egzamin, Informatyka WEEIA 2010-2015, Semestr IV, Systemy Wbudowane, Inne, egzamin

więcej podobnych podstron