1、 单片机的控制系统课程设计 1 大庆石油学院课程设计任务书 课程 单片机控制系统课程设计 题目 0 3V 电压测量表 专业 自动化 姓名 邹建 学号 060601140625 主要内容: 用现有凌阳系列单片机试 验箱编写一段程序,用以实现测量电压值并且将获得的结果显示在液晶显示器上,并用语音播报出来。 基本要求: 1. 编程要求:主程序利用 C语言编写,中断服务程序利用汇编语言编写。 2. 实现功能:实现一个模拟电压表的功能,要求电压表能够测量电压值,在液晶显示器上显示并播报测量电压值。 3. 实验现象:开机(运行)后,显示一个图片 MM.bmp(它的字模数据 MM.c、 MM.在 IDE的安
2、装径 SPCE061AexampleIntExaex10_VoltageMeasureFrom0To3提供),显示并播放当前 电位器所在位置的电压;变化 R22 电位器,显示并播报 R22 电位器变化后的电压。 参考资料 1. 杜刚 16 位单片机原理及应用 M. 北京 中国电力出版社 2007.9 2 杜刚 /张东霞 16 位单片机原理及应用学习与实验指导 M. 北京 中国电力出版社 2008.12 3 罗亚飞 凌阳 16 位单片机应用基础 M. 北京 北京航空航天大学出版社 2003.12 4 李晓白 凌阳 16 位单片机 C 语言开发 M. 北京 北京航天航空大学出版社2006.7 完成
3、期限 2009.6.29 至 2009.7.3 单片机的控制系统课程设计 2 指导教师 董长义 董宏丽 专业负责人 2009 年 6 月 16 日 单片机的控制系统课程设计 3 目 录 1 系统设计 . 1 1.1 设计要求 . 1 1.1.1 编程要求 . 1 1.1.2 实现功能 . 1 1.1.3 实验现象 . 1 1.2 设计思路 . 1 2 设计环境及基本原理 . 1 2.1 设计装置 . 1 2.2 基本原理 . 1 3 系统硬件设计 . 2 4 单片机软件设计 . 3 4.1A/D 转换 . 3 4.2 串口发送数据 . 4 4.3 程序流程图 . 5 4.4 编写程序步骤 .
4、5 5 总结 . 6 6 参考文献 . 7 7 附录 . 8 单片机的控制系统课程设计 4 单片机的控制系统课程设计 5 单片机的控制系统课程设计 6 第 1 章 系统设计 1.1 设计要求 1.1.1 编程要求 :主程序利用 C语言编写,中断服务程序利用汇编语言编写。 1.1.2 实 现功能 :实现一个模拟电压表的功能,要求电压表能够测量电压值,在液晶显示器上显示并播报测量电压值。 1.1.3 实验现象 :开机(运行)后,显示一个图片 MM.bmp(它的字模数据 MM.c、 MM.h在 IDE的安装径 SPCE061AexampleIntExaex10_VoltageMeasureFrom0
5、To3提供),显示并播放当前电位器所在位置的电压;变化 R22电位器,显示并播报 R22电位器变化后的电压;即只要 R22电位器改变,系统就能自动测量出 R22电位器的电压,并把测量得到的电压值播报并显示出来。( 要求显示和播报电压值的精度为小数点后第四位) 1.2 设计思路 本次设计要求完成基于单片机的电压测量系统的设计。系统包括数据采集A/D转换模块,单片机控制模块和驱动显示模块。 SPLC501为液晶显示模组显示。 单片机的控制系统课程设计 7 第 2章 设计环境及基本原理 2.1 设计装置 1. 装有 Windows系统和 nSP IDE 仿真环境的 PC机一台, nSP 十六位单片机
6、实验箱一个。 2. 本实验用到的实验箱硬件模块为: SPCE061A核心及周边电路模块(包含 32个I/O口), LCD显示模组模块 ,双 0 3.3V直流电平输入电路模块,两路音频输出电路模块。 2.2 基本 工作 原理 本实验中,通过 SPCE061A内部 ADC采集数据,如图 2-1, 实验箱上 V3为 3.3V,当滑动头变化时, IOA0口输入的电压就随着变化;当已经通过 P_ADC_MUX_Ctrl启动转换,通过 P_ADC_MUX_Ctrl设置从 LINE_IN1输入时,因为 LINE_IN1也就是IOA0,所以 IOA0口输入的电压变化时,就会送入 A/D转换器变化的值, A/D
7、转换器采集转换;通过读取 P_ADC_MUX_Data转换得到数 据,并把这些数据计算成电压值,计算出电压值的个位、小数点后第一位、小数点后第二位、小数点后第三位、小数点后第四位,然后把电压值按从个位到小数点后第四位的顺序播报和显示。 图 2-1 0 3.3V直流电平输入电路 单片机的控制系统课程设计 8 第 3 章 系统 硬件 设计 硬件连接图如图 3-1 , IOA8IOA15连接 SPLC501液晶显示模块的 D0D7,IOB4连接 AO, IOB5连接 RWP, IOB6连接 EP, RE连接 /RES, IOB9连接 /CS, VR、C86和 PS跳线都与 V3短接,把 SPLC50
8、1液晶显示模组的时序选择为 6800时序, 即把 JP6中所有左右两排的引针用跳线短接;两路音频输出 J8和 J13中靠左边的两个引针用跳线短接; IOA0连接 R22电位器,即用排线把 J26的第 0号引针和 J17(双03V的直流电 平输入电路其中之一)中任一引针连接起来。 图 3-1 硬件连接图 单片机的控制系统课程设计 9 第 4章 单片机软件设计 软件部分设计要实现 2个功能,一个是 A D转换,另一是 把转换的数据通过串口发送给 PC机。 4.1 A D转换 ADC模块专用的有 4个完整的寄存器: ADC结果高字节寄存器 ADRESH, ADC结果低字节寄存器 ADRESL, 0号
9、 ADC控制寄存器 ADCON0和 1号 ADC 控制寄存器 ADCON1。 个是把转换的数据通过串口发送给 PC机。 ADCON0的格式如下 : 其中 :ADCS1 ADCS0为 A/D转换时钟及其频率选择位; CHS2 CHS0为 A D转换模拟通道选择位; 转换启动控制位兼做状态位; ADON为 A D转换器开关位。 ADCON1的格式如下: 其中: ADFM为 A D转换转换结果格式选择位; PCFG3PCFG0为 A D转换引脚功能选择位。 A D转换流程: 1.如果需要 A D中断功能,开放相应的中断使能位 。 2.等待所需要的采样时间。 3.将启动控制兼状态位置 1,启动 A D
10、转换过程。 4.等待 A D转换完成,可以通过查询或中断的方法来判断。 5.读取 A D转换结果寄存器对 ADRESH: ADRESL,如果需要,对转换中断标志清 4.2 串口发送数据 与串口有关的寄存器除了和中断有关的寄存器外,我们编写程序时主要有 4个:发送状态兼控制寄存器 TXSTA、接收状态兼控制寄存器 RCSTA、发送寄存器TXREG、波特率寄存器 SPBRG。 发送状态兼控制寄存器 TXSTA格式如下: 其中: TX9D为发送数据的第 9位(如果使用 9位数据帧结构); 单片机的控制系统课程设计 10 TRMT为发送移位寄存器“空”标志; BRGH为高波特率选择位(异步方式下使用)
11、; SYNC为 USART同步异步模式选择位; TXEN为发送使能位; TX9为发送数据长度选择位; CSRC为时钟源选择位(异步方式下未用)。 接收状态兼控制寄存器 RCSTA格式如下: 我们只使用了最高位 SPEN(串行口使能端)。 发送寄存器 TXREG: TXREG是一个用户可读写的寄存器,每次用户发送的数据都是通过写入该缓冲器来实现的。 发送流程: 1.选择合适的波特率。 2.置 SYNC 0及 SPEN 1,使 USART工作于异步模式。 3.如果需要中断处理功能,置 TXIE 1。 4.如果要传送 9位数据,置 TX9 1。 5.置 TXEN 1,使 USART工作于发送器方式。 6.如果选择传送第 9位数据,把第 9位数据置入 TX9D。 7.把即将发送的 8位数据送入 TXREG并启动发送。 4.3 程序流程图 主程序流程图如图 4-1,初始化 LCD后,显示开机图片 MM;进入电压测量循环:启动转换,采集 20个转换数据并取平均值,主要是为了减少误差;计算电压值;如果和上次电压值之差小于 0.1V,则电压没 有变化,返回继续采集数据;如果和上次电压值之差大于 0.1 V,表示有电压变化,计算电压各位(包括个位到小数点后四位)的数;清屏,显示图片 MM;播报并显示电压值。