第四章 软件设计
4.1.1 主要程序代码 1、按键扫描程序 void keyscan(void) {
if(key1==0) {
dmsec(5); if(key1==0) {
sheding++; if(sheding==100) sheding=20; }
while(!key1); }
else if(key2==0) {
dmsec(5); if(key2==0) { sheding--; if(sheding==0) sheding=20; }
while(!key2); } }
2、温度处理程序
void deal(uint tmp) //温度处理
18
琼州学院本科毕业论文 (设计)
{
if(tmp<=sheding) {
gaonum=0; dinum=4; }
else if((tmp>sheding)&&(tmp<=(sheding+5))) {
gaonum=1; dinum=3; }
else if((tmp>sheding+5)&&(tmp<=(sheding+10))) {
gaonum=2; dinum=2; }
else if((tmp>sheding+10)&&(tmp<=(sheding+15))) {
gaonum=3; dinum=1; } else {
gaonum=4; dinum=0; } }
19
第四章 软件设计
4.2 用Keil C51 编写程序
Keil C51是美国Keil Software公司开发的51系列兼容单片机C语言的软件开发系统,与单片机汇编语言相比,C语言不仅语句简单灵活,而且编写的函数模块可移植性强,因而易学易用,效率高。随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前使用较多的MCS-51系列单片机开发的软件。
Keil C51软件不仅提供了丰富的库函数,而且它强大的集成开发调试工具为程序编辑调试带来便利,在开发大型软件时更能体现高级语言的优势。早使用时要先建立一个工程,然后再添加文件并编写程序,编写好后在编辑调试。Keil C51的使用界面如图3-2所示。
图4-2 Keil C51的使用界面
20
琼州学院本科毕业论文 (设计)
4.3 用Proteus进行仿真
4.3.1 Proteus简介
Proteus软件是来自英国Labcenter electionics公司的EDA工具软件。 Proteus软件有十多年的历史,在全球广泛使用,它不仅和其他EDA工具一样有原理布图、PCB自动或人工布线及电路仿真的功能,而且更重要的功能是,它的电路仿真是互动的,可以根据仿真实时观察到现象验证设计的正确性及准确性并及时改变程序代码、原理图连接以及元件属性等。它还能配合系统配置的虚拟仪器来显示和输出,如示波器、逻辑分析仪等,效果很好。
Proteus有4个功能模块:智能原理图设计、完善的电路仿真功能、独特的单片机协同仿真功能以及实用的PCB设计平台。其内部元件库含有丰富的元件,支持总线结构以及智能化的连线功能;支持主流CPU(如ARM、8051/52、AVR)及通用外设模型的实时仿真等,为单片机的开发应用等带来极大的便利。软件的使用主界面如图4-3所示。
图4-3 Proteus使用主界面
21
第四章 软件设计
4.3.2 本设计基于Proteus的仿真
首先启动Proteus软件并建立一工程,然后根据原理图调出相应的元件,再根据要求改变各元件的属性并把各个元件按原理图连接起来。在原理图绘制连接好后再把编译好的程序加载到AT89C52单片机中。最后再根据系统要实现的功能分布进行仿真。
把温度传感器DS18B20温度设置为27.6摄氏度,用按键S2调节预设的温度为23摄氏度。点击开始按钮,系统开始仿真,待一段时间稳定后,观察到此时风扇直流电机的转速为+14.3 r/s,如图4-4所示。
图4-4 仿真效果图一
22