作者waynecone (wayne)
看板ASM
标题[问题] 有关Keil c的几个问题
时间Tue Oct 4 07:41:14 2011
各位前辈你们好!
小弟学51已经一阵子了~
一开始接触的是组语!目前刚开始转学C51~
目前我碰到了几个问题希望各为板上的前辈能给予指导!
我再学组语的时候每个时间的延迟都可以经由指令计算出来!
但现在跳到C後用for回圈作延迟却非常不准!
以下是我举例所写的程式码:
#include"reg51.h"
main()
{
void delay(unsigned int);
unsigned char i=0x80,j;
while(1)
{
for(j=0;j<=7,j++)
{
P1=~i;
i<<1;
delay(12000);
}
}
}
void delay(unsigned int count)
{
unsigned int i;
for(i=0;i<=count,i++);
}
以上是我所举例的程式,目前除了延迟不准确的问题外,还有另外三个问题:
第一
while(1),delay(12000),括号中的1和12000是指什麽意思?
第二
用C写51时,是否会先将C程式码翻译成组语,再将翻译好的组语
翻译成机械码?如果会的话我可以在哪里看到经过翻译後的组语?
我是否可以自行修改keil C翻译组语的方式和结果?
第三
我希望有些副程式是用组合语言写,写好後我因该存成怎样的档
案格式,并且将此程式存至哪里?而当需要时又该如何呼叫?
麻烦各位先进能帮助小弟解决这几个疑惑,感激不尽!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.248.48.85