请问一下,这程序的功能是什么,求大神f2 otg功能

求大神解释一下C语言中这段程序是什么意思?实现了什么功能?_百度知道
求大神解释一下C语言中这段程序是什么意思?实现了什么功能?
oid DelayMS(uint ms){
i++);120;i& while(ms--) {
提问者采纳
标准的C语言延时函数
提问者评价
其他类似问题
为您推荐:
其他10条回答
目的也很明确,延时越长。ms越大,完了返回循环这是一个延时子程序。子程序里面第一条uchar i 不解释第二条 是一个while循环,延时的时间由ms。具体的时间不同的编译器会有差异,延时的时间长短和你调用这个子程序的时候ms的数值有关。 C语言的这种程序主要就是用来延时的,i和系统的时钟决定,执行完后ms减1,i从0加到120。第三条是一个for循环,先判断ms是否为0 如果不为零执行括号里面的循环,需要实验得出
延时功能参数为一个无符号整数,将其减1,直到等于1退出,循环体内为从0循环到120;整个程序就是在做延时
简单的说,就是延时程序,根据函数名字也可以看出来。至于for循环中120,我推测可能是循环执行120次空语句的时间为1MS。向该函数传入ms,则可以使程序延时相应的时间。
空循环,一般是延时用的不过这种延时是时间不确定的,因为cpu的运行速度不一样的话,延时是不一样的
我看这段代码,就是C51的代码,同学是在学51单片机吧总的来说这是一段延时程序。void&DelayMS(uint&ms)&//ms为你要延时多少秒{& uchar&i; while(ms--)//直到ms=0退出while循环 { & for(i=0;i&120;i++);//这一段for循环是代表机子运行1s的时间&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//不一定是i〈120为1秒具体由调试为准&&&&&&&&&& }}
延时用的,没什么特别意思。CPU每处理一条指令需要一个时钟周期,所以while循环体中无意思的语句就是用来让CPU执行消耗时间达到延时的目的,但是具体延时多少是跟硬件的时钟周期相关的。
while和for两层循环,但for循环的循环体什么都不做,所以此程序唯一延时程序。
这是一个延时程序,一直在空循环,有什么不懂可以问我
延迟执行时间吧。
就一个while循环,如果ms--不等于0
的话就进入循环。里面那个for循环总能看懂的吧。
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁您的举报已经提交成功,我们将尽快处理,谢谢!
大家还关注
(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'单片机的一个程序 我想问一下为什么万位和千位没有循环for(j=50;j&0;j--);还有这句话是什么意思 求教大神_百度知道
单片机的一个程序 我想问一下为什么万位和千位没有循环for(j=50;j&0;j--);还有这句话是什么意思 求教大神
h&gt,所以用无符号长整形变量定义该变量sbit dian=P0^7;for(j=50,用于kHz显示 void display()
//P0=0
/数码管显示码0-9 (a b c d e f g dp)unsigned char dispbuf[6]={0;
// #include &该位显示小数点P0=0math,然后计算一秒内的计数器脉冲个数bit flag,0x10;主函数{ TMOD=0x15.h&/打开计数器T0ET0=1;/P0=dispcode[dispbuf[1]],0,0x01};/for(j=50;P2=dispbit[2];计数器计满次数;
/同上P0=dispcode[dispbuf[3]];P0=dispcode[dispbuf[2]];反扫 (高位接高位)/显示函数{
&#47,0xb0;/unsigned char code dispbit[]={0x01:&#47,0x80;dian=0;&#47,0x04,0x20;&#47,每次对应为50
&#47程序代码;/打开定时器T1TR0=1;
P0=0xff,0x08,0x04;0;P0=0如果十万位不为0{P2=dispbit[5];j--);
&#47,0x20;十万位正常显示数字for(j=50;
&#47,0x10,0x40;如果十万位和万位都不等于零{P2=dispbit[4]; TL1=0xb0!=0||dispbuf[4],0x80},0xf9;
/unsigned char code dispbit[]={0x80;&#47,0;j&gt,0x82;//
/&#47,0xa4,0x92;/
/包含头文件#include &&#47,得出结果送显示;0;万位正常显示P0=0&#47,0x40!=0)
/计算脉冲的数据范围一般比较大;/计时到1秒时该标志位置1;/定义变量用于显示延时if(dispbuf[5],T0位计数模式TH0=0;显示数据暂存数组unsigned char T0计数器清零TH1=0x3c,0x08,0x90},重新开始脉冲计数
&#47,0x02;定时器定时1秒的变量;j--);j--);
/////} P2=dispbit[3]; /} void main(void)
//P0=dispcode[dispbuf[0]],然后该位清零;P0=dispcode[dispbuf[5]];
&#47,0};}if(dispbuf[5];正扫 (高位接低位)unsigned char code dispcode[]={0xc0;j&&#47,0x99;定义T1为定时模式;0;/P0=0xff,0xf8;P2=dispbit[0],0;j&
/j&gt,0x02,计满一次对应的脉冲数为65536个un
/P0=dispcode[dispbuf[4]],计20次对应就是1秒;位定义小数点;for(j=50;P2=dispbit[1];
&#47,进行脉冲数的运算;定时器赋值(定时50ms)TR1=1; ///
/reg52;j--),0;打开中断允许ET1=1;/打开中断允许EA=1;&#47!=0)
/ TL0=0
提问者采纳
如果都不加也可以,但有的加 有的不加就不行了,现象就 是加延时的数码管很亮,不加延时的很暗,甚至无显示每显示一位后面都要加延时
大神你的意思
是万位和千位的显示会比其他的管的显示暗
是不是这个意思
是这个意思,一般都要加延时 1-2ms,无延时亮度上不去,延时太长有时会闪烁
提问者评价
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求vb大神看一下这程序代码什么意思,要详细的_百度知道
求vb大神看一下这程序代码什么意思,要详细的
Dim a(9) As StringDim m As Integer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer
For i = 0 To 9
a(i) = Chr(Int(Rnd() * 26 + 65))
‘随机产生长度为10的字符串
TextBox1.Text &= a(i)
‘在文本框1中显示
Next i End SubPrivate Function MoveStr(ByVal a() As String, ByVal m As Integer, ByVal Tag As Boolean) As String
‘定义一个子过程
If Tag = True Then
MoveStr = Microsoft.VisualBasic.Right(TextBox1.Text, Len(TextBox1.Text) - m) & Microsoft.VisualBasic.Left(TextBox1.Text, m)
MoveStr = Microsoft.VisualBasic.Right(TextBox1.Text, m) & Microsoft.VisualBasic.Left(TextBox1.Text, Len(TextBox1.Text) - m)
End IfEnd FunctionPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Tag = True
‘使tag为真,字符左移随机位
TextBox2.Text = MoveStr(a, Int(Rnd() * 9 + 1), Tag)
Label3.Text = &字符左移& & Int(Rnd() * 9 + 1) & &位& End Sub Private Sub Button2_Click(ByVal sender As Sy哗浮糕簧蕹毫革桐宫昆stem.Object, ByVal e As System.EventArgs) Handles Button2.Click
Tag = False
‘使tag为真,字符右移随机
TextBox3.Text = MoveStr(a, Int(Rnd() * 9 + 1), Tag)
Label4.Text = &字符右移& & Int(Rnd() * 9 + 1) & &位& End Sub
提问者采纳
这段程序的核心代码是Private Function MoveStr(ByVal a() As String, ByVal m As Integer, ByVal Tag As Boolean) As String这个函数。这段程序中,定义了一个字符串数组,这个数组在窗体的Load事件中被初始化为一个随机产生的长度为10的字符串,并在文本框1中显示定义了一个函数,这个函数返回一个字符串,这个函数也是这段程序的核心代码:Private Function MoveStr(ByVal a() As String, ByVal m As Integer, ByVal Tag As Boolean) As String这个函数通过不同的参数设置可以将传入的字符串进行移位,把参数 ByVal a() As String,的ByVal m As Integer,个位数的字符,根据哗浮糕簧蕹毫革桐宫昆ByVal Tag As Boolean的值,左移或者右移,并将移位后的字符串返回。移动的方法是:当tag为真时,把最左边的m位个字符,移动到右边,即字符左移,循环左移。当tag为假时,把最右边的m位个字符,移动到左边,即字符右移,循环右移。然后,在两个按钮事件中,分别调用MoveStr函数,进行字符左移、右移随机位数,并将结果分别显示在两个文本框中。
提问者评价
来自团队:
其他类似问题
为您推荐:
程序代码的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 请问大神这是什么歌2 的文章

 

随机推荐