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

📄 cymometer.h

📁 关于学习avr单片机的资料
💻 H
字号:
/* ASCII */
#define NUL	0x00
#define SOH	0x01
#define STX	0x02
#define ETX	0x03
#define EOT	0x04
#define ENQ	0x05
#define ACK	0x06
#define BEL	0x07
#define NAK	0x15
#define ETB	0x17

//#define eeprom_write_word my_eeprom_write_word
//#define eeprom_read_word my_eeprom_read_word

#define LED_ON  PORTB&=0xfd		//PROTB bit0=0
#define LED_OFF PORTB|=2		//PROTB bit0=1

#define CPU_CLOCK_HZ        12800000   /*       12.8Mhz */
#define UART_BAUD_RATE      115200      /* 115200 baud */


#define EEPROM_SIZE (E2END+1)
#define UART_BAUD_SELECT (CPU_CLOCK_HZ/(UART_BAUD_RATE*16l)-1)
//#define memory_DATA	*(volatile u08 *)0x0000

#define SPI_DATA SPDR

/*typedef unsigned char  u08;
typedef          char  s08;
typedef unsigned short u16;
typedef          short s16;*/
static volatile u16	Count1,Count2,Count3,Count4,Cont3_end;
static volatile u08	Count_start_F,Count_end_F;
//static volatile u08	m_rev_errnum
//static volatile u08	m_rev_status;

//static volatile u08	m_sync_num;

static volatile u32	m_sync_errnum;
//static volatile u32	m_sync_allnum;

//static volatile u08	m_sequence_move;

//static volatile u32	m__errnum;

static volatile u32	T__allnum;



static volatile u08	Two_Second,T_5ms_num,Display_on;
//static volatile u08	LCD_addr;
/**/
typedef struct line_LCD{	//LCD存储格式
u08 line0[20];			//line0
u08 line2[20];			//line2
u08 line1[20];			//line1
u08 line3[20];			//line2

}line_LCD;
/**/
typedef union lcd_p{		//LCD缓冲区格式变换
	struct line_LCD L_line;
	u08 LCD_buffer[80];
}lcd_p;

union lcd_p buffer_LCD ;
char RomTab[] __attribute__ ((progmem)) ="yfzhang@ele.pku.edu.cn";  

static char EEPRomTab[] __attribute__ ((section(".eeprom"))) =" yfzhang@ele.pku.edu.cn";  
static u08 LCD_init[]  __attribute__ ((progmem))  =" 05\00103\00227\003 Cymometer f=000.000000(MHz)                                          ";
static u08 time_addr[] __attribute__ ((progmem))  ={1,2,4,5,7,8,11,12,14,15,17,18};
static u08 LCD_cgtab[32]  __attribute__ ((progmem))  ={8,15,20,31,20,31,4,4,15,9,15,9,15,9,17,0,15,9,9,15,9,9,15,0,0,16,8,4,2,1,0,0};	//年月日 \ =01 02 03 04

static volatile u08	T_125ms_num;                            /* Number of 125ms timer1         */
static volatile u08	T_Second_num;                            /* Number of 1s timer1         */

//LCD
u08 pc_LCDstatus;
u08 pc_LCDsetup_start;
u08 pc_LCDaddress;
u08 pc_update;
u08 LCD_timer[12];
u08 LCD_work_is_busy;


// local data buffer
//unsigned char localBuffer[] = "Pascal is cool!!Pascal is Cool!!";
//unsigned char localBufferLength = 0x20;

void ascii_to_hex(u08 *p,u08 num);
void hex_to_ascii(u08 *p,u08 num);

void Delay_t(u16 t);
void initLCD(void);
u08 LCD_CR_ADD(void);
void LCD_CW_ADD(u08 cw);
void LCD_CW_ADD(u08 cw);
u08 chackLCDbusy(void);
void writeLCD_cgtab(void);
u08 setLCD_pos(u08 xpos,u08 ypos);
u08 setLCD_posadd(u08 posadd);
u08 writeLCD_data(u08 d);
void  PutString_LCD(u08 xpos,u08 ypos,u08 *s);
void  PutString_LCD_P(u08 point,u08 *s);
void communicate_with_LCD(void);
void display_frequency(u08 xpos,u08 ypos,double m);

⌨️ 快捷键说明

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