基于单片机的数控恒流源设计软件设计.doc

基于单片机的数控恒流源设计软件设计.doc

ID:56747530

大小:836.50 KB

页数:20页

时间:2020-07-07

基于单片机的数控恒流源设计软件设计.doc_第1页
基于单片机的数控恒流源设计软件设计.doc_第2页
基于单片机的数控恒流源设计软件设计.doc_第3页
基于单片机的数控恒流源设计软件设计.doc_第4页
基于单片机的数控恒流源设计软件设计.doc_第5页
资源描述:

《基于单片机的数控恒流源设计软件设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、3.系统软件设计本系统的软件设计采用C51语言和汇编语言混合编程。主体程序采用C51编写,与硬件有关的程序、特别是对时序要求较严格的程序用汇编语言编写,即键盘扫描子程序、写TLC5618子程序、读MC14433子程序、显示缓冲子程序。因为采用了C51和汇编语言混合编程的方式,故大大提高了本系统软件设计的效率和质量。数控电流源的软件开发在KeilμVision4集成开发环境下完成的。KeilμVision4集成开发环境是基于80C51内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发流程。可以完成从工程建立、管理、编译连接、目标代码的生成、软件仿真、硬件仿真等完整的开发流程。尤

2、其是C语言编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。KeilμVision4的使用方法是:1.启动KeilμVision4集成开发环境,创建一个工程文件,并从器件数据库里选择一款CPU芯片(本课题使用AT89C52芯片);2.根据应用要求,在PC上用文本编辑软件编写C语言源程序、汇编语言源程序;利用编译工具软件对源程序进行编译,生成目标文件(.obj文件);利用连接工具对目标程序进行连接定位,生成绝对程序,将程序转化为十六进制代码程序(.hex文件),急可以装载到CPU芯片上运行。3.1主程序3.1.1主程序流程框图及

3、程序主程序流程框图如图3-1所示。由主程序流程框图可知,其中的“扫描键盘”起到了很重要的作用,扫描键盘函数的返回值作为C51主程序中Switch语句的开关变量,根据不同的返回值进行相应的按键处理,因而主程序流程框图相当简单,并且系统软件整体程序的可读性高。主程序是数控电流源软件设计的核心,主要由电流给定值设置功能函数、电流步进值设置功能函数、菜单选择功能函数、数码管定时刷新功能函数以及中断设置等构成。设置电流给定值程序流程框图如图3-2所示,设置电流步进值程序流程框图如图3-3所示。为完成数控电流源整体系统设计,在C51主程序中适时调用键盘扫描汇编语言子程序、写5618汇编语言子程序

4、、读MC14433汇编语言子程序、显示缓冲汇编语言子程序,从而体现了C51语言程序和汇编语言程序相互调用的方便性。图3-1主程序流程框图#include#defineucharunsignedchar#defineuintunsignedintsbitledbit=P2^0;/*功能指示灯控制位*/ucharidatabuffer[8];/*定义键盘输入缓冲区*/ucharidatakeycode;/*扫描键盘码变量*/ucharidatastepval=1;/*步进值变量*/ucharidatashowflag=0;/*当前显示标志,用以决定当前显示内容*/uin

5、tidatagivecur=0;/*电流输出给定值控制变量*/uintidatatruecur;/*电流实测值变量*/externucharreadkey(void);/*声明扫描键盘函数为外部函数,此函数使用汇编语言编写*/externvoidshowbuffer(uchar*);/*声明缓冲区显示函数为外部函数,入口参数为全局变量数组buffer的首址*/externvoidwrite5618(uint);/*声明写TLC5618为外部函数,入口参数为要写入的16-bit二进制数据,默认为TLC5618的模拟A通道*/externuintread14433(void);/*声明读

6、MC14433为外部函数,无入口参数,出口参数为读出的16-bit二进制数据*//*函数原型:voidde15s(void)*//*功能:信息提示延时显示,按任意键返回*//*调用函数:readkey()*//*入口参数:无*//*出口参数:无*/voidde15s(void){uintm,n;for(m=0;m<=2000;m++){if(readkey()!=0xff)break;/*按任意键跳出循环*/for(n=0;n<=500;n++){}}}setcur()setsetp()/*函数原型:voidmenufun(void)*//*功能:菜单选择功能函数,通过菜单选择功能函

7、数,以进行相应的功能操作*//*调用函数:readkey()*//*入口参数:无*//*出口参数:无*/menufun(){ucharidatan;ucharnumcount=0;showflag=1;ledbit=1;P0=0xfe;ledbit=0;buffer[0]=0x0a;/*初始化8位数码管显示:-灭灭灭灭灭灭灭*/for(n=1;n<8;n++){buffer[n]=0x0d;}while(showflag==0x01){do/*不断扫描键盘

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。