输出方波(10分)

  • 主题发起人 主题发起人 wendy8657
  • 开始时间 开始时间
W

wendy8657

Unregistered / Unconfirmed
GUEST, unregistred user!
请教在delphi下调用API函数通过串口输出波形,用的是<br>var lrc:Longword;<br> &nbsp; &nbsp;i:integer;<br> &nbsp; &nbsp;fdata:array[1..4]of byte;<br>begin<br> &nbsp;if(hcomm=0)then exit;<br> &nbsp;fdata[1]:=0;<br> &nbsp;fdata[1]:=1;<br> &nbsp;fdata[1]:=0;<br> &nbsp;fdata[1]:=1;<br> &nbsp;writefile(hcomm,fdata,length(fdata),lrc,nil);<br>end;但出来的却是三角波,如何才能整形成方波啊?
 
各位,能不能直接调用8253芯片的方法来产生方波呀,可是delphi下如何对8253芯片进行操作呢??
 
fdata[1]:=0;<br> &nbsp;fdata[1]:=1;<br> &nbsp;fdata[1]:=0;<br> &nbsp;fdata[1]:=1;<br>都是[1]?
 
刚刚在网上看到,除了010101可以表示方波,<br>1_-_-_-_-_-_-_-<br><br>上面这个图形就可以表示方波,把它存成文本文件就可以了。<br>2<br>101010101010101010101010<br>这也是个方波,把它存成二进制也好,文本也好,也可以啊。<br>3<br>f(x) = a[x] mod 2<br>这也可以表示方波,仅存 a 和 2 两个数字就可以表示整个方波了,还是从负无穷到正无穷任何时刻都表示出来了呢。<br>第三种方法该如何表示呢???有人知道么
 
我认为com口只能模拟到近似方波吧,你不能输出0101010,要输出:0000111100001111<br><br>调节适当的波特率,应该是越高越好,然后放一个定时器Ttimer,定时器的毫秒数就是方波周期的一半(因为一半0 一半1),然后就反复输出0 和1 了。
 
哦,好的,谢谢,我试一下哈,<br>应该是并口输出方波比较准确,但是我没有做过,下了一个并口调试工具,好像就不用自己编程,就能产生方波,但不知道该如何连线?
 
我刚刚试过了,还是和以前一样,只能得到类似于锯齿波的波,可能com口真的得不到准确得方波了
 
可不可以通过外接一个8253芯片,然后通过com口来控制它发生方波呀?<br>还是可以控制计算机主机里面自带的8253芯片呢?有没有人做过这方面的东西呀?
 
如果我用串口,把9脚置高电平,setcommmask(handle,ev_ring);是不是就直接把9脚和地线接到示波器上就可以了,不用2脚和3脚了?请教高手指点
 
楼主: pc输出方波的问题, 我在这个论坛上有一些回复了, 加起来基本如下:<br>1. 比较好用的是并口(打印口);<br>2. 网上有个比较好的端口直接访问库winio, 很好用, Delphi可以调用;<br>3. 延时一般使用QueryPerformanceFrequency(..); &nbsp;QueryPerformanceCounter(..);两个函数;<br>-------------------------------------------------------------------<br>附加说明: 学会用PC控制硬件是个很有意思的事情, 但建议写这些程序之前要多对PC自身的接口, 以及其他数字电器多多了解, 同时对编程工具也要有比较深入的了解才行;<br>例如: 函数怎么调用? 如何连线之类的问题就不要在这里问了...
 
好的,谢谢,请问新世纪同志有qq号么,能不能加你,向你请教呀?winio我下了,可是要怎么安装呀,我在网上没有找到,有没有相关的资料可以借鉴一下呀?谢了
 
想必应该已经解决了,我外行,顺便多嘴两句。<br><br>输出COM口,COM口是位数据,所以要保持高电平,应该是FF而不是1吧。
 
没有解决呀,还有什么好的建议请提醒哈^_^
 
我试过还是不行,不认的
 
多人接受答案了。
 
后退
顶部