51单片机中如何用C语言实现两个测量量的相加减

作者&投稿:塔萧 (若有异议请与网页底部的电邮联系)
51单片机C语言编程时能不能比较两个数的大小,能不能进行加减法运算~

完全没问题

这个可以用定时器来做,比如检查某键,按键时间超过2秒后一个变量开始累加知道键释放为止。实现方法如下:
#include
#define uint unsigned int
#define uchar unsigned char
uint v=0,time=0;
sbit key=P1^0;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time++;
if((key==0)&&(time>40)v++; //如果按键时间超过2秒且键未释放,变量+1
if(key==1)time=0; //如果键释放,时间复位
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}

51单片机中用C语言实现两个测量量的相加减,是最简单的计算了,设两个测量的数据分别为x1,x2,总量为x0,则相加计算,x0=x1+x2,相减计算,x0=x1-x2。

C语言简单,直接写公式 如 X=x1+x2
只需设置好合适的变量类型,防止溢出即可

试试看。。

求用C语言编程实现51单片机的LED灯移动
答:2:P0=led3;led3=(led3<<1)|0x01;if((led3&0xf0)==0x30)led3=0x3e;if((led3&0xf0)==0x70)led3=0x7c;if((led3&0xf0)==0xf0)led3=0xf8;break;case 3:P0=led3;led3=(led3>>1)|0x80;if((led3&0x0f)==0x0c)led3=0x7c;if((led3&0x0f)==0x0e)led3=0x3e;...

51单片机用c语言怎么写延时函数?
答:现在通过上面两个数据可以得出:单片机每执行一次自减所需要的时间是1/12M *100(s),即1/120000 s,逆向计算一下,每1ms需要自减多少次?120次对吧。所以一个简单的延时功能就诞生了,我们只需要自减120次,就可以延时1ms,如果我们要延时50ms呢,那就自减50*120=6000次。那么在程序上如何表达...

51单片机 c语言编程 4*4矩阵键盘如何实现等待按键松开功能?
答:if(key_l!=0xf0){ delay_nms(5);key_l=P1;……在第4行加 while( key_l!=0xf0 );等待按键释放,按键不放开就一直在此处等待,知道按键释放,此语句执行完。再往下执行

在51单片机中用c语言keil写程序实现用一个按键控制8个灯的亮和灭(按...
答:include<reg52.h> sbit key = P1^0;//按键 void delay(unsigned int time){ unsigned int i,j;for(i=0; i<time; i++)for(j=0; j<1000; j++){;} } void mian(){ unsigned int temp =0x00;while(1){ if(key == 0){ delay(20);//适当延时,消除按键抖动,自己看实际情况...

51单片机中,指针函数 在C语言程序 如何使用?
答:你好,比较方便的实现方式是在函数的外部申请数组;在调用函数的时候传入数组的地址进行操作。如果一定要在子函数内部申请空间并返回地址,那么需要在子函数内部动态申请内存空间。具体的方法一般是使用标准库中的malloc函数。对于c51函数库,参考这个链接:http://www.keil.com/support/man/docs/c51/c51_...

51单片机的c语言 左移右移怎么用?想用来控制流水灯,请帮忙写个完整的c...
答:include "reg51.h" // 包含头文件 define uchar unsigned char void delay02s(void) // 延时0.2s子程序 { unsigned char i,j,k;for ( i=2;i>0;i-- )for (j=200;j>0;j-- )for (k=250;k>0;k-- );} void main (void) // 主函数 { uchar i,j;...

51单片机设计两位计数器C语言
答:include "reg52.h"define uchar unsigned char define uint unsigned int define dataport P1 sbit s1=P2^0;sbit s2=P2^1;sbit s3=P2^2;sbit wei1=P2^4;sbit wei2=P2^5;signed char a=0;uchar TABLE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//延时子程序...

基于51单片机控制交通灯的电路图与C语言程序
答:因此,可加输出锁存器。在延时最后三秒时,要让黄灯进行闪烁,并同时显示数字(这一步在软件设计上很关键)。四、软件程序(C语言)以下是整个设计的软件程序,直接可以编译成*。Hex代码。通过以上电路,下载到单片机,可直接运行。//***// //程序名:十字路口交通灯控制 //编写人:黄庭剑 //初写...

51单片机C语言程序4个独立按键实现对数码管数字显示的加减清零等_百度...
答:#define uchar unsigned char#define ulint unsigned long#define Frequency 10//定时器中断时间 = f*T#define Time 1//一个周期1ms#define TubeNumber 6//数码管个数#define KeyLine 4//矩阵按键行数 #define KeyColumn 4//矩阵按键列数 //数码管真值表uchar code LED_Number[]={0x0C,0xF9...

...如何实现两个键同时按下的时候显示其他数字,用c语言程序实现...
答:定义一个按键缓冲区 用普通的按键扫描程序,当扫描到有按键按下的时候。按键键的值写入缓冲区。继续扫描直到完成。然后返回缓冲区地址就可以得到多个按键的数据了。这样只要定义16字节的缓冲区全部按键都能检测到。(一般不需要那么多6个足够)还有一种方式 是 如果只返回2个按键的话。可以这样 常规按键...