⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reclama_fct3._c

📁 a ICCAVR source code for a small led matrix it uses atmega8 at 8 mhz
💻 _C
字号:
#include <string.h>
#include <iom8v.h>
#include <EEPROM.h>
#include "reclama_fct3.h"
#include "delay_fct3.h"
#define zero 0x00
#define unu 0x01
#define doi 0x02
#define trei 0x03

/* **********************  */	
void send_octetA(struct octet oct){
	uc_8 i;
	for(i=0;i<8;i++) send_bitA(oct.a[i]);
	}
/* **********************  */	
void send_octetB(struct octet oct){
	uc_8 i;
	for(i=0;i<8;i++) send_bitB(oct.a[i]);
	}
/* **********************  */	
void send_octetAB(struct octet oct){
	uc_8 a,b,c,d,e,f,g,h,i;
	
	a=oct.a[0];b=oct.a[1];c=oct.a[2];d=oct.a[3];
	e=oct.a[4];f=oct.a[5];g=oct.a[6];h=oct.a[7];
	
send_bitAB(a,a);
send_bitAB(c,g);
send_bitAB(d,g);
send_bitAB(d,f);
send_bitAB(f,e);
send_bitAB(c,h);
send_bitAB(b,h);
send_bitAB(b,e);
send_bitAB(a,a);
send_bitAB(c,g);
send_bitAB(d,g);
send_bitAB(d,f);
send_bitAB(f,e);
send_bitAB(c,h);
send_bitAB(b,h);
send_bitAB(b,e);
	
	}
/* **********************  */	
void send_bitA(uc_8 b){
   switch(b){
    case 0: PORTB|=(0<<PORTB0);clock();PORTB&=~(0<<PORTB0);break;//clock(); break;
	case 1: PORTB|=(1<<PORTB0);clock();PORTB&=~(1<<PORTB0);break;
	}
   }
/* **********************  */	
void send_bitB(uc_8 b){
   switch(b){
    case 0: PORTB|=(0<<PORTB1);clock();PORTB&=~(0<<PORTB1);break;//clock(); break;
	case 1: PORTB|=(1<<PORTB1);clock();PORTB&=~(1<<PORTB1);break;
	}
   }
/* **********************  */
void send_bitAB(uc_8 a,uc_8 b){
  
	if(a==0&b==0)	 {PORTB|=zero;clock();PORTB&=~zero;}
	if(a==0&b==1)	 {PORTB|=unu;clock();PORTB&=~unu;}
	if(a==1&b==0)	 {PORTB|=doi;clock();PORTB&=~doi;}
	if(a==1&b==1)	 {PORTB|=trei;clock();PORTB&=~trei;}
	}  
/* **********************  */   
void afisheaza_A(uc_8 img){
	uc_8 j;
	 linie_goala(10); 	
			for(j=0;j<5;j++) send_octetA(zecimal_binar(fig_dec(img).c[j]));
	 linie_goala(10);
	 } 

/* **********************  */
void afisheaza_B(uc_8 img){
	uc_8 j;
	 linie_goala(10); 	
			for(j=0;j<5;j++) send_octetB(zecimal_binar(fig_dec(img).c[j]));
	 linie_goala(10);
	 } 

/* **********************  */	
void afisheaza_AB(uc_8 img){
	 uc_8 j;
	linie_goala_AB(5); 
	for(j=0;j<5;j++) send_octetAB(zecimal_binar(fig_dec(img).c[j]));
	linie_goala_AB(5); 							
	} 
/* **********************  */					  
void linie_goala(uc_8 n) {
		uc_8 i,j;
	 for(i=0;i<n;i++) { for(j=0;j<8;j++){PORTB|=(0<<PORTB1);clock();PORTB&=~(0<<PORTB1);}
					}
	 }	  	 
/* **********************  */					  
void linie_goala_AB(uc_8 n) {
		uc_8 i,j;
	 for(i=0;i<n;i++){for(j=0;j<16;j++) { PORTB|=(0<<PORTB1);clock();PORTB&=~(0<<PORTB1);}
	 				 }					
	 }		 
/* **********************  */		  
struct octet zecimal_binar (uc_8 numar){ //in loc de uc_8 era unsigned int
	   uc_8 k;
	   struct octet rasp;
	   for(k=0;k<8;k++){rasp.a[7-k]=numar%2;
	   					numar=numar/2;
						}
		return rasp;
		}	
/* **********************  */										  
void init_uc(void){
	  PORTD = 0x00; //MMC card
      DDRD  = 0xFF;
	  PORTB = 0x00;//data1+data2+ON/OFF+CLK
      DDRB  = 0xFF;
      }
/* **********************  */			 
void clear(int n) {
	 uc_8 i;
	 for(i=0;i<n;i++) clock();
	}
/* **********************  */		  
void display (int onoff){
	 PORTB|=(1<<PORTB3);
	 delay8_us(onoff);
	 PORTB&=~(1<<PORTB3);
	 delay8_us(500); ///DE MODIFICAT PT INTENSITATEA LUMINII...SI IN COD LA SEND_OCTET...DISPLAY
	 }  
/* **********************  */	
void clip (uc_8 c){
	 uc_8 i;
	 for(i=0;i<c;i++) display(100);
	 }	 
/* ********************** */
void afisheaza_poza(struct poza pic){
	 uc_8 i;
	 for(i=0;i<25;i++) send_octet_AB(zecimal_binar(pic.A[i]),zecimal_binar(pic.B[i]));
	 clip(100);
	 }
/* ********************** */
void send_octet_AB(struct octet A, struct octet B){
	 uc_8 i;
	for(i=0;i<8;i++) send_bitAB(A.a[i],B.a[i]);
	}
	 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -