光伏发电第四章Word文件下载.docx
《光伏发电第四章Word文件下载.docx》由会员分享,可在线阅读,更多相关《光伏发电第四章Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
直接、间接和相对寻址方式
2.片内外围模块的特性
定时器0:
8位定时器/计数器(TMR0),带8位可编程预分频器
定时器1:
16位定时器/计数器(TMR1),带预分频器,在睡眠期间通过外部晶振仍能维持计数运行
定时器2:
8位定时器/计数器(TMR2),带8位周期寄存器,带预分频器及后分频器
两个捕捉器/比较器/PWM模块(CCP1和CCP2):
捕捉器为16位,最大分辨率为12.5ns
比较器为16位,最大分辨率为12.5ns
PWM最大分辨率为10
多通道10位分辨率模/数转换器(ADC)
带有SPI和I2C两种功能的主控同步串行口模块(MSSP)
带有通用同步/异步收发器接口模块(USART/SCI)
带有8位宽的从动并行端口(PSP),并配有专用控制信号线(RD,WR和CS)
具有掉电复位(BOR)检测电路和锁定电路
3.特殊单片机性能
内置上电复位电路(POR)
上电定时器(PWRT)和振荡启动定时器(OST)
监视定时器(WDT),它带有内部可靠运行的RC振荡器
具有可编程的代码保护
具备低功耗睡眠(SLEEP)方式
多种可选振荡方式:
◆RC:
低成本阻容振荡器
◆XT:
标准晶体(或陶瓷谐振器)振荡器
◆HS:
高速晶体(或陶瓷谐振器)振荡器
◆LP:
低频晶体振荡器
在线串行编程(ICSP),类似于统称的在系统内编程(ISP)技术
可以实现在应用中编程(IAP)技术
每根I/O引脚的最大拉/灌带你六为25mA/25mA,可直接驱动LED或小功率继电器
4.CMOS工艺特性
低功耗、高速CMOSFLASH/EEPROM工艺
全静态设计(即时钟频率可以降到0Hz)
宽运行电压范围2.0V到5.5V
3级可选的工作温度范围:
◆商用型为0~+70
◆工业级为-40~+85
整片的低功耗性能:
◆在5V电源电压,4MHz时钟频率时,典型工作电流<
2mA
◆在3V电源电压,32KHz时钟频率时,典型工作电流为20uA
◆在睡眠状态下,典型电流<
1uA
4.2液晶显示、键盘监控软件设计
4.2.1液晶显示菜单界面
根据光伏发电系统系统参数的需要,设计了系统运行情况和参数设置的液晶显示菜单界面,液晶显示菜单内容示意图如图4.1所示:
图4.1液晶显示菜单内容示意图
4.2.2液晶显示、键盘监控软件设计
4.2.2.1程序组成
液晶显示、键盘监控程序组成框架如下图4.2所示,采用模块化方式编程,主要由主程序、系统参数子程序(para)、PIC16F877A寄存器头文件、延时子函数,字库函数(table.h)、液晶显示子程序(LCD.h)、串口通信子程序(Sci.h)、键盘按键子程序(key.h)几部分组成:
图4.2液晶显示程序组成框架
4.2.2.2.液晶显示键盘操作设计
1.键盘各部分组成
液晶显示采用键盘操作来显示液晶菜单,键盘部分由“MODE”、“RUN”、“UP”、“DOWN”、“OK”、“RUN”、“STOP”7个键组成,键盘组成及各个键盘的作用描述如图4.3所示。
2.键盘判断
在按键采样的过程中,手按下去的时候会产生一定连续的抖动信号,相对单片机系统而言,这个按键信号会持续一定的时间,并不是立刻就会消失,为了消除按键的抖动干扰,加入了按键去抖处理。
按键去抖工作原理为:
扫描各按键引脚的电平变化,一旦发现电平变低(有按键按下),则延时指定的一段时间,然后再次扫描该端子,当两次扫描的结果一致,电平都为低时即确认按键按下,转入按键响应处理。
图4.4为一次按键采样、响应流程图。
图4.3键盘各部分组成及作用描述
图4.4键盘响应流程图
5.2.2.3.主程序流程图
主程序主要是完成PIC单片机初始化、串口通讯初始化、LCD显示部分初始化、显示液晶初始界面、对所需变量进行初始化,初始化完成之后等待按键操作。
当检测到按键信号后,进行相应的按键处理。
主程序流程图如图4.5所示:
图4.5主程序流程图
5.2.2.4.程序函数列表
1.LCD显示子程序
voidLCD_Write(unsignedchardat);
//向LCD写数据
voidOpen_Black_light(void);
//打开液晶背光
voidClose_Black_light(void);
//关闭背光
voidCommandToLCD(unsignedcharcommand);
//向LCD发送指令
voidSetLine(unsignedcharline);
//设定行地址--x0-7
voidSetColumn(unsignedcharcolumn);
//设定列地址--Y0-63
voidSetStartLine(unsignedcharstartline);
//设定显示开始行--0--63
voidSelectScreen(unsignedcharscreen);
//选择屏幕screen:
0-全屏,1-左屏,2-右
voidClearScreen(unsignedcharscreen);
//清屏,creen:
voidShow_ASC(ucharlin,ucharcolumn,ucharnumb,ucharL_R);
//显示8*16字母或数字
voidshow_CH(unsignedcharlin,unsignedcharcolumn,unsignedintnumb,
unsignedcharL_R);
//显示一个汉字
voidreverse_Show_ASC(ucharlin,ucharcolumn,ucharnumb,ucharL_R);
//反显一个8*16字符
voidreverse_show_CH(unsignedcharlin,unsignedcharcolumn,unsignedintnumb,
//反显一个汉字
voidShowLine(unsignedcharlin,unsignedcharrow,unsignedcharreverse_flag);
//显示一行汉字
voidShow_Page(unsignedcharp);
//显示一屏汉字
voidShow_Line_char(ucharlin,ucharrow,ucharreverse_first);
//显示一行8个字符
voidSetup_Para(ucharlin,ucharreverse_numb);
//修改参数中,用来指定修改反显的一位
voidInitLCD();
//初始化LCD
voidLCD_BUSY(void);
//判断液晶是否处于“忙”状态
voidShow_unit(ucharnumb);
//用来显示运行状态时候的单位
2.键盘操作子程序函数列表
voidkey_value(void);
//判断当前按下的是哪个健
voidkey_up(void);
//运行"
UP"
键子程序
voidkey_down(void);
//运行"
down"
voidkey_ok(void);
OK"
voidkey_esc(void);
esc"
voidkey_run(void);
run"
voidkey_stop(void);
stop"
voidkey_mode(void);
mode"
4.2.3SCI软件设计
1.串口通信原理框图
PIC16F877A与TMS320F2812的串口通讯采用RS-485通信协议,通过两个MAX485芯片来实现两者的数据交换,通信原理示意图如图5.6所示:
图4.6RS-485串口通信原理框图
2.串口通信报文协议
PIC16F877A与F2812通过RS-485通信协议进行数据交换,两者都工作在半双工模式。
F2812发送数据采用查询方式,接收均采用中断方式;
PIC16F877A的串口发送数据采用查询方式,接收采用中断方式。
PIC16F877A与F2812进行数据交换时要遵循一定的协议,即报文协议。
一个完整的数据包包括:
包头、命令标号、数据标号、如数据高字节、数据低字节、校验位、包尾,如图5.7所示:
图4.7数据包格式
校验位:
采用异或校验方式,校验位为命令标号、数据标号、数据高字节、数据低字节校验四位数据的异或,即:
校验位=命令标号^数据标号^数据高字节^数据低字节。
数据高字节、数据低字节:
分别为接收或发送数据的高8位数据、低8位数据。
命令标号:
是PIC16F877A单片机与F2812通讯的时候发送命令给F2812,F2812根据命令标号完成相应任务。
数据标号:
为第三层液晶显示菜单编号,根据菜单编号DSP发送对应数据,如并网模式运行状态为0—12,共13个数据代码。
4.3基于PROTEUS的液晶显示、键盘监控电路仿真
PROTEUS是由英国Labcenterelectronics公司开发的EDA工具软件。
它从1989年出现到现在已经有十多年的历史,在全球广泛使用。
Proteus革命性的功能在于它的电路仿真是互动的,针对微处理器的应用,可以直接在基于原理图的虚拟原型上编程,并实现软件代码级的调试,还可以直接实时动态地模拟按钮、键盘的输入,LED、液晶显示的输出,同时配合虚拟工具如示波器、逻辑分析仪等进行相应的测量和观测。
它有两个主要优点:
1)对动态元件的实时仿真,它对“人机对话”的模拟增强了系统的真实性;
2)是虚拟工具箱的功能,它能与仿真同时进行,测量方便而准确。
4.3.1PROTEUS仿真电路
图4.8LCD显示、键盘监控硬件仿真电路
为使系统具有良好的“人机接口”,设计了基于PIC16F877A的键盘监控、液晶显示硬件电路。
软件利用C语言编写,在PIC单片机的开发环境MPLAB下调试、编译后,产生的HEX或COF文件在PROTEUS运行环境下可以直接调用。
用PROTEUS进行的液晶显示硬件仿真电路如图4.8所示,主要由三个部分组成:
单片机及其外围电路、液晶显示模块和按键电路。
液晶显示模块选用的是深圳显能实业有限公司生产的128*64点阵的图形点阵液晶模块SG12864-9。
液晶模块内部分左右两屏,由驱动芯片KS0108B进行驱动显示。
它主要由行驱动器/列驱动器及128×
64全点阵液晶显示器组成,可完成图形显示,也可以显示8×
4(16×
16)点阵汉字。
软件在PROTEUS环境下被PIC16F877A调用之后,利用PROTEUS进行软件调试,采用单步运行模式对程序进行调试,便于找出程序中的BUG。
PROTEUS软件调试通过之后,程序就可烧入PIC16F877A中运行,查看液晶显示、键盘操作运行情况。
利用串口调试助手软件还可以与PC进行RS-232串口通信,与PC串口通信成功后再对程序进行修改,根据RS-485半双工通讯的特点,进一步完善软件设计。
4.3.2液晶显示、键盘操作的PROTEUS仿真
软件编译完成后,在PROTEUS环境下,对液晶显示、键盘监控电路进行软、硬件结合仿真,部分液晶显示菜单界面如下图4.9至4.12所示,图4.12显示的数据是通过串口通信接收到的数据。
图4.9液晶显示仿真初始菜单图4.10液晶显示仿真菜单一
图4.11液晶显示仿真菜单二图4.12液晶显示仿真菜单三
4.3.3液晶显示、键盘监控电路实验调试
在PROTEUS仿真调试的基础上对PIC16F877A液晶显示装置进行了调试,得到了与PROTEUS软件仿真的相同结果,实现了系统中液晶显示、键盘监控与串口通讯的需要,实际运行时部分液晶显示界面如下图4.13至图4.16所示:
图4.13液晶显示初始菜单图4.14液晶显示菜单一
图4.15液晶显示菜单二图4.16液晶显示菜单三
液晶显示、键盘监控实验装置如下图4.17所示:
图4.17PIC16F877A液晶显示装置