瑞星卡卡安全论坛
随缘92WJC - 2011-1-6 6:22:00
我们使用PROTUES 7.5进行电路图绘制,与程序仿真的,程序编写用的是keil 2要求就是图中的这段文字,引用的是ATMEL公司的89C51单片机,共阴数码管按照图纸和要求,程序该如何编写
附件: 您所在的用户组无法下载或查看附件用户系统信息:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; InfoPath.2; TheWorld)附件:
0702.rar
随缘92WJC - 2011-1-6 6:24:00
#include<reg51.h>
unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,
0xff,0x00,0xff,0x00};
unsigned char code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x3f};
unsigned char i;
void delay()
{
unsigned char i,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}
sbit kaiguan=P3^0
void main()
{
while(1)
{
if(kaiguan==0)
{
for(i=0;i<36;i++);
{
P1=table;
delay();
}
}
else if(kaiguan==1)
{
for(i=0;i<10;i++);
{
P0=table1;
delay();
}
}
}
}
这是我反复更改后的程序,还是存在错误,运行仿真后D1-D8只亮D7-D8,数码管从8回到0,就不动了,按下开关也无效
随缘92WJC - 2011-1-6 6:27:00
04wangjincheng shiyan.c是编写的C程序
04王进成 实验任务.DSN 是PROTUES电路图绘制后的文件
04wangjincheng shiyan.Uv2 是程序的KEIL运行文件
题目要求和图纸程序都在压缩包内,请能人相助
可将正确程序写在TXT中以附件上传,亦可直接回复
谢谢各位了
西丁宁国 - 2011-1-6 10:02:00
看来是个不小的难题,居然没人帮小弟的忙啊
随缘92WJC - 2011-1-6 15:06:00
继续顶,只有要求,没有图纸,没有说明,自己设计
明天的考试内容就是这个
看了一下P3.0口可能画错了
有哪位朋友了解的?
西丁宁国 - 2011-1-6 15:55:00
怎么没人回答啊?是发的地方不对吧
随缘92WJC - 2011-1-6 16:30:00
杰洛 - 2011-1-6 16:50:00
只能帮顶了:kaka9:
随缘92WJC - 2011-1-6 16:51:00
唉,可怜的我···刚把复习题都打电脑上去···还没做···
西丁宁国 - 2011-1-6 16:57:00
祝贺楼主成功了
老鼠男①号 - 2011-1-6 19:34:00
unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,
0xff,0x00,0xff,0x00};
虽然看不懂那些个十六进制代表啥意思,但很怀疑这样也能通过编译。数组名怎么能有空格呢?字符数组各元素之间应该用单引号引起来呀。还有楼主的编程风格真是...
随缘92WJC - 2011-1-6 20:13:00
受上网本屏幕限制,弄了回车
KEIL编写只能用逗号,否则语句错误
Devilcraze - 2011-9-10 13:42:00
#include<reg51.h>
unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,
0xff,0x00,0xff,0x00};
unsigned char code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x3f};
sbit kg=P3^0;
void Delay()
{
unsigned char i,j,k;
for(i=0;i<20;i++)
for(j=0;j<20;j++)
for(k=0;k<248;k++);
}
void main(void)
{
unsigned char i,j;
LED: for(j=0;j<36;j++)
{
P0=0x00;
if(kg==0) goto EG;
P1=table[j];
Delay();
}
EG: for(i=0;i<10;i++)
{
P1=0xff;
if(kg==1) goto LED;
P0=table1;
Delay();
}
}
我调试过了,你试试
西丁宁国 - 2011-9-10 17:59:00
在次过来学习了
1
© 2000 - 2026 Rising Corp. Ltd.