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

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

?? __main.c

?? C語言版的USB單片機固件源代碼
?? C
字號:
//===================================================================//
//     Project Name : ZBoard
//      Module Name : Master Firmware Program
//     Product Type : License
//      OS/Dev Tool : AT89C52, uVision 2
//  Original Author : Ray Yang
//     Organization : YBWork.com
//    Original Date : July, 25, 2001
//             Addr : Room 402, No. 131, Meilong No. 9
//              TEL : 86-21-54630718
//            EMail : rayyang2000@yahoo.com
//          Website : http://www.ybwork.com
//		  Copyright : Copyright (L) YBWork.com, 2001
//         Comments : 
//                    
//					<< History >> 
//					July, 25, 2001		The first release
//===================================================================//


#include "HAL.H"
#include "USBD12.H"
#include "ZBoard.h"
#include "USB110.H"
#include "USB.H"
#include "CHAP9.H"
#include "VDOR.H"
#include "FLASH.H"

#ifdef MONITOR51                         /* Debugging with Monitor-51 needs   */
char code reserve [3] _at_ 0x23;         /* space for serial interrupt if     */
#endif                                   /* Stop Exection with Serial Intr.   */
                                         /* is enabled                        */
extern unsigned char idata GenBuf[GENBUF_LENGH];

///////////////////////////////////
// Data definition
ZBOARDFLAGS bdata bZBoardFlags;
extern CONTROL_XFER ControlData;
extern CODE_DATA idata CodeData;

///////////////////////////////////
/////////////////////////////////////////////////
// Useless function for disable Warning L16
/////////////////////////////////////////////////

/* Configure Timer 0
   - Mode                  = 1
   - Interrupt                   = ENABLED
   - Clock Source                = INTERNAL
   - Enable Gating Control    = DISABLED
*/
void Init_Timer0(void)
{
	TMOD &= 0xF0;                    /* clear Timer 0   */
	TMOD  |= 0x1;
	TL0 = 0x0;                   /* value set by user    */
	TH0 = 0x0;                  /* value set by user  */
	ET0 = 1;        /* IE.1*/
	TR0 = 1;                /* TCON.4 start timer  */
//	PT0 = 1;
}

/* Interrupt Control Unit */
/*   ****  Enabled interrupts in Interrupt Enable Register ****
	 ****  GLOBAL INTERRUPT MUST BE ENABLED FOR ANY OTHER
	 ****  INTERRUPT TO WORK!
*/
/*                  GLOBAL INTERRUPT DISABLED ALL INTERRUPTS
					ARE DISABLED          */
/*                    External interrupt 0      */
/*                        Priority Level = 0    */
/*                        Timer 0 interrupt     */
/*                       Priority Level = 0     */
void Init_SpecialInterrupts(void)
{
	IT0 = 0;
	EX0 = 1;
//	PX0 = 0;
}

void Init_Port()
{
	P0 = 0xFF;
	P1 = 0xFF;
	P2 = 0xFF;
	P3 = 0xFF;
}

/*Serial Port */
/*Mode            = 1  /8-bit UART
  Serial Port Interrupt    = Disabled         */
/*Receive         = Enabled   */
/*Auto Addressing    = Disabled   */
void Init_COMM(void)
{
	SCON = 0x52;
	PCON = 0x80 | PCON;
	TMOD = 0x21;
//	TCON = 0x69;    /* TCON */
	TH1 = 0xfa;		// 9600bps @ 11.0592MHz
	TR1 = 1;
	ES = 1;
}

/*------------------------------------------------
The main C function.  Program execution starts
here after stack initialization.
------------------------------------------------*/
void main (void)
{
#ifdef _DEBUG
	unsigned char key;
	unsigned short i;
#endif
/*------------------------------------------------
Setup the serial port for 1200 baud at 16MHz.
These codes are used for MON51
------------------------------------------------*/
#ifndef MONITOR51
//	SCON  = 0x50;		        /* SCON: mode 1, 8-bit UART, enable rcvr      */
//	TMOD |= 0x20;               /* TMOD: timer 1, mode 2, 8-bit reload        */
//	TH1   = 221;                /* TH1:  reload value for 1200 baud @ 16MHz   */
//	TR1   = 1;                  /* TR1:  timer 1 run                          */
//	TI    = 1;                  /* TI:   set TI to send first char of UART    */
#endif
	
	Init_Timer0();
	Init_SpecialInterrupts();
	Init_Port();
	Init_COMM();


	IO_LED = 0;
	bZBoardFlags.bits.bLED = LED_ON;

	USB_Reconnect();
#ifdef _DEBUG
	printf("\n\nZBoard USB Master Program Ver 0.01. Written by Ray Yang. rayyang2000@yahoo.com\n");
	printf("Waiting for interrupt event...\n");
#endif

	ENABLE_INTERRUPTS;
	EX0 = 1;


/*------------------------------------------------
Note that an embedded program never exits (because
there is no operating system to return to).  It
must loop and execute forever.
------------------------------------------------*/
	/* Main program loop */

	while(TRUE)
	{

#ifdef _DEBUG
		if(RI)
		{
			key = _getkey();
			switch(key)
			{
				case 'i':
					if(bZBoardFlags.bits.bControl_State == USB_IDLE)
						printf("Control state = USB_IDLE.");
					else if(bZBoardFlags.bits.bControl_State == USB_RECEIVE)
						printf("Control state = USB_RECEIVE.");
					else if(bZBoardFlags.bits.bControl_State == USB_TRANSMIT)
						printf("Control state = USB_TRANSMIT.");
					printf(" ControlData.wCount = %x.\n", ControlData.wCount);
					printf("Endpoint 4 (Bulk Out) Status = %bx, Endpoint 5 (Bulk In) Status = %bx.\n",
						USBD12_ReadEndpointStatus(4), USBD12_ReadEndpointStatus(5));
					if(bZBoardFlags.bits.bDMA_State == DMA_IDLE)
						printf("DMA_State = DMA_IDLE.\n");
					else if(bZBoardFlags.bits.bDMA_State == DMA_RUNNING)
						printf("DMA_State = DMA_RUNNING.\n");
					else if(bZBoardFlags.bits.bDMA_State == DMA_PENDING)
						printf("DMA_State = DMA_PENDING.\n");

					printf("Last Device Request: bmRequestType = 0x%bx, bRequest= 0x%bx, wValue = 0x%x, wLength = 0x%x, wIndex = 0x%x.\n",

						ControlData.DeviceRequest.bmRequestType,
						ControlData.DeviceRequest.bRequest,
						ControlData.DeviceRequest.wValue,
						ControlData.DeviceRequest.wLength,
						ControlData.DeviceRequest.wIndex);

					printf("Data: ");
					for(i = 0; i < ControlData.DeviceRequest.wLength; i ++)
						printf("0x%bx, ", *((ControlData.dataBuffer)+i));
					printf("\n");

					break;
				case '\r':
					USB_Reconnect();
					break;

				case 'v':
					if(bZBoardFlags.bits.bVerbose == 0)
					{
						printf("Verbose Mode = ON.\n");
						DISABLE_INTERRUPTS;
						bZBoardFlags.bits.bVerbose = 1;
						ENABLE_INTERRUPTS;
					}
					else
					{
						printf("Verbose Mode = OFF.\n");
						DISABLE_INTERRUPTS;
						bZBoardFlags.bits.bVerbose = 0;
						ENABLE_INTERRUPTS;
					}
					break;
				case 'l':
					IO_LED ^= 1;
					break;
				default:
					break;
			}
		}
#endif

		if (bZBoardFlags.bits.bBus_Reset)
		{
			DISABLE_INTERRUPTS;
			bZBoardFlags.bits.bBus_Reset = 0;
			ENABLE_INTERRUPTS;
			// Release D12's SUSPEND pin after bus reset
			D12SUSPD = 1;
		} // if bus reset

		if (bZBoardFlags.bits.bSuspend)
		{
			DISABLE_INTERRUPTS;
			bZBoardFlags.bits.bSuspend= 0;
			ENABLE_INTERRUPTS;

		} // if suspend change

		if (bZBoardFlags.bits.bSetup_Packet)
		{
			DISABLE_INTERRUPTS;
			bZBoardFlags.bits.bSetup_Packet = 0;
			ENABLE_INTERRUPTS;
			USB_Control_Handler();
			D12SUSPD = 1;
		} // if setup_packet

	} // Main Loop

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久精品国产毛片| 久久伊99综合婷婷久久伊| 亚洲超碰精品一区二区| 欧美日韩一区 二区 三区 久久精品| 亚洲一区视频在线| 在线综合亚洲欧美在线视频| 美女免费视频一区二区| 26uuu精品一区二区在线观看| 狠狠色综合播放一区二区| 国产精品污网站| 日本高清不卡在线观看| 丝袜美腿高跟呻吟高潮一区| 欧美不卡激情三级在线观看| 国产精品自拍毛片| 亚洲女同ⅹxx女同tv| 欧美二区三区91| 极品美女销魂一区二区三区| 中文字幕精品综合| 日本韩国精品在线| 日韩经典一区二区| 久久久久国产精品麻豆| youjizz久久| 婷婷丁香激情综合| 2023国产一二三区日本精品2022| 成人18视频日本| 五月天欧美精品| 26uuu国产电影一区二区| 99精品偷自拍| 日韩二区在线观看| 国产欧美一区在线| 欧美亚洲高清一区| 狠狠色综合播放一区二区| 亚洲天天做日日做天天谢日日欢 | 日韩av二区在线播放| 麻豆国产91在线播放| 欧美国产成人精品| 欧美日韩中文精品| 国产精品综合久久| 亚洲一区二区av在线| 亚洲精品一区二区三区香蕉| 91美女在线看| 久久精品理论片| 亚洲女同女同女同女同女同69| 欧美一区二区在线观看| 成a人片国产精品| 婷婷丁香久久五月婷婷| 中文无字幕一区二区三区 | 国产精品免费久久| 欧美电影在哪看比较好| 99视频有精品| 精品一区二区av| 亚洲一区中文在线| 久久久精品免费免费| 欧美欧美欧美欧美| 91在线码无精品| 久久se这里有精品| 亚洲一区二区三区中文字幕| 久久奇米777| 91精品午夜视频| 91免费观看视频| 国产综合色在线视频区| 亚洲一区二区三区四区在线 | 91免费观看视频| 韩国精品在线观看| 午夜欧美视频在线观看| 中文字幕一区二区三区蜜月| 精品国产乱子伦一区| 欧美午夜视频网站| av不卡免费电影| 国产一区91精品张津瑜| 日本欧美韩国一区三区| 亚洲自拍另类综合| 中文字幕在线免费不卡| 久久久久久**毛片大全| 日韩一区二区影院| 欧美日免费三级在线| 99免费精品视频| 国产经典欧美精品| 久久精品二区亚洲w码| 天天色 色综合| 亚洲在线视频一区| √…a在线天堂一区| 欧美激情一区二区三区在线| 欧美xxxx在线观看| 91精品国产乱码| 欧美日韩中文国产| 色88888久久久久久影院野外 | 色噜噜久久综合| av成人免费在线| 成人亚洲精品久久久久软件| 麻豆视频观看网址久久| 日韩av电影一区| 日韩在线一二三区| 亚洲国产一区二区三区青草影视| 亚洲三级在线看| 国产精品二三区| 亚洲欧洲在线观看av| 国产精品国产a级| 中日韩av电影| 欧美激情在线一区二区三区| 国产欧美一区二区在线| 久久久久久免费毛片精品| 欧美xxxxx牲另类人与| 欧美不卡一区二区三区四区| 日韩欧美区一区二| 欧美日韩久久久久久| 欧美体内she精视频| 91成人免费在线视频| av在线播放一区二区三区| 成人av资源在线观看| 成人毛片老司机大片| 成人国产免费视频| 成人免费视频网站在线观看| www.成人网.com| 99精品视频中文字幕| 97精品国产露脸对白| 91福利在线观看| 欧美午夜精品理论片a级按摩| 欧美日韩国产一二三| 欧美日韩免费一区二区三区视频 | 久久日韩粉嫩一区二区三区| 久久九九久久九九| 国产精品美女久久久久久久久| 专区另类欧美日韩| 亚洲一区二区不卡免费| 日韩精品亚洲一区| 国产真实精品久久二三区| 国产一区二区不卡在线| av在线免费不卡| 欧美调教femdomvk| 欧美成人一级视频| 中文字幕精品一区| 一区二区三区中文字幕在线观看| 亚洲一区二区三区四区不卡| 奇米影视一区二区三区| 国产专区欧美精品| 97成人超碰视| 欧美另类高清zo欧美| 欧美成人aa大片| 中文字幕免费不卡在线| 亚洲乱码日产精品bd| 亚洲国产日韩a在线播放性色| 自拍视频在线观看一区二区| 一区二区三区电影在线播| 日本系列欧美系列| 久久99精品国产麻豆不卡| 国模冰冰炮一区二区| 国产a级毛片一区| 色呦呦国产精品| 欧美日韩国产系列| 日韩视频免费观看高清在线视频| 欧美mv日韩mv国产网站app| 国产精品三级视频| 亚洲女人的天堂| 日韩精品欧美成人高清一区二区| 蜜臀a∨国产成人精品| 懂色av中文字幕一区二区三区| 91亚洲男人天堂| 欧美日韩一级黄| 欧美成人a视频| 久久综合久久99| 亚洲自拍与偷拍| 久久国产精品一区二区| 懂色av中文字幕一区二区三区| 91免费国产在线观看| 欧美va亚洲va国产综合| 国产女主播一区| 一区二区三区四区在线免费观看| 亚洲国产美国国产综合一区二区| 免费日韩伦理电影| 韩国av一区二区三区| 99精品久久久久久| 欧美日韩国产a| 26uuu国产日韩综合| 亚洲va天堂va国产va久| 狠狠久久亚洲欧美| 色婷婷av一区二区三区软件 | 97se亚洲国产综合自在线| 在线播放日韩导航| 日韩欧美高清一区| 国产精品午夜电影| 亚洲大片免费看| 韩日精品视频一区| 色偷偷88欧美精品久久久| 日韩一区二区在线观看视频播放| 亚洲欧美区自拍先锋| 久久成人免费日本黄色| 成人99免费视频| 日韩欧美一级在线播放| 国产精品超碰97尤物18| 男人的j进女人的j一区| a级精品国产片在线观看| 日韩久久免费av| 亚洲精品成人精品456| 国产一区二区三区免费观看| 在线视频国内自拍亚洲视频| 久久精品综合网| 日本免费在线视频不卡一不卡二| 成人在线综合网| 欧美一区二区视频在线观看|