51单片机,用汇编语言编写程序,10秒内对外部脉冲进行计数,并数出外部脉冲频率。求高手编写程序。

51单片机,用汇编语言编写程序,10秒内对外部脉冲进行计数,并数出外部脉冲频率。求高手编写程序。,第1张

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP T0ISR

ORG 0030H

MAIN:

MOV TMOD,#51H

MOV TH0,#HIGH(65536-50000)

MOV TL0,#LOW(65536-50000)

MOV TH1,#0

MOV TL1,#0

SETB TR0

SETB TR1

SETB ET0

SETB EA

CLR A

MOV R2,#0

LOOP:

SJMP $

T0ISR:

CLR TR0

MOV TH0,#HIGH(65536-50000)

MOV TL0,#LOW(65536-50000)

SETB TR0

INC A

CJNE A,#20,T0E

MOV A,#0

INC R2

CJNE R2,#10,T0E

MOV R2,#0

MOV R1,TH1

MOV R0,TL1

MOV B,#10

LCALL DIV16

MOV P1,R0

T0E:

RETI

;R1:R0/B=R1:R0

DIV16:

MOV R7,#08H

MOV B,#6

DIV1:

CLR C

MOV A,R0

RLC A

MOV R0,A

MOV A,R1

RLC A

MOV R1,A

CLR C

SUBB A,B

JC DIV2

MOV R1,A

INC R7

DIV2:

DJNZ R7,DIV1

RET

END

可以。

#include <mathh>

struct Point{double x;doulbe y;};//结构体。

Point pic[4];//四个点构成的图形

int i;

for(i=0;i<4;i++)//读入四个点坐标,其中左上为pic[0],按照顺时针计数

{scanf(" %d %d", &pic[i]x,&pic[i]y );

double distance(Point& p1,Point&p2)

{return sqrt((p1x-p2x)(p1x-p2x)+(p1y-p2y)(p1y-p2y));

}

//判断是否为矩形

bool rec()

{

if(distance(pic[0],pic[2])==distancer(pic[1],pic[3])&&

distance(pic[0],pic[2])distance(pic[0],pic[2])==(distancer(pic[0],pic[1])distance(pic[0],pic[1])+distance(pic[1],pic[2])distance(pic[1],pic[2])))

return true;

else return false;

}

//判断是正方形

bool dec()

{if(rec()&&distance(pic[0],pic[1])==distance(pic[1],pic[2]))

return true;

else return false;

}

//其他类型就不用说了吧,不是矩形,不是正方形自然就是其他类型了

#include<stdioh>

int main()//这里不需要分号 正确的程序如下:

{

int power(int x,int n); //声明要调用的函数。

int x,n,s; //如果是相同类型的变量,使用逗号分隔,最后才是分号

scanf("%d%d",&x,&n); //需要输入啊,或者赋值啊

s=power(x,n); //每个语句后面用分号结束

printf("%d",s); //输出结果。

return 0; //要有return,则需要返回int

}//这里不需要分号

int power(int x,int n) //调用的函数和函数的声明一直,且需要指出参数类型。

{

int i,p=1; //

for(i=1;i<=n;i++) //for里面是分号间隔。

p=px;

return p;

} //这里不需要分号

作者:金蝶中间件公司CTO袁红岗

不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。

1 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。

2 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻**也是一个很好的途径。

3 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。

4 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。

5 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。

6 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。

7 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一致,那就更加糟糕。

8 韧性和毅力。这也许是"高手"和一般程序员最大的区别。A good programming is 99 weat and 1ffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。

1

4

2

D

3

4

4

3500000

5

2500000

6

b

7

c

8

c

9

c

10

0

11

(x>=50)&&(x<=100)

12

(y%100)||(y%4))

13

a

14

逻辑

16

c

17

b

18

-1,11

19

32

20

20,20

以上就是关于51单片机,用汇编语言编写程序,10秒内对外部脉冲进行计数,并数出外部脉冲频率。求高手编写程序。全部的内容,包括:51单片机,用汇编语言编写程序,10秒内对外部脉冲进行计数,并数出外部脉冲频率。求高手编写程序。、程序 高手进!!! 用C语言能解决这个问题吗、C语言程序:高手们,帮我看个题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9528327.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存