⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbd12.s

📁 1.实现单片机驱动USBD12的固件
💻 S
📖 第 1 页 / 共 5 页
字号:
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB/SKEY.C
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.dbsym e USB_FLAG _USB_FLAG X
_DeviceDescr::
	.blkb 1
	.area idata
	.byte 18
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 1
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 16
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 220
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 16
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 113
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 4
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 102
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 6
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 1
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 1
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.dbsym e DeviceDescr _DeviceDescr X
_usb_descr::
	.blkb 1
	.area idata
	.byte 9
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 2
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 46
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 1
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 1
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 160
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 50
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 9
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 4
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 4
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 220
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 160
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 176
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 7
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 5
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 129
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 3
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 16
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 10
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 7
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 5
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 1
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 3
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 16
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 10
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 7
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 5
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 130
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 2
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 64
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 10
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 7
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 5
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 2
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 2
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 64
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkb 1
	.area idata
	.byte 10
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.dbsym e usb_descr _usb_descr X
_StandardDeviceRequest::
	.blkw 1
	.area idata
	.word PL_Get_status
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkw 1
	.area idata
	.word PL_Clr_feature
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkw 1
	.area idata
	.word PL_Reserved
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkw 1
	.area idata
	.word PL_Set_feature
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkw 1
	.area idata
	.word PL_Reserved
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkw 1
	.area idata
	.word PL_Set_addr
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkw 1
	.area idata
	.word PL_Get_descriptor
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkw 1
	.area idata
	.word PL_Reserved
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkw 1
	.area idata
	.word PL_Get_config
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkw 1
	.area idata
	.word PL_Set_config
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkw 1
	.area idata
	.word PL_Get_interface
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkw 1
	.area idata
	.word PL_Set_interface
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkw 1
	.area idata
	.word PL_Reserved
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkw 1
	.area idata
	.word PL_Reserved
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkw 1
	.area idata
	.word PL_Reserved
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.blkw 1
	.area idata
	.word PL_Reserved
	.area data(ram, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.dbsym e StandardDeviceRequest _StandardDeviceRequest A[32:16]pfV
	.area text(rom, con, rel)
	.dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\20_USB\USBD12.C
	.dbfunc e D12_init _D12_init fV
	.even
_D12_init::
	.dbline -1
	.dbline 227
;     uchar bConfigurationValue;
;     uchar iConfiguration;
;     uchar bmAttributes;
;     uchar MaxPower;
; } USB_CONFIGURATION_DESCRIPTOR;
; /***********  USB  端点描述符结构体  ****************/
; typedef struct _USB_ENDPOINT_DESCRIPTOR 
; {
;     uchar bLength;
;     uchar bDescriptorType;
;     uchar bEndpointAddress;
;     uchar bmAttributes;
;     uchar wMaxPacketSize0;
;     uchar wMaxPacketSize1;
;     uchar bInterval;
; } USB_ENDPOINT_DESCRIPTOR;
; /***********  D12 USB 各种描述符结构体 *********************/
; typedef struct _USB_DESCRIPTOR 
; {
; 	USB_CONFIGURATION_DESCRIPTOR ConfigDescr;		//配置描述符
; 	USB_INTERFACE_DESCRIPTOR InterfaceDescr;		//接口描述符
; 	USB_ENDPOINT_DESCRIPTOR EP1_TXDescr;			//端点1输入描述符
; 	USB_ENDPOINT_DESCRIPTOR EP1_RXDescr;			//端点1输出描述符
; 	USB_ENDPOINT_DESCRIPTOR EP2_TXDescr;			//端点2输入描述符
; 	USB_ENDPOINT_DESCRIPTOR EP2_RXDescr;			//端点2输出描述符
; } USB_DESCRIPTOR;
; CONTROL_XFER ControlData;
; uchar GenEpBuf[EP1_PACKET_SIZE];			//端点1接收缓冲区
; uchar EpBuf[EP2_PACKET_SIZE];				//端点2接收缓冲区
; //#pragma data:code
; //设备描述符
; USB_DEVICE_DESCRIPTOR DeviceDescr =
; {
; 	sizeof(USB_DEVICE_DESCRIPTOR),				//设备描述符长度,= 12H
; 	USB_DEVICE_DESCRIPTOR_TYPE,					//设备描述符类型,= 01H
; 	0x00,0x10,										//协议版本,= 1.10
; 	USB_CLASS_CODE_TEST_CLASS_DEVICE,			//测试设备类型, = 0DCH	
; 	0, 0,										//设备子类,设备协议
; 	EP0_PACKET_SIZE,							//端点0最大数据包大小,= 10H	
; 	0x71,0x04,									//PHILIPS公司的设备ID	
; 	0x66,0x06,									//设备制造商定的产品ID
; 	0x00,0x01,									//设备系列号
; 	0, 0, 0,									//索引
; 	1											//可能的配置数
; };
; USB_DESCRIPTOR usb_descr =
; {
; //配置描述符
; {
; 	sizeof(USB_CONFIGURATION_DESCRIPTOR),		//配置描述符长度,= 09H
; 	USB_CONFIGURATION_DESCRIPTOR_TYPE,			//配置描述符类型,= 02H
; 	CONFIG_DESCRIPTOR_LENGTH,0x00,				//描述符总长度, = 002EH
; 	1,											//只支持1个接口
; 	1,											//配置值
; 	0,											//字符串描述符指针(无)
; 	0xa0,										//自供电,支持远程唤醒
; 	0x32										//最大功耗(100mA)
; },
; //接口描述符
; {
; 	sizeof(USB_INTERFACE_DESCRIPTOR),			//接口描述符长度,= 09H
; 	USB_INTERFACE_DESCRIPTOR_TYPE,				//接口描述符类型,= 04H
; 	0,											//接口数,只有1个
; 	0,											//可选配置,只有1个
; 	NUM_ENDPOINTS,								//除端点0的端点索引数目,= 04H
; 	USB_CLASS_CODE_TEST_CLASS_DEVICE,			//测试设备类型,= 0DCH
; 	USB_SUBCLASS_CODE_TEST_CLASS_D12,			//子类代码,= 0A0H	
; 	USB_PROTOCOL_CODE_TEST_CLASS_D12,			//协议代码,= 0B0H
; 	0											//字符串描述符索引
; },
; //端点描述符,端点1输入
; {
; 	sizeof(USB_ENDPOINT_DESCRIPTOR),			//端点描述符长度,= 07H
; 	USB_ENDPOINT_DESCRIPTOR_TYPE,				//端点描述符类型,= 05H
; 	0x81,										//端点1 IN
; 	USB_ENDPOINT_TYPE_INTERRUPT,				//中断传输, = 03H
; 	EP1_PACKET_SIZE,0x00,						//端点最大包的大小,= 0010H
; 	10											//传输间隔时间,= 10ms
; },
; //端点描述符,端点1输出
; {
; 	sizeof(USB_ENDPOINT_DESCRIPTOR),			//端点描述符长度,= 07H
; 	USB_ENDPOINT_DESCRIPTOR_TYPE,				//端点描述符类型,= 05H
; 	0x1,										//端点1 OUT
; 	USB_ENDPOINT_TYPE_INTERRUPT,				//中断传输,= 03H
; 	EP1_PACKET_SIZE,0x00,						//端点最大包的大小,= 0010H
; 	10											//传输间隔时间,= 10ms
; },
; //端点2输入
; {
; 	sizeof(USB_ENDPOINT_DESCRIPTOR),			//端点描述符长度,= 07H
; 	USB_ENDPOINT_DESCRIPTOR_TYPE,				//端点描述符类型,= 05H
; 	0x82,										//端点2 OUT
; 	USB_ENDPOINT_TYPE_BULK,						//批量传输,= 02H
; 	EP2_PACKET_SIZE,0x00,						//端点最大包的大小,= 0040H
; 	10											//批量传输时该设备无效
; },
; //端点2输出
; {
; 	sizeof(USB_ENDPOINT_DESCRIPTOR),			//端点描述符长度,= 07H
; 	USB_ENDPOINT_DESCRIPTOR_TYPE,				//端点描述符类型,= 05H
; 	0x2,										//端点2 IN	
; 	USB_ENDPOINT_TYPE_BULK,						//批量传输,= 02H
; 	EP2_PACKET_SIZE,0x00,						//端点最大包的大小,= 0040H
; 	10											//批量传输时该设备无效
; } 
; };
; //#pragma data:data
; //#pragma data:code
; void (*StandardDeviceRequest[])(void)=
; {
; 	Get_status,
; 	Clr_feature,
; 	Reserved,
; 	Set_feature,
; 	Reserved,
; 	Set_addr,
; 	Get_descriptor,
; 	Reserved,
; 	Get_config,
; 	Set_config,
; 	Get_interface,
; 	Set_interface,
; 	Reserved,
; 	Reserved,
; 	Reserved,
; 	Reserved
; };
; //#pragma data:data
; /*******************************************
; 函数名称: D12_init
; 功    能: 初始化D12接口(包括数据接口和控制接口)
; 参    数: 无
; 返回值  : 无
; /********************************************/
; void D12_init(void)
; {
	.dbline 228
;  DDRA|=BIT(CSUSB); 				//USB的573锁存端设置为输出			  
	sbi 0x1a,7
	.dbline 229
;  PORTA&=~BIT(CSUSB);			//573锁存端关闭
	cbi 0x1b,7
	.dbline 230
;  USBDAT_DDR|=0xFF;				//数据端口设置为输出
	in R24,0x17
	ori R24,255
	out 0x17,R24
	.dbline 231
;  USBCTL_DDR|=BIT(WR_N)|BIT(RD_N)|BIT(C_D)|BIT(D12_CS);//控制引脚设置为输出
	in R24,0x11
	ori R24,240
	out 0x11,R24
	.dbline 232
;  USBCTL_DDR&=~BIT(D12_INT);							  //中断引脚设置为输入				  
	cbi 0x11,3
	.dbline 233
;  USBCTL_PORT|=BIT(D12_INT);							  //上拉使能
	sbi 0x12,3
	.dbline 234
;  USBCTL_PORT|=BIT(WR_N)|BIT(RD_N)|BIT(D12_CS);		  //控制引脚无效
	in R24,0x12
	ori R24,176
	out 0x12,R24
	.dbline 235
;  PORTA|=BIT(CSUSB);									  //送出控制信号
	sbi 0x1b,7
	.dbline 237
;  
;  SREG|=BIT(GLOBAL);					//使能全局中断
	bset 7
	.dbline 238
;  MCUCR&=0xF3;						//外部中断1采用低电平触发
	in R24,0x35
	andi R24,243
	out 0x35,R24
	.dbline 239
;  GICR|=BIT(EXTINT1);	//使能外部中断0和1  
	in R24,0x3b
	ori R24,128
	out 0x3b,R24
	.dbline 241
;  
;  USBCTL_PORT&=~BIT(D12_CS);
	cbi 0x12,7
	.dbline -2
	.dbline 242
; }
L44:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e OutB _OutB fV
;            dat -> R20
;            cmd -> R22
	.even
_OutB::
	xcall push_gset2
	mov R20,R18
	mov R22,R16
	.dbline -1
	.dbline 251
; /*******************************************
; 函数名称: OutB
; 功    能: 向D12写入一个字节数据或者命令
; 参    数: cmd--命令标识(为CMD是命令,为DAT是数据)
; 	  	  dat--要写入的字节数据
; 返回值  : 无
; /********************************************/
; void OutB(uchar cmd,uchar dat)
; {
	.dbline 252
;  if(cmd==CMD)
	cpi R22,1
	brne L46
	.dbline 253
;  {
	.dbline 254

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -