㈠ 关于MCS51单片机C语言编程的问题,自增++与自减--运算不能实现
left=left++;
你见过哪位先人写过这样的代码?
一般都是这样的形式left++;作为单 条语句。
其它还是少用为妙。
注意前缀还是后缀的区别。这语句有太多的陷阱了。网上关于C语言的书非常的丰富,关于C语言的源代码也是极多的,自己找来看看吧。
㈡ 在单片机中如何用8个发光管演示出8位二进制数字自减过程(用c语言)
#include"reg51.h"
voiddelay(unsignedintms)
{
unsignedchari;
while(ms--)for(i=110;i--;i>0);
}
//-------------------------
voidmain()
{
unsignedcharabc=0;
while(1){
P1=abc;//在P1口外接8个LED,低电平发光.
abc++;//加,负逻辑将显示为自减.
delay(500);//延时,供观察现象.
}}
=============================================
要求由最高位P0^0作为二进制的最高位。
这个新要求,可以在焊接LED器件的时候进行调整。
更改一下程序,也不难,如下:
#include"reg51.h"
unsignedcharbdataabc=0,bbb;
sbita0=abc^0;
sbita1=abc^1;
sbita2=abc^2;
sbita3=abc^3;
sbita4=abc^4;
sbita5=abc^5;
sbita6=abc^6;
sbita7=abc^7;
sbitb0=bbb^0;
sbitb1=bbb^1;
sbitb2=bbb^2;
sbitb3=bbb^3;
sbitb4=bbb^4;
sbitb5=bbb^5;
sbitb6=bbb^6;
sbitb7=bbb^7;
voiddelay(unsignedintms)
{
unsignedchari;
while(ms--)for(i=110;i--;i>0);
}
voidmain()
{
while(1){
b0=a7;
b1=a6;
b2=a5;
b3=a4;
b4=a3;
b5=a2;
b6=a1;
b7=a0;
P1=bbb;
//P1=abc;//在P1口外接8个LED,低电平发光.
abc++;//加,负逻辑将显示为自减.
delay(500);//延时,供观察现象.
}}
㈢ 单片机 用汇编语言怎么编写两个按键控制一个LED自加自减的程序
;共阳数码管
COUNTEQU30H
SP1EQUP3.6
SP2EQUP3.7
ORG0
AJMPMAIN
ORG30H
MAIN:MOVCOUNT,#0
MAIN1:MOVA,COUNT
MOVB,#10
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP2,A
MOVA,B
MOVCA,@A+DPTR
MOVP1,A
K1:JBSP1,K2
JBSP1,$
LCALLDLY
JNBSP1,$
INCCOUNT
MOVA,COUNT
CJNEA,#100,MAIN1
LJMPMAIN
K2:JBSP2,K1
JBSP2,$
LCALLDLY
JNBSP2,$
MOVA,COUNT
CJNEA,#0,DEC1
MOVCOUNT,#100
DEC1:DECCOUNT
MOVA,COUNT
CJNEA,#100,MAIN1
LJMPMAIN
DLY:MOVR7,#20
D1:MOVR7,#248
DJNZR7,$
DJNZR6,$-4
RET
TAB:DB0C0H,0F9H,0A4H,0B0H,99H,092H,82H,0F8H,080H,090H
㈣ STM8单片机有MATH函数吗,冥函数怎么做运算
math是C语言库函数,跟单片机类型关系不大,只要编译器支持C语言,就可用这个库
㈤ C51单片机按键问题,请问一个按键按下i就自加到9后就停止加了,按键松开后就自减,减到0就停止,还
当然可以。判断端口状态为0时就加1,加到9停止,不要加后沿检测;端口状态为1时就减1,减到0停止
㈥ C51单片机初学者提问
我认为这个操作是循环移位,就是将P2的最高位放到最低位,其余位向前移动一位。假设 P2 = 10010101
P2<<1 : 00101010
P2>>7 : 00000001
P2<<1|P2>>7 :00101011
与P2相比就相当于最高位放到最低位,其余位前移了,就相当于循环移位了。
如果还有什么问题可以去http://www.kingst.org网站提问,有很多人会给你回答的,我觉得挺不错的
㈦ 51单片机c语言math.h
这个头文件,是数学函数集合,主要是三角函数和对数、指数等函数。
/*--------------------------------------------------------------------------
MATH.H
Prototypes for mathematic functions.
Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/
#ifndef __MATH_H__
#define __MATH_H__
#pragma SAVE
#pragma REGPARMS
extern char cabs (char val);
extern int abs (int val);
extern long labs (long val);
extern float fabs (float val);
extern float sqrt (float val);
extern float exp (float val);
extern float log (float val);
extern float log10 (float val);
extern float sin (float val);
extern float cos (float val);
extern float tan (float val);
extern float asin (float val);
extern float acos (float val);
extern float atan (float val);
extern float sinh (float val);
extern float cosh (float val);
extern float tanh (float val);
extern float atan2 (float y, float x);
extern float ceil (float val);
extern float floor (float val);
extern float modf (float val, float *n);
extern float fmod (float x, float y);
extern float pow (float x, float y);
#pragma RESTORE
#endif
㈧ 单片机如何用两个按键控制8位输出的自加自减
很简单
比如你定义的数是AA,
汇编的是这样写的:
MAIN;JB P3.0 ,S1
MOV A, AA
INC A
MOV AA,A
S1:JB P3.1 ,MAIN
MOV A, AA
DEC A
MOV AA,A
JMP MAIN
C语言的
if(P3^0==0){
delay(50);
if(P3^0==1){
aa++;
if(aa>=10)aa=0;
}}
if(P3^1==0){
delay(50);
if(P3^1==0){
aa++;
if(aa<=0)aa=9;
}}
㈨ 单片机 浮点运算
用keil C51,加入
#include<math.h>
就行了。
但你要注意了!要进行浮点运算,你的程序存储器一定要大,因为一个乘除法需要三、四百个字节,开方需要七百多字节呢,而且好像算得不太准。慎用!
㈩ 单片机数码管通过一个按键如何让他自加自减
设计电路,编写程序。