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

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

?? light.c

?? 用dsp5416做的交通燈完整程序
?? C
字號:
#include "scancode.h"

#define SPSA0 *(unsigned int *)0x38
#define SPSD0 *(unsigned int *)0x39
#define REGISTERCLKMD (*(unsigned int *)0x58)
#define	TIM		*(int *)0x24
#define	PRD     *(int *)0x25
#define	TCR		*(int *)0x26
#define	IMR		*(int *)0x0
#define	IFR		*(int *)0x1		
#define	PMST	*(int *)0x1d	

#define nStatusNSGreenEWRed 160
#define nStatusNSFlashEWRed 184
#define nStatusNSYellowEWRed 200
#define nStatusNSRedEWYellow 216
#define nStatusNSRedEWGreen 376
#define nStatusNSRedEWFlash 400
#define nStatusNSRedEWYellow1 416
#define nStatusNSYellowEWRed1 432
#define nTotalTime 448
#define nStatusHold 160

#define statusNSGreenEWRed 0
#define statusNSFlashEWRed 1
#define statusNSYellowEWRed 2
#define statusNSRedEWYellow 3
#define statusNSRedEWGreen 4
#define statusNSRedEWFlash 5
#define statusHold 6


ioport unsigned int port3004;
ioport unsigned int port8000;
ioport unsigned char port8001;	
ioport unsigned char port8002;	
ioport unsigned int port8005;
ioport unsigned int port8007;

void InitDSP();
void InitTimer();
void InitICETEKCTR();
void interrupt time(void);
void interrupt xint2(void);	// XINT2中斷服務程序
void SetLEDArray(int nNumber);		// 修改顯示內容
void RefreshLEDArray();			// 刷新顯示
void EndICETEKCTR();

unsigned int uWork,nTimeCount;
unsigned int uLightStatusEW,uLightStatusSN;
unsigned int bHold;
unsigned char ledbuf[8],ledx[8];
unsigned char led[40]=
{
	0x7E,0x81,0x81,0x7E,0x00,0x02,0xFF,0x00,
	0xE2,0x91,0x91,0x8E,0x42,0x89,0x89,0x76,
	0x38,0x24,0x22,0xFF,0x4F,0x89,0x89,0x71,
	0x7E,0x89,0x89,0x72,0x01,0xF1,0x09,0x07,
	0x76,0x89,0x89,0x76,0x4E,0x91,0x91,0x7E
};
main()
{
	int nWork1,nWork2,nWork3,nWork4;
	int nNowStatus,nOldStatus,nOldTimeCount,nSaveTimeCount,nSaveStatus;
	unsigned int nScanCode;
	
	nTimeCount=0; bHold=0;
	uLightStatusEW=uLightStatusSN=0;
	nNowStatus=0; nOldStatus=1; nOldTimeCount=0;
	InitDSP();			// 初始化DSP,設置運行速度
	InitICETEKCTR();	// 初始化顯示/控制模塊
	InitTimer();		// 設置定時器中斷
	// 根據計時器計數切換狀態
	// 根據狀態設置計數和交通燈狀態
	while ( 1 )			
	{
		if ( bHold && nNowStatus==statusHold )	
		{
			if ( nTimeCount>=nStatusHold )
			{
				nNowStatus=nSaveStatus;
				nTimeCount=nSaveTimeCount;
				bHold=0;
			}
		}
		else if ( nTimeCount<nStatusNSGreenEWRed )	nNowStatus=statusNSGreenEWRed;
		else if ( nTimeCount<nStatusNSFlashEWRed )	nNowStatus=statusNSFlashEWRed;
		else if ( nTimeCount<nStatusNSYellowEWRed )	nNowStatus=statusNSYellowEWRed;
		else if ( nTimeCount<nStatusNSRedEWYellow )	nNowStatus=statusNSRedEWYellow;
		else if ( nTimeCount<nStatusNSRedEWGreen )	nNowStatus=statusNSRedEWGreen;
		else if ( nTimeCount<nStatusNSRedEWFlash )	nNowStatus=statusNSRedEWFlash;
		else if ( nTimeCount<nStatusNSRedEWYellow1 )	nNowStatus=statusNSRedEWYellow;
		else if ( nTimeCount<nStatusNSYellowEWRed1 )	nNowStatus=statusNSYellowEWRed;
		if ( nNowStatus==nOldStatus )
		{
			switch ( nNowStatus )
			{
				case statusNSFlashEWRed:
					nWork1=nTimeCount-nStatusNSGreenEWRed;
					nWork2=nStatusNSYellowEWRed-nStatusNSFlashEWRed;
					nWork3=nWork2/3;
					nWork4=nWork3/2;
					if ( nWork1>=0 && nWork2>0 && nWork3>0 && nWork4>0 )
						uLightStatusSN=( (nWork1%nWork3)<=nWork4 )?(0x49):(0x40);
					break;
				case statusNSRedEWFlash:
					nWork1=nTimeCount-nStatusNSRedEWGreen;
					nWork2=nStatusNSRedEWYellow1-nStatusNSRedEWFlash;
					nWork3=nWork2/3;
					nWork4=nWork3/2;
					if ( nWork1>=0 && nWork2>0 && nWork3>0 && nWork4>0 )
						uLightStatusEW=( (nWork1%nWork3)<=nWork4 )?(0x09):(0x00);
					break;
				case statusNSGreenEWRed:
					nWork1=nStatusNSGreenEWRed/20;
					if ( nWork1>0 )
					{
						nWork2=20-nTimeCount/nWork1;
						if ( bHold )
						{
							if ( nWork2>10 )
							{
								nTimeCount=nWork1*10;
								nWork2=10;
							}
						}
						if ( nOldTimeCount!=nWork2 )
						{
							nOldTimeCount=nWork2;
							SetLEDArray(nWork2);
						}
					}
					break;
				case statusNSRedEWGreen:
					nWork1=(nStatusNSRedEWGreen-nStatusNSRedEWYellow)/20;
					if ( nWork1>0 )
					{
						nWork2=20-(nTimeCount-nStatusNSRedEWYellow)/nWork1;
						if ( bHold )
						{
							if ( nWork2>10 )
							{
								nTimeCount=nStatusNSRedEWYellow+nWork1*10;
								nWork2=10;
							}
						}
						if ( nOldTimeCount!=nWork2 )
						{
							nOldTimeCount=nWork2;
							SetLEDArray(nWork2);
						}
					}
					break;
				case statusHold:
					nWork1=nStatusHold/20;
					if ( nWork1>0 )
					{
						nWork2=20-nTimeCount/nWork1;
						if ( nOldTimeCount!=nWork2 )
						{
							nOldTimeCount=nWork2;
							SetLEDArray(nWork2);
						}
					}
					break;
			}
		}
		else
		{
			if ( bHold )
			{
				nSaveStatus=nNowStatus;
				nSaveTimeCount=nTimeCount;
				nNowStatus=statusHold;
				nTimeCount=0;
				if ( nSaveStatus==statusNSFlashEWRed || nSaveStatus==statusNSYellowEWRed )
				{
					nSaveStatus=statusNSRedEWGreen;
					nSaveTimeCount=nStatusNSRedEWYellow;
				}
				else if ( nSaveStatus==statusNSRedEWFlash || nSaveStatus==statusNSRedEWYellow )
				{
					nSaveStatus=statusNSGreenEWRed;
					nSaveTimeCount=0;
				}
			}
			nOldStatus=nNowStatus;
			switch ( nNowStatus )
			{
				case statusNSGreenEWRed:
					uLightStatusEW=0x24; uLightStatusSN=0x49;
					SetLEDArray(20);
					break;
				case statusNSFlashEWRed:
					uLightStatusEW=0x24; uLightStatusSN=0x49;
					SetLEDArray(0);
					break;
				case statusNSYellowEWRed:
					uLightStatusEW=0x24; uLightStatusSN=0x52;
					SetLEDArray(20);
					break;
				case statusNSRedEWYellow:
					uLightStatusEW=0x12; uLightStatusSN=0x64;
					SetLEDArray(20);
					break;
				case statusNSRedEWGreen:
					uLightStatusEW=0x09; uLightStatusSN=0x64;
					SetLEDArray(20);
					break;
				case statusNSRedEWFlash:
					uLightStatusEW=0x09; uLightStatusSN=0x64;
					SetLEDArray(0);
					break;
				case statusHold:
					uLightStatusEW=0x24; uLightStatusSN=0x64;
					SetLEDArray(20);
					break;
			}
		}
		port8007=uLightStatusEW; port8007=uLightStatusSN;	// 設置交通燈狀態	
		RefreshLEDArray();	// 刷新發光二極管顯示
		nScanCode=port8001;	// 讀鍵盤掃描碼
		nScanCode&=0x0ff;
		if ( nScanCode==SCANCODE_Enter )	break;
	}
	EndICETEKCTR();
	exit(0);
}

// 定時器中斷服務程序,進行時鐘計數
void interrupt time(void)
{
	nTimeCount++;
	nTimeCount%=nTotalTime;
}

// 設置發光二極管顯示內容
void SetLEDArray(int nNumber)
{
	int i,k,kk,kkk;
	
	kkk=nNumber; 
	k=kkk/10*4; kk=kkk%10*4;
	for ( i=0;i<4;i++ )
	{
		ledbuf[7-i]=~led[k+i];
		ledbuf[3-i]=~led[kk+i];
	}
}

// 將緩存中點陣送發光二極管顯示
void RefreshLEDArray()
{
	int i;
	for ( i=0;i<8;i++ )
	{
		port8000=ledx[i];
		port8005=ledbuf[i];
	}
}

// 初始化DSP,設置運行速度=8MHz
void InitDSP()
{
	REGISTERCLKMD=0;	// 速度設置=8MHz
}

// 設置定時器參數、允許中斷
void InitTimer()
{
	unsigned int k;
	
	asm("	ssbx	INTM");	// 關中斷,進行關鍵設置時不許打擾
	// 設置通用定時器
	k=PMST;			// 設置PMST寄存器
	PMST =k&0xff;	// 中斷向量表起始地址=80H
	IMR = 0x0c;		// 使能TINT
	TCR = 0x41f;	// 預分頻系數為16
	TIM = 0;		// 時鐘計數器清0
	PRD = 0x0f423;	// 周期寄存器為0ffH
	TCR = 0x42f;	// 復位、啟動
	IFR = 0x0c;		// 清中斷標志位
	
	port3004=0;			// 使能XINT2
	asm("	rsbx	INTM");	// 開中斷
}

// 初始化ICETEK-CTR板上設備
void InitICETEKCTR()
{
	int k;
	
	port8000=0;		// 初始化ICETEK-CTR
	port8000=0x80;
	port8000=0;
	port8007=0;		// 關閉東西方向的交通燈
	port8007=0x40;	// 關閉南北方向的交通燈
	port8007=0x0c1;	// 開啟發光二極管顯示陣列
	for ( k=0;k<8;k++ )
	{
		ledbuf[k]=0x0ff;		// 顯示為空白
		ledx[k]=(k<<4);	// 生成顯示列控制字
	}
	k=port8002;	// 清除鍵盤緩沖區
}

void interrupt xint2(void)	// XINT2中斷服務程序
{
	bHold=1;
}

void EndICETEKCTR()
{
	int k;
	port8007=0;		// 關閉東西方向的交通燈
	port8007=0x40;	// 關閉南北方向的交通燈
	port8007=0x0c0;	// 關閉發光二極管顯示陣列
	k=port8002;	// 清除鍵盤緩沖區
}




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区男女羞羞无遮挡 | 亚洲一区视频在线| 午夜视频久久久久久| 国产乱码一区二区三区| 欧美午夜片在线观看| 国产视频在线观看一区二区三区 | 色综合一区二区三区| 日韩三级免费观看| 伊人开心综合网| 成人少妇影院yyyy| 欧美一区二区网站| 亚洲资源在线观看| 99久久精品国产网站| 久久久久久久性| 免费xxxx性欧美18vr| 在线视频你懂得一区| 欧美国产日韩一二三区| 麻豆极品一区二区三区| 欧美系列一区二区| 一区二区在线观看免费| 成人免费不卡视频| 国产午夜一区二区三区| 免费观看成人av| 欧美一卡二卡在线| 日韩二区三区四区| 欧美精品三级在线观看| 亚洲香蕉伊在人在线观| 日本高清成人免费播放| 亚洲丝袜制服诱惑| 99精品久久99久久久久| 国产精品免费视频观看| 成人久久18免费网站麻豆| 日本一二三不卡| 欧美午夜片在线观看| 一区二区三区国产精华| 色综合咪咪久久| 亚洲免费资源在线播放| 97久久久精品综合88久久| 中文字幕一区二区三中文字幕| 国产91对白在线观看九色| 欧美国产精品一区二区| www.亚洲免费av| 亚洲精品欧美综合四区| 在线观看日韩电影| 亚洲成av人综合在线观看| 欧美久久婷婷综合色| 免费av网站大全久久| 337p日本欧洲亚洲大胆精品 | 日韩欧美国产三级电影视频| 极品销魂美女一区二区三区| 国产情人综合久久777777| 白白色 亚洲乱淫| 亚洲国产日日夜夜| 91精品国产综合久久精品图片 | 天天免费综合色| 精品不卡在线视频| 丰满放荡岳乱妇91ww| 亚洲美腿欧美偷拍| 日韩视频免费观看高清完整版在线观看| 精品一区二区三区免费播放 | 不卡一区二区在线| 一区二区三区精品在线观看| 欧美一区二区三区四区在线观看| 精品一区二区三区视频| 综合在线观看色| 欧美一区二区在线免费观看| 丁香桃色午夜亚洲一区二区三区| 亚洲精品美国一| 日韩一区二区三区四区| www.欧美日韩| 奇米精品一区二区三区四区| 国产精品久久久久久久久图文区| 欧美日韩精品福利| 国产成人av一区二区三区在线 | 国产亚洲1区2区3区| 91精品福利在线| 加勒比av一区二区| 一区二区三区影院| 久久久久久久电影| 欧美福利视频一区| 91网站最新地址| 国产做a爰片久久毛片| 亚洲一区av在线| 欧美国产视频在线| 欧美一级欧美一级在线播放| 91亚洲国产成人精品一区二三 | 波多野结衣一区二区三区| 午夜电影一区二区三区| 中文字幕中文在线不卡住| 日韩网站在线看片你懂的| 色婷婷av一区二区三区大白胸| 国产乱码精品一区二区三| 日韩国产高清影视| 亚洲国产综合91精品麻豆| 国产精品黄色在线观看| 久久久亚洲高清| 制服丝袜av成人在线看| 欧洲精品一区二区三区在线观看| 福利一区二区在线| 国产永久精品大片wwwapp | 精品中文av资源站在线观看| 亚洲第一福利视频在线| 伊人色综合久久天天人手人婷| 日本一区二区三区视频视频| 久久综合给合久久狠狠狠97色69| 欧美精品在线视频| 欧美日韩日日夜夜| 欧美亚洲国产bt| 欧洲激情一区二区| 欧日韩精品视频| 在线观看av一区| 精品婷婷伊人一区三区三| 91久久久免费一区二区| 色综合天天综合色综合av | 国产成人夜色高潮福利影视| 国内一区二区在线| 黄色日韩三级电影| 国产美女一区二区| 国产成人亚洲综合a∨婷婷| 精品亚洲免费视频| 国产伦精一区二区三区| 国产福利一区二区三区视频| 国产不卡在线视频| 成人18视频日本| 色88888久久久久久影院野外| 91麻豆swag| 欧美日韩国产123区| 欧美日高清视频| 欧美成人精品二区三区99精品| 欧美r级在线观看| 亚洲国产精品精华液2区45| 国产精品激情偷乱一区二区∴| 日韩伦理av电影| 亚洲v精品v日韩v欧美v专区| 日本视频中文字幕一区二区三区| 蜜桃视频在线观看一区| 国产一区二区精品在线观看| 不卡视频在线观看| 欧美日韩在线播放三区四区| 日韩欧美国产综合一区| 欧美激情在线观看视频免费| 亚洲视频中文字幕| 日韩国产欧美在线视频| 韩国三级电影一区二区| 99久久99久久精品免费看蜜桃| 欧美亚洲综合色| 久久亚洲二区三区| 亚洲欧美日韩系列| 青草av.久久免费一区| 成人avav影音| 欧美一区二区三区电影| 亚洲国产精品黑人久久久| 亚洲图片欧美色图| 国产成人精品三级| 欧美日韩极品在线观看一区| 久久嫩草精品久久久精品一| 一区二区三区毛片| 国产精品一区免费在线观看| 精品视频一区三区九区| 久久久久久久久久久久久夜| 一区二区三区视频在线观看| 另类的小说在线视频另类成人小视频在线 | 国产成人综合视频| 在线不卡免费av| 成人欧美一区二区三区小说| 精品在线一区二区三区| 欧美日韩综合在线| 中文字幕一区二区三区色视频| 狂野欧美性猛交blacked| 一本色道久久综合精品竹菊| 久久人人爽人人爽| 日韩精品一卡二卡三卡四卡无卡| 99久久精品99国产精品| www国产精品av| 日韩和欧美一区二区| 色婷婷综合视频在线观看| 久久精品一区二区三区av| 美女视频免费一区| 在线成人午夜影院| 亚洲综合视频网| 91免费观看视频在线| 国产欧美日韩精品a在线观看| 天堂成人国产精品一区| 色婷婷综合久久久中文一区二区 | 亚洲色图丝袜美腿| 国产精品一二三区| 日韩精品一区二区三区swag| 丝袜亚洲另类欧美| 欧美亚洲国产一区二区三区 | 国产精品无码永久免费888| 首页综合国产亚洲丝袜| 色综合色综合色综合色综合色综合 | 欧美日韩一区二区电影| 亚洲黄色录像片| 色综合天天性综合| 亚洲美女屁股眼交| 91蝌蚪porny| 一区二区成人在线视频| 色欧美88888久久久久久影院| 中文字幕中文乱码欧美一区二区|