
void main()
{uchar tab[]={}//定义数码管
EX0=1;
EA=1;
IT0=1;
while(1)
{P1=tab[m];}
}
void into()interrupt 0
{m++;
while(INT0==0);
if(m==10)m=0;}
程序大概是这样,因为使用手机,不方便输入!
你的问题是这样的
你每次返回之前应该把相应的扫描线也置高
否则程序第二次执行的时候 就会扫描错误
f(PinA==FALSE)
PinA=TRUE;
Pin2=TRUE; ///////
return 2;}
相信很多初学者都有同样的疑问,也有同样的希望。就是用C++语言来写单片机程序的源代码。现在我来解释一下单片机的源代码程序几乎没有人用C++来写的。
1 假设一下你现在用C++写完了一个程序代码。那么你要让单片机认识必须要编译吧,对吧 。请问你有合适的编译软件来编译你的代码吗?
2 就算有编译器能编译,你能保证它的代码效率一定能给单片机用吗?
单片机的ROM是K级的水平,执行指令的速度也远远小于PC。绝对不能和PC机相比的。这个就决定了单片机编程时很多时候要考虑它的代码效率和代码大小问题。所以一般情况下对于单片机编程我们之用汇编语言或者C语言。就算是用C写程序也要注意代码的效率等问题。
还有就是只有很大型的项目及应用程序开发才有可能有C++来写程序。一般的系统文件,应用程序都是用C来写的。有的系统代码甚至要用汇编语言来写。
举个生活中的例子:如果你从家里去公司上班你一般的出行方式是什么?
1坐公车 2骑车 3自己开车 4坐地铁 5走过去。如果谁说他是做直升飞机去上班的。那要么这个人脑子不正常,要么就是太有钱了炫富。如果你要打苍蝇用苍蝇拍子就行了。如果要你用巡航导d来打苍蝇,你认为可能吗?
所以我们单片机写程序的话一般就是汇编语言和C语言。几乎没有人用C++语言的。
:
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN:
MOV 50H, #0
MOV 51H, #0
MOV 52H, #0
MOV R0, #60H
MOV R2, #100
LOOP:
MOV A, @R0
JNZ FU
INC 52H ;0个数加一
SJMP NEXT
FU:
JNB ACC0, ZH
INC 51H ;负数个数加一
SJMP NEXT
ZH:
INC 50H ;正数个数加一
NEXT:
INC R0
DJNZ R2, LOOP
SJMP $
END
一般都用Keil来编的,当然还有其他软件。编写的程序是asm后缀的,经编译后形成hex文件,这个程序文件是51单片机可以识别的,载到单片机里面就可以执行的了。用C语言编出来的是高级语言,还要变成汇编语言。
以上就是关于利用51单片机控制一位七段数码管。全部的内容,包括:利用51单片机控制一位七段数码管。、51单片机键盘程序、用c++怎么编写51单片机程序,可以这么样编写吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)