目前共有45篇帖子。
【单片机程序】AVRMega8制作的简易示波器(只能检测高低电平)
11樓 巨大八爪鱼 2014-9-30 23:30
以下就是我获得的我的遥控器发射的电平,我做了一点修改而已
12樓 巨大八爪鱼 2014-9-30 23:34
以下为根据bin文件生成波形图的php程序代码:
【portcheck.php】
<?php
/* 根据EEPROM内容生成I/O口波形图像
 * 作者:巨大八爪鱼
 * 时间:2013年9月30日15:08:06
**/
define("US_PER_PX",50); //每像素表示多少微秒
define("FILENAME","错误的红外发射.bin");
header("Content-type:image/png");

function BIT($n)
{
    return 1<<$n;
}

$file=fopen(FILENAME,"rb"); # 打开文件
$time=fread($file,480); # 持续时间
$port_states=fread($file,30); # 高低电平标识
fread($file,1); # 该位始终是0x3d,跳过
$length=ord(fread($file,1)); # 长度

# 计算图片宽度
$width=0;
for ($i=0;$i<$length;$i++)
{
    $t=ord($time[$i*2])*256+ord($time[$i*2+1]);
    $width+=$t;
}
$width=ceil($width/US_PER_PX);

$im=imagecreatetruecolor($width,64);
$back_color=imagecolorallocate($im,251,252,205);
imagefill($im,10,5,$back_color); # 背景颜色

$color=imagecolorallocate($im,0,64,0);
$x=$y=0;
for ($i=0;$i<$length;$i++)
{
    $lasty=$y;
    $y=10;
    if (ord($port_states[(int)floor($i/8)])&BIT($i%8))
        $y=50; # 如果该位是高电平
       
    # 电平发生跳变时加竖线
    if ($y!=$lasty && $i>0)
        imageline($im,$x,11,$x,49,$color);
   
    # 从第二个电平开始更换颜色
    if ($i==1)
        $color=imagecolorallocate($im,0,0,128);
       
    $t=ord($time[$i*2])*256+ord($time[$i*2+1]);
    $t/=US_PER_PX;
    imageline($im,$x,$y,$x+$t,$y,$color); # 绘制水平线
    $x+=$t;
}

fclose($file);

imagepng($im);
imagedestroy($im);
?>
13樓 巨大八爪鱼 2014-9-30 23:34
1.EEPROM倒数第二位在该版本程序中恒为0x3d,这是版本识别码,将来的版本会改变这个识别码
2.把“18b20单总线信号.bin”烧写回EEPROM,然后打开单片机,就会发现第142、143、144等多个连续的id号是相同的。通常如果电平变化得太快,小于1us,那么就会出现这种情况。所以程序中port_states数组还是很有必要设置的。
3.默认在php绘图的时候每像素表示100us,如果绘出的图形太密,比如像“18b20单总线信号_100ms.png”那样,那么请减小US_PER_PX常量的值,比如设为1us,出来的效果就是“18b20单总线信号_1ms.png”
14樓 巨大八爪鱼 2014-9-30 23:38
回复:12楼
简单说一下这个php程序的使用方法,在自己的电脑上安装php开发环境(相关资料见php吧),然后把这个php文件放进去
然后用ISP线连接电路板和电脑,打开AVR Fighter,读取EEPROM并保存为bin文件,把这个bin文件放入php文件所在的文件夹,把这个bin文件命名为“错误的红外发射.bin”,当然文件名可以随便取,别忘了改相应的php程序的第7行的那个FILENAME常量的值。
用浏览器访问这个php页面,就可以得到电平图像了。
15樓 巨大八爪鱼 2014-9-30 23:40
以下为我通过这个工具得到的一些波形图:
18b20单总线信号_1ms

16樓 巨大八爪鱼 2014-9-30 23:41

回复:15楼

这个图像太宽了,没法直接看,请右键另存到本地再看
17樓 巨大八爪鱼 2014-9-30 23:42
18b20单总线信号_5ms:
18樓 巨大八爪鱼 2014-9-30 23:42
18b20单总线信号_100ms:
19樓 巨大八爪鱼 2014-9-30 23:42
某51单片机程序P0某口的波形2:
20樓 巨大八爪鱼 2014-9-30 23:47
以下就是一个典型的遥控器发射的波形:

可以用画图软件量出来,引导码是9ms高电平4.5ms低电平,然后一堆用户码和键码,最后用引导码和短码表示重复按键

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
 
 
©2010-2024 Arslanbar [手機版] [桌面版]
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。