㈠ 關於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>
就行了。
但你要注意了!要進行浮點運算,你的程序存儲器一定要大,因為一個乘除法需要三、四百個位元組,開方需要七百多位元組呢,而且好像算得不太准。慎用!
㈩ 單片機數碼管通過一個按鍵如何讓他自加自減
設計電路,編寫程序。