共4条
1/1 1 跳转至页
各位高手,帮我看看我的下面这段程序是哪里有问题呢2?谢谢!
问
#include "STC12C2052AD.h"
#include "absacc.h"
#include "intrins.h"
//********定义引脚*************************************
sbit GreenDisplay = P1^2; //绿灯测试 TG
sbit RedDisplay = P1^3; //红灯测试 TR
sbit RedEnable = P1^4; //红灯使能 GTOE
sbit GreenEnable = P1^5; //绿灯使能 RTOE
sbit Latch = P1^6; //锁存 TLAT
sbit Clk = P1^7; //时钟 TCLK
sbit Work = P3^5; //P3_5 WORk
sbit Test = P3^7; //测试 TEST
//********定义引脚**************************************
//延时
int Delay( )
{
int i,j;
for (i=0; i<100; i++)
{
for (j=0; j<100; j++)
{
;
}
}
return 1;
}
//绿灯全部亮程序
int GreenAllOff( )
{
int i;
for (i=0; i<64; i++)
{
Clk = 1; //时钟上升沿
_nop_();
_nop_();
GreenDisplay = 0; //发送数据
_nop_();
_nop_();
Clk = 0; //时钟下升沿
_nop_();
_nop_();
}
//*******把数据送出*********
_nop_();
_nop_();
Clk = 0; //在时钟下降沿把数据送出
_nop_();
_nop_();
Latch = 1; //锁存
_nop_();
_nop_();
_nop_();
_nop_();
Latch = 0; //锁存
_nop_();
_nop_();
GreenEnable = 0; //绿灯使能 GTOE
_nop_();
_nop_();
return 1;
}
int GreenTest( ) //绿灯测试程序
{
int i ; // 绿灯数
for (i=0; i<64; i++)
{
}
return 1;
}
int main() //主程序
{
Work = 1;
Test = 0;
Delay( ); //延时
while(1)
{
// Delay( ); //延时
GreenAllOff( ); //绿灯全部亮
// Delay( ); //延时
}
return 1;
}
可是程序运行后,没有一个点亮,
各位大哥,是不是:
int GreenAllOff( )
{
int i;
for (i=0; i<64; i++)
{
Clk = 1; //时钟上升沿
_nop_();
_nop_();
GreenDisplay = 0; //发送数据
_nop_();
_nop_();
Clk = 0; //时钟下升沿
_nop_();
_nop_();
}
//*******把数据送出*********
_nop_();
_nop_();
Clk = 0;
_nop_();
_nop_();
Latch = 1; //在时钟下降沿把数据送出
_nop_();
_nop_();
_nop_();
_nop_();
Latch = 0;
_nop_();
_nop_();
GreenEnable = 0; //绿灯使能 GTOE
_nop_();
_nop_();
return 1;
}
是不是这段程序有问题?
谢谢!
答 1: 是不是要跟硬件连接一起来看好点?就这样看,看不出有什么问题。
凭感觉猜一下,这个
“GreenEnable = 0; //绿灯使能 GTOE”
是不是要放在锁存信号的前面? 答 2: 谢谢大哥,还是不行啊~~//*******把数据送出*********
_nop_();
_nop_();
Clk = 0;
_nop_();
_nop_();
GreenEnable = 0; //绿灯使能 GTOE
_nop_();
_nop_();
Latch = 1; //在时钟下降沿把数据送出
_nop_();
_nop_();
_nop_();
_nop_();
Latch = 0;
_nop_();
_nop_();
改为这样,还是不行啊! 答 3: 能把电路图拿来看看不?这样好分析点~
#include "absacc.h"
#include "intrins.h"
//********定义引脚*************************************
sbit GreenDisplay = P1^2; //绿灯测试 TG
sbit RedDisplay = P1^3; //红灯测试 TR
sbit RedEnable = P1^4; //红灯使能 GTOE
sbit GreenEnable = P1^5; //绿灯使能 RTOE
sbit Latch = P1^6; //锁存 TLAT
sbit Clk = P1^7; //时钟 TCLK
sbit Work = P3^5; //P3_5 WORk
sbit Test = P3^7; //测试 TEST
//********定义引脚**************************************
//延时
int Delay( )
{
int i,j;
for (i=0; i<100; i++)
{
for (j=0; j<100; j++)
{
;
}
}
return 1;
}
//绿灯全部亮程序
int GreenAllOff( )
{
int i;
for (i=0; i<64; i++)
{
Clk = 1; //时钟上升沿
_nop_();
_nop_();
GreenDisplay = 0; //发送数据
_nop_();
_nop_();
Clk = 0; //时钟下升沿
_nop_();
_nop_();
}
//*******把数据送出*********
_nop_();
_nop_();
Clk = 0; //在时钟下降沿把数据送出
_nop_();
_nop_();
Latch = 1; //锁存
_nop_();
_nop_();
_nop_();
_nop_();
Latch = 0; //锁存
_nop_();
_nop_();
GreenEnable = 0; //绿灯使能 GTOE
_nop_();
_nop_();
return 1;
}
int GreenTest( ) //绿灯测试程序
{
int i ; // 绿灯数
for (i=0; i<64; i++)
{
}
return 1;
}
int main() //主程序
{
Work = 1;
Test = 0;
Delay( ); //延时
while(1)
{
// Delay( ); //延时
GreenAllOff( ); //绿灯全部亮
// Delay( ); //延时
}
return 1;
}
可是程序运行后,没有一个点亮,
各位大哥,是不是:
int GreenAllOff( )
{
int i;
for (i=0; i<64; i++)
{
Clk = 1; //时钟上升沿
_nop_();
_nop_();
GreenDisplay = 0; //发送数据
_nop_();
_nop_();
Clk = 0; //时钟下升沿
_nop_();
_nop_();
}
//*******把数据送出*********
_nop_();
_nop_();
Clk = 0;
_nop_();
_nop_();
Latch = 1; //在时钟下降沿把数据送出
_nop_();
_nop_();
_nop_();
_nop_();
Latch = 0;
_nop_();
_nop_();
GreenEnable = 0; //绿灯使能 GTOE
_nop_();
_nop_();
return 1;
}
是不是这段程序有问题?
谢谢!
答 1: 是不是要跟硬件连接一起来看好点?就这样看,看不出有什么问题。
凭感觉猜一下,这个
“GreenEnable = 0; //绿灯使能 GTOE”
是不是要放在锁存信号的前面? 答 2: 谢谢大哥,还是不行啊~~//*******把数据送出*********
_nop_();
_nop_();
Clk = 0;
_nop_();
_nop_();
GreenEnable = 0; //绿灯使能 GTOE
_nop_();
_nop_();
Latch = 1; //在时钟下降沿把数据送出
_nop_();
_nop_();
_nop_();
_nop_();
Latch = 0;
_nop_();
_nop_();
改为这样,还是不行啊! 答 3: 能把电路图拿来看看不?这样好分析点~
共4条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |