基于单片机的多路数据采集系统设计
4 软件部分
4.1 简介KeilUvision2
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(UVISION)将这些组合在一起。
Keil有以下几个特点: 1)全功能的源代码编辑器; 2)器件库用来配置开发工具设置;
3)项目管理器用来创建和维护用户的项目;
4)集成的MAKE工具可以汇编、编译和连接用户嵌入式应用; 5)所有开发工具的设置都是对话框形式的; 6)真正源代码级的对CPU和外围器件的调试器;
7)高级GDI(AGDI)接口用来在目标硬件上进行软件调试以及和Monitor-51进行通信。
其使用的过程为:
首先打开KeilUvision2,在KEIL系统中,每做个独立的程序,都视为工程。首先从菜单中的工程中“新建工程”,建立我们将要做的工程项目。
接下来Keil环境要求我们为12工程选择一个单片机型号;我们选择Ateml公司的89C51(虽然我使用的是AT89S52,但由于89S51与89C51内外部的结构完全一样,所以这里仍然用“89C51”)。“确定”后工程就算建立好了。
立了工程项目以后现在就要为工程添加程序,点击“文件”中的新建,新建一个空白文档;这个空白文档就是我们编写单片机程序的场所。在这里可以进行编辑、修改等操作。根据题意,在文档中写入代码,写完后再检查一下,然后保存,然后再将保存好的文档添加到工程中。
程序文件添加完毕后,对其进行编译当前程序、编译修改过的文件并生成应用程序、重新编译所有文件并生成应用程序后,再点击TARGET,再点击图案上的Output键。
接下来就是点击图中的select folder for objects键,得到的图将其产生的HEX文件存储在E盘zh文件夹中。
最后一步就是利用STC-ISP将HEX文件烧录到单片机里。
16
基于单片机的多路数据采集系统设计
4.2 主机程序设计
本软件系统有一个主程序,五个子程序,五个子程序分别为向串口发送数据子程序putc_to_serialport()、键盘扫描子程序Keys_Scan()、LED数据显示子程序Display_Result(int d)、延时子程序Delay()、主机串口接受中断子程序Serial_INT() interrupt 4。
(1)主程序:
主程序对系统进行初始化,主要是进行定时/计数的初始化,然后调用键盘扫描程序Keys_Scan(),再根据按下的键来调用向串口发送数据子程序putc_to_serialport()将相应的数据发送给串行口。当没有键按下时,则送一个数F给LED显示器。其主程序流程图如图4-1所示。
开始 初始化 启动定时器1 开中断 判断是否有 按键按下 再根据扫描到的键盘号, 发送相应的数据给串口。
图4-1 主程序流程图
17
基于单片机的多路数据采集系统设计
(2)向串口发送数据子程序putc_to_serialport():
该程序首先将数据发送到串行口,当T1=0时,表明传送结束。向串口发送数据子程序流程图如图4-2所示。
(3)键盘扫描子程序Keys_Scan():
该程序是先将行选好,然后再选定列就可以确定到具体的哪一个按键。键盘扫
图4-2 向串口发送数据子程序流程图
描子程序流程图如图4-3所示。
(4)LED显示程序Display_Result(int d):
该子程序用的数码管动态显示方式。先将单片机的P2.7口选通进行位选,然后将位选的值发送给单片机P1口。接着将单片机的P2.6口选通进行段选,然后将要显示的数字的值发送给P0口。然后调用延时,接着将P2.7、P2.6口置0,下面是重复上面的过程,直到要显示的数字全部显示在数码上。LED显示程序流程图如图4-4所示。
(5)主机串口接受中断子程序Serial_INT()interrupt 4:
当RI =1时,接受串口过来的数据,并对该数据进行X*05H/0FFH的处理,接
18
基于单片机的多路数据采集系统设计
下来用处理过的数据调用LED显示程序Display_Result(int d)。主机串口接受中断子程序流程图如图4-5所示。
图4-3 键盘扫描子程序流程图
19
基于单片机的多路数据采集系统设计
图4-4 LED显示程序流程图
图4-5 主机串口接受中断子程序流程图
20
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库基于单片机的多路数据采集系统设计(5)在线全文阅读。
相关推荐: