欢迎来到天天文库
浏览记录
ID:49464712
大小:73.01 KB
页数:11页
时间:2020-03-01
《《avr_pq1a开发板程序》.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/*******************************************文件:AVR_PQ1A.H功能:定义一些AVR_PQ1A开发板上应用程序用到的常量/******************************************/#include//包含型号头文件#include//包含"位"操作头文件/******************数据类型宏定义******************/#defineucharunsignedchar#defineuintunsignedint/***********
2、*******数码管和LED常量******************/#defineLEDLKPA2//LED锁存器控制端#defineSEGLKPA3//数码管段选锁存器控制端#defineBITLKPA4//数码管位选锁存器控制端#defineTRUE1#defineFALSE0#defineALLLED0XFF/*******************************************函数名称:Delayus功能:延时指定微秒(8M晶振)参数:US--延时的微秒数(大约,不是很精确,MS越大越准确)返回值:无/**********************
3、**********************/voidDelayus(uintUS){uinti;US=US*5/4;//5/4是在8MHz晶振下,通过软件仿真反复实验得到的数值for(i=0;i4、or(j=0;j<1141;j++);//1141是在8MHz晶振下,通过软件仿真反复实验得到的数值}/*******************************************函数名称:Board_init功能:初始化实验板,关闭全部功能参数:无返回值:无/********************************************/voidBoard_init(void){DDRA=0xFF;//将四个IO口全部配置为输出DDRB=0xFF;DDRC=0xFF;DDRD=0xFF;SPCR=0x00;//还原SPI口,使其为正常端口PORTA5、6、=BIT(PA6);//(BEEP)关闭蜂鸣器PORTC&=~BIT(PC6);//(RELAY)初始化继电器为常闭连接状态PORTA&=~BIT(PA1);//关闭SPI总线DAPORTB=0xFF;//关闭LEDPORTA7、=BIT(LEDLK);//锁存数据,使LED熄灭Delayus(5);PORTA&=~BIT(LEDLK);PORTB=0x00;//输出段选PORTA8、=BIT(SEGLK);Delayus(50);PORTA&=~BIT(SEGLK);PORTB=0xFF;//输出位选PORTA9、=BIT(BITLK);Delayus(50);PORTA&=10、~BIT(BITLK);PORTD=0xFF;PORTA11、=BIT(PA7);Delayus(50);PORTA&=~BIT(PA7);}/******************1602液晶常量及操作******************/#defineLCDa_CTRLPORTD//1602控制端口定义#defineLCDa_CTRL_DDRDDRD//控制端口方向寄存器定义#defineLCDa_RSPD4//定义三个控制引脚#defineLCDa_RWPD5#defineLCDa_EPD6#defineLCDa_L10x80//第一行的地址:0x80+addr,addr12、为列数#defineLCDa_L20xC0//第二行的地址:0x80+0x40+addr#defineLCDa_CGRAM_ADDR0x40//CGRAM的开始地址#defineLCDa_CGMAX64//CGRAM存储的最大字节数#defineLCDa_SET_RSLCDa_CTRL13、=BIT(LCDa_RS)//三个控制管脚的控制操作#defineLCDa_SET_RWLCDa_CTRL14、=BIT(LCDa_RW)#defineLCDa_SET_ELCDa_CTRL15、=BIT(LCDa_E)#defineLCDa_CLR_
4、or(j=0;j<1141;j++);//1141是在8MHz晶振下,通过软件仿真反复实验得到的数值}/*******************************************函数名称:Board_init功能:初始化实验板,关闭全部功能参数:无返回值:无/********************************************/voidBoard_init(void){DDRA=0xFF;//将四个IO口全部配置为输出DDRB=0xFF;DDRC=0xFF;DDRD=0xFF;SPCR=0x00;//还原SPI口,使其为正常端口PORTA
5、
6、=BIT(PA6);//(BEEP)关闭蜂鸣器PORTC&=~BIT(PC6);//(RELAY)初始化继电器为常闭连接状态PORTA&=~BIT(PA1);//关闭SPI总线DAPORTB=0xFF;//关闭LEDPORTA
7、=BIT(LEDLK);//锁存数据,使LED熄灭Delayus(5);PORTA&=~BIT(LEDLK);PORTB=0x00;//输出段选PORTA
8、=BIT(SEGLK);Delayus(50);PORTA&=~BIT(SEGLK);PORTB=0xFF;//输出位选PORTA
9、=BIT(BITLK);Delayus(50);PORTA&=
10、~BIT(BITLK);PORTD=0xFF;PORTA
11、=BIT(PA7);Delayus(50);PORTA&=~BIT(PA7);}/******************1602液晶常量及操作******************/#defineLCDa_CTRLPORTD//1602控制端口定义#defineLCDa_CTRL_DDRDDRD//控制端口方向寄存器定义#defineLCDa_RSPD4//定义三个控制引脚#defineLCDa_RWPD5#defineLCDa_EPD6#defineLCDa_L10x80//第一行的地址:0x80+addr,addr
12、为列数#defineLCDa_L20xC0//第二行的地址:0x80+0x40+addr#defineLCDa_CGRAM_ADDR0x40//CGRAM的开始地址#defineLCDa_CGMAX64//CGRAM存储的最大字节数#defineLCDa_SET_RSLCDa_CTRL
13、=BIT(LCDa_RS)//三个控制管脚的控制操作#defineLCDa_SET_RWLCDa_CTRL
14、=BIT(LCDa_RW)#defineLCDa_SET_ELCDa_CTRL
15、=BIT(LCDa_E)#defineLCDa_CLR_
此文档下载收益归作者所有