作者pray7th (刘阿弟)
看板Electronics
标题[问题] HCTL 2032
时间Thu Jan 20 00:07:43 2011
小弟现在大三做专题的关系接触到这颗ic
这一两天在测这颗ic
环境
1.使用LEGO NXT MOTOR
2.使用一组AB, 4x, 读X的MSB资料
3.使用8051去控(下面是程式码)
4.直接插面包板 测是否有计数&计数结果(电路在下面)
5.使用24MHz CLK
测试方式
1.程式先执行reset, 我用手转动马达, 再执行外部中断读MSB资料
2.手动测式是不执行reset 直接改变OEN 读取MSB
可是我的结果是旋转马达时D0~D7会全亮跟全灭(使用面包板)
照理说意给AB讯号後会自动计数, 可是我的CNTDECx 完全不会变化...
现在有几个使用上的问题
1.CHIx CHIy 是否要接?
2.CLK是否一定要33MHz? 我用的是4只脚的震荡ic(24M)
3.如何测是ic是否工作正常?
4.测试方式是否有误?
非常感谢回答
面包板电路
http://ppt.cc/jH2I
测试程式
#include "reg_mpc82g516.h"
sbit EN1=P1^0;
sbit EN2=P1^1;
sbit SEL1=P1^2;
sbit SEL2=P1^3;
sbit OEN=P1^4;
sbit RSX=P1^5;
sbit RSY=P1^6;
sbit XNY=P1^7;
unsigned char sta;
void Delay(unsigned int);
main()
{
EA=1; EX0=1; IT0=1; //中断启用
EN1=1; EN2=1;
XNY=0;
SEL1=1; SEL2=1;
OEN=0;
RSX=0; RSY=0; //Reset
Delay(10);
while(1){ }
}
void A() interrupt 0 using 1 //中断函式
{
if(sta==2)
{
sta=0;
}
if(sta==0)
{
RSX=1; RSY=1; //Count
OEN=0;
sta=sta+1;
}
else
{
RSX=1; RSY=1; //Read MSB
OEN=1;
Delay(10);
OEN=0;
sta=sta+1;
}
}
void Delay(unsigned int a)
{
int b;
while(a--)
{
for(b=100;b>0;b--);
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.37.141.234
1F:→ pray7th:自己解决了XD Data Select选LSB就好 01/20 18:15