某某学毕业设计(论文)
第5章 系统软件设计
5.1 单片机C语言特点
系统软件设计是该设计的核心,也是设计的重点和难点部分。控制系统软件设计 的好坏直接影响到该控制系统的控制功能,因此,要想做好本设计,一个好的系统 软件是关键。
C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能丰富的库函数、运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对系统硬件的控制。C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C语言进行程序设计已成为软件开发的一个主流。用C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。所以作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好能够掌握基本的C语言编程。使用C 语言肯定要使用到C 编译器,以便把写好的C 程序编译为机器码,这样单片机才能执行编写好的程序。
本设计中采用C语言编写AT89C51单片机程序,该控制系统的程序主要分为主程序和各种中断子程序。主程序完成系统的地址分配、系统初始化;各子程序完成相应的各功能。
图5-1 程序结构图
李四:基于单片机的流量检测系统的设计
5.2 主程序及流程图
部分代码: main() {
EA = 1; EX0 = 1; While(1) {
AD_val(); LED_display(); alarm(); } }
开始初始化赋值数据采集 N与AD转换流量值显示读取数据与设定值比较,是否超出范围Y调用报警系统返回
图5-2 主程序流程图
//开总中断 //开外部中断0 //信号采集,A/D转换 //数码管显示 //上下限报警
某某学毕业设计(论文)
5.3 A/D转换程序及流程图
开始ADC0809初始化读取采集数据启动A/D转换延时复位数据处理与储存返回
图5-3 A/D转换程序流程图
void AD_val() {
uchar i,temp=0; cs=1; //初始化,启动 sclk=0; cs=0; _nop_();
for(i=0;i<8;i++) //读取采集数据,读取的是上一次采集数据 {
sclk=1;
temp=temp<<1;
if(Dataout) temp |=0x01; sclk=0; }
cs=1; AD=temp;
for(i=0;i<5;i++) //延时17us以上,进行复位 _nop_();
Int_result=AD*100/256; //处理整数 num=Int_result; }
李四:基于单片机的流量检测系统的设计
5.4 显示程序及流程图
开始原始数据转换查表获得字码型驱动对应数码显示返回
图5-4 显示程序流程图
部分代码:
void LED_display(uint num)
{ uchar qian,bai,shi,ge;
qian=num/1000; //千,百,十,个处理 bai=num/100; shi=num/10; ge=num;
某某学毕业设计(论文)
5.5 报警程序及流程图
开始判断所读流量是否超出下限NY判断所读流量是否超出上限Ybeep=-beep报警Nbeep=1返回
图5-5 报警程序流程图
Void alarm() //报警程序 {
if(setValue_low<=num&&setValue_high>=num) beep=1; //在温度允许范围内,不报警 else
beep=-beep; }