To tylko jedna z 4 stron tej notatki. Zaloguj się aby zobaczyć ten dokument.
Zobacz
całą notatkę
Systemy wybudowane
Sprawozdanie: Obsługa wyświetlacza siedmiosegmentowego oraz programowanie eliminacji ze styków.
Wstęp teoretyczny Podczas laboratorium zapoznaliśmy się z obsługą oraz zasadą działania wyświetlacza LED . Naszym zadaniem było napisanie programu w języku C, dzięki któremu po naciśnięciu jednego z 4 ustalonych przycisków zestawu ZL2MCS51 nastąpi zwiększenie wartości wyświetlanej na odpowiednim wyświetlaczu.
Podczas zmiany stanów przycisków na klawiaturze może dojść do niekontrolowanych oscylacji (tzw. drgań zestyków), przez co podczas jednego wciśnięcia przycisku wartość na wyświetlaczu zmienia się w sposób nieoczekiwany.
Mikrokontroler może sterować 4-cyfrowym wyświetlaczem LED sterowanym multipleksowo. Segmenty wyświetlaczy są sterowane za pomocą bufora U1, który jest uaktywniany/blokowany za pomocą zworki JP1. Sygnały sterujące segmentami wyświetlaczy wyprowadzono na złącze JP2. Przypisanie sygnałów do styków złącza umożliwia ich bezpośrednie dołączenie (kablem 1:1) do jednego ze złącz: JP10, JP4, JP5 lub JP9. Ponieważ zastosowano wyświetlacze ze wspólną katodą, zapalenie wybranego segmentu wyświetlacza wymaga podanie na linię segmentu, który ma świecić (PS.x) oraz na linię sterującą wzmacniacz elektrody wspólnej wybranego wyświetlacza (Pd.3…0) logicznych „1”.
Kod programu
#include
typedef unsigned char BYTE;
typedef unsigned int WORD;
typedef unsigned long int WOR32;
BYTE tab[10]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D,0x07, 0x7F, 0x6F};
int i=0;
int t=0;
int main()
{
int i,j,k,a,b,op,i5,j5,i6,j6;
op=300; //opóźnienie
b=0;
i5=0;
j5=0;
i6=0;
j6=0;
j=0;
i=0;
k=0;
a=0;
P2=0xFF;
while (1)
{ // Pierwszy wyświetlacz
if(P3_3==0)
{ if(j==0)
{
j++; P1=1;
i++;
P0=tab[i%10];
for(k=0;k
(…)
… przycisków. Jeżeli wciśniemy przycisk następuje zwiększenie wartości wyświetlanej na odpowiednim wyświetlaczu. Początkowo podczas jednego wciśnięcia przycisku wartość na wyświetlaczu zmieniała się w sposób nie oczekiwany, aby temu zapobiec zastosowaliśmy instrukcję warunkową if, która powoduje że podczas wciśnięcia przycisku wartość się zwiększy tylko o jeden (kolejny raz będzie mogła się zwiększyć dopiero…
... zobacz całą notatkę
Komentarze użytkowników (0)