导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→CPLD与计算机双工通信,求此方案源代码[ceooo]

 *第39898篇: CPLD与计算机双工通信,求此方案源代码

  
楼 主:ceooo 2006年5月5日22:00
 CPLD与计算机双工通信,求此方案源代码
CPLD与计算机双工通信

一、 目的
1. 掌握cpld全双工异步通信接口设计
2. 掌握计算机异步通信接口设计
二、 仪器
1. Pc机一台
2. Max+plusii cpld开发系统一套
3. Cplddn—3 型下载软件一套
4. Cpldee—3 型实验开发系统一套
三、 要求
1. 用硬件描述语言设计全双工的异步串行口。
2. 用计算机进行异步通信的程序设计。
四、 内容及步骤
1. 硬件电路设计
2. 利用ahdl (或者vhdl)语言进行全双工异步通信口设计,具体内容如下:
(1) cpld利用接收接口电路接收计算机发来的地址(或数据),进行译码并显示,
(2) cpld将接收到的地址与本机地址相比较如果相符,则将输入端口的8位数据通过发送端口送给计算机。
(3) cpld全双工通信的ahdl 程序已经写好了。
(4) 管脚分配、编译、下载。(注:本实验适用2、4型实验箱)
3. 计算机软件设计
(1) 该通信软件采用Visual Basic6.0 设计,其中“发送指令”—TEXT1,“瞬时数据”—TEXT2,“接收次数”—TEXT3,“接收时间”—TEXT4,“波特率”—TEXT5 。
(2) 界面设计样图如下:
 在附件中,请查看.

(4)软件参考程序如下:
Private Sub com1_Click()

mscomm1.CommPort = 1
form1.com1.Checked = True
form1.com2.Checked = False

End Sub

Private Sub com2_Click()

mscomm1.CommPort = 2
form1.com2.Checked = True
form1.com1.Checked = False

End Sub

Private Sub command1_click()

Text3.Text = 0
Text4.Text = 0
Dim mms(0) As Byte
mms(0) = Val(Text1.Text)
Dim buffer As Variant
Dim arr() As Byte
'设定并打开端口
If mscomm1.portopen = True Then
mscomm1.portopen = True
End If
mscomm1.output = mms
Do
DoEvents
Loop Until mscomm1.outbuffercount = 0
For Y = 0 To 11
For X = 0 To 26
If i = 252 Then
i = 0
Else
i = i + 1
End If
'设定inputmode读去二进制数据
mscomm1.inputmode = cominputmodebinary

'等待直到输入缓冲去有10个字节
Do Until mscomm1.inbuffercount >  = 255
If mscomm1.inbuffercount   <>   0 Then
timer1.Enabled = True
End If
  DoEvents
  Loop
'往缓冲区存二进制数据
buffer = mscomm1.input
'赋值于字节数组以便处理
arr = buffer
Text2.Text = arr(i)
Text3.Text = Text3.Text + 255
For t = 0 To 254
If arr(t)   < 128 Then
mt = 8 * (255 - arr(t))
Else
mt = 8 * arr(t)
End If
Picture1.PSet ((t * 2 + 254 * 2 * X + 100), (mt + Y * 800 - 1000)), QBColor(Y Mod 6 + 9)
Next
Next
Next
mscomm1.portopen = False
timer1.Enabled = False
MsgBox "ok"

End Sub

Private Sub command2_click()

Picture1.Cls

End Sub

Private Sub form_load()

Text1.Text = "&h33"
Text4.Text = 0
Text5.Text = 0
form1.com1.Checked = False
form1.com2.Checked = False

End Sub

Private Sub timer1_timer()

Text4.Text = Text4.Text + 0.1
Text5.Text = (Text3.Text * 10 / 8) / (Text4.Text)

End Sub

五、 要求
利用vhdl语言设计cpld全双工通信程序。


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:提问

[下一篇主题]:程序编好了,不能硬件调试啊?怎么办?