
Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:54

Xoş gəldiniz! Saniyələrin sayğacının hazırlanması: Layihə üçün CCStudio 8 və MSP430F5529 istifadə olunur.
Mikro nəzarətçini kodlaşdırmaq üçün C dili. Aşağı Güc Modu, Taymer və Fasilələrin tətbiqi. Çıxış 7 Segment vasitəsilə göstərilir.
Addım 1: Anlayış

Başlayaq!
Gözətçi taymeri üçün lazım olan şifrəni istifadə edərək gözətçi taymerini OFF vəziyyətinə salın (Bu, prosessoru təhlükəsiz saxlayaraq sonsuz döngələri yoxlamağa kömək edir).
#daxil edin
/** * əsas.c */
int main (boş)
{
WDTCTL = WDTPW | WDTHOLD; // gözətçi taymerini dayandırın
qaytarma 0;
}
Addım 2: Limanın işə salınması
{
P3DIR = 0xFF; // P3DIR = 0x00;
P6DIR = 0xFF;
P4DIR | = 0x00;
P4REN | = 0xFF;
P4OUT | = 0xFF;
}
P3DIR | = 0x00 bizə PORT-3-ün hamısının giriş əldə etmək üçün başladığını bildirir.
P3DIR | = 0xFF bizə bildirir ki, PORT-3-ün hamısı nəticələr vermək üçün işə salınır.
P3DIR | = 0x01, yalnız P3.0 pimi PORT-3-də çıxarmaq üçün işə salınır. Bu, onaltılıq bir Port xəritəsini izləyir.
P4REN | = 0xFF, bu, PORT-4 pinlərinin yuxarı/aşağı müqavimətlərinin aktiv olduğunu göstərir.
Onları Pull UP və ya POW DOWN arasında seçmək üçün P $ OUT | = 0xFF təlimatı istifadə olunur.
0xFF istifadə edilərsə, Pull UP rezistorları kimi konfiqurasiya edirlər və 0x00 isə POW DOWN olaraq konfiqurasiya edirlər.
Addım 3: Ultra Aşağı Güc
MSP430F5529, prosessordan enerji itkisini azaltmağa imkan verir. Bu müstəqil tətbiqlərdə faydalıdır.
Bu, bütün pinlərin və ya Limanların çıxışı elan edilməsini tələb edir.
{
P7DIR | = 0xFF;
P6DIR | = 0xFF;
P5DIR | = 0xFF;
P4DIR | = 0xFF;
P3DIR | = 0xFF;
P2DIR | = 0xFF;
P1DIR | = 0xFF;
}
Addım 4: TIMER
Bir saniyənin gecikməsi üçün taymerin istifadəsi. Bu, 1MHz olan SMCLK -dən istifadə edir, həmçinin taymer Aşağı Güc rejimində işləyir (növbəti addımda LPM -dən kəsildikdən sonra). Bu proses prosessorun gücünü və yükünü azaldır
TA0CCTL0 = CCIE;
TA0CCR0 = 999;
TA0CTL = TASSEL_2 + MC_1;
Taymer qeydində sıfıra dönmək üçün daha bir say lazım olduğu üçün dəyərlər 999 -dur.
Addım 5: Aşağı Güc rejimi
_BIS_SR (LPM0_bits+GIE);
Bu, Ümumi kəsilmə Enable (GIE) imkan verir və CPU -nu CPU -nu dəstəkləyən MCLK -nin söndürüldüyü LPM0 -a və timerin işləməsini təmin edən SMCLK və ACLK işinə qoyur. buna görə də enerjiyə qənaət edərək CPU -nun söndürüldüyünü görə bilərik.
Addım 6: ISR-Taymer

#praqma vektoru = TIMER0_A0_VECTOR
_ fasilə boşluğu Timer_A (boş)
{
z ++;
əgər (z> gecikmə)
{
P3OUT = kod [x];
P6OUT = kod1 [y];
x ++;
əgər (x == 10)
{
x = 0;
y ++;
}
əgər (y == 6)
y = 0;
z = 0;
}
}
pragma vektoru C embd -də ISR -in təqdimatı üçündür.
code [x] və code1 [y], 60 saniyə sayğacını göstərmək üçün iki yeddi seqment üçün çıxış dəyərləri olan seriallardır.
Addım 7: Hardware Interrupt
P2DIR = 0x00;
P2REN = 0x02;
P2OUT = 0x02;
P2IE | = BIT1;
P2IES | = BIT1;
P2IFG & = ~ BIT1;
Burada P2.1 bir hardware kəsilməsi olaraq elan edilir, düyməyə basıldığı təqdirdə sayğac yenidən dəyərinə qayıdır.
qalan proqram bu fasilənin ISR daxilində yazılmışdır.
Addım 8: ISR- Sıfırlama/ Push Button
#praqma vektoru = PORT2_VECTOR
_ ara vermə boşluğu port_2 (boş)
{
P2IFG & = ~ BIT1;
x = 0; y = 0;
P3OUT = kod [x];
P6OUT = kod1 [y];
v ++;
üçün (i = 0; i
{
P1OUT | = BIT0; //P1.0 = keçid
_gecikmeli dövrlər (1048576);
P1OUT & = ~ BIT0; // P1.0 = keçid
_gecikmeli dövrlər (1048576);
}
Bu ISR sayğacı sıfırlayır və qalan hissənin neçə dəfə basıldığını hesablayır.
(Budur, ekran keçid açarı ilə edilir, bu dəyərləri 7 seqmentdə çıxış olaraq göstərmək üçün başqa bir sıra və taymerdən istifadə edə bilərsiniz).
Addım 9: KOD

#daxil edin
#gecikməni 1000 təyin edin
char kodu = {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xE6};
char kodu1 = {0x7E, 0x30, 0x6D, 0x79, 0x33, 0x5B};
uçucu işarəsiz int x = 0, y = 0, z = 0;
uçucu işarəsiz int v = 0, i = 0;
void main ()
{
WDTCTL = WDTPW | WDTHOLD; // gözətçi taymerini dayandırın
P7DIR | = 0xFF;
P7OUT | = 0x00;
P8DIR | = 0xFF;
P8OUT | = 0x00;
P4DIR | = 0xFF;
P4OUT | = 0x00;
P5DIR | = 0xFF;
P5OUT | = 0x00;
P1DIR = 0xFF;
P3DIR = 0xFF;
P6DIR = 0xFF;
P2DIR = 0x00;
P2REN = 0x02;
P2OUT = 0x02;
P2IE | = BIT1;
P2IES | = BIT1;
P2IFG & = ~ BIT1;
TA0CCTL0 = CCIE;
TA0CCR0 = 999;
TA0CTL = TASSEL_2 + MC_1;
_BIS_SR (LPM0_bits+GIE);
}
// Taymer A0 fasilə xidmət qaydası
#praqma vektoru = TIMER0_A0_VECTOR
_ fasilə boşluğu Timer_A (boş)
{
z ++;
əgər (z> gecikmə)
{
P3OUT = kod [x];
P6OUT = kod1 [y];
x ++;
əgər (x == 10)
{
x = 0;
y ++;
}
əgər (y == 6)
y = 0;
z = 0;
}
}
// Avadanlıqların kəsilməsi xidməti
#praqma vektoru = PORT2_VECTOR
_ ara vermə boşluğu port_2 (boş)
{
P2IFG & = ~ BIT1;
x = 0;
y = 0;
P3OUT = kod [x];
P6OUT = kod1 [y];
v ++;
üçün (i = 0; i
{P1OUT | = BIT0; // P1.0 = keçid
_gecikmeli dövrlər (1048576);
P1OUT & = ~ BIT0; // P1.0 = keçid
_gecikmeli dövrlər (1048576);
}
}
Addım 10: İstinad kodu

GitHub Deposu
Tövsiyə:
8051 və LCD ilə IR Sensorundan istifadə edən Ziyarətçi Sayacı: 3 addım

LCD ilə 8051 və İQ Sensorundan istifadə edən Ziyarət Sayğacı: Əziz Dostlar, 8051 və İQ sensorundan istifadə edərək ziyarətçi sayğacının necə hazırlanacağını izah etdim və LCD -də göstərdim. 8051, bütün dünyada hobbi, ticarət tətbiqləri etmək üçün istifadə edilən ən məşhur mikrokontrolörlərdən biridir. Bir vizaj etdim
E-Kağız Ekranı və Raspberry Pi Zero W istifadə edən YouTube Abunə Sayacı: 5 addım (şəkillərlə)

E-Kağız Ekranı və Raspberry Pi Zero W istifadə edən YouTube Abunə Sayacı: Bu Təlimat kitabında, YouTube API sorğusu üçün e-kağız ekranı və Raspberry Pi Zero W istifadə edərək öz Youtube Abunə Sayacınızı necə quracağınızı göstərəcəyəm. və ekranı yeniləyin. E-kağız ekranları bu cür layihələr üçün əladır
Öz Widget'larınızı asanlıqla yaradın - Sürətli BPM Sayacı: 6 addım

Öz Vidjetlərinizi Asanlıqla Edin - Sürətli BPM Sayğacı: Veb tətbiqləri ümumi bir yerdir, ancaq internetə giriş tələb etməyən veb tətbiqləri yoxdur. Bu yazıda vanil javascript ilə birləşdirilmiş sadə bir HTML səhifəsində BPM Sayğacını necə hazırladığımı sizə göstərəcəyəm ( bura bax). Yüklənərsə, bu widget oflayn istifadə edilə bilər
Bal Arısı Sayacı II: 5 addım

Honey Bee Counter II: 18.03.2020-yeni təlimat … https://www.instructables.com/id/Easy-Bee-Counter/12/21/2019 Ölməyən layihə! … Bu dizaynda bir neçə yeniləmə etdim. Bu dizaynı yenicə bitirmişəm, amma onu çıxarmağa başlamaq istəmişəm. Bu versiya
Dəqiq YouTube Abunə Sayacı: 4 addım

Dəqiq YouTube Abunə Sayacı: Təxminən bir ay əvvəl bu layihəyə hazırlaşmağa başladım, amma daha sonra həqiqi abunəçi sayını deyil, ən yaxın yuvarlaqlaşdırılmış nömrəni verəcəyini bildirdikləri zaman YouTube tərəfindən yoldan çıxdım. Hal -hazırda, bu, həqiqətən də bir problem deyil