51单片机程序定时器怎么这么不准确啊,求高手指点!

51单片机程序定时器怎么这么不准确啊,求高手指点!,第1张

这是编译器造成的,你最好用Debug模式看看生成的汇编代码是什么摸样,比较一下你那三种方 式给TH0和TL0赋的是什么样的值。

这是我试验的结果:

4: TH0=-780/256;

C:0x0003 758CFD MOV TH0(0x8C),#0xFD

5: TL0=-780%256;

C:0x0006 758AF4 MOV TL0(0x8A),#0xF4

6: TH0=-516/256;

C:0x0009 758CFE MOV TH0(0x8C),#0xFE

7: TL0=-516%256;

C:0x000C 758AFC MOV TL0(0x8A),#0xFC

8: TH0=(65536-516)/256;

C:0x000F 758CFD MOV TH0(0x8C),#0xFD

9: TL0=(65536-516)%256;

C:0x0012 758AFC MOV TL0(0x8A),#0xFC

看出差别了吧?使用-780时给T0赋值0xFDF4,使用第三种方式赋值为0xFDFC,这两个数字相近,所以结果基本正确。但是使用-516时赋值的0xFEFC,这差别就大了,结果就是不正确。

一般建议用TH0=(65536-516)/256 ;TL0=(65536-516)%256;这种方式,保证不出问题。

1

确保安装了Java。在命令行中输入 java -version,如果没有最新版本,先更新,再继续。

2

使 jar文件可执行。

jar可以通过整理Java程序的类别文件来变为可执行文件,而编译器或Java虚拟机可以识别这些格式。jar文件是通过javaw(Java应用程序管理器)执行的。你需要设置jar文件中的应用程序接入点(即含有程序主功能的文件类别)。你需要通过清单文件(Manifest

file)来设置接入点。步骤如下:

Java工具会自动把meta-inf/manifestmf设置为jar的文件路径。创建新的清单文件的时候,名字会创建为 "Manifest-Version: 10, Created-By: 160 (Sun Microsystems Inc)"

创建manifest addition txt 文件。输入 Main Class: [Package Name][Class Name], ,把[Package Name]、[Class Name]替换为你的套件名称和类别名称(即创建了属性值对)不要忘了最后加一行空行。

进入这个终端指令程序,调整清单文件,使其包括应用程序的接入点,把以下代码的中括号部分改为你程序的信息。 jar cfm [jar 文件名] [附加清单文件名] [导入文件]

重新看一下清单文件。设置了接入点以后,会是 "Manifest-Version: 10,Created-By: 160 (Sun Microsystems Inc), Main Class: [套件名称][类别名称]"

你也可以用jar工具设置接入点。不过这样会覆盖清单文件中主类别属性。输入下面代码(把中括号部分替换) jar cfe [jar 文件名] [套件名称] [带主功能的种类名称

3

运行 jar 文件 。用以下代码运行 jar(java应用程序运行的主要方法): java -jar [Jar 文件名]

4

使得可以双击执行 jar程序(可选)。 要双击打开jar文件的话,需要把 javaw (java 应用程序管理器)可执行程序文件路径改变,输入以下代码: C:\Program Files\Java\j2rexyz\bin\javawexe" -jar "%1" %

以上就是关于51单片机程序定时器怎么这么不准确啊,求高手指点!全部的内容,包括:51单片机程序定时器怎么这么不准确啊,求高手指点!、如何运行.jar形式的Java程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/10079745.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存