51单片机用c语言怎么让i得到一个0-15的随机数

作者&投稿:恽治 (若有异议请与网页底部的电邮联系)
用C语言生成一个0.01-0.15之间的随机数?~

启动计数器0,将TL0的值%16即可得到!

static unsigned char random=5; //再次运行时值已改变。
char i;
TMOD= 0x20;
TR0 =1;
for(i=0;i<random; i++)
;//运行一段时间
ramdom *= TH0;
random %=16;

以前想过这个问题,用定时器计时100,让定时器一直跑,等用随机数的时候,读出计数器的值,并用总数减去。但是我没试过,不知道行不行。你觉得可以就试试,我也想知道答案。

启动计数器0,将TL0的值%16即可得到!

static unsigned char random=5; //再次运行时值已改变。
char i;
TMOD= 0x20;
TR0 =1;
for(i=0;i<random; i++)
;//运行一段时间
ramdom *= TH0;
random %=16;

我一般用一个变量不断自加,需要随机数时,让它对15取余,假如取用随机数时刻不确定,那产生的随机也就自然不确定了


请问单片机的C语言怎么编写啊?
单片机C语言编译错误:requires ANSI-style prototype,是编译过程错误造成的,解决方法如下:1、编程前保存文件,单击文件菜单,下拉菜单中选择保存按钮。2、输入文件名,文件类型选择为.c类型。3、然后开编辑,首先,定义头文件,头文件一般为stdio.h。4、接着,定义主函数,主函数名为main。5、然后,...

C语言怎么写进单片机?
1、把C语言编译为编程器支持的语言格式,比如常用的bin,或hex等格式。\\x0d\\x0a2、如果是可在线编程的,可以用ISP直接进行烧录。\\x0d\\x0a3、如果不是可在线编程的,将单片机芯片,放入编程器,然后烧录。\\x0d\\x0a注意:编译和烧录时,都要选择和单片机芯片一致的型号,否则会出错。\\x0d\\x0a如果找不到对应的...

一个单片机C语言程序设计?
while(1){} }

单片机中怎样用C语言实现 十进制数化成1
main(){ unsigned char dat,i,bin[8];for(i=0;i<8;i++){ bin[i]=dat%2;dat=dat\/2;} }

单片机c语言编程?
你应该先学习C语言。你可以读谭浩强和单片机的书,循序渐进。别担心。基础好,什么都能说。如果你没学过微机原理,建议你先学完再买本上海马超的书,一周就能看懂了~不认同无意义的光。《C编程》确实创造了一时的辉煌,这种辉煌很可能会延续下去,但不代表就是最好的。这本书之所以流行,是因为当时没...

C语言怎么写进单片机
1:先把写好的C语言进行编译,生成*.hex或*.bin文件,推荐用keil C。然后:1:根据你单片机的型号买一个烧录器,与PC连接好后,把单片机放在烧录器的插座上(看你的单片机封装,新手尽量用DIP的),根据烧录器软件提示把上述文件烧到单片机里,缺点:价格较高 2:用下载线,用法与烧录器差不多,...

单片机 用C语言怎么编程!
void main(void) \/\/主函数名 { \/\/这是第一种注释方式 unsigned int a; \/\/定义变量a 为int 类型 \/ 这是第二种注释方式 \/ do{ \/\/do while 组成循环 for (a=0; a<50000; a++); \/\/这是一个循环 P1_0 = 0; \/\/设P1.0 口为低电平,点亮LED for (a=0; a<50000; a++); \/\/...

单片机怎么用c语言设置I\/O口输入或输出
例如:P3M0=0;P3M1=127;\/\/0-6推挽输出 P1M0=0;P1M1=255; \/\/all 推挽输出 而51单片机的所有IO引脚,在启动后默认都是1。因此,如之前没有对此引脚进行过置0操作的话,可以直接读该引脚。但为了保险起见,也为了使程序通用、可移植,最好在读取之前对此引脚置1。

单片机怎么用C语言处理接收的数据
根据你的要求这两个程序很简单,甲机作为发送端,用一个按键作为启动(低电平有效),按一下发送4个字节数据。乙机作为接收端,P0到P3低电平点亮灯。两机的晶振选择11.0952MHz。 甲机程序:#include<reg52.h> define uchar unsigned char define uint unsigned int sbit key=P1^0;\/\/定义IO口作为...

单片机程序 用C语言编程
主函数里添加 struct timer second;在你的getint函数里添加计时器 second.expire=N;second.function= getint;second.expire=N;add_timer(second);就会实现N秒自动执行你的getint函数 在函数里对灯操作 void getint(){ for(次数){ set_gpio(led_gpio,ON);MDELAY(1000);set_gpio(led_gpio,OFF);...

阳春市18649199738: 51单片机用c语言怎么让i得到一个0 - 15的随机数 -
泰包葡醛: 启动计数器0,将TL0的值%16即可得到!static unsigned char random=5; //再次运行时值已改变.char i; TMOD= 0x20; TR0 =1; for(i=0;i<random; i++) ;//运行一段时间 ramdom *= TH0; random %=16;

阳春市18649199738: 单片机怎么用c语言设置I/O口输入或输出 -
泰包葡醛: IO口的输入输出是通过对单片机寄存器的配置来实现的.C51的单片机IO口本来就是双向的不需要设置.STM32单片机的IO口用C语言的设置方法如下:void LED_Config(void) { GPIO_InitTypeDef GPIO_Structure; RCC_APB2PeriphClockCmd(...

阳春市18649199738: 51单片机经过计算得到一个数字,然后在相应的区间会产生一个输出,哪位高手帮忙写一下,用C写. -
泰包葡醛: 通过if else指令即可实现int i;//用于存放计算结果的变量i //计算 if(i<6) {//第一个区间执行的程序 } else if(i<11) {//第二个区间执行的程序 } else if(i<16) {//第三个区间执行的程序 }

阳春市18649199738: 单片机I/O口,C语言怎么设置输入? -
泰包葡醛: 1、单片机的IO口缺省时一般都是双向,既可以是输入又可以是输出,C语言中判断这个口是输入还是输出要看表达式的形式,比如: sbit key=P1^0; if(key==1).....这里是作为输入的,因为是读入,再判断值 key=1;这里是作为输出,因为直接给其赋值.2、例程:P3M0=0;P3M1=127;//0-6推挽输出P1M0=0;P1M1=255; //all 推挽输出 而51单片机的所有IO引脚,在启动后默认都是1.因此,如之前没有对此引脚进行过置0操作的话,可以直接读该引脚.但为了保险起见,也为了使程序通用、可移植,最好在读取之前对此引脚置1.

阳春市18649199738: 如何用c语言编程实现c51单片机中从串口接收一个字符串? -
泰包葡醛: 可以的,定义一个缓冲区(数组)接收,到时单片机把字符串顺序处理一下就行了,一般/n来代表字符串的结束标志.

阳春市18649199738: 51用c语言编程,怎么把两个二进制数组合成一个数? -
泰包葡醛: unsigned char n1=0x03; //11 unsigned char n2=0; //00 n1=n1n2|=0x03; 用移位操作就可以完成

阳春市18649199738: 如何用c语言让at89s51单片机产生一个时钟脉冲 -
泰包葡醛: #抄include<reg51.h>sbit out = P1^0; void Init(void) {TMOD = 0x01; //十六位定时器TH0 = 60000/256; //定时器计数器赋值,12MHz晶振5.5ms一次中zhidao断TL0 = 60000%256;ET0 = 1; //开定时器0中断允许PT0 = 0; //中断优先级为0...

阳春市18649199738: 51单片机(c语言) 怎么把一个变量的某个位分离出来(假如定义一个char型变量a,我想把a的5 -
泰包葡醛: 定义一个掩码,让你的变量a和掩码做与运算就行了,比如你想把低4位分离出来,掩码就是0x0F,假如分离后的变量是b,那么b=a&0x0F,低5位相应的掩码就是0x1F,

阳春市18649199738: 89c51单片机编程计算1+3+5……+99的和,我是一个初学者,有会的大哥大姐谢谢了 -
泰包葡醛: 1,如果你只有软件,只做计算,那么再main函数下定义一个变量i,类似c语言编程,做一个循环累加.在keil的调试窗口中监测i的值.(这样的操作没有什么意义,用c,vb也可以做,不要用89c51了)2,如果你是有硬件的,当然要有8位数码管把数值显示出来.就要具备BCD码知识,8位共阴或共阳数码管知识,以及必要的电路知识(能点亮8为数码管).等等,你要加油哦!

阳春市18649199738: 单片机用C语言的基础 -
泰包葡醛: 单片机的外部结构:1、 DIP40双列直插;2、 P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平)3、 电源VCC(PIN40)和地线GND(PIN20);4、 高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位)5、...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网