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

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

?? hd7279.c

?? atmega16單片機AD轉換源代碼
?? C
字號:

/*****************************readme.txt***********************************************************
HD7279.C是AVR Mega16,8MHz的配置文件

使用前必須先進行宏定義的“管腳配置”、”鍵值轉換配置“

外部調用主要有四個函數

#:init_7279()為7279初始化函數,在使用HD7279前必須先調用此文件

#:void write7279(unsigned char cmd,unsigned char dta);
	前一個cmd為指令,可直接調用宏義中“HD7279指令集”
	后一個dat為數據,輸入0x80+i,i為顯示的數字
	
#:unsigned char read7279(void):數據讀取函數
	返回是鍵盤的原始值,沒有進行任何轉換
	
#:unsigned char get_key7279(void):讀取一個鍵值

	調用函數后,等待按鍵,直到有按鍵按下并松開,
	返回一個與鍵值對應的鍵值,經過數值轉換
	
內部函數,不對用戶開發;用戶只須調用以上上四個函數就可以完成HD7279的基本操作

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


/********************************管腳配置*****************************/
#define WR7279 PORTC												   
#define RD7279 PINC
#define DR7279 DDRC

#define cs7279 BIT(1)	//cs7279定義為PC^5
#define clk7279 BIT(2) 	//clk7279定義為PC^4
#define dat7279 BIT(3)	//dat7279定義為PC^3
#define key7279 BIT(4)	//key7279定義為PC^2

/******************************鍵值轉換配置********************************/
#define ONE 0X03
#define TWO 0X02
#define THREE 0X01
#define FOUR 0X00
#define FIVE 0X0B
#define SIX 0X0A
#define SEVEN 0x09
#define EIGHT 0X08
#define NINE 0X13
#define ZERO 0X12
#define AAAA 0X11     
#define BBBB 0x10     
#define CCCC 0X1B       
#define DDDD 0X1A		
#define EEEE 0X19    
#define FFFF 0X18     

/********************************HD7279指令集***************************/
#define CMD_RESET 0xa4		//復位(清除)指令
#define CMD_TEST 0xbf		//測試指令
#define DECODE0 0x80		//方式0譯碼
#define DECODE1 0xc8		//方式1譯碼
#define CMD_READ 0x15		//讀取鍵盤數據指令
#define UNDECODE 0x90		//不帶小數點顯示
#define RTL_CYCLE 0xa3		//循環左移指令
#define RTR_CYCLE 0xa2		//循環右移指令
#define RTL_UNCYL 0xa1		//左移指令
#define RTR_UNCYL 0xa0		//右移指令
#define ACTCTL 0x98		//消隱控制
#define SEGON 0xe0		//段點亮指令	
#define SEGOFF 0xc0		//段關閉指令
#define BLINKCTL 0x88		//閃爍控制


/******************************************外部調用函數申明*********************************************/

/*****************************************************
函數名:HD7279初始化函數	
功  能:初始化HD7279(管腳配置、HD7279復位)
輸  入:無
返  回:無
備  注:使用HD7279之前調用此函數,并配置管腳的宏定義
******************************************************/	
extern void init_7279(void);	  	 

/****************** **********************
函數名:HD7279寫入函數	
功  能:對HD7279寫數據
輸  入:cmd為指令數據;	dta為數據數據
返  回:無
備  注:HD7279的控制函數
******************************************/
extern void write7279(unsigned char cmd,unsigned char dta);	//寫入到HD7279

/****************** **********************
函數名:HD7279讀取函數	
功  能:對HD7279讀取原始鍵值
輸  入:無
返  回:鍵盤原始鍵值
備  注:HD7279的控制函數
******************************************/
extern unsigned char read7279(void);

/****************** **********************
函數名:HD7279按鍵等待接收函數	
功  能:當完成一次按鍵,返回鍵值
輸  入:無
返  回:鍵盤鍵值
備  注:HD7279的控制函數
******************************************/
extern unsigned char get_key7279(void);

/****************** **********************
函數名:HD7279測試函數	
功  能:對HD7279功能測試
輸  入:無
返  回:無
備  注:
******************************************/
extern void test_7279(void);



/*******************************************內部函數申明***********************************************/
//長時延函數
extern void long_delay(void);	
//短時延函數					
extern void short_delay(void);					
//10ms時延函數
extern void delay10ms(unsigned int);			
//發送一個字節

/****************** **********************
函數名:HD7279字節發送函數	
功  能:HD7279發送一個字節
輸  入:無
返  回:無
備  注:HD7279硬件函數
******************************************/
extern void send_byte(unsigned char);	

/****************** **********************
函數名:HD7279字節接收函數	
功  能:從HD7279接收一個字節
輸  入:無
返  回:一個字節
備  注:HD7279硬件函數
******************************************/
extern unsigned char receive_byte(void);			

/****************** **********************
函數名:HD7279按鍵等待接收函數	
功  能:當完成一次按鍵,返回鍵值
輸  入:無
返  回:鍵盤鍵值
備  注:HD7279的控制函數
******************************************/
extern unsigned char  num_change7279 (unsigned char X);



/******************************************外部調用函數*********************************************/

/*****************************************************
函數名:HD7279初始化函數	
功  能:初始化HD7279(管腳配置、HD7279復位)
輸  入:無
返  回:無
備  注:使用先,選配置管腳的宏定義
******************************************************/		
extern void init_7279(void)	
{
	unsigned int tmr;
	
	DR7279 |= cs7279;		//cs7279定義為輸出
	DR7279 |= clk7279;		//clk7279定義為輸出
	DR7279 |= dat7279;		//dat7279定義為輸出
	DR7279 &= ~(key7279);		//key7279定義為輸入
	
	WR7279 |= cs7279;		//cs7279初始化為1
 	WR7279 |= clk7279;		//clk7279初始化為1
 	WR7279 |= dat7279;		//dat7279初始化為1
 	WR7279 |= key7279;		//key7279初始化為有弱上拉 
 	
 	for(tmr=0;tmr<0xf000;tmr++);	//上電延時
 		
	send_byte(CMD_RESET);		//復位HD7279
 		 	 		
}  	 

/****************** **********************
函數名:HD7279寫入函數	
功  能:對HD7279寫數據
輸  入:cmd為指令數據;	dta為數據數據
返  回:無
備  注:HD7279的控制函數
******************************************/
extern void write7279(unsigned char cmd,unsigned char dta)	//寫入到HD7279
{	
	send_byte(cmd);		//寫指令
	send_byte(dta);		//定數據
}

/****************** **********************
函數名:HD7279讀取函數	
功  能:對HD7279讀取原始鍵值
輸  入:無
返  回:鍵盤原始鍵值
備  注:HD7279的控制函數
******************************************/
extern unsigned char read7279(void)
{
	send_byte(0x15);	//發送讀取指令
	return(receive_byte());	//返回鍵值
	
}

/****************** **********************
函數名:HD7279按鍵等待接收函數	
功  能:當完成一次按鍵,返回鍵值
輸  入:無
返  回:鍵盤鍵值
備  注:HD7279的控制函數
******************************************/
extern unsigned char get_key7279(void)
{
	unsigned char KeyNum;
	while( (RD7279&key7279) );		//等待有鍵按下
	
	delay10ms(1);				//時延100ms
	
	KeyNum=read7279();			//讀出鍵碼	
	
	KeyNum=num_change7279(KeyNum);   	//鍵碼轉為十進制
	
	delay10ms(1);				//時延100ms
	
	while( !(RD7279&key7279) );			//等待按鍵松開
	
	return KeyNum;				//返回鍵值
}

/*****************************************內部函數*****************************************/

//長時延函數
extern void long_delay(void)
{
	unsigned char i;
	for(i=0;i<80;i++);
}	

//短時延函數					
extern void short_delay(void)
{
	unsigned char i;
	for(i=0;i<46;i++);
}
				
//10ms時延函數
void delay10ms(unsigned int count)
{
	unsigned char i,j,k;
 	for (i=0;i<count;i++)
      		for(j=0;j<100;j++)
      			for(k=0;k<100;k++);
}	
	
/****************** **********************
函數名:HD7279字節發送函數	
功  能:HD7279發送一個字節
輸  入:一個字節
返  回:無
備  注:HD7279硬件函數
******************************************/
extern void send_byte(unsigned char out_byte)
{	
	unsigned char i;
	
	WR7279&=~clk7279;		//clk7279=0;
	WR7279&=~cs7279;		//cs7279=0
	long_delay();
	
	for(i=0;i<8;i++)
	{
		if(out_byte&0x80)
		{
			WR7279|=dat7279;	//dat7279=1;
		 }
		 else
		 {
		 	WR7279&=~dat7279;	//dat7279=0;
		 }
		 WR7279|=clk7279;		//clk7279=1;
		 short_delay();
		 WR7279&=~clk7279;		//clk7279=0;
		 short_delay();
		 out_byte=out_byte<<1;
	 }
	 WR7279|=dat7279;			//dat7279=1; 	 
}
	
/****************** **********************
函數名:HD7279字節接收函數	
功  能:從HD7279接收一個字節
輸  入:無
返  回:一個字節
備  注:HD7279硬件函數
******************************************/
extern unsigned char receive_byte(void)
{
	unsigned char i,in_byte;
	
	WR7279|=clk7279;		//clk7279=1;
	
	DR7279&=~dat7279;			//改dat7279為輸入
	
	long_delay();
	
	for(i=0;i<8;i++)
	{	
		WR7279|=clk7279;		//clk7279=1;
		short_delay();
		in_byte=in_byte<<1;
		if(RD7279&dat7279)
		{
			in_byte=in_byte|0x01;
		}
		WR7279&=~clk7279;		//clk7279=0;
		short_delay();
	
	}
	DR7279|=dat7279;			//dat7279還原為輸出口
	return(in_byte);
}

/****************** **********************
函數名:HD7279按鍵等待接收函數	
功  能:當完成一次按鍵,返回鍵值
輸  入:無
返  回:鍵盤鍵值
備  注:HD7279的控制函數
******************************************/
extern unsigned char  num_change7279 (unsigned char X)
 {
   	switch (X)
	{
		case  ONE 	: return 0X01;
		case  TWO 	: return 0X02;
		case  THREE 	: return 0X03;
		case  FOUR 	: return 0X04;
		case  FIVE 	: return 0X05;
		case  SIX  	: return 0X06;
		case  SEVEN 	: return 0X07;
		case  EIGHT 	: return 0X08;
		case  NINE 	: return 0X09;
		case  ZERO 	: return 0X00;
		case  AAAA  	: return 0x0A;
		case  BBBB 	: return 0x0B;
		case  CCCC 	: return 0x0C;
		case  DDDD 	: return 0x0D;
		case  EEEE 	: return 0x0E;
		case  FFFF 	: return 0x0F;
		default 	: return 0xFF;
	}
}


		


/****************** HD7279測試函數*************************

//	作用:測試函數
extern void test_7279(void)
{
	unsigned long wait_cnter;
	unsigned long tmr,j,k;
	unsigned char key7279_number;
	init_7279();
	while(1)
	{
		for(tmr=0;tmr<0xf000;tmr++);	//上電延時
		send_byte(CMD_RESET);		//復位HD7279

		//測試指令演示

		send_byte(CMD_TEST);
		for(j=0;j<3;j++)		//延時約3秒
		{	
			delay10ms(100);
		}
		send_byte(CMD_RESET);		//清除顯示
		
	
		{	
		 write7279(DECODE0,0x80);
		 write7279(DECODE0+1,0x81);
		 write7279(DECODE0+2,0x82);
		 write7279(DECODE0+3,0x83);
		 write7279(DECODE0+4,0x84);
		 write7279(DECODE0+5,0x85);
		 write7279(DECODE0+6,0x86);
		 write7279(DECODE0+7,0x87);
		 }
		 
		delay10ms(200);

//閃爍指令及鍵盤接口測試,將用戶按鍵的鍵碼顯示出來,如果10秒內無按鍵或按S0鍵即進入下一步演示
		wait_cnter=0;
		key7279_number=0xff;
		write7279(BLINKCTL,0xfc);			//第1

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人小视频在线| 99久久精品免费| 亚洲国产成人av好男人在线观看| 久久伊人中文字幕| 欧美成人女星排名| 精品国产污网站| 久久综合久久鬼色中文字| 2020日本不卡一区二区视频| 久久天天做天天爱综合色| 精品国产免费一区二区三区四区 | 性做久久久久久久免费看| 亚洲欧洲另类国产综合| 一区二区在线观看不卡| 亚洲最大色网站| 石原莉奈一区二区三区在线观看 | 欧美va在线播放| 欧美精品一区二区高清在线观看 | 亚洲成a人片在线不卡一二三区 | 欧美r级在线观看| 久久综合久久久久88| 国产精品久久久久精k8| 亚洲另类色综合网站| 丝袜诱惑亚洲看片| 狠狠色2019综合网| 91看片淫黄大片一级在线观看| 在线观看亚洲一区| 欧美mv和日韩mv国产网站| 欧美高清在线一区| 亚洲成人av在线电影| 国内偷窥港台综合视频在线播放| voyeur盗摄精品| 精品污污网站免费看| 久久综合九色综合97_久久久| 亚洲欧美中日韩| 日本欧洲一区二区| aaa国产一区| 在线不卡免费欧美| 中文字幕二三区不卡| 日韩精品视频网| 成人丝袜视频网| 欧美一级高清片在线观看| 成人欧美一区二区三区白人| 婷婷丁香激情综合| 99久久精品国产网站| 91精品国产欧美一区二区18 | 久久婷婷色综合| 亚洲高清免费观看高清完整版在线观看 | 99久久久无码国产精品| 欧美久久一二三四区| 国产精品久久久久久久久搜平片 | 1024成人网色www| 久久精品免费观看| 欧美日韩精品系列| 中文字幕一区二区三区在线播放| 久久成人精品无人区| 在线免费观看视频一区| 欧美国产乱子伦| 韩国午夜理伦三级不卡影院| 欧美日本不卡视频| 亚洲一区二区3| 波多野洁衣一区| 国产色产综合产在线视频| 老司机免费视频一区二区三区| 欧美日韩一区在线观看| 亚洲精品美国一| www.在线欧美| 国产精品理伦片| 丁香婷婷深情五月亚洲| 久久婷婷国产综合国色天香| 久草热8精品视频在线观看| 日韩一区二区影院| 日韩av一二三| 日韩免费性生活视频播放| 日日嗨av一区二区三区四区| 欧美美女网站色| 亚洲.国产.中文慕字在线| 欧美少妇一区二区| 亚洲 欧美综合在线网络| 欧美精品v国产精品v日韩精品| 亚洲午夜在线观看视频在线| 欧美色精品在线视频| 亚洲第一电影网| 欧美精品丝袜中出| 日韩精品亚洲一区二区三区免费| 日韩女优电影在线观看| 国内精品嫩模私拍在线| 久久精品视频一区二区| 北条麻妃一区二区三区| 亚洲人成电影网站色mp4| 一本色道综合亚洲| 亚洲18色成人| 久久久久国产一区二区三区四区| 国产精品一区二区久久精品爱涩 | 99久久精品久久久久久清纯| 亚洲欧美偷拍另类a∨色屁股| 在线视频国产一区| 日韩经典一区二区| 久久精品亚洲精品国产欧美 | 亚洲视频在线一区二区| 日本高清不卡视频| 蜜臀久久久久久久| 国产日韩欧美一区二区三区乱码| 91一区二区三区在线观看| 亚洲电影第三页| 久久久亚洲综合| 91久久免费观看| 韩国av一区二区| 亚洲欧美另类图片小说| 91麻豆精品国产自产在线观看一区| 国产揄拍国内精品对白| 亚洲视频一二三区| 日韩精品一区二区三区视频在线观看| 风间由美性色一区二区三区| 亚洲一区二区欧美激情| 国产女人水真多18毛片18精品视频 | 国产一区福利在线| 一区二区三区欧美视频| 精品国产区一区| 欧美性色综合网| 成人听书哪个软件好| 麻豆精品一区二区三区| 亚洲黄色小说网站| 国产午夜亚洲精品理论片色戒 | 国产亚洲成aⅴ人片在线观看 | 成人国产一区二区三区精品| 日韩国产在线一| 日韩理论片一区二区| 精品欧美乱码久久久久久1区2区| 99精品视频中文字幕| 国产一区不卡视频| 蜜臀精品久久久久久蜜臀| 亚洲伊人色欲综合网| 国产精品第五页| 久久久久久免费毛片精品| 精品视频在线免费观看| 91丨porny丨蝌蚪视频| 国产成人精品免费在线| 精品一区二区三区不卡| 日产国产高清一区二区三区| 亚洲国产日产av| 亚洲激情在线激情| 国产精品毛片久久久久久| 国产亚洲va综合人人澡精品| 精品国产精品一区二区夜夜嗨 | 国内精品免费**视频| 日日噜噜夜夜狠狠视频欧美人| 一区二区三区免费在线观看| 中文字幕中文字幕一区| 国产精品天美传媒沈樵| 国产片一区二区| 亚洲国产精品99久久久久久久久| 国产视频视频一区| 国产欧美日韩久久| 国产日韩欧美不卡在线| 国产精品素人视频| 日本一区二区高清| 亚洲欧洲无码一区二区三区| 亚洲天堂网中文字| 一区二区三区精品久久久| 亚洲最新视频在线观看| 午夜影院久久久| 久久福利资源站| 国产成人啪免费观看软件| 国产成人小视频| 色综合久久久网| 欧美日韩一区二区三区在线 | 精品亚洲porn| 国产一区二区福利| caoporn国产一区二区| 91在线高清观看| 欧美区一区二区三区| 91精品久久久久久久91蜜桃| 精品国产1区二区| 中文在线一区二区| 一卡二卡三卡日韩欧美| 蜜桃传媒麻豆第一区在线观看| 韩国三级中文字幕hd久久精品| 国产成人高清视频| 在线观看日产精品| 欧美不卡一区二区三区| 亚洲欧洲av在线| 日本系列欧美系列| 成人精品视频一区| 欧美久久一二区| 国产精品麻豆一区二区| 日韩国产精品久久久久久亚洲| 国产精品亚洲а∨天堂免在线| 色综合中文综合网| 日日夜夜免费精品| 成人免费观看视频| 欧美日韩卡一卡二| 国产日产亚洲精品系列| 亚洲国产日产av| 成人免费va视频| 欧美刺激午夜性久久久久久久| 国产精品护士白丝一区av| 日本亚洲免费观看| 91美女视频网站| 久久久久综合网| 日本欧美在线观看|