免电源的电话使用计时器
------------------------------------------------------------
INIT:
000B MOV A,@0X00
000C MOV P6,A ;PORT 6 = 0
000D IOW 0X0E ;DISABLE WDT
000E IOW P5 ;PORT 5 OUTPUT
000F IOW P6 ;PORT 6 OUTPUT
0010 MOV A,@0X01
0011 IOW 0X0F ;ENABLE TCC_INT
0012 MOV A,@0X05 ;1/64
0013 CONTW
0014 ENI
;SCAN -----------------------------------------------------------------------
SCAN:
0015 JMP SCAN
这程序的目的是欲了解TCC中断能否满足秒的进位问题。
程序说明:
中断子程序:
从0008--000A行为简单的中断子程序,每做一次就将PORT6反向一次,离开前顺便清除中断FLAG。
微控制器起始设定程序:
起始设定是每个程序一开始必须做的,主要功能是将一些会用到的硬件部份做一起始状态的设定以发挥充分的掌控能力。
从000B~0013行为起始设定程序
000B MOV A, @0x00 ;将A内放置零
000C MOV P6, A ;将P6内放置零
000D IOW 0x0E ;将WDT功能除能
000E IOW P5 ;将P5设为OUTPUT
000F IOW P6 ;将P6设为OUTPUT
在EM78系列中有所谓的MEMORY及I/O两大空间,一些MEMORY空间的寄存器处理时可用MOV、BS、BC、XOR、OR……等指令,而另一些I/O空间的控制寄存器处理时可用IOW、IOR等指令,这点不要弄混了才是。
0010 MOV A, @0x01 ;将A内放置1
0011 IOW 0x0F ;仅致能TCC中断能力
在EM78156中原本能有WDT中断、外部中断及TCC中断等三种能力,如今我们只保留TCC中断来使用。
0012 MOV A, @0x05 ;将A内放置5
0013 CONTW ;设定TCC控制寄存器
0014 ENI ;启动中断能力
TCC是一个很好用也很复杂的硬件线路,下面仅列出局部有关的地方于附录供大家参考。由于系统时基是采用32768Hz的石英晶体,故本制作之准确度应该不被怀疑才是。当选用2 CYCLE及2 CLOCK的状态时,若再将TCC设成除以64,那刚好每一秒钟TCC发生溢位中断一次。
扫描程序:
从0015--0015行,总共1行,仅做跳跃自身之用。
效果观察:
程序写到此时,倘若您手上的线路没焊错的话,那么您将会看到七字显示屏幕显示8并且以1秒亮1秒灭的速度亮灭着。
到此总共用315个指令,恭喜您的宝宝已经有心跳产生了。
2.具有七段显示能力:
有了秒的心跳之后,接下来就是加强扫描能力,使它有着正确的显示数字的能力。
TC1.ICE
;
; FILE NAME:TC1.DT
; DATE :1999,5,5
; BY :HWANG JYN_GUO
;
; FUNCTION DESCRIPTION:
; USING TCC TO GET 1 SEC INTERRUPT
; 32768/(2*64*256)= 1 SEC
; CRYSTAL&nbs
; 2 CYCLE AND 2 CLOCK MODE
;
PC == 02
RF == 03 ;STATUS
FZ == 02 ;FLAG OF ZERO
FC == 00 ;FLAG OF CARRY
P5 == 0X05&nb 《免电源的电话使用计时器(第5页)》
本文链接地址:http://www.oyaya.net/fanwen/view/146413.html
INIT:
000B MOV A,@0X00
000C MOV P6,A ;PORT 6 = 0
000D IOW 0X0E ;DISABLE WDT
000E IOW P5 ;PORT 5 OUTPUT
000F IOW P6 ;PORT 6 OUTPUT
0010 MOV A,@0X01
0011 IOW 0X0F ;ENABLE TCC_INT
0012 MOV A,@0X05 ;1/64
0013 CONTW
0014 ENI
;SCAN -----------------------------------------------------------------------
SCAN:
0015 JMP SCAN
这程序的目的是欲了解TCC中断能否满足秒的进位问题。
程序说明:
中断子程序:
从0008--000A行为简单的中断子程序,每做一次就将PORT6反向一次,离开前顺便清除中断FLAG。
微控制器起始设定程序:
起始设定是每个程序一开始必须做的,主要功能是将一些会用到的硬件部份做一起始状态的设定以发挥充分的掌控能力。
从000B~0013行为起始设定程序
000B MOV A, @0x00 ;将A内放置零
000C MOV P6, A ;将P6内放置零
000D IOW 0x0E ;将WDT功能除能
000E IOW P5 ;将P5设为OUTPUT
000F IOW P6 ;将P6设为OUTPUT
在EM78系列中有所谓的MEMORY及I/O两大空间,一些MEMORY空间的寄存器处理时可用MOV、BS、BC、XOR、OR……等指令,而另一些I/O空间的控制寄存器处理时可用IOW、IOR等指令,这点不要弄混了才是。
0010 MOV A, @0x01 ;将A内放置1
0011 IOW 0x0F ;仅致能TCC中断能力
在EM78156中原本能有WDT中断、外部中断及TCC中断等三种能力,如今我们只保留TCC中断来使用。
0012 MOV A, @0x05 ;将A内放置5
0013 CONTW ;设定TCC控制寄存器
0014 ENI ;启动中断能力
TCC是一个很好用也很复杂的硬件线路,下面仅列出局部有关的地方于附录供大家参考。由于系统时基是采用32768Hz的石英晶体,故本制作之准确度应该不被怀疑才是。当选用2 CYCLE及2 CLOCK的状态时,若再将TCC设成除以64,那刚好每一秒钟TCC发生溢位中断一次。
扫描程序:
从0015--0015行,总共1行,仅做跳跃自身之用。
效果观察:
程序写到此时,倘若您手上的线路没焊错的话,那么您将会看到七字显示屏幕显示8并且以1秒亮1秒灭的速度亮灭着。
到此总共用315个指令,恭喜您的宝宝已经有心跳产生了。
2.具有七段显示能力:
有了秒的心跳之后,接下来就是加强扫描能力,使它有着正确的显示数字的能力。
TC1.ICE
;
; FILE NAME:TC1.DT
; DATE :1999,5,5
; BY :HWANG JYN_GUO
;
; FUNCTION DESCRIPTION:
; USING TCC TO GET 1 SEC INTERRUPT
; 32768/(2*64*256)= 1 SEC
; CRYSTAL&nbs
p;MODE 32768 Hz
; 2 CYCLE AND 2 CLOCK MODE
;
PC == 02
RF == 03 ;STATUS
FZ == 02 ;FLAG OF ZERO
FC == 00 ;FLAG OF CARRY
P5 == 0X05&nb 《免电源的电话使用计时器(第5页)》