大家帮忙看看这个程序,我要用示波器仿真一下波形,但是怎么都弄不出来的

sammy2010baby 2011-09-02 10:57:00
如题,程序是别人的,我按照程序画了图,怎么没有波形输出的,是不是哪里错了?小妹还是个菜鸟,希望大侠多多指教!!感激不尽,下面贴上程序和图:

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar timer0_tick,zhankongbi=1;
uchar i=0,n=0,temp=0;
sbit P3_7=P3^7;
code seven_seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//1--9
code scan[2]={0xfd,0xfe};
uchar counter[2]={0,0};
sbit anjian1=P3^1; //调整个位
sbit anjian2=P3^2; //调整10位
sbit anjian3=P3^3; //开始启动
sbit anjian4=P3^4; //确认
void delay(int z)
{
uint x,y;
for(x=z;x>0;x++)
for(y=110;y>0;y--);
}
static void timer0_isr(void)interrupt 1 using 0 //中断函数
{
TR0=0;
TL0=0xf6;
TH0=0xff;
TR0=1;
if(zhankongbi>99)
zhankongbi=1;
if(zhankongbi<1)
zhankongbi=99;
counter[0]=zhankongbi%10;
counter[1]= zhankongbi%10;
n++;
if(n==100)
{
n=0;
i++;
if(n==2)
i=0;
P0=seven_seg[counter[i]];
P2=scan[i];
}
timer0_tick++;
if(timer0_tick++==100)
{
timer0_tick=0;
}
if(anjian2==0)
{
delay(100);
if(anjian2==0)
{
temp=1;
counter[0]++;
if(counter[0]==10)
{
counter[0]=0;
}

}
}
if(anjian1==0)
{
delay(100);
if(anjian1==0)
{
temp=1;
counter[1]++;
if(counter[1]==10)
{
counter[1]=0;
}
}
}
zhankongbi=counter[0]+counter[1]*10;
if(anjian4==0)
{
delay(5);
if(anjian4==0)
temp=0;
}
if(temp==1)
{
P3_7= 0;
}
else
{
if(timer0_tick<=zhankongbi)//当小于占空比时输出低电平。高于时高电平,从而实现占空比的调整。
{
P3_7= 1;
}
else
{
P3_7= 0;
}
}

}
static void timer0_initialize(void)//中断初始化
{
EA=0;
timer0_tick=0;
TR0=0;
TMOD=0x01;
TL0=0xf6;
TH0=0xff;
PT0=0;
ET0=1;
TR0=1;
EA=1;
}
void main(void)
{
STAR:delay(100);
if(anjian3!=0)goto STAR ; //按键3启动脉冲
timer0_initialize();
while(1);
}
//按下按键3启动脉冲计时器,初始设置占空比为1%,
//按键1调整十位,按键2调整个位,一旦调整,必须按下确认键确认,
// 输出正确脉冲,可以1%——99%任意调节


那个图我不懂怎么插入,我使用protues仿真的,我就描述下我画的图,单片机最小单元,然后在p3.0,p3.1,p3.2,p3.3接了3个对地按键,p3.7接了个示波器,就是这么多了,是不是还欠什么,希望大虾们指教,感激不尽!!
...全文
327 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshi_ziyu 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 sammy2010baby 的回复:]
如题,程序是别人的,我按照程序画了图,怎么没有波形输出的,是不是哪里错了?小妹还是个菜鸟,希望大侠多多指教!!感激不尽,下面贴上程序和图:

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar timer0_tick,zhankongbi=1;
uchar i=0,n=0……
[/Quote]
仿真试试看看具体运行情况
sammy2010baby 2011-09-02
  • 打赏
  • 举报
回复
希望大家多多指教
sammy2010baby 2011-09-02
  • 打赏
  • 举报
回复
仿真了,没动静。大家有没有认真看我的问题呢?
qshzf 2011-09-02
  • 打赏
  • 举报
回复
先查查看端口有没有输出.

27,377

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧