导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[求助]救我!!!!

* 65267: [求助]救我!!!!

   wake 
wake发表的帖子 

 [求助]救我!!!!
#include   <stdio.h>  
#include   <reg51.h>  
#include   <absacc.h>  

#define s1 XBYTE[0x0300]
#define s2 XBYTE[0x0700]
#define s3 XBYTE[0x0b00]
#define DA XBYTE[0x4000]
typedef unsigned char uchar;
unsigned char code letter[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  void delay_1(void);
void delay_2(void);
void delay_3(void);
void main(void)
{

int j;
uchar k;
uchar m;
uchar l;

uchar f;
k=0;
do
                   {
       f=k;
       k++;

  for(j==0;j  <=500;j++)
  {
  DA=0;
  delay_1();
 DA=64;
 delay_2();
 DA=175;
 delay_3();
 DA=150;
 delay_3();
 DA=64;
 delay_2();
 }
 
m=f/10;
l=f%10;
s1=letter[m];

s2=letter[l];
}
while(k  <=20);
}

void delay_1(void)
{
uchar h;
for(h=0;h  <=100;h++)
{;}
}
void delay_2(void)
{
uchar h;
for(h=0;h  <=127;h++)
{;}
}
void delay_3(void)
{
uchar h;
for(h=0;h  <=75;h++)
{;}
}

我是一个单片机初学者。这是我前几天写的一个东东,目的是发一个阶梯波。首先电压为0v,持续0.2ms,接着为1v,持续0.3ms,再接着为3.5v,持续0.1ms,再是3v,持续0.1ms,接着为1v,持续0.3ms。总周期为1ms。并要求发10000次,每500次使显示器加1,直到20。然而,在这里我却遇到几个问题:
 1:显示没有加一的过程,直接显示20,且将k++改为++k时,显示为21。
 2:对于延时程序的调试上,有很多随机因素。比如delay_2,若将h〈=127改为h〈=125,则严时由0.4ms变为0.2ms。而且,很多原本设计为0.1ms的,他可能变化很大。
  以上两个问题,我一直不得其解。希望各位大虾指教。谢谢


发表时间:2004年10月27日12:17:43

  
回复该帖

本主题共有 3 帖,分页:>>>>>该主题的所有内容[3]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  65314.[详细][quote][b]以下是引用[i]wake在2004-10-27 12:17:43[/..
摘要:[quote][b]以下是引用[i]wake在2004-10-27 12:17:43[/i]的发言:[/b] [求助]救我!!!!#include <stdio.h>  #inc......(1739字)
- [xiaodao35][1004次] 2004年10月27日

  65340.[详细]感谢xiaodao345给我的帮助,经过昨天的调试发现,问题出在for语句上,必须在while(1..
摘要:感谢xiaodao345给我的帮助,经过昨天的调试发现,问题出在for语句上,必须在 while(1) { k=0; do{ . . . j==0; ......(218字)
- [wake][855次] 2004年10月28日

[上一篇帖子]:74lvc4245的/OE,DIR位的高电位用+5v还是+3.3v????? [求助][讨
[下一篇帖子]:我搜过了,找不到!