|
问问关于atmelAT89c51的program问题!
[复制链接]
|
|
发表于 4-3-2009 11:42 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 4-3-2009 12:37 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 4-3-2009 01:20 PM
|
显示全部楼层
大大你说的“如果要lcd跑,你的3一定要run到“是什么意思?是指pin3的可变电阻吗? |
|
|
|
|
|
|
|
发表于 4-3-2009 02:24 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 4-3-2009 05:25 PM
|
显示全部楼层
刚刚试过了led,还是不会亮,但是是用旧的ic!我也换过了ic chip,也换了crystal,也换了33pF的capacitor,可是screen还是不会run.但是忘了用新的ic试led了,等我明天试了led再告诉各位热心大大。
看来是circuit的问题,我现在想问问for Fritlizt 大大的program我用的是12MHz的crystal,和两个33pF的capacitors,一个voltage regulator,一个10k variable resistor,1个10k的resistor接pin9然后接gnd,一个0.1uF的capacitor接pin9然后接5V,这些配件有没有什么问题,会影响circuit run吗? |
|
|
|
|
|
|
|
楼主 |
发表于 4-3-2009 05:41 PM
|
显示全部楼层
Fritlizt 大大的源码中,我改了void system_init (void)
Fritlizt 大大的源码:void system_init (void)
{
P0 = 0xFF; //port initialization
P1 = 0xAA;
P2 = 0xFF;
P3 = 0xFF;
TMOD = 0x21; // set timer 1 to 8bit auto reload mode.
lcd_init();
} 我改的:void system_init (void)
{
P0 = 0xFF; //port initialization
P1 = 0xFF;
P2 = 0xFF;
P3 = 0xFF;
TMOD = 0x21; // set timer 1 to 8bit auto reload mode.
lcd_init();
} |
|
|
|
|
|
|
|
发表于 4-3-2009 07:44 PM
|
显示全部楼层
原帖由 gabrielloy 于 4-3-2009 01:20 PM 发表
大大你说的“如果要lcd跑,你的3一定要run到“是什么意思?是指pin3的可变电阻吗?
我指的是步骤3。也就是test P1 = 0xAA, P2 = 0x55 |
|
|
|
|
|
|
|
发表于 4-3-2009 07:46 PM
|
显示全部楼层
原帖由 gabrielloy 于 4-3-2009 05:25 PM 发表
刚刚试过了led,还是不会亮,但是是用旧的ic!我也换过了ic chip,也换了crystal,也换了33pF的capacitor,可是screen还是不会run.但是忘了用新的ic试led了,等我明天试了led再告诉各位热心大大。
看来是circuit的问题, ...
画出来吧。简单的电路图。
哪怕是用paint也好。 microsoft word也好。
单靠那几个component,我怎样知道你的circuit怎样接。 |
|
|
|
|
|
|
|
发表于 4-3-2009 07:50 PM
|
显示全部楼层
原帖由 gabrielloy 于 4-3-2009 05:41 PM 发表
Fritlizt 大大的源码中,我改了void system_init (void)
Fritlizt 大大的源码:
void system_init (void)
{
P0 = 0xFF; //port initialization
P1 = 0xAA;
P2 = 0xFF;
...
不要看lcd了. 先试看io能不能跑。io不能跑lcd不可能可以走。 lcd也是用io来控制的。
把lcd给拔出来。P1/P2不要接任何东西。
这个code把P1 set成10101010, P2 set 成01010101
用voltmeter/multimeter量看,P1.0是不是5, P1.1是不是0v, P.2是不是5v
照理说:你应该得到
P1.0 ->5v
P1.1->0v
P1.2 ->5v
P1.3->0v
P1.4 ->5v
P1.5->0v
P1.6 ->5v
P1.7->0v
P2.0 ->0v
P2.1->5v
P2.2 ->0v
P2.3->5v
P2.4 ->0v
P2.5->5v
P2.6 ->0v
P2.7->5v- void system_init (void)
- {
- P0 = 0xFF; //port initialization
- P1 = 0xAA;
- P2 = 0x55;
- P3 = 0xFF;
- while (1);
- }
复制代码
[ 本帖最后由 fritlizt 于 4-3-2009 07:53 PM 编辑 ] |
|
|
|
|
|
|
|
楼主 |
发表于 4-3-2009 08:17 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 4-3-2009 09:33 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 4-3-2009 10:37 PM
|
显示全部楼层
先test完上面的i/o port后,在test这个,
void system_init (void)
{
P0 = 0xFF; //port initialization
P1 = 0xAA;
P2 = 0x55;
P3 = 0xFF;
while (1);
} |
|
|
|
|
|
|
|
发表于 5-3-2009 09:18 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 5-3-2009 09:20 AM
|
显示全部楼层
原帖由 gabrielloy 于 4-3-2009 05:25 PM 发表
刚刚试过了led,还是不会亮,但是是用旧的ic!我也换过了ic chip,也换了crystal,也换了33pF的capacitor,可是screen还是不会run.但是忘了用新的ic试led了,等我明天试了led再告诉各位热心大大。
基本闪灯成功了? |
|
|
|
|
|
|
|
发表于 5-3-2009 11:14 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 5-3-2009 11:35 AM
|
显示全部楼层
原帖由 fritlizt 于 2-3-2009 10:41 AM 发表
你的schematics, pcb layout有吗??
要你的。不是我的。 这样比较容易看出问题在那里。
原帖由 fritlizt 于 3-3-2009 09:48 PM 发表
不如你画schematics, 你的circuit怎样接。再post上来。
你用pic大大的这个图?还是我的图?不一样的。
我的是4 bit interface, read busy flag
这个8 bit interface, 用delay.
现在你用哪一个?
原帖由 fritlizt 于 4-3-2009 07:46 PM 发表
画出来吧。简单的电路图。
哪怕是用paint也好。 microsoft word也好。
单靠那几个component,我怎样知道你的circuit怎样接。
fritlizt 版主问了你几次,上传电路图。。。还没画好啊! 。。
搞到版主 fritlizt 都发飚了:@ ,电路图给了,软件也给了,仔细检查你的电路接线。
[ 本帖最后由 rothmans 于 5-3-2009 12:59 PM 编辑 ] |
评分
-
查看全部评分
|
|
|
|
|
|
|
发表于 5-3-2009 12:14 PM
|
显示全部楼层
原帖由 freeman_long 于 5-3-2009 11:14 AM 发表
还有我这你的学生在这里回流。
有吗? 不记得了。。。
老师, 你现在在那间学院/大学里教书?不乖的孩子不可以赏巴掌, 等下被告。。呵呵。。
有一天,所调教的人会回来做你所做的,一同来这里帮助有心学习的人。
不敢说调教, 都只是有限度帮助而已。。。。 |
|
|
|
|
|
|
|
发表于 5-3-2009 12:21 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 5-3-2009 01:00 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 5-3-2009 06:44 PM
|
显示全部楼层
大家说的都很有道理,关于led testing,发现了很奇怪的事。我burn了这个program进去mcu里面,准备做port 1,2 testing,#include<at89x51.h>
int main (void)
{
P1 = 0xAA;
P2 = 0x55;
while (1);
} 依照以上的program,port1即p1.0~p1.7会是10101010,可是我用led测试,得出port1的output很小,led只是亮了一点点,但是是全都亮!!不是10101010。还有,port2,全部不亮,而不是program里面的01010101,反而是port3的pin亮了。可是把mcu拿上来,在从新插入,情况又变成port2全亮全部都是5Voutput,而port1保持不变。
为什么?难道是我的mcu有问题?我才刚刚换了一个新的 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|