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

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

?? 1.txt

?? 嵌入式系統實踐 ARM7用鍵盤實現整數的加減乘
?? TXT
字號:
/*********************************************************************************************
* File:	8led.c
* Author:	embest	
* Desc:	8-segment digit LED control functions
* History:	
*********************************************************************************************/
#include "44b.h"
#include "44blib.h"
#include "def.h"
#include "iic.h"

/*------------------------------------------------------------------------------------------*/
/*	 								global variables					 				    */
/*------------------------------------------------------------------------------------------*/
int f_nKeyPress;

/*------------------------------------------------------------------------------------------*/
/*	 								function declare						 				    */
/*------------------------------------------------------------------------------------------*/
void keyboard_test(void);
void keyboard_int(void);
UINT8T key_set(UINT8T ucChar);
void display_led(int s);
void led_test();
void clear_led();
void showerror();
void showoperator(UINT8T ucChar);
void ShowRolling(int temp3);

/*------------------------------------------------------------------------------------------*/
/*	 								global variables						 				    */
/*------------------------------------------------------------------------------------------*/
/*
		  __7___
		 |      |
		2|      |6
		 |--1---|
		3|      |5
		 |__4___|.0
		 
	data [7 6 5 4 3 2 1 0]
*/
unsigned char f_szDigital[] ={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6};// 0 ~ 9

/*------------------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------------------*/
/*display_led函數用于在數碼管上顯示數字s,如果flg=0,則在L1上顯示;如果flg=1,則在L2上顯示;*/
void display_led(int s)
{
	int i;
	int j,k;
	k=s;

	clear_led();

	if(s==0)
	{
	iic_write(0x70, 0x14, f_szDigital[0]);
	return;
	}
	
	for(i=0; i<8; i++)
	{
		j=k%10;
		if(k!=0&&i<4)
			iic_write(0x70, 0x14+i, f_szDigital[j]);
		else if(k!=0&&i>=4)
			iic_write(0x70, 0x10+i-4, f_szDigital[j]);
		else if(k==0&&i<4)
			iic_write(0x70, 0x14+i, 0);
		else if(k==0&&i>=4)
			iic_write(0x70, 0x10+i-4, 0);
		k/=10;
	}
}

void clear_led()
{
	int i;
	for(i=0; i<8; i++)
		iic_write(0x70, 0x10+i, 0);
}

void showerror()
{
	int i=0;

	clear_led();
	unsigned char error[]={0x9E,0xEE,0xEE,0xFC,0xEE};
	
	iic_write(0x70, 0x10,error[0]);
	iic_write(0x70, 0x17,error[1]);
	iic_write(0x70, 0x16,error[2]);
	iic_write(0x70, 0x15,error[3]);
	iic_write(0x70, 0x14,error[4]);	
}

void showoperator(UINT8T ucChar)
{
	clear_led();

	unsigned char add[]={0xEE,0xFC,0xFC};
	unsigned char sub[]={0xB6,0x7C,0xFE};
	unsigned char che[]={0x9C,0x6E,0x9E};

	switch(ucChar)
	{
	case '+':
		iic_write(0x70, 0x16, add[0]);
		iic_write(0x70, 0x15, add[1]);
		iic_write(0x70, 0x14, add[2]);
		uart_printf("+\n");
		break;
	case '-':
		iic_write(0x70, 0x16, sub[0]);
		iic_write(0x70, 0x15, sub[1]);
		iic_write(0x70, 0x14, sub[2]);
		break;
	case '*':
		iic_write(0x70, 0x16, che[0]);
		iic_write(0x70, 0x15, che[1]);
		iic_write(0x70, 0x14, che[2]);
		break;
	}
}

void ShowRolling(int temp3)
{
	int rolling[20];
	int len=1;
	int i;
	int j;

	while(temp3!=0)
	{
		rolling[19-len++]=temp3%10;
		temp3/=10;
	}

	for(i=0;i<=19-len;i++)
		rolling[i]=-1;

	i=0;


	while(i<len)
	{
		for(j=0;j<4;j++)
		{
			if(rolling[i+8-j]<0)
				iic_write(0x70, 0x14+j,0);
			else
			
				iic_write(0x70, 0x14+j,f_szDigital[rolling[i+8-j]]);
		}
		for(;j<8;j++)
		{
			if(rolling[i+8-j]<0)
				iic_write(0x70, 0x10+j-4,0);
			else
			
				iic_write(0x70, 0x10+j-4,f_szDigital[rolling[i+8-j]]);
		}
		delay(6000);
		i++;
	}
}
/*********************************************************************************************
* name:		keyboard_test
* func:		test 8led
* para:		none
* ret:		none
* modify:
* comment:		
********************************************************************************************/
void keyboard_test(void)
{
	int i, j, k;
	UINT8T ucChar, t;

	int temp1,temp2,temp3,RollingNum;
	int oper;

	iic_init();
	
	// set EINT2 interrupt handler
    pISR_EINT2 = (int)keyboard_int;
    
    clear_led();

l1:	while(1)
	{		
		temp1=0;
		temp2=0;
		temp3=0;

		//首先等待輸入第一個數
		while(1)
		{
			ucChar=0;
				
			 while(ucChar==0)
			 {
			 f_nKeyPress = 0;
			 rINTMSK = rINTMSK & (~(BIT_GLOBAL|BIT_EINT2));		// enable EINT2 int

			 while(f_nKeyPress == 0);
			 iic_read(0x70, 0x1, &ucChar);
			 }

			 if(ucChar !=0)
			 {
				ucChar = key_set(ucChar);
				if(ucChar < 10)
				{
					temp1=temp1*10;
					temp1+=ucChar;
					display_led((temp1%100000000));
				}

				else if(ucChar == '+'|ucChar=='-'|ucChar=='*')
				{
					oper=ucChar;
					showoperator(ucChar);
					break;
				}
			 }
		}

		//然后等待輸入第二個運算數
		while(1)
		{
			 ucChar=0;
				
			 while(ucChar==0)
			 {
			 	f_nKeyPress = 0;
			 	rINTMSK = rINTMSK & (~(BIT_GLOBAL|BIT_EINT2));		// enable EINT2 int

			 	while(f_nKeyPress == 0);
			 	iic_read(0x70, 0x1, &ucChar);
			 }

			 if(ucChar !=0)
			 {
				ucChar = key_set(ucChar);

				if(ucChar < 10)
				{
					temp2=temp2*10;
					temp2+=ucChar;
					display_led(temp2%100000000);
				}

				else if(ucChar == 0xFF)
				{
					switch(oper)
					{
						case '+':
							temp3=temp1+temp2;
							break;
						case '-':
							temp3=temp1-temp2;
							break;
						case '*':
							temp3=temp1*temp2;
							break;
					}
					if(temp3<100000000)
					{
						display_led(temp3%100000000);
					}
					else
					{
						ShowRolling(temp3);
					}
					break;
				}

				else
				{
					showerror();
					goto l1;
					break;
				}
			 }
		}

	}

}

/*********************************************************************************************
* name:		keyboard_int
* func:		keyboard interrupt handler
* para:		none
* ret:		none
* modify:
* comment:		
********************************************************************************************/
void keyboard_int(void)
{
	UINT8T ucChar;
    delay(1000);
	rINTMSK = rINTMSK | BIT_EINT2;							// disable EINT2 int
    rI_ISPC = BIT_EINT2;
    f_nKeyPress = 1;
}
/*********************************************************************************************
* name:		key_set
* func:		keyboard setting
* para:		none
* ret:		none
* modify:
* comment:		
*********************************************************************************************/
UINT8T key_set(UINT8T ucChar)
{
	switch(ucChar)
	{
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
				ucChar-=1; break;
		case 9:
		case 10:
		case 11:
		case 12:
		case 13:
				ucChar-=4; break;
		case 17:
		case 18:
		case 19:
		case 20:
		case 21:
				ucChar-=7; break;
		case 25: ucChar = 0xF; break;
		case 26: ucChar = '+'; break;
		case 27: ucChar = '-'; break;
		case 28: ucChar = '*'; break;
		case 29: ucChar = 0xFF; break;
		default: ucChar = 0xFE;
	}
	return ucChar;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久岛一牛影视 | 亚洲一区二区综合| 成人国产一区二区三区精品| 久久久久国产精品厨房| 国产久卡久卡久卡久卡视频精品| 欧美不卡视频一区| 国产精品一区在线| 成人欧美一区二区三区视频网页| 色综合色狠狠天天综合色| 亚洲日本在线a| 色狠狠一区二区| 首页国产欧美日韩丝袜| 777午夜精品免费视频| 婷婷国产v国产偷v亚洲高清| 欧美一区二区福利视频| 国产自产高清不卡| 国产精品狼人久久影院观看方式| 在线亚洲精品福利网址导航| 爽好多水快深点欧美视频| 精品少妇一区二区三区在线视频| 成人一区二区三区视频在线观看 | 国产98色在线|日韩| 亚洲欧美在线视频| 欧美日韩一区不卡| 激情都市一区二区| 亚洲三级免费观看| 精品日韩一区二区三区| 成人黄色在线看| 亚洲成av人在线观看| 久久久久久久久免费| 91亚洲男人天堂| 蜜桃一区二区三区在线观看| 中文字幕一区二区三区在线播放 | 精品区一区二区| 色综合久久综合网欧美综合网 | 蜜桃视频在线观看一区| 国产精品色一区二区三区| 在线免费观看一区| 国产制服丝袜一区| 亚洲一区二区视频在线观看| 亚洲精品一区二区在线观看| 色欧美日韩亚洲| 精品一区二区三区在线视频| 亚洲女性喷水在线观看一区| 91精品国产综合久久蜜臀| 成人av网站免费| 蓝色福利精品导航| 亚洲精品国产品国语在线app| 精品国产伦一区二区三区观看方式 | 69堂亚洲精品首页| www.日韩av| 韩国av一区二区三区四区| 一区二区三区中文在线观看| 久久蜜桃一区二区| 91精品国产综合久久福利| 91免费国产在线观看| 国产成人夜色高潮福利影视| 日韩国产精品91| 亚洲一二三区在线观看| 国产精品福利影院| 久久九九久久九九| 日韩女优av电影| 91精品国产综合久久久久久| 91美女在线视频| 成人黄色a**站在线观看| 国模无码大尺度一区二区三区| 午夜精品久久久久久| 悠悠色在线精品| 最新国产成人在线观看| 中文字幕免费不卡| 日本一区二区成人在线| 精品粉嫩超白一线天av| 欧美一三区三区四区免费在线看| 欧美亚洲尤物久久| 99久久99久久精品免费观看| 成人动漫中文字幕| 99这里只有久久精品视频| 国产91综合网| av电影一区二区| 91高清在线观看| 色婷婷狠狠综合| 欧美在线一二三四区| 色婷婷综合久久久久中文一区二区| 91在线视频免费观看| 色视频成人在线观看免| 91行情网站电视在线观看高清版| 一本在线高清不卡dvd| 一本久久a久久免费精品不卡| 色先锋aa成人| 欧美人与禽zozo性伦| 日韩一区二区三区免费观看| 欧美tickling挠脚心丨vk| 久久久久久亚洲综合影院红桃| 欧美高清一级片在线观看| 中文字幕一区二区三区色视频| 亚洲女与黑人做爰| 午夜电影一区二区| 久久国产生活片100| 国产精品自产自拍| 成人高清伦理免费影院在线观看| 99久久精品国产导航| 欧美日韩中字一区| 欧美大片在线观看| 欧美国产精品中文字幕| 亚洲少妇30p| 奇米色一区二区| 韩国午夜理伦三级不卡影院| 成人看片黄a免费看在线| 色偷偷成人一区二区三区91| 91精品欧美久久久久久动漫 | 欧美一区日本一区韩国一区| 久久婷婷综合激情| 综合激情网...| 亚洲一区二区在线播放相泽 | 欧美videofree性高清杂交| 中文欧美字幕免费| 亚洲一区二区三区国产| 久久er99精品| 日本精品视频一区二区三区| 日韩免费观看高清完整版| 亚洲国产精品成人久久综合一区| 一区二区三区免费| 国产麻豆午夜三级精品| 91色.com| 久久新电视剧免费观看| 亚洲伦理在线精品| 精品午夜久久福利影院| 在线观看av不卡| 久久久综合精品| 午夜精品久久久久久久久久久| 国产 欧美在线| 欧美一区二区三区免费在线看| 国产精品乱人伦中文| 日本特黄久久久高潮| 91视频国产资源| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 久久精品免费观看| 欧美这里有精品| 国产精品嫩草久久久久| 美女网站一区二区| 欧美日韩亚洲不卡| 国产精品国产三级国产aⅴ原创 | 综合在线观看色| 国产精品一区二区x88av| 欧美高清你懂得| 亚洲精品国产成人久久av盗摄| 国产精品亚洲第一区在线暖暖韩国| 欧美美女黄视频| 亚洲免费在线观看| 99免费精品在线观看| 久久精品在线免费观看| 蜜臂av日日欢夜夜爽一区| 欧美日韩中文字幕一区二区| 亚洲人精品午夜| 成人av先锋影音| 国产精品欧美极品| 国产精品888| 久久欧美中文字幕| 久久国产乱子精品免费女| 欧美高清一级片在线| 亚洲国产精品尤物yw在线观看| 91视频国产观看| 亚洲麻豆国产自偷在线| 91视频com| 一区二区三区小说| 色素色在线综合| 亚洲午夜精品在线| 在线观看三级视频欧美| 亚洲美腿欧美偷拍| 在线亚洲一区二区| 一区二区中文视频| av男人天堂一区| 一区二区三区日韩精品视频| 97久久精品人人澡人人爽| 亚洲欧洲成人自拍| 欧美综合久久久| 亚洲一本大道在线| 91麻豆精品久久久久蜜臀| 久久激情五月婷婷| 久久久五月婷婷| 99久久综合国产精品| 亚洲欧美国产77777| 欧美在线视频你懂得| 视频一区中文字幕| 精品国精品国产尤物美女| 寂寞少妇一区二区三区| 久久综合九色综合97_久久久| 国产精品一级二级三级| 国产精品免费人成网站| 91麻豆123| 日韩专区中文字幕一区二区| 欧美变态口味重另类| 顶级嫩模精品视频在线看| 亚洲日本在线视频观看| 欧美日韩午夜在线| 国产在线精品一区二区不卡了| 国产精品视频免费| 欧美亚洲综合久久| 黄色资源网久久资源365| 亚洲欧美在线视频|