قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية alsatel07
alsatel07
:: مهندس متميز ::
تاريخ التسجيل: Jun 2014
الدولة: Usa
المشاركات: 359
نشاط [ alsatel07 ]
قوة السمعة:0
قديم 11-02-2020, 02:23 PM المشاركة 1   



السلام عليكم

اخواني الكرام وجدة هدا الكود في النت لكن لم يعمل معي

/************************************************** ************************
* Exercice de démultiplication de port via 74HC595 *
* Sortie sur 24 LEDs. PIC16F876A MikroC *
* 3 Ports pour 24 sorties avec 3x 74HC595 *
* Chaque circuit ajouté permet 8 ports supplémentaires *
* *
************************************************** ************************/

//*****************
//Déclaration des variables
int i,vitesse;
char HC595_0,HC595_1,HC595_2;

// Tableau de figure sur 8 bits installés en ROM
const char sequence[]={
0b00000000, 0b00000000, 0b00000000,
0b00000000, 0b00000000, 0b00000001, // LED allumée = 1 -- HC595_0, HC595_1, HC595_2
0b00000000, 0b00000000, 0b00000010,
0b00000000, 0b00000000, 0b00000100,
0b00000000, 0b00000000, 0b00001000,
0b00000000, 0b00000000, 0b00010000,
0b00000000, 0b00000000, 0b00100000,
0b00000000, 0b00000000, 0b01000000,
0b00000000, 0b00000000, 0b10000000,
0b00000000, 0b00000001, 0b00000000,
0b00000000, 0b00000010, 0b00000000,
0b00000000, 0b00000100, 0b00000000,
0b00000000, 0b00001000, 0b00000000,
0b00000000, 0b00010000, 0b00000000,
0b00000000, 0b00100000, 0b00000000,
0b00000000, 0b01000000, 0b00000000,
0b00000000, 0b10000000, 0b00000000,
0b00000001, 0b00000000, 0b00000000,
0b00000010, 0b00000000, 0b00000000,
0b00000100, 0b00000000, 0b00000000,
0b00001000, 0b00000000, 0b00000000,
0b00010000, 0b00000000, 0b00000000,
0b00100000, 0b00000000, 0b00000000,
0b01000000, 0b00000000, 0b00000000,
0b10000000, 0b00000000, 0b00000000
};
//************************************************** ****************************
//Interruption
void interrupt() {
vitesse++;
TMR0 = 0; // Valeur décimale préchargée à soustraire à 256
//********************
//Désactive l'interruption TMR0 (0xA0 = active)
INTCON = 0x20; // Set T0IE, clear T0IF (Met à 1 le bit TMROIE , Efface(0) le Flag TMROIF de débordement d'interruption)

} //fin interruption

//************************************************** ****************************


void send_data(char HC595_0, char HC595_1, char HC595_2)
{
Spi_Write(HC595_0); // données premier circuit
Spi_Write(HC595_1); // données deuxième circuit
Spi_Write(HC595_2); // données troisième circuit
PORTC.F6=1; // impulsion de validation sur LATCH
PORTC.F6=0;
}
//************************************************** ****************************
// Programme principal
void main(){

INTCON=0xA0; // Activer l'interruption TMR0
OPTION_REG = 0x00; // Assigner prescaler sur TMR0 valeur 2 = 000
TMR0=0;
ADCON0=0; // ADC désactivé
TRISA=1; // PORTA configuré en Entrée
TRISB=0; // PORTB configuré en sortie
TRISC=0; // PORTC configuré en sortie
PORTA=0; // mise à zéro des ports A
PORTB=0; // mise à zéro des ports B
PORTC=0; // mise à zéro des ports C
vitesse=0; // vitesse de défilement
i=0;

//Paramètre de configuration des ports pour la gestion du 74HC595
Spi_Init_Advanced(MASTER_OSC_DIV16,DATA_SAMPLE_MID DLE,CLK_IDLE_LOW,LOW_2_HIGH);

//************************************************** ****************************
//boucle infinie
while(1)
{
if(vitesse==512){
vitesse=0;
if(i==24) // compteur sur la totalité des octets du tableau
{
i=0;
} // fin de If
i++;
HC595_0=sequence[i*3]; // données sur le premier 595
HC595_1=sequence[(i*3)+1]; // données sur le second 595
HC595_2=sequence[(i*3)+2]; // données sur le troisième 595
send_data(HC595_0,HC595_1,HC595_2); // envoie les données à afficher


} // fin de If

} //fin de while

} // fin de main

//************************************************** *************************



اين الخطئ افيدونا جزاكم الله كل خير ممكن تصحيح الكود

يحياتى


التعديل الأخير تم بواسطة : alsatel07 بتاريخ 11-02-2020 الساعة 02:31 PM
اعلانات
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 08:36 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025