Агуулгын хүснэгт:
- Алхам 1: Ойлголт
- Алхам 2: Порт эхлүүлэх
- Алхам 3: Хэт бага хүч
- Алхам 4: TIMER
- Алхам 5: Бага эрчим хүчний горим
- Алхам 6: ISR-таймер
- Алхам 7: Тоног төхөөрөмжийн тасалдал
- Алхам 8: ISR- Дахин тохируулах/ түлхэх товч
- Алхам 9: КОД
- Алхам 10: Лавлах код
Видео: MSP430 секундын тоолуур: 10 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Тавтай морилно уу! Секунд тоолуур хийх: Төсөлд CCStudio 8 болон MSP430F5529 ашиглах.
Микро хянагчийг кодлох C хэл. Бага чадлын горим, таймер, тасалдлыг ашиглах. Үр дүнг 7 сегментээр харуулна.
Алхам 1: Ойлголт
Эхлээд үзье!
Харуулын нохойны таймерын шаардлагатай нууц үгийг ашиглан харуулын нохойны таймерыг OFF горимд эхлүүлэх (Энэ нь хязгааргүй гогцоог шалгаж, процессорыг аюулгүй байлгахад тусалдаг).
#оруулах
/** * үндсэн.c */
int main (хүчингүй)
{
WDTCTL = WDTPW | WDTHOLD; // манаачийн цаг хэмжигчийг зогсоох
буцаах 0;
}
Алхам 2: Порт эхлүүлэх
{
P3DIR = 0xFF; // P3DIR = 0x00;
P6DIR = 0xFF;
P4DIR | = 0x00;
P4REN | = 0xFF;
P4OUT | = 0xFF;
}
P3DIR | = 0x00 нь оролт авахын тулд PORT-3-ийг бүхэлд нь эхлүүлсэн болохыг бидэнд хэлдэг.
P3DIR | = 0xFF нь гаралт өгөхийн тулд PORT-3-ийг бүхэлд нь эхлүүлсэн гэж бидэнд хэлдэг.
P3DIR | = 0x01 зөвхөн P3.0 зүүг PORT-3 дээр гаргахаар эхлүүлсэн. Энэ нь арван зургаатын портын зураглалыг дагана.
P4REN | = 0xFF, энэ нь PORT-4-ийн тээглүүр нь дээш/доош татах эсэргүүцлийг идэвхжүүлсэн болохыг харуулж байна.
Pull UP эсвэл Pull DOWN хооронд тэдгээрийг сонгохын тулд P $ OUT | = 0xFF зааврыг ашиглана.
Хэрэв 0xFF -ийг ашиглавал тэдгээрийг Pull UP резистороор, 0x00 бол Pull DOWN гэж тохируулдаг.
Алхам 3: Хэт бага хүч
MSP430F5529 нь процессороос гарах эрчим хүчний алдагдлыг бууруулах боломжийг бидэнд олгодог. Энэ нь бие даасан програмуудад ашигтай байдаг.
Энэ нь бүх зүү эсвэл портуудыг гаргахыг зарлахыг шаарддаг.
{
P7DIR | = 0xFF;
P6DIR | = 0xFF;
P5DIR | = 0xFF;
P4DIR | = 0xFF;
P3DIR | = 0xFF;
P2DIR | = 0xFF;
P1DIR | = 0xFF;
}
Алхам 4: TIMER
Нэг секундын саатал гаргах таймерын хэрэглээ. Энэ нь 1MHz -ийн SMCLK -ийг ашигладаг бөгөөд таймер нь бага чадлын горимд ажилладаг (дараагийн алхамд тооллогын дараа LPM -ээс тасалдсан). Энэ процесс нь процессор дээр ачаалал, хүчийг хэмнэдэг
TA0CCTL0 = CCIE;
TA0CCR0 = 999;
TA0CTL = TASSEL_2 + MC_1;
Таймерын бүртгэлд тэг рүү буцаж орохын тулд дахин нэг тоолох шаардлагатай болдог тул утга нь 999 байна.
Алхам 5: Бага эрчим хүчний горим
_BIS_SR (LPM0_bits+GIE);
Энэ нь General interrupt Enable (GIE) -г идэвхжүүлж, CPU -ийг LPM0 -д оруулдаг бөгөөд энд CPU -г дэмждэг MCLK унтраалттай, таймерыг ажиллуулдаг SMCLK ба ACLK ажиллуулдаг. Цахилгаан хэмнэх замаар CPU унтарсан байгааг бид харж байна.
Алхам 6: ISR-таймер
#прагма вектор = TIMER0_A0_VECTOR
_ тасалдал хоосон Timer_A (хүчингүй)
{
z ++;
хэрэв (z> саатал)
{
P3OUT = код [x];
P6OUT = код1 [y];
x ++;
хэрэв (x == 10)
{
x = 0;
y ++;
}
хэрэв (y == 6)
y = 0;
z = 0;
}
}
прагма вектор нь C embd дахь ISR дүрслэлд зориулагдсан болно.
code [x] ба code1 [y] нь 60 секундын тоолуурыг харуулах хоёр долоон сегментийн гаралтын утгыг агуулсан массивууд юм.
Алхам 7: Тоног төхөөрөмжийн тасалдал
P2DIR = 0x00;
P2REN = 0x02;
P2OUT = 0x02;
P2IE | = BIT1;
P2IES | = BIT1;
P2IFG & = ~ BIT1;
Энд P2.1 -ийг тоног төхөөрөмжийн тасалдал гэж зарласан бөгөөд хэрэв товчлуур дарагдсан бол тоолуур нь утга руу дахин орно.
үлдсэн програмыг энэ тасалдлын ISR дотор бичсэн болно.
Алхам 8: ISR- Дахин тохируулах/ түлхэх товч
#прагма вектор = ПОРТ2_ВЕКТОР
_ тасалдал void port_2 (хүчингүй)
{
P2IFG & = ~ BIT1;
x = 0; y = 0;
P3OUT = код [x];
P6OUT = код1 [y];
v ++;
for (i = 0; би
{
P1OUT | = BIT0; //P1.0 = сэлгэх
_хугацаа_цикл (1048576);
P1OUT & = ~ BIT0; // P1.0 = сэлгэх
_хугацаа_цикл (1048576);
}
Энэхүү ISR нь тоолуурыг анхны байдалд нь оруулж, үлдсэнийг нь хэдэн удаа дарсан тухай тооллогыг хийдэг.
(Энд дэлгэцийг LED товчлуураар хийдэг, өөр массив, таймер ашиглан эдгээр утгыг 7 сегментэд гаралт болгон харуулах боломжтой).
Алхам 9: КОД
#оруулах
#хойшлуулах хугацааг 1000 тодорхойлох
char код = {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xE6};
char код1 = {0x7E, 0x30, 0x6D, 0x79, 0x33, 0x5B};
дэгдэмхий тэмдэггүй int x = 0, y = 0, z = 0;
дэгдэмхий тэмдэггүй int v = 0, i = 0;
хоосон үндсэн ()
{
WDTCTL = WDTPW | WDTHOLD; // харуулын нохойн цаг хэмжигчийг зогсоох
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);
}
// Таймер A0 тасалдлын үйлчилгээний горим
#прагма вектор = TIMER0_A0_VECTOR
_ тасалдал хоосон Timer_A (хүчингүй)
{
z ++;
хэрэв (z> саатал)
{
P3OUT = код [x];
P6OUT = код1 [y];
x ++;
хэрэв (x == 10)
{
x = 0;
y ++;
}
хэрэв (y == 6)
y = 0;
z = 0;
}
}
// Тоног төхөөрөмжийн тасалдлын үйлчилгээний горим
#прагма вектор = ПОРТ2_ВЕКТОР
_ тасалдал void port_2 (хүчингүй)
{
P2IFG & = ~ BIT1;
x = 0;
y = 0;
P3OUT = код [x];
P6OUT = код1 [y];
v ++;
for (i = 0; би
{P1OUT | = BIT0; // P1.0 = сэлгэх
_хугацаа_цикл (1048576);
P1OUT & = ~ BIT0; // P1.0 = сэлгэх
_хугацаа_цикл (1048576);
}
}
Алхам 10: Лавлах код
GitHub репозитор
Зөвлөмж болгож буй:
8051 ба IR мэдрэгчийг LCD ашиглан ашиглах зочны тоолуур: 3 алхам
LCD -тэй 8051 ба IR мэдрэгчийг ашигладаг зочны тоолуур: Эрхэм хүндэт найзууд аа, 8051 ба IR мэдрэгч ашиглан зочдын тоолуурыг хэрхэн яаж хийхийг LCD дэлгэц дээр харууллаа. 8051 бол дэлхийн өнцөг булан бүрт хобби, арилжааны програм хийхэд ашигладаг хамгийн алдартай микроконтроллеруудын нэг юм. Би виз хийсэн
Дотор агаарын чанарын тоолуур: 5 алхам (зурагтай)
Дотор агаарын чанарын тоолуур: Танай байшингийн агаарын чанарыг шалгах энгийн төсөл. Бид сүүлийн үед гэрээсээ их ажилгүй байгаа тул агаарын чанарыг хянаж, цонх нээх цаг болсныг сануулах нь зүйтэй болов уу. тэгээд цэвэр агаарт гараарай
LM3915 ашиглан энгийн 20 LED Vu тоолуур: 6 алхам
LM3915 ашиглан энгийн 20 LED Vu тоолуур: VU тоолуур хийх санаа нь миний төслийн жагсаалтад удаан хугацаанд байсаар ирсэн. Эцэст нь би үүнийг хийж чадна.VU тоолуур нь аудио дохионы хүчийг харуулдаг хэлхээ юм. VU тоолуурын хэлхээг ихэвчлэн өсгөгчийн хэлхээнд ашигладаг бөгөөд ингэснээр
Тоолуур тоолуур: 4 алхам
Тоолуур тоолуур: Энэхүү зааварчилгаанд би өдөр тутмын амьдралдаа цагийн менежментийг удирдахад туслах тоолох тоолуур хийхийг зааж өгөх болно. Гол урам зориг нь энэ линкээс ирсэн юм. Энэхүү тоолох тоолуур нь үндсэндээ дөрвөн оронтой долоон сегмент байх болно
CD/DVD дээрх бүх өгөгдлийг 5 секундын дотор ална уу. 3 алхам
CD/DVD дээрх бүх өгөгдлийг 5 секундын дотор ална уу: CD/DVD дээрх бүх өгөгдлийг 5 секундын дотор ална уу. Та яагаад үүнийг хийхийг хүсч байна вэ: ++ Хэдэн жилийн хуучин нөөцлөлтүүдийг устгах ++ Таныг санаж байна. унтлагын өрөөний тусгай цагийг DVD болгон шатаасан ++ Таны экс CD/DVD -г буцааж авахыг хүсч байна. ++ AOL DISK -тэй хөгжилтэй !!!! LOL