ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:293KB ,
资源ID:10982046      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10982046.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(AD课程设计通信.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

AD课程设计通信.docx

1、AD课程设计通信基于单片机的系统设计题 目 AD转换 学 院 电子信息工程学院学科门类 单片机 班 级 08通信 指导教师 庞姣 小组成员 李俊花 王阳茜 胡 兵 曹 艳 2011年 12月08日一、 实验目的(1)学习基于单片机的系统设计;(2)学习单片机电路设计和制版工艺;(3)学会数据采集电路设计;(4)学会VB编写上位机,实现和单片机通信;(5)学习单片机的软件设计;二、实验要求(1)要求每位同学设计单片机最小系统;(2)每位同学自己设计硬件电路设计和程序编写;(3)每位同学自己完成调试;(4)认真细心的安装焊接。三、使用的主要器材(1)单片机,TLC549及其他元件一套;(2)工具一

2、套;(3)PC机一台;四、TLC549简介4.1引脚排列 /CS:片选 低有效 GND:地 VCC:电源 ANALOG IN:模拟信号输入 DATA OUT :数据串行输出 I/O CLOCK:外接输入输出时钟 REF+:正基准电压输入端, REF+ 大于等于2.5V 小于等于Vcc+0.1V REF-:负基准电压输入端,REF+ 大于等于-0.1V 小于等于2.5V ,切要求REF+- REF-大于等于1V4.2内部结构4.3时序分析 TLC549是SPI三总线器件,其时序见上图,当/CS为高电平时候,AD正在进行内部转换,转换时间大概为17us,当/CS有高电平变为低电平时候,这时候上次的

3、采样转换结果的最高位A7首先出现在DATA OUT端,其余7位将会在7个I/O CLOCK的下降沿时候出现在DATA OUT端,在第4个I/O CLOCK的下降沿启动采样保持电路,开始采样模拟输入量,并在第8个I/O CLOCK的下降沿开始保持,这时候,/CS由低电平变为高电平,在其上升沿开始启动AD转换,这时候/CS需保持17us,保证本次的采样转换完成,然后按上次一样步骤,输出AD转换结果和输入模拟采样。五、上位机5.1上位机简介 上位机软件通过串口,实现单片机和PC机的通信,以简单可视化的窗口,实现对单片机的监控。本次课程设计采用VB编写上位机,VB拥有功能强大的可视化窗口控件和串口控件

4、Microsoft Comm Control 6.0,从而减少了编写上位机的难度。 5.2上位机思路应为本次的课程设计要求,只是在PC机上通过串口显示电压,那么就不需要上位机通过串口发送指令,控制单片机。所以,编写上位机时候,我没有编写发送部分的指令。其次,本次采集的电压,电压范围为0v5v,为充分利用数码管,我采用了一位整数和五位小数,并且在单片机内完成了二进制到BCD码的转换。在编写上位机传送程序时候,我想发送一针就包括小数和整数,这样编写单片机发送程序和上位机接收程序,就会简单,并且发送的是十进制BCD,这样就减少了上位机的运算。下位机思路:因为一针是8为数据,那么最大为255,如果想一

5、针包含两位小数,那么就需要把整数扩大100,第一位小数扩大10倍,然后相加:一针=整数位*100+第一位小数位*10+第二位小数位,因为采集的电压范围为0v5v,这时候就由可能超出255的范围,如果一针包含一位整数和一位小数,那么他的范围为0v50v,这时候不会超出255的范围,所以我发送的一针就包含一位整数和一位小数,即:一针=整数位*10+第一位小数位。采用9600波特率,1位开始为,1位结束位,8位数据位,没有校验位。上位机思路:就收一针存于A,然后和10整除,结果存于B,然后C=A-10*B,那么B就是整数部分,C就是小数部分,显示即可5.3上位机设计界面5.4上位机程序Public

6、style1 As IntegerPublic style As IntegerPrivate Sub Form_Load()If MSComm1.PortOpen = True Then MSComm1.PortOpen = FalseElseEnd If Combo1.AddItem COM1 Combo1.AddItem COM2 Combo1.AddItem COM3 Combo1.AddItem COM4 Combo1.AddItem COM5 Combo1.AddItem COM6 Combo1.AddItem COM7 Combo1.AddItem COM8 Combo1.Add

7、Item COM9 Combo1.AddItem COM10 Combo1.AddItem COM11 Combo1.AddItem COM12 Combo1.ListIndex = 0 MSComm1.CommPort = 3 MSComm1.Settings = 9600,n,8,1 Command2.Caption = 打开串口 Shape1.FillColor = &HFFFFC0 Option2.Value = True Combo2.AddItem 256000 Combo2.AddItem 128000 Combo2.AddItem 115200 Combo2.AddItem 5

8、7600 Combo2.AddItem 38400 Combo2.AddItem 28800 Combo2.AddItem 19200 Combo2.AddItem 9600 Combo2.AddItem 4800 Combo2.AddItem 2400 Combo2.AddItem 1200 Combo2.AddItem 600 Combo2.AddItem 300 Combo3.AddItem 无 None Combo3.AddItem 奇 Odd Combo3.AddItem 偶 Even Combo4.AddItem 4 Combo4.AddItem 5 Combo4.AddItem

9、6 Combo4.AddItem 7 Combo4.AddItem 8 Combo5.AddItem 1 Combo5.AddItem 2 MSComm1.InBufferSize = 24 MSComm1.OutBufferSize = 10 style = 0 style1 = 0End SubPrivate Sub Combo1_Click()If MSComm1.PortOpen = True Then MSComm1.PortOpen = FalseEnd If MSComm1.CommPort = Combo1.ListIndex + 1End SubPrivate Sub Com

10、mand1_Click()Text1.Text = End SubPrivate Sub Command2_Click()On Error GoTo uerrorIf Command2.Caption = 关闭串口 Then MSComm1.PortOpen = False Command2.Caption = 打开串口 Shape1.FillColor = &HFFFFC0Else MSComm1.PortOpen = True Command2.Caption = 关闭串口 Shape1.FillColor = &HFFEnd IfExit Subuerror: msg$ = 无效端口号

11、Title$ = 串口调试助手 X = MsgBox(msg$, 48, Title$)End SubPrivate Sub MSComm1_OnComm() Dim BytReceived() As Byte Static strBuff As String Static strBuff1 As String Static sly As Single Dim i As Integer Select Case MSComm1.CommEvent Case comEventRcOver Text1.Text = Exit Sub Case comEvReceive MSComm1.InputLe

12、n = 1 strBuff = MSComm1.Input Text1.Text = If MSComm1.InputMode = comInputModeBinary Then BytReceived() = strBuff For i = 0 To UBound(BytReceived) If Len(Hex(BytReceived(i) = 1 Then strData = staData & 0 & Hex(BytReceived(i) & Else strData = strData & Hex(BytReceived(i) & End If Next strBuff1 = strD

13、ata sly = CLng(&H & strData) If style = 1 Then If style1 = 0 Then Text1.Text = Str(Format(sly, 0.0) & D Else Text1.Text = Str(Format(sly / 10, 0.0) & V End If Else Text1 = Text1 & strData & H strData = End If Else Text1 = Text1 & strBuff & $ End If End SelectEnd SubPrivate Sub Option1_Click()MSComm1

14、.InputMode = comInputModeBinaryText1.MaxLength = 6style1 = 1style = 1End SubPrivate Sub Option2_Click()MSComm1.InputMode = comInputModeBinaryText1.MaxLength = 3style = 0End SubPrivate Sub Option3_Click()MSComm1.InputMode = comInputModeTextText1.MaxLength = 0End SubPrivate Sub Option4_Click()MSComm1.

15、InputMode = comInputModeBinaryText1.MaxLength = 6style = 1style1 = 0End Sub六、实验步骤6.1设计硬件电路6.1.1数据采集电路设计6.1.2 单片机外围电路设计61.3 LED驱动电路设计6.1.4 串行通讯电路6.1.5 电源电路6.2根据设计电路清点全套零件,并负责保管;6.3对元器件引线或引脚进行镀锡处理,注意镀锡层未氧化(可焊性好)时可以不再处理 ;6.4检查印制板的铜箔线条是否完好,有无断线及短路,特别注意边缘;6.5安装元器件,元器件安装质量及顺序直接影响整机质量及成功率,合理的安装需要思考及经验;6.6软

16、件设计#includereg52.h#includeintrins.h#includemath.h#define uchar unsigned char#define uint unsigned int#define ulint unsigned long intsbit IO=P10;sbit DATA=P11;sbit CS=P12;uchar SMG=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F; /数码管显示译码uchar data_in=0; /接受DATA数值uchar data_pc=0; /串口通信数据存储区uchar da

17、ta_out=0,0,0,0,0,0;void delay() /数码管动态扫描延时,3ms uint j,i; for(i=3;i0;i-) for(j=110;j0;j-);void SM() /动态扫描数码管 uchar m; P2=0; for(m=0;m6;m+) if(m=0) P0=SMGdata_outm|0x80; /小数点 else P0=SMGdata_outm; delay(); P0=0; /数码管消隐 P2+=1; void TLC549() /接受TLC549的采集电压 uchar n,k; CS=1; IO=0; data_in=0; CS=0; _nop_()

18、; data_in=data_in|DATA; _nop_(); _nop_(); for(n=0;n0;k-); IO=0; data_in=data_in0;k-); IO=1; for(k=5;k0;k-); IO=0; CS=1;void BCD() /转换成对应的BCD码 float y; ulint x; y=0.01961*data_in; x=(ulint)(100000*y); data_out0=(uchar)(x/100000); data_out1=(uchar)(x-data_out0*100000)/10000); data_out2=(uchar)(x/1000-

19、data_out0*100-data_out1*10); data_out3=(uchar)(x/100-data_out0*1000-data_out1*100-data_out2*10); data_out4=(uchar)(x/10-data_out0*10000-data_out1*1000-data_out2*100-data_out3*10); data_out5=(uchar)(x-data_out0*100000-data_out1*10000-data_out2*1000-data_out3*100-data_out4*10); data_pc=data_out0*10+da

20、ta_out1;void com(void) interrupt 4 RI=0; EA=0;void main() SCON=0x40; PCON=0x00; TMOD=0x20; TH1=0xfd; TL1=0xfd; EA=1; ES=1; ET1=1; while(1) uchar t,h; TR1=1; for(h=0;h10;h+) SM(); TLC549(); BCD(); EA=1; SBUF=data_pc; for(t=0;t180;t+); 七、实验总结通过这次实验熟练了单片机最小系统,掌握了硬件电路设计和程序编写。认真细心的完成了安装焊接。实验过程中自己完成调试,当时出了点小问题,找了好长时间也没找到,后来在同学的帮助下顺利发现问题,完成了调试。让我了解了设计电路的程序,要设计一个电路总要先用仿真仿真成功之后才实际接线的。但是最后的成品却不一定与仿真时完全一样,因为,再实际接线中有着各种各样的条件制约着。而且,在仿真中无法成功的电路接法,在实际中因为芯片本身的特性而能够成功。所以,在设计时应考虑两者的差异,从中找出最适合的设计方法。通过这次学习,让我对各种电路都有了大概的了解,所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1