亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tp12ztest.c

?? avr C 語言LED 顯示屏系統 精典應用 可顯示12個單色中文字
?? C
字號:
/******************	TPZ12.C     12個字條屏	********************************
Kevin		START:2008-11-27
ATmega16L+DS1337+AT26DF081A
16Mhz

A	 B	C	D	STB	CLK	OE	R1	R2	G1	G2		D1	D2	D3
PB3	PB1	PC7	PC6	PA6	PA7	PA0	PA2	PA5	PA1	PA3		PC5	PC4	PC2

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

//******************************************************************//
#include "iom16v.h"
#include "macros.h"
//#include    <absacc.h>
//#define EnBright PA0
//*************************宏定義*****************************************//
#define uchar unsigned char
#define uint unsigned int

#define FIRMWARE  "LED MOVING...V8" 

#define SCREENWIDE 0X08 				
/*DEFSCREENBWIDE*8 屏最大寬度>10晃屏*/
#define SCANLINES 0x0f	
//屏高度
#define BRIGHTNESS 0x08  
//#define ENISVCC					
//Kevin 2008-11-11
#define HC595SCAN   0
#define MBI5026		1

#define		ID				0x31			
#define 	PACKETLENGTH	1002

#ifdef RG_CONVERT
	 #define dispram1 ((char *)0x100)	
	 /*紅顯存*/  /*紅綠于此處反*/
	 #define dispram2 ((char *)0x280)	
	 /*綠顯存*/
# else
    #define dispram2 ((char *)0x100)	
	/*紅顯存*/  /*紅綠于此處反*/
    #define dispram1 ((char *)0x280)	
	/*綠顯存*/
# endif

#define		SCNL		0x01			//生產能力:年月日時分秒12位
#define		HDRJ		0x02			//核定入井:0123
#define		SJRJ		0x03			//實際入井:	
#define		DOWNTIME	0x04			//下載時間:		
#define		DOWNMES		0x05			//下載信息:12中文字
#define		DOWNADD		0x06			//下載地址:1-9
#define		DOWNBAUD	0x07			//下載波特率:2400-19200
#define		DOWNLIM		0x85			//限時

#define		UPMOVE			'0'		
#define		LEFTMOVE		'1'
#define		RIGHTMOVE		'2'
#define		DOWNMOVE		'3'	
#define		FLASH			'4'		
#define		HOLD			'5'

//*************************全局變量***************************************//
char sflag=0x00;
//uchar BRIGHTNESS;		//亮度
uchar BNCURSOR=0;			//
uchar NOWH=0;
//uchar SCANLINES;		//掃描行數
//uchar dispram1[384]_at_0x00;
//uchar dispram2[384]_at_0x200;
uchar comram[30];
uchar smdisp[26];
uchar dispr1[384];
uchar dispr2[384];

//**************************定時器1初始化*********************************//




//******************************************************************//
const uchar  Bmp002[]=
{
/*------------------------------------------------------------------------------
;  若數據亂碼,請檢查字模格式設置,注意選擇正確的取模方向和字節位順序。
;  源文件 / 文字 : 歡迎光臨子 宋體12號   測試或默認數據
;  寬×高(像素): 64×16
;  字模格式/大小 : 單色點陣液晶字模,橫向取模,字節正序/128字節
;  數據轉換日期  : 2007-12-15 0:40:32
------------------------------------------------------------------------------*/
0x00,0x80,0x40,0x00,0x01,0x00,0x01,0x00,0x00,0x80,0x21,0x80,0x21,0x10,0x09,0x80,
0xFC,0x80,0x36,0x7C,0x19,0x18,0x09,0x00,0x05,0xFE,0x24,0x44,0x0D,0x10,0x49,0xFE,
0x85,0x04,0x04,0x44,0x09,0x20,0x4A,0x20,0x4A,0x48,0x04,0x44,0x01,0x04,0x4A,0x10,
0x28,0x40,0xE4,0x44,0x7F,0xFE,0x4C,0x10,0x10,0x40,0x24,0x44,0x04,0x40,0x49,0x04,
0x18,0x40,0x25,0x44,0x04,0x40,0x49,0xFE,0x18,0x60,0x26,0x54,0x04,0x40,0x49,0x24,
0x24,0xA0,0x24,0x48,0x04,0x40,0x49,0x24,0x24,0x90,0x20,0x40,0x08,0x42,0x49,0x24,
0x41,0x18,0x20,0x40,0x08,0x42,0x49,0x24,0x86,0x0E,0x50,0x00,0x10,0x42,0x09,0xFC,
0x38,0x04,0x8F,0xFE,0x20,0x3E,0x09,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
};

const uchar disp[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//SMZK0-9

//******************************************************************//
/*延時函數*/
void delay_ms(unsigned char i) {
 unsigned char a, b;
 for (a = 1; a < i; a++) {
  for (b = 1; b; b++) ;
  }}

//*****************************SPI********************************//
/*SPI接口初始化*/
void SPI_MasterInit(void) {
 DDRB |= (1<<PB5) | (1<<PB7);  /* 設置MOSI 和SCK 為輸出,其他為輸入 */
 SPCR = (1<<SPE) | (1<<MSTR)
  | (1<<SPR1) | (1<<SPR0);  /* 使能SPI 主機模式,設置時鐘速率為fck/128 */
}
/*SPI數據發送*/
void SPI_MasterTransmit(uchar i) {
 
 SPDR = i;       /* 啟動數據傳輸 */
 while (!(SPSR & (1<<SPIF))) {  /* 等待傳輸結束 */
  ;
  }
}
/*595數據輸出*/
void SPI_595_Out(uchar i) {
 PORTB &= ~(1 << 4);     /*準備鎖存*/
 SPI_MasterTransmit(i);
 PORTB |= (1 << 4);     /*鎖存數據*/
}


//*****************************EEPROM********************************//
/*EEPROM讀取函數*/
/*addr:地址;number:長度;p_buff:讀出數據存放指針*/
void eprom_read(uint addr, uchar number, uchar *p_buff) {
 while(EECR & (1 << EEWE));
 EEARH = 0x00;
 
 while(number --) {
  EEARL = addr ++;
  EECR |= (1 << EERE);
  *p_buff++ = EEDR;
  }
}
/*EEPROM寫入函數*/
/*addr:地址;number:長度;p_buff:寫入數據存放指針*/
void eprom_write(uint addr, uchar number, uchar *p_buff) {
 EEARH = 0x00;
 while(number --) {
  while(EECR & (1 << EEWE));
  EEARL = addr ++;
  EEDR = *p_buff ++;
  EECR |= (1 << EEMWE);
  EECR |= (1 << EEWE);
  }
}

//*****************************DISPLAY********************************//
//R1 PA2  CLK PA7  STB  PA6  G1 PA1  G2 PA3  R2  PA5

void WD595(uchar *disdata,uchar k){
uchar mid;
	uchar i,j;
	uchar x;
	PORTA&=~0xC0;		//PA6,7 out 0

	for(j=0;j<k;j++)		  //send K bytes
	{
 	mid=disdata[j];
				   for(i=0;i<8;i++){		  //send one byte
						x=mid&0x80;		//
					  	if(x==0)
					  	PORTA&=~0x04;	//R1 out 0  
						//PORTA&=~0x18;	//R1,G1 out 0	  2513
						else
						PORTA|=0x04;	// R1 out 1
						//PORTA&=~0x18;	//R1,G1 out 0   四個數據
						PORTA|=0x80;		// CLK out 1
						mid=mid<<1;			//
						PORTA&=~0x80;		// clk out 0
					}
	}
 	PORTA|=0x40;		//STB SET1
	PORTA&=~0xC0;		//PA6,7 out 0
}

//-----------------------------------------------------------
/*串口初始化函數*/
void Uart_Init(void) {
 UCSRA = 0x00;  /*倍速0000 0010*/
 UCSRB = 0x00;  /*允許接收和發送0001 1000*/
 UCSRC = 0x06;  /*8位數據*0000 0110*/
 UBRRH = 0x00;
 UBRRL = 0x67;  /*9600*/  //16M  103  UBRR=FOSC/(BAUD*16)-1
 UCSRB=0X98;
 //UCR=0X00;
// UBRR=103;
// UCR=0XD8;
}

/*數據發送,查詢方式*/
void Uart_Transmit(unsigned char i) {
 while (!(UCSRA & (1<<UDRE)));  /* 等待發送緩沖器為空*/
 UDR = i;    /* 發送數據*/
}
/*數據接收,查詢方式*/
unsigned char Uart_Receive( void ) {
 while (!(UCSRA & (1<<RXC)));  /* 等待接收數據*/  //while(!(USR&0X80));
 return UDR;    /* 獲取并返回數據*/
}

#pragma interrupt_handler ComR:12
uchar ComR(void)
{
//uart has received a character in UDR
//PORTA=UDR; //接收數據并輸出
return UDR;
}



//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
//port_init();
Uart_Init();

MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x00; //timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
//----------------Revecie-int--------------------------






//--------------------------------------------------
/*系統初始化函數*/
void Sys_init(void){
 DDRA = 0xef;      /*方向輸入0xef*/
 PORTA = 0xFF;     /*打開上拉*/
 DDRB = 0xff;      /*方向輸出0xde*/
 PORTB = 0xff;     /*電平設置*/
 DDRC = 0xff;
 PORTC = 0xFF;
 //DDRD = 0xFF;
 //PORTD = 0xFF;
 TIMSK=TIMSK|0X01;
 TCCR0=0X03;		//C0
 TCNT0=0X05;		//1MS
 SREG=SREG|0x80;
 TIFR=TIFR|0X01;
 
 NOWH=0x00;
 SEI();  //RE-ENABLE INTERRUPTS
}

//-----------------------------------------
void Enoff(void){
		#ifdef ENISVCC
        	PORTA&=~0x01;
        #else
        	PORTA|=0x01;
		#endif	
}

void Enon(void){
		#ifdef ENISVCC
         	PORTA|=0x01;
        #else
       		PORTA&=~0x01;
		#endif	
}

//*****************************定時掃描********************************//
//場頻>60hz  16scan 行頻>960hz   行掃時間<1ms  8scan 行頻>480hz  行掃時間<0.5ms
//16Mhz 64分頻   250 1ms    做16級亮度     ABCD PB 3,1  PC 7,6  DCBA 0000-1111
/*定時器T0 TCCR1A組比較匹配中斷*/
#pragma interrupt_handler Timer0:10
void Timer0(void) { 
uchar i,j;
  /*  if (SCANLINES>8)
       	TCNT0=0xC1;		  //1/16MS
	else
 		TCNT0=0xe0;		  //.5/16MS
	if(BNCURSOR==0){		//關行,送數,選行,開行
		Enoff();
		//Bmp003[12]={0,1,2,3};
		WD595(dispr1,SCREENWIDE);
		i=j=NOWH;
		i=(i&0x01<<2)|(i&0x02>>1);
			   PORTB|=i;		//  AB
		j=(j&0x04<<4)|(j&0x08<<2);	   					 
			   PORTC|=j;		//CD
		NOWH++;
		Enon();}
	else if(BNCURSOR==BRIGHTNESS)	
		 Enoff();//關行
	BNCURSOR++;
	BNCURSOR&=0x0f;	   				//0-15*/
	//PORTC|=0X00;	
} 


void Send(uchar j);
void ScanRow(void);
void InitRam(void);
//*****************************主程序********************************//
void main(void) {
 //uint mid,x;
 uchar i,j,y,k;
  Sys_init();
  Uart_Init();
  init_devices();
  Uart_Transmit('o');
  Uart_Transmit('c');
 // Enon();
 InitRam();

 	while(1){	
		//if(BNCURSOR==0){		//送數,關行,鎖存,選行,開行
		//Bmp003[12]={0,1,2,3};
		//WD595(dispr1,SCREENWIDE);
		//i=NOWH*
		Send(NOWH);
		Enoff();
		PORTA|=0x40;		//STB SET1
		PORTA&=~0x40;		//PA6 out 0
		ScanRow();
		Enon();  
		}	
	//else if(BNCURSOR==BRIGHTNESS)	
	//BNCURSOR++;
	//BNCURSOR&=0x0f;	   				//0-15*/
/*
	PORTC&=~0x10;					//D2	
	PORTC&=~0x04;					//D3
	PORTC&=~0x20;					//D1  */
	  
}

void ScanRow(void){
	 uchar i;
	 	PORTB&=~0X0A;	//ABCD cls		00001010	  
		PORTC&=~0XC0;		//1100 0000
		i=NOWH;
		i=((i&0x01)<<3)|(i&0x02);			//ok 20081129
		PORTB|=i;		//AB	
		i=NOWH;
		i=((i&0x04)<<5)|((i&0x08)<<3);		//ok 20081129 		
		PORTC|=i;		//CD
		
		NOWH++;
		NOWH&=0x0f;

}

void Send(uchar j){							 //列,行
uchar mid,y,x,i;
i=0;
		while(i<SCREENWIDE){
		    mid=Bmp002[j*SCREENWIDE+i];//dispr1[j*SCREENWIDE+i];// 			
		   	for(y=0;y<8;y++){		  //send one byte  OK
				x=mid&0x80;				  //
				PORTA&=~0x80;			  // clk out 0
			if(x!=0)				  //數據反向
				PORTA&=~0x0c;			  //R1 out 0  2513
			else
				PORTA|=0x0c;			  // R1 out 1 
			PORTA|=0x80;			  // CLK out 1
			mid=mid<<1;				  //
			}
			i++;
		}//while(i);
}

void InitRam(void){
uchar j;
uint i;
  	   j=1;
 for(i=0;i<384;i++){ 
 		dispr1[i]=j;
		j=(j<<1)+1;
		j&=0xFF;
		}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品色呦呦| 欧美日韩精品一区二区天天拍小说| 欧美一级电影网站| 青青草国产成人av片免费| 欧美乱熟臀69xxxxxx| 日韩国产高清在线| 日韩欧美在线123| 国产资源精品在线观看| 日本一区二区三区四区在线视频| 波多野结衣精品在线| 亚洲欧美区自拍先锋| 欧美一区二区三区人| 五月天精品一区二区三区| 51精品国自产在线| 久草这里只有精品视频| 久久婷婷国产综合精品青草| 国产69精品久久777的优势| 自拍视频在线观看一区二区| 欧美日韩国产免费| 精品一区二区免费视频| 国产欧美日韩激情| 色妞www精品视频| 免费视频最近日韩| 国产欧美久久久精品影院| 色呦呦国产精品| 青椒成人免费视频| 中文av字幕一区| 欧美日韩在线观看一区二区| 久久精品国产第一区二区三区| 国产目拍亚洲精品99久久精品| 欧洲在线/亚洲| 国产精品一区二区在线看| 亚洲欧美色图小说| 日韩欧美国产成人一区二区| 丁香婷婷综合色啪| 天天操天天综合网| 国产精品久久久久影院老司| 欧美电影一区二区| 粉嫩av亚洲一区二区图片| 亚洲国产精品久久人人爱蜜臀 | 中文字幕免费一区| 在线欧美日韩精品| 国产成人在线视频免费播放| 亚洲主播在线播放| 日本一区二区不卡视频| 91精品免费在线观看| av不卡免费在线观看| 免费欧美在线视频| 亚洲精品免费在线播放| 精品福利二区三区| 9191国产精品| 在线看日韩精品电影| 成人免费黄色大片| 狠狠色丁香婷婷综合| 亚洲影院久久精品| 中文字幕日本不卡| 26uuu另类欧美亚洲曰本| 欧美男生操女生| 色婷婷久久综合| www.av亚洲| 国产不卡视频一区| 久久99久久精品| 日日夜夜精品免费视频| 伊人夜夜躁av伊人久久| 日本一区二区不卡视频| 26uuu国产电影一区二区| 在线成人av影院| 欧美特级限制片免费在线观看| eeuss鲁片一区二区三区在线观看| 久久超碰97中文字幕| 天堂蜜桃91精品| 亚洲成av人片在www色猫咪| 亚洲人亚洲人成电影网站色| 欧美激情一二三区| 久久久综合视频| 久久先锋影音av鲁色资源网| 欧美成人精品福利| 欧美大片一区二区三区| 在线不卡中文字幕播放| 51精品视频一区二区三区| 欧美电影在哪看比较好| 欧美肥胖老妇做爰| 欧美一区二区日韩一区二区| 91精品国产综合久久蜜臀| 欧美日韩国产综合一区二区 | 亚洲v精品v日韩v欧美v专区| 亚洲国产一区二区视频| 亚洲午夜羞羞片| 午夜精品久久久久久久蜜桃app| 中文字幕在线视频一区| 亚洲欧洲精品一区二区三区不卡| 国产精品福利一区二区三区| 中文字幕在线观看一区二区| 樱花草国产18久久久久| 精品国产91亚洲一区二区三区婷婷| 精品国产乱码久久久久久影片| 精品国产a毛片| 中文字幕av不卡| 亚洲欧美日韩国产中文在线| 亚洲国产视频a| 六月丁香婷婷久久| 国产精品一级二级三级| eeuss鲁片一区二区三区在线观看| 色伊人久久综合中文字幕| 欧美人体做爰大胆视频| 欧美xxx久久| 国产精品久久综合| 亚洲国产精品自拍| 国产在线精品免费| 成人sese在线| 欧美久久久一区| 国产视频一区在线播放| 亚洲综合色区另类av| 久久激情综合网| 99久久精品国产精品久久| 欧美性高清videossexo| 日韩精品一区二区三区在线观看| 国产日韩综合av| 亚洲成av人片一区二区| 国产精品一区二区在线播放| 在线日韩一区二区| 久久免费视频一区| 亚洲成人黄色影院| 成人午夜激情视频| 欧美日韩免费不卡视频一区二区三区| 欧美va在线播放| 亚洲综合一区在线| 国产激情偷乱视频一区二区三区| 在线视频中文字幕一区二区| xnxx国产精品| 午夜av一区二区三区| 成人少妇影院yyyy| 91精品国产综合久久蜜臀| 成人欧美一区二区三区视频网页| 奇米色一区二区三区四区| 99久久久精品免费观看国产蜜| 风流少妇一区二区| 欧美va在线播放| 天天色天天操综合| 亚洲国产岛国毛片在线| 亚洲欧美另类图片小说| 国产精品一区二区黑丝| 欧美一区二区视频在线观看2022| 国产精品第13页| 国产一本一道久久香蕉| 欧美色图激情小说| 国产精品福利av| 国产精品一级黄| 国产视频一区在线观看| 91丨porny丨首页| 国产91露脸合集magnet| 欧美久久久久久久久| 亚洲免费大片在线观看| 国产激情视频一区二区在线观看 | 欧美三级蜜桃2在线观看| 国产欧美视频在线观看| 美腿丝袜亚洲一区| 欧美色精品天天在线观看视频| 国产精品成人免费| 成人午夜电影小说| 国产亚洲精品7777| 国产福利精品一区二区| 精品国精品国产| 久久国产乱子精品免费女| 91精品免费在线| 日韩不卡在线观看日韩不卡视频| 欧美美女视频在线观看| 亚洲综合免费观看高清完整版 | 久久综合色鬼综合色| 青青草视频一区| 欧美大片在线观看一区二区| 免费成人结看片| 日韩欧美一区二区视频| 美女一区二区三区| 日韩精品一区二区三区四区| 青青草伊人久久| 精品理论电影在线| 看国产成人h片视频| 欧美精品一区二区不卡| 国产精品一线二线三线精华| 久久久国际精品| 成人免费视频播放| 1区2区3区精品视频| 日本精品视频一区二区| 亚洲国产wwwccc36天堂| 欧美一级国产精品| 黄网站免费久久| 中文字幕精品综合| 色婷婷一区二区| 五月天婷婷综合| 久久伊99综合婷婷久久伊| 国产成人av电影| 亚洲黄色av一区| 欧美一区二区在线看| 精品一二三四区| 17c精品麻豆一区二区免费| 欧美日韩免费在线视频| 麻豆成人久久精品二区三区红| 国产午夜精品一区二区三区四区| 91亚洲精华国产精华精华液|