欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
c51單片機仿真時間問題求助
[打印本頁]
作者:
103347453
時間:
2020-2-23 19:06
標題:
c51單片機仿真時間問題求助
初學C51,遇到問題了,一樣的代碼用KEILL5作軟件仿真時運行到斷點的時間為0.219,教程里才0.044,以為是代碼有錯誤,折騰一天無果,今天想到教程里用的是KEILL2,一試就跟教程里一樣了,來請教師傅,一樣的代碼為什么keill2與keill5仿真的時間差這么多,是不是哪里需要設置什么,先謝謝各位師傅!
51hei圖片20200223190212.png
(75.68 KB, 下載次數: 17)
下載附件
2020-2-23 19:02 上傳
單片機源程序如下:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
uchar num,dunum,wenum;
uchar code table_du[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar code table_we[]={
0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
void display(uint);
void delay(uchar);
void main()
{
delay(100);
EA=1; //這里設斷點
ET0=1;
TMOD=0X01;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
TR0=1;
while(1)
{
if(num==2)
{
num=0;
if(dunum==6)
dunum=0;
if(wenum==6)
wenum=0;
// display();
dunum++;
wenum++;
}
}
}
void time0() interrupt 1
{
TH0=(65536-500)/256;
TL0=(65536-500)%256;
num++;
}
void display(uint disnum)
{
P0=table_du[disnum/100];
dula=1;
dula=0;
P0=0xfe;
wela=1;
wela=0;
// delay();
P0=table_du[disnum%100/10];
dula=1;
dula=0;
P0=0xfd;
wela=1;
wela=0;
// delay();
P0=table_du[disnum%100%10];
dula=1;
dula=0;
P0=0xfb;
wela=1;
wela=0;
// delay();
}
void delay(uchar x)
{
uchar a,b;
for(a=x;a>0;a--)
for(b=200;b>0;b--);
}
作者:
csmyldl
時間:
2020-2-23 21:11
兩個時間不一樣,并不能說明延時程序的時間不一樣,正確的做法是在delay(100);這一條設置一個斷點,在EA=1;這一條設置一個斷點,分別記下兩個斷點處的時間,其差值是延時程序的時間,兩者不一樣說明使用不同的仿真環境,進入到主程序第一條指令的時間不一樣而已
作者:
wulin
時間:
2020-2-24 05:32
可能是目標選項里晶振頻率設置不當或使用默認設置。試想一下用不同頻率調試能跑出相同效果嗎?
作者:
103347453
時間:
2020-4-30 22:25
謝謝各位師傅,找到問題了,是顯示和延時聲明語句格式錯了,已經解決了
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1