欢迎来到天天文库
浏览记录
ID:36667497
大小:73.01 KB
页数:11页
时间:2019-05-13
《avr_pq1a开发板程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/文件:AVR_PQ1A.H功能:定义一些AVR_PQ1A开发板上应用程序用到的常量//#include//包含型号头文件#include//包含"位"操作头文件/数据类型宏定义/#defineucharunsignedchar#defineuintunsignedint/数码管和LED常量/#defineLEDLKPA2//LED锁存器控制端#defineSEGLKPA3//数码管段选锁存器控制端#defineBITLKPA4//数码管位选锁存器控制端#defineTRU
2、E1#defineFALSE0#defineALLLED0XFF/函数名称:Delayus功能:延时指定微秒(8M晶振)参数:US--延时的微秒数(大约,不是很精确,MS越大越准确)返回值:无//voidDelayus(uintUS){uinti;US=US5/4;//5/4是在8MHz晶振下,通过软件仿真反复实验得到的数值for(i=0;i3、or(i=0;i4、/(RELAY)初始化继电器为常闭连接状态PORTA&=~BIT(PA1);//关闭SPI总线DAPORTB=0xFF;//关闭LEDPORTA=BIT(LEDLK);//锁存数据,使LED熄灭Delayus(5);PORTA&=~BIT(LEDLK);PORTB=0x00;//输出段选PORTA=BIT(SEGLK);Delayus(50);PORTA&=~BIT(SEGLK);PORTB=0xFF;//输出位选PORTA=BIT(BITLK);Delayus(50);PORTA&=~BIT(BITLK);PO5、RTD=0xFF;PORTA=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为列数#defineLCDa_L20xC06、//第二行的地址:0x80+0x40+addr#defineLCDa_CGRAM_ADDR0x40//CGRAM的开始地址#defineLCDa_CGMAX64//CGRAM存储的最大字节数#defineLCDa_SET_RSLCDa_CTRL=BIT(LCDa_RS)//三个控制管脚的控制操作#defineLCDa_SET_RWLCDa_CTRL=BIT(LCDa_RW)#defineLCDa_SET_ELCDa_CTRL=BIT(LCDa_E)#defineLCDa_CLR_RSLCDa_CTRL&=~BIT7、(LCDa_RS)#defineLCDa_CLR_RWLCDa_CTRL&=~BIT(LCDa_RW)#defineLCDa_CLR_ELCDa_CTRL&=~BIT(LCDa_E)#defineLCDa_DOPORTB//输出数据总线端口定义#defineLCDa_DIPINB//输入数据总线端口定义#defineLCDa_DATA_DDRDDRB//数据总线方向寄存器定义#defineLCDa_FUNCTION0x38//液晶模式为8位,2行,58字符#defineiDat1//数据标志#defineiCmd8、0//指令标志#defineLCDa_CLS0x01//清屏#defineLCDa_HOME0x02//地址返回原点,不改变DDRAM内容#defineLCDa_ENTRY0x06//设定输入模式,光标加,屏幕不移动#defineLCDa_C2L0x10//光标左移#defineLCDa_C2R0x14//光标右移#defineLCDa_D2L0x18//屏幕左移#def
3、or(i=0;i4、/(RELAY)初始化继电器为常闭连接状态PORTA&=~BIT(PA1);//关闭SPI总线DAPORTB=0xFF;//关闭LEDPORTA=BIT(LEDLK);//锁存数据,使LED熄灭Delayus(5);PORTA&=~BIT(LEDLK);PORTB=0x00;//输出段选PORTA=BIT(SEGLK);Delayus(50);PORTA&=~BIT(SEGLK);PORTB=0xFF;//输出位选PORTA=BIT(BITLK);Delayus(50);PORTA&=~BIT(BITLK);PO5、RTD=0xFF;PORTA=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为列数#defineLCDa_L20xC06、//第二行的地址:0x80+0x40+addr#defineLCDa_CGRAM_ADDR0x40//CGRAM的开始地址#defineLCDa_CGMAX64//CGRAM存储的最大字节数#defineLCDa_SET_RSLCDa_CTRL=BIT(LCDa_RS)//三个控制管脚的控制操作#defineLCDa_SET_RWLCDa_CTRL=BIT(LCDa_RW)#defineLCDa_SET_ELCDa_CTRL=BIT(LCDa_E)#defineLCDa_CLR_RSLCDa_CTRL&=~BIT7、(LCDa_RS)#defineLCDa_CLR_RWLCDa_CTRL&=~BIT(LCDa_RW)#defineLCDa_CLR_ELCDa_CTRL&=~BIT(LCDa_E)#defineLCDa_DOPORTB//输出数据总线端口定义#defineLCDa_DIPINB//输入数据总线端口定义#defineLCDa_DATA_DDRDDRB//数据总线方向寄存器定义#defineLCDa_FUNCTION0x38//液晶模式为8位,2行,58字符#defineiDat1//数据标志#defineiCmd8、0//指令标志#defineLCDa_CLS0x01//清屏#defineLCDa_HOME0x02//地址返回原点,不改变DDRAM内容#defineLCDa_ENTRY0x06//设定输入模式,光标加,屏幕不移动#defineLCDa_C2L0x10//光标左移#defineLCDa_C2R0x14//光标右移#defineLCDa_D2L0x18//屏幕左移#def
4、/(RELAY)初始化继电器为常闭连接状态PORTA&=~BIT(PA1);//关闭SPI总线DAPORTB=0xFF;//关闭LEDPORTA=BIT(LEDLK);//锁存数据,使LED熄灭Delayus(5);PORTA&=~BIT(LEDLK);PORTB=0x00;//输出段选PORTA=BIT(SEGLK);Delayus(50);PORTA&=~BIT(SEGLK);PORTB=0xFF;//输出位选PORTA=BIT(BITLK);Delayus(50);PORTA&=~BIT(BITLK);PO
5、RTD=0xFF;PORTA=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为列数#defineLCDa_L20xC0
6、//第二行的地址:0x80+0x40+addr#defineLCDa_CGRAM_ADDR0x40//CGRAM的开始地址#defineLCDa_CGMAX64//CGRAM存储的最大字节数#defineLCDa_SET_RSLCDa_CTRL=BIT(LCDa_RS)//三个控制管脚的控制操作#defineLCDa_SET_RWLCDa_CTRL=BIT(LCDa_RW)#defineLCDa_SET_ELCDa_CTRL=BIT(LCDa_E)#defineLCDa_CLR_RSLCDa_CTRL&=~BIT
7、(LCDa_RS)#defineLCDa_CLR_RWLCDa_CTRL&=~BIT(LCDa_RW)#defineLCDa_CLR_ELCDa_CTRL&=~BIT(LCDa_E)#defineLCDa_DOPORTB//输出数据总线端口定义#defineLCDa_DIPINB//输入数据总线端口定义#defineLCDa_DATA_DDRDDRB//数据总线方向寄存器定义#defineLCDa_FUNCTION0x38//液晶模式为8位,2行,58字符#defineiDat1//数据标志#defineiCmd
8、0//指令标志#defineLCDa_CLS0x01//清屏#defineLCDa_HOME0x02//地址返回原点,不改变DDRAM内容#defineLCDa_ENTRY0x06//设定输入模式,光标加,屏幕不移动#defineLCDa_C2L0x10//光标左移#defineLCDa_C2R0x14//光标右移#defineLCDa_D2L0x18//屏幕左移#def
此文档下载收益归作者所有