中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

单片机论坛

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 单片机论坛 → 浏览主题: 流水灯每走一圈速度越来越快,。我程序出错。请帮忙看看
发表新帖 回复该主题
回帖:12个,阅读:1546 [上一页] [1] [2] [下一页]
* 帖子主题:

流水灯每走一圈速度越来越快,。我程序出错。请帮忙看看

分享到
759
328441641
文章数:20
年度积分:50
历史总积分:759
注册时间:2011/8/24
发站内信
发表于:2011/12/27 20:26:07
#0楼
#include<reg52.h>
#define uchar unsigned char

sbit led=P1;
uchar num=0,speed=0,t=0;

uchar code table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
void main()
{
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
while(1)
{  
P1=table[num];
} }

void T0_time() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
speed++;
switch(t)
{
case 0:
if(speed==20)
num++;
break;

case 1:
if(speed==18)
num++;
 break;

case 2:
if(speed==16)
num++;
break;

case 3:
if(speed==14)
num++;
break;

case 4:
if(speed==12)
num++;
break;

case 5:
if(speed==10)
num++;
break;

case 6:
if(speed==8)
num++;
break;

case 7:
if(speed==6)
num++;
break;

case 8:
if(speed==4)
num++;
break;

case 9:
if(speed==2)
num++;
break;
}

if(num==8)
{
num=0;


t++;
if(t==speed)


我程序switch(t)这样写才对;   写成switch(t):就错为什么的?
sbit led=P1;写成sfr led=P1;就错为什么
7429
转身祭喧哗
文章数:1875
年度积分:50
历史总积分:7429
注册时间:2011/12/16
发站内信
发表于:2011/12/27 21:27:45
#1楼
咋是日语那?
盛世煙花血染畫,霧如輕紗雪翎幻。 /太極玄清道浮沉,零落成泥淼水寒/ 詞
759
328441641
文章数:20
年度积分:50
历史总积分:759
注册时间:2011/8/24
发站内信
发表于:2011/12/27 21:37:10
#2楼
c语言,兄弟
c语言,兄弟

[此贴子已经被作者于2011/12/27 21:42:14编辑过]
4534
zhengpan2010
文章数:2695
年度积分:50
历史总积分:4534
注册时间:2010/9/13
发站内信
发表于:2011/12/27 22:21:28
#3楼

我程序switch(t)这样写才对; 写成switch(t):就错为什么的?switch是开关语句,每个语句都有自己的表达式
sbit led=P1;写成sfr led=P1;就错为什么
都是些固定格式没有那么多为什么的
匿名用户
文章数:N/A
年度积分:0
历史总积分:0
注册时间:2005/5/2
发站内信
发表于:2011/12/27 22:48:47
#4楼
该用户被锁定,回复内容不予显示!
9602
Kate
文章数:1125
年度积分:50
历史总积分:9602
注册时间:2002/3/24
发站内信
发表于:2011/12/28 11:38:11
#5楼
switch(t):是语法错误,不能加冒号,类似if(……):也会出错。
sbit led=P1;写成sfr led=P1;就错为什么——注意句尾的分号“;”与“;”西文与中文的区别,用中文符号时编译就出错。
人有人意我有我意合得人意恐非我意合得我意恐非人意人意我意恐非天意合得天意自然如意
6453
jamsonwo
文章数:963
年度积分:86
历史总积分:6453
注册时间:2010/8/24
发站内信
发表于:2011/12/28 17:19:23
#6楼
sbit 好像是位定义吧!P1是一个字节的寄存器,它好像是有8个位吧!
只用过sbit led=P1^0;呵呵!有可能是我见得太少了!
2181
jog0821
文章数:250
年度积分:50
历史总积分:2181
注册时间:2010/6/16
发站内信
发表于:2011/12/29 11:42:15
#7楼
sfr 是直接寻址的   不能写 过sbit led=P1^0;  而是 sfr P1=0x90;




[此贴子已经被作者于2011/12/29 13:08:53编辑过]
天道酬勤!
匿名用户
文章数:N/A
年度积分:0
历史总积分:0
注册时间:2011/11/20
发站内信
发表于:2011/12/29 11:59:40
#8楼
该用户被锁定,回复内容不予显示!
759
328441641
文章数:20
年度积分:50
历史总积分:759
注册时间:2011/8/24
发站内信
发表于:2011/12/29 19:06:09
#9楼
确实,刚学习的。
是的这样看比较烦…以后会注意的…
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005