导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[求助]关于系统时间[bang1981]

 *第15762篇: [求助]关于系统时间

  
楼 主:bang1981 2003年8月25日10:24
 [求助]关于系统时间
请教一下:用汇编实现系统的时间设置,并且要精确到毫秒,该调用什么中断或者可以有什么方法实现?多谢!!!
  
2楼:红心j 2003年8月25日10:36
 定时器中断
定时器中断
  
3楼:bang1981 2003年8月25日13:11
 兄台:
       您好,可以具体一

兄台:
       您好,可以具体一点吗?谢了
  
4楼:红心J 2003年8月25日13:39
 ORG 0000H
LJMP STAR

ORG 0000H
LJMP START
ORG 000BH
LJMP A_T0
ORG 0030H
START:
MOV TMOD,#01H   ;T0设置为16位定时器
MOV TH0,#XXH      ;设初值
MOV TL0,#YYH
SETB ET0              ;允许T0中断
SETB EA                ;总中断允许
SETB TR0              ;启动定时器T0
......                     ;其他主程序
A_T0:
MOV TH0,#XXH      ;重置初值
MOV TL0,#YYH
......                      ;中断后的应用程序
RETI
  
5楼:chenzuan 2003年8月25日14:43
 我可以提供你一种思路.可以使用定时中断.
我可以提供你一种思路.可以使用定时中断.如果你选用时钟芯片的话,使用时钟中断.我觉得更好.
  
6楼:alvinyang 2003年8月29日15:05
 我个人比较欣赏前一种方法
可以节省成本 你知道现在成本就是商家的命啊
而且通过软件方法 你可以拥有任意多的定时器 根本不存在资源浪费问题
  
7楼:bang1981 2003年8月25日14:57
 我的具体要求是:在上位机上用的是VB来实
我的具体要求是:在上位机上用的是VB来实现的,他有一个结构能读取系统时间,并且能精确到毫秒,就是显示的格式为:hh:mm:ss:ms,其中ms的范围是1~999,可以通过文本让他实时显示,下位机通过读取上位机发来的命令,从中取出时间这一部分,再加上一段网络延时,设置为下位机系统时间,下位机用汇编实现。请教!!
  
8楼:chan_yo 2003年8月25日16:04
 如此看来,你仅仅只要接收数据就可以了
把相应的时间数据存放到某个固定的地址空间,但需要的时候取出就可以了
  
9楼:bang1981 2003年8月25日16:19
 现在的问题是:
       取到数据

现在的问题是:
       取到数据之后,怎样根据取到的数据,调用什么中断或者怎样编程实现。取数据,我已经做好了,上下位机之间的命令有一定的格式,到时候读取固定字节内的数据就可以了。
  
10楼:chan_yo 2003年8月25日16:51
 你竟然取到了数据,就是说你已经得到了时间
看来,你是要解决时间校准的问题。你根据收到的数据,然后把它放入固定的地址,同时
启动计数器,进行计时,当到1s的时候,把放入时间秒的存储器内容加1。
至于如何启动计数器,进行计时。上面的那位老兄都已经说得很详细了。照做就可以了
  
11楼:bang1981 2003年8月25日16:59
 兄弟:
       不是秒,秒我知道

兄弟:
       不是秒,秒我知道放那里,而是问毫秒放在哪里?
  
12楼:chan_yo 2003年8月25日17:12
 毫秒也是一样地
  
13楼:bang1981 2003年8月25日17:30
 晕,要是可以,我也不会在这里求人啊!

晕,要是可以,我也不会在这里求人啊!
既然你说得那么容易,那肯定你做来就比较简单了,可不可以请你帮我具体实现一下!谢谢了!
  
14楼:chan_yo 2003年8月26日08:56
 给你简单的程序,和红心J一样的
[[center]center][center] 
ORG 0000H
LJMP START
ORG 000BH      ;定时器0中断入口
LJMP A_T0
ORG 0030H
START:
MOV TMOD,#02H   ;T0设置8位定时器
MOV TH0,#38H      ;设初值A=2^8-200=56=38H
MOV TL0,#38H
SETB ET0              ;允许T0中断
SETB EA                ;总中断允许
SETB TR0              ;启动定时器T0
......                     ;其他主程序
A_T0:
MOV  R7=5          ;1000US=200US*5,晶振=12M
DJNZ  R7,R_COUNT;重新计数
AJMP  INTERUPT  ;处理中断,时间是1MS。
R_COUNT:
RETI
INTERUPT:
......                      ;中断后的应用程序

 
  
[/center][/center][/center]

  
15楼:guest 2003年8月26日10:26
 谢谢了
多谢,还有一点,我想知道设置定时器后对机器有没有什么负面的影响!!
  
16楼:chan_yo 2003年8月26日15:36
 进入中断处理的时候,要保护现场。
  
17楼:bang1981 2003年8月27日10:58
 chan_yo兄:
       请教

chan_yo兄:
       请教一下,在vb里面嵌入汇编的格式中我有些地方不明白,比如:
MachineCode(1) = &H8B       '  注释move ebp,esp
其中的&H8B是代表的什么?是某一条汇编语句的机器代码的存放地址吗?要是,为什么没有说明基地址,而只是偏移地址呢?多谢!!!
  
18楼:chan_yo 2003年9月4日10:09
 不好意思,我也不明白&H8B的意思,好像不应该有H的。
  
19楼:guest 2003年8月27日08:29
 恩,这个我知道,不过还是要谢谢你,以后要
恩,这个我知道,不过还是要谢谢你,以后要是有问题,还来找你!!!

>>>>>>对该主题发表你的看法

本主题贴数19,分页: [第1页]


[上一篇主题]:搭一个实时数据库有什么规则么

[下一篇主题]:win2000中:如何设置输入法:词频调整?