日志档案

发表于 2008-5-21 16:02:09

143

标签: END  51  学习板  测试程序  

[原创]END 51学习板测试程序

    彩云送了一套EDN 51的套件给圈圈,叫圈圈赶紧帮忙测试下...圈圈拿到板子后,马不停蹄的安装、写测试程序...经过3、4天的奋斗之后,终于完成了板子上大部分功能的测试。由于52的ROM有限,红外接收头和PS2的就没做测试了,并且这两个功能用的人也较少。

    其中包括串口驱动、LCD1602驱动、键盘驱动、ADC0832驱动、温度传感器DS18B20驱动、实时时钟DS1302驱动、EEPROM24C08驱动、时钟调整功能、闹钟设置功能、温度报警功能等等。

    使用方法:串口波特率为57600,可以显示当前信息,例如ADC,时间,温度,按键动作等等。

    我对键盘重新进行了编号:上面一排从左到右依次为KEY1~KEY4,下面一排从左到右依次为KEY5~KEY7。KEY1键为查看ADC显示键,KEY2为查看时钟显示键,KEY3为查看温度显示键,KEY4为设置时钟键,KEY5为移动调节位键,KEY6为减1键,KEY7为加1键,KEY8为设置闹钟和报警温度键。

    另外,原本板子上标的个别参数有误,例如LCD的对比度调节电阻R29标的为10K应该改成1K的,否则LCD看不到显示。另外,LCD和数码管不能同时显示,否则LCD无法输出低电平,查忙信号通不过,这时要将控制数码管的跳线S9拔掉。测试数码管时,拔下LCD,将config.h中的LCD宏定义删除。S7、S8跳线要跳到DS1302芯片上,如果时钟显示不对,可能是因为晶体没启振的原因,可以将32.768K晶体上的两个电容C11和C13断开再试试。另外,我将给板子做后备电源的S10换成了一个22uF的钽电解电容,这样可以在板子短时间断电后始终继续走。而板子上的可调电压输出可以通过S4接到ADC0上。至于ADC1,如果不用的话,可以用跳线将起接地,悬空的话,可能测到的结果就不是0V了。

    由于时间比较仓促,难免会有bug,希望大家发现后提出来。本程序仅供参考使用,希望对大家有帮助。

源代码包下载(密码请打开看里面的解压说明):

下载地址1:EDN51TestBoard.rar

下载地址2:点击下载

      如果您觉得这个程序包不错的话,请支持一下呀,点一下左上角的“顶一下”按钮就行了~~~不然圈圈看到顶的人不多,下次就没心情写程序包了~~~~这可是几天奋斗的结晶~~~

     本程序包对应的硬件电路图和PCB、套件申请购买等,请看EDN 51小组:

http://group.ednchina.com/304/

 

系统分类: 测试测量   |   用户分类: 测试测量   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(3266)    回复(35)  

投一票您将和博主都有获奖机会!

最新评论

  • lcyacp

    2008-5-21 16:15:42

    支持原创,支持圈圈,向圈圈学习!

  • seegu

    2008-5-21 16:27:56

    呵呵,支持!

  • cyber211

    2008-5-21 22:47:09

    调不通 ,LCD 和数码管都不显示

  • 05031208

    2008-5-21 23:21:07

    圈圈,额爱你,

  • computer00

    2008-5-22 1:50:42

    使用LCD时,要将数码管显示的跳线冒拔下,否则LCD忙检测通不过。 使用数码管时,要将config.h中的LCD宏去掉,才能使用数码管显示的。这时数码管显示的内容仅仅是个秒表而已。详细的信息可以在串口中看到。 不知道你原来的LCD程序是如何查忙的?还是做延时处理的?你可以将LCD查忙的部分改成延时试试。

  • will666

    2008-5-22 9:06:15

    看看,能用上。你编过单总线连接多个18B20的程序吗?我正头疼呢。

  • computer00

    2008-5-22 12:33:21

    没编过啊,以前没用过这个18B20,就是临时找了份数据手册来看看,写了这个单个读的程序。多个18B20的程序,那个设备ID列举过程看上去很烦琐啊,你只好根据手册来做了。或者去网上搜索下,看有没有现成的程序。

  • madha

    2008-5-22 13:59:05

    OO,我这两天一直在调试ADC0832(看过手册了),一直不过看了您的程序有一个问题询问您一下: 在设定好通道为“10”的0通道以后,读取数据之前,您写了一句ADC_DO=1。 这句是不是为了“读引脚”信号才写“1”,先关闭管脚内部的MOS管,放外边的信号进来? ADC_CLK=1; ADC_CLK=1; ADC_CLK=0; ADC_CLK=0; ADC_DO=1; // 就是这句,不得其解 for(i=0;i<8;i++) //读出8位数据 { ADC_CLK=1; ADC_CLK=1; ADC_CLK=0;

  • computer00

    2008-5-22 15:24:07

    是的。这个是51单片机IO口的特殊性——准双向。只要设置为1,输入电阻就很大,可以当作输入口用。如果是有方向设置的单片机(例如AVR单片机什么的),这里就要改成将引脚设置为输入方向,在输出数据时,又要修改为输出方向。 我所提供的程序,里面所有的模块都是在板子上运行OK的,呵呵。闹钟和温度报警还有不同的响声呢。

  • alex1120

    2008-5-22 17:47:11

    狂顶 学习

  • alex1120

    2008-5-22 17:50:48

    解压密码?

  • computer00

    2008-5-22 18:49:19

    我的文章里面写了呀,你没看到?

  • alex1120

    2008-5-22 19:06:44

    没有呀 “密码请打开看里面的解压说明”

  • computer00

    2008-5-22 20:21:57

    是啊,就在压缩包里啊,直接打开看就行了。密码就写在里面的。或者在属性里面也有。别人都找得到没问这个问题啊。

  • zjw5000

    2008-5-23 0:31:50

    很好!!!顶起

  • tanik

    2008-5-24 2:13:40

    支持!!!!

  • chaoren_baobao

    2008-5-26 13:04:46

    very good!!

  • paublo

    2008-5-31 18:56:54

    呵呵,挺好的,如果能在更新更新ir的程序就更完美了,呵呵,增加遥控器遥控显示时间等等,想想就爽,呵呵

  • paublo

    2008-5-31 19:10:35

    下了就要顶贴,呵呵,再支持一下,喜欢原创,喜欢开源。。。。

  • letloose

    2008-6-10 20:45:03

    顶下,呵呵!!!!支持!!!!!!!

  • zhouchunlin

    2008-6-13 0:24:50

    圈圈真厉害啊!

  • 荒草214

    2008-6-13 9:43:15

    终于可以下了

  • hcf3421

    2008-6-14 0:03:27

    我是怎么都不能显示啊?用别的程序检测LED正常。用你的这个,LED不亮,LCD亮,但是没有字符。

  • computer00

    2008-6-14 1:15:55

    你按照我的要求操作没?

  • zhans

    2008-6-15 0:04:26

    开始运行正常,几秒钟后1602固定位置出现乱码.. (例如时间分割符号,ADC0 & ADC1 后面那个符号... 是俺的硬件有问题吧? 但跑其他程序都正常.

  • zhans

    2008-6-15 0:04:53

    重写了几次..莫名其妙又好了.. :S

  • zxpkid

    2008-6-27 12:19:12

    那个ADC为什么不稳定呀

  • computer00

    2008-6-27 15:55:53

    ADC不稳定?我的板子显示还行,基本上不动的。可能是你的电源干扰太大?具体我也不清楚了。

  • cyr_hongfeng

    2008-7-16 11:51:49

    除了说牛,还有什么能说。。。。呵呵,今天教班里的同学使用KEIL他们都说我牛,这都行

  • lijunjie1987

    2008-7-22 20:33:33

    还好,有点乱

  • lijunjie1987

    2008-8-6 8:38:11

  • wangxing

    2008-8-26 10:39:24

    顶起磊磊落落

  • pililong

    2008-9-2 23:00:31

    顶起

  • litiejunaixuexi

    2008-9-3 10:58:40

    用的什么软件啊,你的一些头文件写在keil里显示不能打开啊啊

  • computer00

    2008-9-3 12:43:41

    用的是keil啊……怎么会不能打开呢?编译一下看看。