课 程 设 计 报 告
学生姓名院级目
: 学 : 班
: 题
:
学 号: 自动化工程学院
计算机控制系统
指导教师:冯玉昌 张利辉 职称: 讲师 副教授
2014年6月12日
- 1 -
目录
1 题目背景与意义 ...................................................................................................................... - 3 - 2 设计题目介绍 .......................................................................................................................... - 3 -
2.1设计题目及要求 ........................................................................................................... - 3 - 2.2系统设计总体框图 ....................................................................................................... - 3 - 4 系统硬件设计 .......................................................................................................................... - 4 -
4.1单片机选型及依据 ....................................................................................................... - 4 -
4.1.1 单片机最小系统电路 ...................................................................................... - 4 - 4.1.2 单片机I/O口介绍 .......................................................................................... - 4 - 4.2 A/D转换芯片选择及依据 ........................................................................................... - 4 -
4.2.1 AD转换电路 ..................................................................................................... - 5 - 4.2.2 ADC0832芯片介绍 ........................................................................................... - 5 - 4.3 DA转换芯片选择及依据 ............................................................................................. - 5 -
4.3.1 DA转换电路 ..................................................................................................... - 6 - 4.3显示元件选择及依据 ................................................................................................... - 6 -
4.3.1 显示部分电路 .................................................................................................. - 6 - 4.3.2 LCD1602功能介绍 ........................................................................................... - 7 - 4.4稳压电路 ....................................................................................................................... - 7 - 4.5报警电路 ....................................................................................................................... - 7 - 4.6 按键电路 ...................................................................................................................... - 8 - 4.7上位机通信电路 ........................................................................................................... - 8 -
4.7.1 Max232介绍 ..................................................................................................... - 8 - 4.7.2 COMPIM引脚介绍 ............................................................................................. - 9 -
5 系统软件设计 .......................................................................................................................... - 9 -
5.1 报警程序框图 .............................................................................................................. - 9 - 5.2 LCD显示程序 ............................................................................................................. - 11 - 5.3主程序框图 ................................................................................................................. - 12 - 6 结论 ....................................................................................................................................... - 13 - 参考文献.................................................................................................................................... - 13 - 附录 ........................................................................................................................................... - 15 -
总体电路图 ........................................................................................................................ - 15 - 部分程序 ............................................................................................................................ - 16 -
- 2 -
1 题目背景与意义
在工业生产过程控制中,有许多模拟量参数需要测量,如温度、压力、流量等,然而处理器只能接收数字量信号,所以AD转换尤为重要,处理器接收到数字信号处理后需要送到执行机构,因此DA转换也十分重要,由此可见AD/DA转换广泛应用于各种控制场合。
本课程设计以《计算机控制系统》课程理论为基础,以其他电子类、计算机及接口类相关课程内容为辅助,在实践中锻炼学生的系统设计能力、理论应用能力、总结归纳能力以及自我学习能力,提高其实践能力、创新意识与创新精神。
2 设计题目介绍
2.1设计题目及要求
设计一个基于单片机的具有A/D和D/A功能的信号测控装置。要求该信号测控装置能够接入典型传感器、变送器信号,同时可输出标准电压/电流信号。并满足抗干扰、通用性、安全性、性价比等原则性要求。
充分理解题目要求,确定方案;合理选择器件型号;用1号图纸1张或者采用Proteus软件画出电原理图;用1号图纸1张画出软件结构框图;写出设计报告,对课程设计成品的功能进行介绍及主要部分进行分析与说明;每天写出工作日记。可将系统扩展为多路。可在此系统中扩展键盘、显示(LCD/LED)、与上位机通讯功能;完成以上基本设计部分之后,可以运用Proteus仿真软件对设计结果进行相应的编程和仿真,调试测控系统并观察其运行结果(可以分部分完成)。
2.2系统设计总体框图
模拟量输入
AD转换 按键 DA转换 模拟量输出
C51 声光报警 稳压电路 LCD
图1 系统总体框图
- 3 -
本设计系统框图如上图所示,本设计以51单片机为核心,传感器检测到的模拟量信号送到AD转换器,AD转换器将模拟信号转换为数字信号送入单片机,单片机将数字信号与设定值比较,通LCD显示结果,声光报警判断是否正常工作数模转换输出模拟量进行控制。由按键选择AD转换所需要的通道。稳压电路提供电源电压。
4 系统硬件设计
4.1单片机选型及依据
本设计单片机采用ATC51单片机。ATC51单片机有4k字节Flash闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。此单片机灵活性好,性价比好,是常用的控制芯片。 4.1.1 单片机最小系统电路
图2 最小系统电路图
4.1.2 单片机I/O口介绍
P0口有三个功能:数据总线、地址总线、一般I/O口使用,但内部没有上拉电阻,作为输入或输出时应在外部接上拉电阻。
P1口只做I/O口使用,其内部有上拉电阻。
P2口有两个功能:作地址总线使用、一般I/O口使用。 P3口有特殊功能,也可作为一般I/O口使用。
4.2 A/D转换芯片选择及依据
AD转换芯片采用ADC0832。ADC0832为8位分辨率A/D转换芯片,其最高分
- 4 -
辨可达256级,可以适应一般的模拟量转换要求。芯片的模拟电压输入在0~5V之间。转换速度快且稳定性能强。的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。由于它体积小,兼容性好,性价比高,且转换精度可以满足要求,I/O资源占用较少,所以在本设计中采用此芯片。 4.2.1 AD转换电路
图3 AD转换电路图
4.2.2 ADC0832芯片介绍
CS片选使能,低电平芯片使能。CH0模拟输入通道0,或作为IN+/-使用。 CH1模拟输入通道1,或作为IN+/-使用。GND芯片参考0电位(地)。DI 数据信号输入,选择通道控制。DO 数据信号输出,转换数据输出。CLK 芯片时钟输入。VCC/REF电源输入及参考电压输入(复用)。
在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能。到第3个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据,直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。从第11个字节的下沉输出DATA0。随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。
作为单通道模拟信号输入时ADC0832的输入电压是0~5V且8位分辨率时的电压精度为19.53mV。
4.3 DA转换芯片选择及依据
DA转换芯片采用DAC0809,由于仿真软件中没有此芯片模型,仿真中用DAC0808代替。DAC0809是8分辨率的D/A转换集成芯片。与微处理器完全兼容。
- 5 -
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位D/A转换电路及转换控制电路构成。此芯片可以满足精度要求,且价格便宜,控制简单,所以本设计中采用此芯片。 4.3.1 DA转换电路
图4 DA转换电路图
4.3显示元件选择及依据
显示部分采用LCD1602。LCD1602是一种专门用来显示字母、数字、符号等的点阵型液晶模块。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块。考虑到本设计中有通道选择功能,显示部分应该设计有提示信息,所以放弃使用数码管,且LCD1062子程序网上有很多,可以直接调用查询、写数据、写指令等程序,应用方便。 4.3.1 显示部分电路
图5 显示电路
- 6 -
4.3.2 LCD1602功能介绍
4脚RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5脚RW为读写信号线,高电平1时进行读操作,低电平0时进行写操作。6脚E(或EN)端为使能(enable)端,高电平1时读取信息,负跳变时执行指令。
4.4稳压电路
为了使单片机能和芯片更稳定的工作,必须保证有一个稳定的电压输入。所以接入一个+5V稳压电源。7805为典型三端IC稳压集成电路,在输入端接入8V电压时,输出为+5V稳压。
图6 稳压电路
4.5报警电路
报警电路设计简单,通过控制P1.7口电平变化控制喇叭,当超出上下限时,发出声音报警。
图 7 报警电路
- 7 -
4.6 按键电路
由于本设计选择的AD转换芯片有两个通道,所以考虑设计按键实现通道的选择以及上下的修改。
图 8 按键电路
4.7上位机通信电路
为了能够完成和上位机之间的通信,必须通过max232这种类似的芯片进行电平转换,因为单片机和上位机之间的电平标准不相同。
图9 上位机通讯电路
4.7.1 Max232介绍
Max232MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。
第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数
- 8 -
据通道。13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从11引脚(T1IN)、10引脚(T2IN)输入转换成RS-232数据从14脚(T1OUT)、7脚(T2OUT)送到电脑DB9插头;DB9插头的RS-232数据从13引脚(R1IN)、8引脚(R2IN)输入转换成TTL/CMOS数据后从12引脚(R1OUT)、9引脚(R2OUT)输出。 4.7.2 COMPIM引脚介绍
COMPIM是常用于上位机连接的串口,其引脚定义如下:1 数据载波检测、2接收数据、3 发送数据、4 数据终端准备、5 信号地、6 数据设备准备好、7 请求发送、8 清除发送、9 振铃指示。
5 系统软件设计
5.1 报警程序框图
开始 读取AD转换结果 Y 超上限? N Y 低下限? N 报警 下一次AD转换
图 10报警子程序框图
- 9 -
- 10 -
5.2 LCD显示程序
开始 LCD初始化 设定显示位置 Y 忙碌? 等待 N 显示第一行数据 忙碌? Y 等待 N 显示第二行数据
- 11 -
图11 LCD显示子程序
5.3主程序框图
开始 设置初始值及初始化 启动AD转换 LCD1602显示 启动DA转换 N 超限值? Y 报警
图12 主程序框图
- 12 -
6 结论
通过实验证明,本设计电路可以满足于测量的要求,转换精度高,且系统操作方便,能在广泛的领域运用并取得了良好的效果。
通过此次课程设计,我加深了对控制系统理解,将所学的知识灵活穿插并运用起来。发现问题和解决问题的能力有了提高!更好的掌握单片机的内部功能模块的应用以及A/D和D/A功能的实现。通过这次课程设计,督促了我上网查资料,查书籍,巩固了以前的知识,了解和掌握了单片机应用系统的软硬件设计过程、方法及实现,锻炼了我的实践能力,对知识的理解能力。
参考文献
[1] 姜学军. 计算机控制技术. 清华大学出版社, 2006
[2] 张毅刚, 彭喜元, 彭宇. 单片机原理及应用. 高等教育出版社. 2012
[3] 郝晓松, 彭天好, 刘佳东等. 基于单片机的变转速液压测控系统的研究. 矿山机械, 2010,(6): 22-26
[4] 冯显英, 葛荣雨. 基于数字温湿度传感器SHT11的温湿度测控系统. 自动化仪表, 2006, 27(1): 59-61
- 13 -
- 14 -
附录
总体电路图
图13 总电路图
- 15 -
部分程序
#include #define uchar unsigned char #define uint unsigned int #define delay4us() {_nop_(); _nop_(); _nop_(); _nop_(); } //AD0832引脚定义 sbit CS=P1^0; sbit CLK=P1^1; sbit DI=P1^2; sbit DO=P1^6; sbit P1_7=P1^7; //LCD1602 sbit RS=P1^5; sbit RW=P1^4; sbit E =P1^3; //// sbit key1=P3^5; sbit key2=P3^6; /// sbit K1=P3^4; sbit K2=P3^2; sbit k3=P3^7; uchar i; int d,ad,m; int a,b,shangxian, xiaxian; a=45; b=220; uchar Display_Buffer[]=\"0.00v\"; uchar Display_Chanel[]=\"0 or 1\"; uchar code Line1[]=\"Teng Hao:\"; uchar code select[]=\"xuanze tongdao\"; void DelayMS(uint ms) { uchar t; while(ms--) for(t=0;t<120;t++); } bit LCD_Busy_Check() { bit result; RS=0;RW=1;E=1;delay4us(); result=(bit)(P0&0x80); - 16 - E=0; return result; } void LCD_Write_Command(uchar cmd) { while(LCD_Busy_Check());//判断LCD是否忙碌 RS=0;RW=0;E=0; _nop_(); _nop_(); P0=cmd;delay4us(); E=1;delay4us();E=0; } //----------------------------------------写LCD命令 //----------------------------------------设置LCD显示位置 void Set_Disp_Pos(uchar pos) { LCD_Write_Command(pos|0x80); } void LCD_Write_Data(uchar dat) { while(LCD_Busy_Check()); RS=1;RW=0;E=0; P0=dat;delay4us(); E=1;delay4us();E=0; } void LCD_Initialise() { LCD_Write_Command(0x38);DelayMS(1); LCD_Write_Command(0x0c);DelayMS(1); LCD_Write_Command(0x06);DelayMS(1); LCD_Write_Command(0x01);DelayMS(1); } uchar Get_AD_Result_0() { uchar i,dat1=0,dat2=0; //起始控制位 CS=0;CLK=0; DI=1; _nop_();_nop_();_nop_();_nop_(); CLK=1; _nop_();_nop_();_nop_();_nop_(); // 第一个下降沿之前,DI=1模式中的单端输入方式 CLK=0; DI=1; _nop_();_nop_();_nop_();_nop_(); CLK=1; _nop_();_nop_();_nop_();_nop_(); //第二个下降沿之前,设DI=0/1,选择CH0/CH1 CLK=0; DI=0; _nop_();_nop_();_nop_();_nop_(); //DIO=CH - 17 - CLK=1; _nop_();_nop_();_nop_();_nop_(); //第三个下降沿之前,设DI=1 CLK=0; DI=1; _nop_();_nop_();_nop_();_nop_(); //第4-11,共八个下降沿读数据(MSB->LSB) for(i=0;i<8;i++) { CLK=1; _nop_();_nop_(); CLK=0; _nop_();_nop_(); dat1=(dat1<<1)|DO; } //第11-18,共8个下降沿读数据(LSB->MSB for(i=0;i<8;i++) { dat2=dat2|((uchar)(DO)<uchar Get_AD_Result_1() { uchar i,dat1=0,dat2=0; //起始控制位 CS=0;CLK=0; DI=1; _nop_();_nop_();_nop_();_nop_(); CLK=1; _nop_();_nop_(); _nop_();_nop_(); // 第一个下降沿之前,设DI=1/0 //选择单端/差分(SGL/DIF)模式中的单端输入方式 CLK=0; DI=1; _nop_();_nop_(); _nop_();_nop_(); CLK=1; _nop_();_nop_(); _nop_();_nop_(); //第二个下降沿之前,设DI=0/1,选择CH0/CH1 CLK=0; DI=1; _nop_();_nop_();_nop_();_nop_(); CLK=1; _nop_();_nop_();_nop_();_nop_(); //第三个下降沿之前,设DI=1 CLK=0; DI=1; _nop_();_nop_();_nop_();_nop_(); //第4-11,共八个下降沿读数据(MSB->LSB) for(i=0;i<8;i++) { CLK=1; _nop_();_nop_(); CLK=0; _nop_();_nop_(); dat1=(dat1<<1)|DO; } - 18 - //DIO=CH //第11-18,共8个下降沿读数据(LSB->MSB? for(i=0;i<8;i++) { dat2=dat2|((uchar)(DO)<//如果MSB->LSB 和LSB->MSB读取结果相同,则返回读取的结果,否则返回0} //----------------------------------------获取AD转换结果(0通道) void AD0832_0() { ad=Get_AD_Result_0(); d=ad*500.0/255; Display_Buffer[0]=d/100+'0'; Display_Buffer[2]=d/10%10+'0'; Display_Buffer[3]=d%10+'0'; } void AD0832_1() { ad=Get_AD_Result_1(); d=ad*500.0/255; Display_Buffer[0]=d/100+'0'; Display_Buffer[2]=d/10%10+'0'; Display_Buffer[3]=d%10+'0'; } void LCD1602() { Set_Disp_Pos(0x01); i=0; while(Line1[i]!='\\0') LCD_Write_Data(Line1[i++]); Set_Disp_Pos(0x46); i=0; while(Display_Buffer[i]!='\\0') LCD_Write_Data(Display_Buffer[i++]); } void DA0808_0() { P2=ad; } - 19 - void DA0808_1() { P2=ad; } void Say_hello() { Set_Disp_Pos(0x01); i=0; while(select[i]!='\\0') LCD_Write_Data(select[i++]); Set_Disp_Pos(0x46); i=0; while(Display_Chanel[i]!='\\0') LCD_Write_Data(Display_Chanel[i++]); } void Chanel_0() { LCD_Write_Command(0x01); AD0832_0(); LCD1602(); DA0808_0(); } void Chanel_1() { LCD_Write_Command(0x01); AD0832_1(); LCD1602(); DA0808_1(); } void key_ru() {if(k3==1) if(INT1==0) if(K1==0) a=a+20; if(K2==0) b=b-20; if(k3==0) if(INT1==0) if(K1==0) a=a-20; if(K2==0) b=b+20; - 20 - } void Baojing() { int m; int shangxian,xiaxian; m=ad; key_ru(); shangxian=m-b; xiaxian=a-m; if(shangxian>0||xiaxian>0) P1_7=1; else P1_7=0; } void Key_Scan() { if(key1==0) { DelayMS(5); if(key1==0) { Chanel_0(); } } if(key2==0) { DelayMS(5); if(key2==0) { Chanel_1(); } } } void main() { key1=1;key2=1; LCD_Initialise(); DelayMS(10); Say_hello(); while(1) { - 21 - } Key_Scan(); Baojing(); } - 22 -
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务