?? avr_pq1a.h
字號:
#define REA_H 65134 //1245
#define MI_H 65157 //1318
#define FA_H 65178 //1397
#define FAA_H 65198 //1480
#define SO_H 65217 //1568
#define SOA_H 65235 //1661
#define LA_H 65252 //1760
#define LAA_H 65268 //1865
#define TI_H 65283 //1976
#define ZERO 0 //休止符
//十進(jìn)制: 0
//休止符: 0
//十進(jìn)制: 1 2 3 4 5 6 7 8 9 10 11 12
//低音 : 1 #1 2 #2 3 4 #4 5 #5 6 #6 7
//十進(jìn)制: 13 14 15 16 17 18 19 20 21 22 23 24
// 中音 : 1 #1 2 #2 3 4 #4 5 #5 6 #6 7
//十進(jìn)制: 25 26 27 28 29 30 31 32 33 34 35 36
// 高音 : 1 #1 2 #2 3 4 #4 5 #5 6 #6 7
/******************繼電器常量******************/
#define RELAY PC6 //繼電器管腳宏定義
/******************異步串口常量******************/
#define MCLK 8000000 //主時(shí)鐘頻率宏定義
/******************RTC常量******************/
#define RTC_CLK PB7
#define RTC_DATA PB5
#define RTC_CS PC7
//命令
#define RD 0x01
#define WR 0x00
#define C_SEC 0x80 //秒
#define C_MIN 0x82 //分
#define C_HR 0x84 //時(shí)
#define C_DAY 0x86 //日
#define C_MTH 0x88 //月
#define C_WK 0x8A //星期 DATE
#define C_YR 0x8C //年
#define C_WP 0x8E //控制(寫保護(hù))
#define C_CHARGE 0x90 //涓流充電
#define C_BURST 0xBE //時(shí)鐘多字節(jié)
//配置
#define CLK_HALT 0x80 //停止時(shí)鐘控制位 SECOND bit7
#define CLK_START 0x00 //啟動時(shí)鐘
#define M12_24 0x80 //12/24小時(shí)值選擇位 HOUR bit7
#define PROTECT 0x80 //寫保護(hù)控制位 CONTROL bit7
#define UPROTECT 0x00 //寫保護(hù)控制位 CONTROL bit7
//涓流充電控制常量
#define TC_D1R2 0xA5 //high 1 Diode +2K Resistors
#define TC_D2R8 0xAB //low 2 Diodes+8K Resistors
#define TC_DISABLED 0x00 //Disabled(TCS<>1010 or DS=00 or RS=00)
//RAM 命令
#define C_RAMBASE 0xC0 //RAM0~RAM30<<1 地址需左移一位
/******************USB常量******************/
#define CSUSB PA7
#define D12_INT PD3
#define WR_N PD4
#define RD_N PD5
#define C_D PD6
#define D12_CS PD7
#define USBCTL_DDR DDRD
#define USBCTL_PORT PORTD
#define USBDAT_DDR DDRB
#define USBDAT_PORT PORTB
#define USBDAT_PIN PINB
#define CMD 0x01
#define DAT 0x00
#define UEN_GINT() SREG&=~BIT(7)
#define EN_GINT() SREG|=BIT(7)
#define MSB(x) (((x) >> 8) & 0xFF)
#define MAX_ENDPOINTS (uchar)0x3
#define NOLAZYCLOCK 0x02
#define CLOCKRUNNING 0x04
#define INTERRUPTMODE 0x08
#define SOFTCONNECT 0x10
#define ENDP_NONISO 0x00
#define ENDP_ISOOUT 0x40
#define ENDP_ISOIN 0x80
#define ENDP_ISOIO 0xC0
#define CLOCK_12M 0x03
#define CLOCK_4M 0x0b
#define SETTOONE 0x40
#define SOFONLY 0x80
#define NORMALPLUSSOF 0x20
#define ENDP4INTENABLE 0x40
#define ENDP5INTENABLE 0x80
#define INT_ENDP0OUT 0x01
#define INT_ENDP0IN 0x02
#define INT_ENDP1OUT 0x04
#define INT_ENDP1IN 0x08
#define INT_ENDP2OUT 0x10
#define INT_ENDP2IN 0x20
#define INT_BUSRESET 0x40
#define INT_SUSPENDCHANGE 0x80
#define SETUPPACKET 0x20
#define BUFFER0FULL 0x20
#define BUFFER1FULL 0x40
#define FULLEMPTY 0x01
#define STALL 0x02
#define USB_IDLE 0
#define USB_TRANSMIT 1
#define USB_RECEIVE 2
#define MAX_CTLDAT_SIZE 8
#define USB_ENDPOINT_DIRECTION_MASK 0x80
#define USB_REQUEST_MASK (uchar)0x0F
#define USB_REQUEST_TYPE_MASK (uchar)0x60
#define USB_STANDARD_REQUEST (uchar)0x00
#define DEVICE_ADDRESS_MASK 0x7F
#define USB_FEATURE_ENDPOINT_STALL (uint)0x0000
#define USB_FEATURE_REMOTE_WAKEUP (uint)0x0001
#define EP0_PACKET_SIZE 16
#define EP1_PACKET_SIZE 16
#define EP2_PACKET_SIZE 64
#define USB_RECIPIENT (uchar)0x1F
#define USB_RECIPIENT_DEVICE (uchar)0x00
#define USB_RECIPIENT_INTERFACE (uchar)0x01
#define USB_RECIPIENT_ENDPOINT (uchar)0x02
#define USB_DEVICE_DESCRIPTOR_TYPE 0x01
#define USB_CONFIGURATION_DESCRIPTOR_TYPE 0x02
#define USB_STRING_DESCRIPTOR_TYPE 0x03
#define USB_INTERFACE_DESCRIPTOR_TYPE 0x04
#define USB_ENDPOINT_DESCRIPTOR_TYPE 0x05
#define USB_POWER_DESCRIPTOR_TYPE 0x06
/* 設(shè)備描述符: 測試設(shè)備類型 */
#define USB_CLASS_CODE_TEST_CLASS_DEVICE 0xdc
/***** D12 配置描述符長度 ******/
#define CONFIG_DESCRIPTOR_LENGTH sizeof(USB_CONFIGURATION_DESCRIPTOR) \
+ sizeof(USB_INTERFACE_DESCRIPTOR) \
+ (NUM_ENDPOINTS * sizeof(USB_ENDPOINT_DESCRIPTOR))
/***** D12 接口描述符中: 除端點(diǎn)0的端點(diǎn)索引數(shù)目 ******/
#define NUM_ENDPOINTS 4
/* 設(shè)備描述符: 測試設(shè)備類型 */
#define USB_CLASS_CODE_TEST_CLASS_DEVICE 0xdc
/* 接口描述符: 子類代碼 */
#define USB_SUBCLASS_CODE_TEST_CLASS_D12 0xA0
/* 接口描述符: 協(xié)議代碼 */
#define USB_PROTOCOL_CODE_TEST_CLASS_D12 0xB0
/*******************************************************
** USB 端點(diǎn)描述符結(jié)構(gòu)體: 端點(diǎn)屬性
********************************************************/
#define USB_ENDPOINT_TYPE_MASK 0x03
#define USB_ENDPOINT_TYPE_CONTROL 0x00
#define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01
#define USB_ENDPOINT_TYPE_BULK 0x02
#define USB_ENDPOINT_TYPE_INTERRUPT 0x03
/******************通用子函數(shù)******************/
void Delayms(uint MS);
/******************LED子函數(shù)******************/
void One_led(uchar number,uchar light);
void All_led(uchar light);
void Flow_LED(uchar MS);
void Flash_LED(uchar number,uchar MS);
/******************數(shù)碼管子函數(shù)******************/
void One_smg_display(uchar data,uchar number);
void All_smg_display(uchar *pdata);
void Cycle_smg_display(uchar *pdata);
/******************1602液晶管子函數(shù)******************/
void LCD1602_portini(void);
uchar LCD1602_readbyte(uchar DatCmd);
void LCD1602_sendbyte(uchar DatCmd, uchar dByte);
void LCD1602_sendstr(uchar *ptString);
void LCD1602_clear(void);
uchar LCD1602_readBF(void);
void LCD1602_gotoXY(uchar Row, uchar Col);
void LCD1602_initial(void);
/******************USB函數(shù)******************/
void D12_init(void);
void OutB(uchar cmd,uchar dat);
uchar InB(void);
void Set_addren(uchar addr, uchar enable);
void Set_EPen(uchar enable);
void Set_mode(uchar config,uchar clkdiv);
void Set_DMA(uchar bMode);
uint Read_IntR(void);
uchar Sel_EP(uchar endp);
uchar Read_EPsta(uchar endp);
uchar Read_LttransSta(uchar endp);
void Set_EPsta(uchar endp,uchar stall);
void Set_Sresume(void);
uchar Read_EP(uchar endp,uchar len,uchar * buf);
uchar Write_EP(uchar endp,uchar len,uchar * buf);
void Ack_EP(uchar endp);
void Clear_buf(uchar endp);
void Stall_ep0(void);
void S_trans(uchar * buf, uchar len);
void Ep0_rxdone(void);
void Ep0_txdone(void);
void Ep1_txdone(void);
void Ep1_rxdone(void);
void Ep2_txdone(void);
void Ep2_rxdone(void);
void Reserved(void);
void Get_status(void);
void Clr_feature(void);
void Set_feature(void);
void Set_addr(void);
void Get_descriptor(void);
void Get_config(void);
void Set_config(void);
void Get_interface(void);
void Set_interface(void);
void USB_reconnect(void);
void Control_handler(void);
void Uart_sendB(uchar sendB);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -