搜索
bottom↓
回复: 14

为什么编译成功了, 可是led不亮呢,我编译了很多遍

[复制链接]

出0入0汤圆

发表于 2005-12-1 06:03:11 | 显示全部楼层 |阅读模式
;问题的图在



http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=403247&bbs_page_no=1&sub_kind_id=1155&bbs_id=1000





;以下是原程序  

org 00h  



start: mov p2,#11111110b  



jb p1.0,$  



on: mov p2,#11111001b  



jnb p1.1,start  



jmp on  



end  





问题1: 为什么编译成功了(参照 http://ww.21icsearch.com/more.asp?name=zhaor&id=1247 , 在proteus里加上 Keil的A51.EXE编译器), 可是8个LED都不亮呢。  





问题2: capacitor和resistor里面有很多可以供选择的器件,就拿(electrolytic capacitor电解电容)来说,列表里的都是16v以上, 那么应该选择哪一个呢?  



问题3: 另外画总线的分支线的时候,我用的是2D GRAPH-->>WIRE. 改过几个sample里的例子,结果可以联调,可是不像protel里画总线的分支线时那样直,那样方便。那么怎么样画总线的分支线呢?  





问题4:我在amazon,china-pub上面找了一下,没有找个跟proteus有关的书,请您推荐一些好吗?  





ps: 在提问之前,我debug了很多遍,Proteus 6 Professional\SAMPLES里面的例子,很多都可是仿真的,为什么我连续做了几个*.dsn,都以通 过debug,可是LED不亮呢?(所使用的 proteus分别为一, http://kazus.ru/programs/viewdownload/kz_0/cid_217.html    Proteus 6.73 sp3破解版。二,proteus 6.5sp5破解版。 三,proteus 6.0 demo版,使用之后都没有成功 )  





真心的谢谢您,  



期待您认真的答复,  



祝愉快  













-----此内容被stn125于2005-12-01,06:04:45编辑过



-----此内容被stn125于2005-12-02,04:25:02编辑过



-----此内容被stn125于2005-12-02,04:26:58编辑过



-----此内容被stn125于2005-12-02,04:30:11编辑过


-----此内容被stn125于2005-12-02,04:33:52编辑过

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2005-12-1 11:46:19 | 显示全部楼层
le  jun,  My  dear!



       问题还不少。下面给你答复。



问题1:  为什么编译成功了(参照  http://ww.21icsearch.com/more.asp?name=zhaor&id=1247  ,  在proteus里加上  Keil的C编译器),  可是8个LED都不亮呢。  



       答复:放置完元器件后要设置参数的,还要计算呢,比如电阻可以放置普通电阻,设置阻值需要计算的,计算依据就是LED的参数,可以打开

                   LED的设置界面看到有压降、电流、模拟还是数字,还有一些其他设置,其实我们需要设置的只有这两个“压降和电流”,一般二极管

                   压降是0.7V,电流是20mA,选模拟,所以电阻应该是(5-0.7)/0.02=220,电阻里可以用“220”或者“220R”均可。



问题2:  capacitor和resistor里面有很多可以供选择的器件,就拿(electrolytic  capacitor电解电容)来说,列表里的都是16v以上,  那么应该选择哪一个呢?  



       答复:你还不大会用这个软件,每个列表里都有好多小列表,你要去里面挑选的,一般用的电阻选用Generic里的即可,电容选Generic里的,

                   CAP是普通电容,CAP-ELEC是电解电容,在Proteus里不用关心电容的电压,用多大都无所谓,只在实际焊接时需要考虑不要超过即可。



问题3:  另外总线的分支线,我用的是wire(用wire来用为总线分支线的时候,改过几个sample里的例子,结果跟改之前一样。),怎么样画总线的分支线呢?  



       答复:总线用BUS,分支用WIRE,总线不是线,只是一种代表符号,不用管他连到那里,连什么东西,而WIRE不能瞎连,可以从需要连的管脚

                 连线到BUS上,在BUS上放置WIRE  LABEL,比如ADDR[0..7],意思就是这个总线是ADDR0-ADDR7的,以后放置其他wire  label的时候

                   就可以在崩出来的窗口直接选了。很方便也很直观,当然可以不要BUS,直接用wirelabel。





问题4:我在amazon,china-pub上面找了一下,没有找个跟proteus有关的书,请您推荐一些好吗?  



       答复:有关Proteus的书很少,还大都是英文的,大家很少有关心如何用这个软件的,毕竟这个东西是可有可无的,大家关心多的还是

                   最主要的东西,比如C语言,或者IAR、ICC之类的,所以Proteus学的好与不好关系都不大,只要多用就会熟练。





ps:  在提问之前,我编译了很多遍,Proteus  6  Professional\SAMPLES里面的例子,几乎都可是仿真,为什么我连续做了几个都以通  过编译,LED不亮呢,(所使用的  proteus分别为一,  http://kazus.ru/programs/viewdownload/kz_0/cid_217.html        Proteus  6.73  sp3破解版。二,proteus  6.5sp5破解版。  三,proteus  6.0  demo版,使用之后都没有成功  )  



       答复:关键是你要准确设置LED和RES的参数。不过我看你设置的也可以,LED压降2V,电流是(5-2)/470=6mA,一般LED发光需要的电流是

                 你设置电流的一半即可,比如设置10mA,只要5-10mA都可发光。



=======  2005-12-01  05:40:14  where  below  is  your  letter=======

出0入0汤圆

发表于 2005-12-1 11:50:32 | 显示全部楼层
LED的压降比普通硅二极管高。



"一般二极管压降是0.7V,电流是20mA,选模拟,所以电阻应该是(5-0.7)/0.02=220,电阻里可以用“220”或者“220R”均可"

公式有误,电流将偏少,但LED依然很亮。



红色LED的压降约 2V  R=(5-2)/0.02=150.

出0入0汤圆

发表于 2005-12-1 12:08:27 | 显示全部楼层
to hankw、HJJourAVR二位大哥:

有几个问题想纠正一下:

1.普通亮度的红色LED的压降一般为1.5-1.6V,高亮度的一般为1.3-1.5V,超高亮度(交通灯用的)一般为1.25-1.35V,以上均为日亚或者台湾正品。



2.在实际应用中,直径为5mm的发光二极管一般用10mA电流就可以了,20mA比较容易使管子寿命缩短,特别是在高温环境(+50摄氏度)下更加如此。



3.PROTEUS在DEMO版状态下对于例程里的电路可以仿真,但是对于自己搭建的电路,不能用代码仿真。



以上观点难免偏妥,请指正,谢谢!!

出0入0汤圆

发表于 2005-12-1 12:18:13 | 显示全部楼层
楼主我在下帖中已给予答复:



http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=403247&bbs_page_no=1&bbs_id=1000



顺便问一下:  有没有把HEX文件加入CPU中?

出0入0汤圆

发表于 2005-12-1 12:29:10 | 显示全部楼层
阀值电压跟额定电流下的工作电压是不一样的。



NICHA红灯也好,OSRAM红灯也好,流过额定电流时,端电压都不低。



红色LED的阀值电压是1.5~1.6V。

当电流高达20mA时,端电压已经是2V左右了。

计算公式没错。



在环境温度25度下和散热良好的条件下,额定电流为20mA的LED流过20mA是不会对寿命有任何影响。

在实验板上工作温度和散热条件是没有任何问题的。



对于全彩LED大屏/交通灯的电流考虑是因为散热条件和户外高温使用的问题,跟实验板那么仅仅几个LED是完全不同情况。

出0入0汤圆

发表于 2005-12-1 13:44:12 | 显示全部楼层
我只想说一句话:HJJourAVR大哥,你是真正的老大!!!

出0入0汤圆

发表于 2005-12-1 14:16:32 | 显示全部楼层
承让。

因为我以前的公司是搞 全彩LED大屏的。呵呵。





在论坛上各抒己见,甚至争论(当然不能人身攻击了),都是好事情。

出0入0汤圆

 楼主| 发表于 2005-12-1 15:17:06 | 显示全部楼层
怎么样能才把hex加到cpu中呢?

出0入0汤圆

发表于 2005-12-1 15:57:30 | 显示全部楼层
靠。



老兄,程序没加到CPU中,他怎么能按照你的要求工作??



右键选中,左键打开属性窗口,里面有个Program files,选后面的浏览按钮,然后就可以选你编译完之后的HEX文件了。



提示:可以把源程序加近来,也可以把KEIL的编译器加进来,就可以直接编译你的程序了。



1。增加编译工具:菜单里第8个“源文件”,选里面的“定义代码产生工具”,选“new”,找到相应的编译工具,例如KEIL下的A51,或者C51。一定要选扩展名,A51对应的是ASM,C51对应的是C,还要选输出格式是HEX。



2。增加源程序:菜单里第8个“源文件”,选里面的“增加/移除源文件”,选“new”,找到源程序,在下拉菜单里面选刚才建立的编译器。



3。编译:菜单里第8个“源文件”,选里面的“build所有”,会有提示信息的。

出0入0汤圆

 楼主| 发表于 2005-12-2 03:04:22 | 显示全部楼层
通过电子小生哥,下午几个小时手把手的帮助,最后已经解决了问题。



下面总结一下可能出现的问题:



Step1 在uvision3中,没有把*.asm文件加入到target1-->>source group1里面去.通过在source group1上单击右键,加入   *asm。



Step2 在uvision3中,没有在options for target 的output中选中,create hex file.



Step3 没有在proteus isis里,往cpu里写hex(在proteus里的program file里加入hex文件之后,proteus可是仿真了。可是keil还是不能与proteus联调.。



Step4 在百思不得其解的情况下,把在   http://www.mcu-top.com/web/list.asp?boardid=7

  里下载的几个可以联调的例子打开之后,与之比较。发现 options for garget 里的target标签中的atmel at89c51的Xtal(MHz)值有一些不一样,我机器里keil里的默认值为33.0,可是其它例子里的是24.0。 通过改变我机器里的值后,keil可以与proteus isis 联调。(在改变Xtal的值33.0之前出现了Failed to conncect command socket to port 127.0.0.1:8000,可是在把值改为33.0之后,这个错误的对话框就消失了,不知道是什么原因。)



得到的可能结果: 没有Step1的在keil里加*.asm-->>就没有Step2*.hex-->>就不可能在Step3的proteus isis里,往cpu里写hex。

那么Step4为什么不能设33.0(MHz)呢?





还有一些其它的问题:



1:

昨天通过我看 http://ww.21icsearch.com/more.asp?name=zhaor&id=1247

             http://www.mcustudio.com/jxzl/2003921162454.asp

对proteus isis 进行了一些设置,包括对 source下的 Define Code Generation Tools。由于误删,现在  Code Generation Tools 面里只剩下 mpasm和 mpasmwin了,把之前加的A51.exe和C51.exe给删了。不知道会对将来有什么影响。



2: 在不能联调的时候,也怀疑过可能是 tools.ini里[C51]里的两条语句造成的



TDRV5=BIN\VDM51.DLL("Proteus VSM Monitor-51 Driver")

TDRV6=BIN\VDM51.DLL("Proteus 67")



所以把  TDRV6=BIN\VDM51.DLL("Proteus 67")给删除了,



可是在把Xtal(MHz)的值改为24.0之后,加上 TDRV6=BIN\VDM51.DLL("Proteus 67")也可以联调。









在操作的时候,可能还有一些对keil和proteus的修改,可是记不太起来了,想起来的时候再做补充。



ps:另外万分感谢hankw 以及作回答的大哥,谢谢~~^^



还有就是到现在还有没搞明白 《电子制作》2005年弟1期里面的“接着我们点击工具箱的?????按钮画总线的分支全用来连接总线和元器件的管脚。”



这里的 “?????按钮”是什么按钮啊? 看不清楚。



http://www.yydznet.com/%E7%94%B5%E5%AD%90%E5%88%B6%E4%BD%9C200501/文章/42.htm











-----此内容被stn125于2005-12-02,03:09:45编辑过



-----此内容被stn125于2005-12-02,03:12:06编辑过



-----此内容被stn125于2005-12-02,03:16:57编辑过



-----此内容被stn125于2005-12-02,03:18:33编辑过



-----此内容被stn125于2005-12-02,03:23:24编辑过



-----此内容被stn125于2005-12-02,03:25:51编辑过



-----此内容被stn125于2005-12-02,03:40:21编辑过



-----此内容被stn125于2005-12-02,03:54:42编辑过



-----此内容被stn125于2005-12-02,03:57:34编辑过


-----此内容被stn125于2005-12-02,15:39:27编辑过

出0入0汤圆

 楼主| 发表于 2005-12-2 03:24:08 | 显示全部楼层







-----此内容被stn125于2005-12-02,03:41:54编辑过

出0入0汤圆

 楼主| 发表于 2005-12-2 03:42:30 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2005-12-2 03:56:30 | 显示全部楼层

出0入0汤圆

发表于 2005-12-2 08:49:15 | 显示全部楼层
算了,不回邮件了。在这里给你说一下。



如果把A51和C51删除了的话可以再加上,看我9楼的答复,里面告诉你了怎样增加编译工具。





对了,我的机器里怎么没有vdm51.dll文件呢?

我也不能用keil联调,你是怎么设置的呢?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-3 10:56

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表