电子时钟程序用汇编语言编写

电子时钟程序用汇编语言编写,第1张

电子时钟?说的不明白,我自己编写的数码管现实的电子钟给你了

SDA BIT P36

SCL BIT P15

org 0000H

AJMP STAR

ORG 000BH

LJMP INT

STAR:

MOV PSW,#00H

MOV TH0,#3cH

MOV TL0,#0b0H

MOV TMOD,#01H

MOV R3,#14H

SETB ET0

SETB EA

setb p36

setb p15

MOV R0,#79H

MOV R1,#00H

READ:

LCALL READ_BYTE

MOV @R0,A

INC R0

INC R1

CJNE R0,#08H,READ

SETB TR0

;MOV 79H,#00H

;MOV 7AH,#00H

;MOV 7BH,#0AH

;MOV 7CH,#00H

;MOV 7DH,#0AH

;MOV 7EH,#00H

MAIN:

MOV DPTR,#TAB

MOV R0,#07H

MOV R1,#79H

JNB P32,JS

GO:

MOV A,@R1

MOVC A,@A+DPTR

MOV P0,A

MOV P2,R0

LCALL DELY

CJNE R0,#02H,GO1

AJMP MAIN

GO1:

DEC R0

INC R1

AJMP GO

INT:

PUSH ACC

DJNZ R3,NEXT

MOV R3,#14H

;MOV R3,#02H

INC 79H

MOV R4,79H

CJNE R4,#0AH,NEXT

MOV 79H,#00H

INC 7AH

MOV R4,7AH

CJNE R4,#06H,NEXT

MOV 7AH,#00H

INC 7BH

MOV R4,7BH

CJNE R4,#14H,NEXT

MOV 7BH,#0AH

INC 7CH

MOV R4,7CH

CJNE R4,#06H,NEXT

MOV 7CH,#00H

INC 7DH

MOV R4,7EH

CJNE R4,#02H,TWO

MOV R4,7DH

CJNE R4,#0eH,NEXT

mov 7dh,#0ah

AJMP ONE

TWO:

MOV R4,7DH

CJNE R4,#14H,NEXT

mov 7dh,#0ah

ONE:

INC 7EH

MOV R4,7EH

CJNE R4,#03H,NEXT

MOV 7EH,#00H

NEXT:

MOV TH0,#3CH

MOV TL0,#0B0H

;MOV TH0,#0feH ;检测

;MOV TL0,#0fbH

POP ACC

RETI

js:;按键检测

lcall del

jb P32,main

JNB P32,$

clr ea

CSH:

MOV R0,#7EH

MOV R1,#02H

STA:

MOV DPTR,#TAB

MOV A,@R0

MOVC A,@A+DPTR

MOV P0,A

MOV P2,R1

JNB P32,CLK1

JNB P33,CLK2

JNB P34,CLK3

AJMP STA

CLK3:

LCALL DEL

JB P34,STA

JNB P34,$

SETB EA

mov R0,#79h

MOV R1,#00H

WRITE:

lcall del

LCALL WRITE_BYTE

INC R0

INC R1

CJNE R1,#06H,WRITE

AJMP MAIN

CLK1:

LCALL DEL

JB P32,STA

JNB P32,$

DEC R0

INC R1

CJNE R1,#06H,STA

AJMP CSH

CLK2:

LCALL DEL

JB P33,STA

JNB P33,$

CJNE R1,#02H,THR

mov r3,7dh

cjne r3,#0eh,TMD2

tmd2:

jnc tmd

CJNE @R0,#02H,BUS1

MOV 7EH,#00H

AJMP STA

tmd:

cjne @r0,#01h,bus1

mov 7eh,#00h

ajmp sta

BUS1:

INC 7EH

AJMP STA

THR:

CJNE R1,#03H,FOR

MOV R3,7eH

CJNE R3,#02H,BUS2

CJNE @R0,#0dH,BUS3

MOV 7DH,#0AH

AJMP STA

BUS3:

INC 7DH

AJMP STA

BUS2:

CJNE @R0,#13H,BUS3

MOV 7DH,#0AH

AJMP STA

FOR:

CJNE R1,#04H,FIV

CJNE @R0,#05H,BUS6

MOV 7CH,#00H

AJMP STA

BUS6:

INC 7CH

AJMP STA

FIV:

CJNE @R0,#13H,BUS7

MOV 7BH,#0AH

AJMP STA

BUS7:

INC 7BH

LJMP STA

WRITE_BYTE:

CALL START

MOV A,#0A0H

CALL SENDBYTE;选通地址写入

CALL WAITACK

MOV A,r1;入24c02的地址

CALL SENDBYTE;将24c02的地址写入

CALL WAITACK

MOV A,@R0;可以传数据了

CALL SENDBYTE

CALL WAITACK

CALL STOP

RET

READ_BYTE:

CALL START;{

MOV A,#0A0H; 先写写入选通地址,再写读入地址,再写读入选通地址,再读?这样 *** 作的么?

CALL SENDBYTE;

CALL WAITACK; 我认为应该先写读入选通地址,再写读入地址,直接读?不行么?

MOV A,R1;

CALL SENDBYTE; 没资料了···再找找吧!

CALL WAITACK; }

CALL START; C语言也是这个意思,看样这人写的不错

MOV A,#0A1H;

CALL SENDBYTE

CALL WAITACK

CALL RCVBYTE

CALL STOP

RET

;-----------------------------------------------------

;从IIC总线上接收一个字节数据

;出口参数:A---接收数据存放在A中

;-----------------------------------------------------

RCVBYTE:

MOV R7,#08;一个字节共接收8位数据

CLR A

SETB SDA;释放SDA数据线

R_BYTE:

CLR SCL

NOP

NOP

NOP

NOP

SETB SCL ;启动一个时钟周期,读总线

NOP

NOP

NOP

NOP

MOV C,SDA;将SDA状态读入C

RLC A;结果移入A

SETB SDA;释放SDA数据线

DJNZ R7,R_BYTE;判断8位数据是否接收完全?

RET

;----------------------------------------------------

;向IIC总线发送一个字节数据

;入口参数:A---待发送数据存放在A中

;----------------------------------------------------

SENDBYTE:

MOV R7,#08

S_BYTE:

RLC A

MOV SDA,C

SETB SCL

NOP

NOP

NOP

NOP

CLR SCL

DJNZ R7,S_BYTE ;8位发送完毕

RET

;-----------------------------------------------------

;等待应答信号

;等待从机返回一个响应信号

;-----------------------------------------------------

WAITACK:

CLR SCL

nop

nop

nop

SETB SDA ;释放SDA信号线

NOP

NOP

nop

SETB SCL

NOP

NOP

NOP

MOV C,SDA

JC WAITACK ;SDA为低电平,返回了响应信号

CLR SDA

CLR SCL

RET

;----------------------------------------------------

;启动信号子程序

;----------------------------------------------------

START:

SETB SDA

SETB SCL

NOP

nop

nop

CLR SDA

NOP

NOP

NOP

NOP

CLR SCL

RET

;----------------------------------------------------

;停止信号子程序

;----------------------------------------------------

STOP:

CLR SDA

NOP

nop

nop

SETB SCL

NOP

NOP

NOP

NOP

SETB SDA

NOP

NOP

CLR SCL;

CLR SDA;

RET

DEL:

MOV R6,#0ffH

DL1:MOV R7,#022H

DL2:DJNZ R7,DL2

DJNZ R6,DL1

RET

DELY:

MOV R6,#4

D1:MOV R7,#248

DJNZ R7,$

DJNZ R6,D1

RET

TAB:

DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,0BfH,86H,0DBH,0CFH,0E6H,0EDH,0fdh,87H,0FFH,0EFH

END

其中包含IIC的部分可以不看,我是用来测试24C02的

接法:P0口段码,P1口接了三八译码器,p3的几个口是调时间用的

答:

没看太明白!感觉应该是一个时钟按键的扫描程序!前面的switch应该是扫描是否有按键被按下,并且置相应的标志位!后面的while语句可能是查询标志位然后相应按键!这可能是为了增加按键的多重更能吧!

呵呵!也不知道是不是这样!期待答案!

TAndo SOmori YOgasawara

(Institute of Earth Science,Waseda University,Shinjuku-ku,Tokyo 169-50,Japan)

JBNoblett

(Department of Geology,Colorado College,Colorado Springs,CO 80903,USA)

摘要 根据系列磨片进行的计算机层析摄影技术被用来研究岩石的三维结构。岩石样品切成大约几个厘米的方块,然后由手工按05mm间隔连续磨片并照成彩色照片。根据这一套二维剖面图像,由可视化软件AVS用两种方法综合成三维岩石结构:横截面法和立体渲染法。这种技术被用于两种岩石样品:一种是采自日本Hida变质带的变质复合侵入岩,展开了岩石中镁铁质和长英质成分复杂的流状结构;另一种是采自加利福尼亚Franciscan地体的富石榴子石变斑晶榴辉岩。对前一种样品,三维结构图像显示了镁铁质和长英质之间的混合关系,很好地说明了两种岩浆在变质之前的混合作用。对后一种样品,三维图像清楚地显示了石榴子石变斑晶的大小、数量和分布情况,这些数据对说明榴辉岩中石榴子石变斑晶的晶核形成很有意义。计算机层析摄影技术和三维可视化软件相结合,对于分析实际岩石毫米级到厘米级规模的结构是很有用的,其样品大小大约是几个厘米的方块。

关键词 三维可视化 岩石结构 岩浆混合 榴辉岩

1 引言

近年来,三维图像处理的软件和硬件方面取得的进展极大地改进了几个专门领域内了解分析许多现象和对象的方法。计算机层析摄影(CT)就是最为成功的一个方法,并已成功用于医学,即X射线CT。

岩石学中,岩石学家通常只能用肉眼在显微镜下观察二维剖面图,依靠想象根据二维信息来构想实际的三维结构。但是,岩石实际的三维结构中包含了更多的岩石成因信息,而我们无法直接观察样品的内部结构。众所周知,过分依赖二维结构信息会导致曲解[1,2]。为解决岩石结构分析中的这个困难,迫切需要计算机图形领域的三维可视化技术,但其应用似乎很困难。用三维X射线CT研究岩石结构的先导工作是由得克萨斯大学WDCarlson教授领导的小组完成的[3,4],他们已经研制成几乎完全自动的岩石结构X射线CT分析系统。利用三维可视化软件AVS,我们尝试了利用系列磨片和横剖面照片建立的岩石三维结构的观察技术[5,6,7,8],这个技术已基本成熟并且对于几种岩石均有效。

本文用复合侵入岩和富石榴子石变斑晶榴辉岩两个例子说明获取岩石结构三维图像的“系列磨片CT”技术,并且给出这些岩石样品的三维结构合成图像。

2 样品描述

21 变质复合侵入岩

用于三维观察的变质复合侵入岩采集自日本中部Gifu Prefecture地区Hida变质带内Hi gashi-Urushiyama露头。岩石包含两个部分:暗色的角闪岩和浅色的变质英云闪长岩。这种岩石属于Hida变质的后期,侵入黑云母角闪片麻岩围岩中,围岩的时代属于变质早期。图1a中显示了其复杂的混合结构和流状结构。这种结构似乎表明了镁铁质和长英质岩浆的混合作用。根据YArakawa所做的Rb-Sr等时线年龄测定[9],浅色和暗色两个部分的时代相差大约82Ma,笔者据此认为浅色成分是较为年轻的侵入岩,侵入到较老的侵入岩中,但是,这个年龄数据尚有很大争议。如果这个岩石是由岩浆混合所形成,那么这个年龄的差异就是一个错误。观察岩石实际的三维结构也许有助于弄清这个复合结构的片麻岩。用于三维观察的样品切成6cm×10cm×12cm的平行六面体(图1a)。

22 榴辉岩

榴辉岩采自美国加利福尼亚北部Jenner的Franciscan地体中。这种岩石在混杂岩带中作为构造断块出现[10,11]。主要矿物成分是石榴子石、绿辉石、多硅白云母、蓝闪石和绿泥石。大量石榴子石变斑晶出现在这个岩石中。具有菱形十二面体的自形石榴子石晶体直径一般为2~9mm,在肉眼下呈现红棕色,在显微镜下,石榴子石晶体常常被边缘的绿泥石所替代。榴辉岩的基体主要由绿辉石和蓝闪石组成,这两者是退化期的产物。岩石中富含绿辉石的部分呈暗绿色,而富含蓝闪石的部分则呈暗蓝灰色。对这个样品进行三维观察的目的是了解榴辉岩中石榴子石变斑晶的大小、数量和分布情况。进行三维观察的样品为5cm×10cm×15cm的平行六面体(图1b)。

3 三维图像合成方法

31 样品准备和图像采集

从照片获取系列剖面图像预处理的工作流程见图2。这次观察的样品切成大小约几个厘米的平行六面体。在磨片之前,平行六面体的六个表面均照相以便可以与计算机合成的表面进行比较。指定切割面后,用100号、400号、800号金刚砂以05mm的间隔进行磨片,并且用胶片拍摄成彩色照片。这种过程要重复200次,每百次的误差小于1mm。

32 硬件和软件

研究中使用了两种UNIX工作站:Startent有限公司制造的Titan 3000和MIP有限公司制造的Magnum4000。三维可视化软件AVS(实用可视化系统)由Kubota图形技术公司研制,用于三维图像的合成。AVS是一个著名的三维可视化软件,可在多种计算机系统上运行。AVS的特色是交互式的用户界面,有4个子系统——图像观察器、图形观察器、几何体观察器以及网络编辑器组成。网络编辑器是一个可视化编程环境,只要用鼠标连接若干可执行模块即可完成应用程序的设计。

本次研究中,利用网络编辑器为三维观察设计了两个应用程序:一个是横截面法程序,另一个是立体渲染法程序。

图1 研究中使用的岩石样品

a—采自日本Hida变质带的变质复合侵入岩;b—采自加利福尼亚Franciscan地体的富石榴子石变斑晶榴辉岩

33 二维系列图像预处理

使用一系列剖面的彩色照片进行岩石结构的三维观察。每一张照片用图像扫描仪按75dpi的分辨率输入到计算机,并以X-Window转储文件格式(xwd)存为一个文件。每个xwd文件用AVS转换成二维场数据格式,然后,一整套剖面图像均被转换成AVS的三维象素,所用的转换程序“2D_to_3D”是我们自己用C语言编写的。

图2 从照片获取到剖面图像预处理的工作流程

34 横截面法观察

这个方法可以在任何方向生成三维对象的横截面,并能产生动画形式的连续不断的剖面。图3a是用横截面法观察三维结构的AVS模块网络图,每个模块的功能如下:“读场数据”读入AVS场数据;“修剪”改变场数据的大小;“向下适化”改变三维象素数据的大小;“生成彩色映射表”产生AVS彩色映射表数据结构;“彩色映射”把输入的三维象素数据变换成颜色值;“成图”生成一幅数据的立体;“动画”自动修改参数进行动画演示。

图3 AVS模块网络图a—横截面法网络图;b—立体渲染法网络图

35 立体渲染法观察

这个方法产生透明的三维图像。图3b是用立体渲染法观察三维结构的AVS模块网络图。到“向下适化”为止,处理流程和横截面法一样,其余模块的功能说明如下:“梯度计算”和“梯度色调”计算三维场数据集中每个点的梯度矢量;“立体边界”产生表示三维场数据集边界的线条。

4 结果讨论

41 变质复合侵入岩

这个样品是为了观察岩石的实际三维结构,特别是岩石中浅色成分和暗色成分的混合结构。由横截面法和立体渲染法合成的图像成功地显示出岩石的三维结构(图4),通常用黑白灰阶图像表示。磨片的间隔为05mm,对于几个厘米大小的岩石样品的三维图像合成是足够的。

图4a到图4c是横截面法得到的三维结构图。实际样品的六个表面(图1a)在三维合成图像中得到清晰的重现(图4a),图4b和图4c是任意方向横剖面的两个例子。通过在屏幕上以动画方式连续观看某一方向的横剖面,可以确认岩石中暗色和浅色部分的混合关系:一些浅色成分包容在暗色部分之内,而有些暗色成分则包容在浅色之中,如图4c中箭头A所指。

图4 日本Hida变质带中变质侵入岩的三维合成图像

a,b,c—横截面法得到的三维图像,暗色的为镁铁质,浅色的为长英质;d,e,f—立体渲染法得到的长英质成分的三维图像,镁铁质部分设置成透明

图4d到图4f是岩石中浅色成分的三维合成图,由立体渲染法生成,产生合成图时,暗色成分被设成完全透明。使用灰阶图像的亮度来区分暗色和浅色成分,对这块岩石在三维图像中进行对象识别是简单的,因为它仅有两部分组成,只要设置合适的亮度阈值即可。

在暗色成分背景中,浅色成分以管状和树枝状出现,而没有一处显示为平板状。一些相对较小的浅色成分成为较大树枝的分枝,而某些则以微滴状孤立地出现在暗色背景中,如图4f中箭头B所指。为解释这种结构,必须引入镁铁质和长英质岩浆的混合作用。如果浅色的长英质岩浆是在后期侵入已经固结的暗色部分,那么其形状应该是板状的。浅色成分的形状说明在长英质岩浆侵入时,暗色的镁铁质岩浆是液态的。我们所进行的三维分析方法得到的结果明确地说明了Higashi Urushiyama露头的变质复合侵入岩是镁铁质和长英质岩浆混合作用形成的,和美国科罗拉多曾经报道过的一样[12]。

42 Franciscan榴辉岩

采用这件样品的目的是了解榴辉岩中石榴子石变斑晶的大小、数量和分布情况。横截面法和立体渲染法得到的三维合成图像如图5所示,图5b是任意方向剖面的一个例子。与榴辉岩样品照片的对比说明合成图像的6个表面均已很好地重建(图5a)。

本文中,因为印刷原因,三维结构图是黑白的,但原始的三维合成图像是彩色的。图5各个照片中浅色的就是石榴子石变斑晶,较暗的则是榴辉岩的基质,主要由绿辉石和蓝闪石组成。相对较大的石榴子石变斑晶晶体(>6mm)可以根据色调差异和榴辉岩基体加以区分,而小颗粒晶体(<2mm)则稍微困难些(图5b中箭头所指部位)。还有,要区分基质中的其他矿物非常困难,基质的主要组成是绿辉石和蓝闪石,其颜色分别为暗绿色和暗蓝色,所以很难根据磨光面的彩色照片来相互区分。要识别这些矿物,必须对样品表面或剖面图像进行专门的预处理。

颗粒大小的变化很容易在三维图像中看出,但在这些照片中没有显示出石榴子石变斑晶的晶体形状,这是因为05mm的磨片分辨率不够造成的。在合成的三维图像中,可以很好地观察到石榴子石变斑晶的分布情况,尤其在把榴辉岩基质完全设成透明而得到的立体渲染图中更为清晰(图5c,d)。相对较小颗粒的石榴子石集中于样品的较低部位(图5d箭头处),而大颗粒石榴子石则主要分布于上部并且稀疏。三维分布数据和各个部位的化学成分数据一起分析,有助于说明榴辉岩中石榴子石变斑晶的成核作用,但本文对此不作更多的阐述。

三维结构的另一个应用是尝试测量榴辉岩中石榴子石的实际矿物成分含量,从三维模型中得出的值是体积占245%,这个值是从二维图像集中计算出来的。原来在显微镜下用数点方法得出的结果是225%,这个结果是从同一样品的三个看上去一样的薄片中得出的。三维方法得到的结果也许比数点方法更为可靠。切割三维图像的任意指定部位,就可以计算样品在该部位的石榴子石实际含量。

5 结论

本文提出了利用系列磨片和三维可视化分析软件AVS进行岩石结构的三维观察技术。这个方法可用于了解岩石毫米级和厘米级的实际结构,采用的样品是几个厘米的方块。

图5 加利福尼亚Franciscan地体中富石榴子石变斑晶榴辉岩的三维合成图像

a,b—横截面法得到的三维图像,浅色的是石榴子石变斑晶,暗色的是基质,主要有绿辉石和蓝闪石组成;c,d—立体渲染法得到的三维图像,基质设成透明

对变质复合侵入岩样品,镁铁质和长英质可成功地互相区分,三维图像的动画演示可以确认镁铁质和长英质成分的混合关系。由立体渲染法得到的长英质成分的三维图像显示出其流状结构,如管状、树枝状和微滴状,表明了长英质岩浆是侵入到未固结的镁铁质岩浆之中。

对富石榴子石变斑晶榴辉岩,石榴子石晶体可以根据色调差异从基质中加以识别,石榴子石变斑晶的大小和分布也可以从三维图像中容易地了解,尤其是在立体渲染图中更为明显。三维图像也可以用于榴辉岩中石榴子石实际矿物含量的分析。

利用三维可视化软件AVS,用系列磨片CT方法进行岩石结构分析,对于毫米级到厘米级的岩石结构是行之有效的,但也有一些不足:①这个方法需要高水平的岩石磨片技术;②在取得一整套剖面图像后,岩石样品也就不再存在。本次研究中开发的亚毫米级精确磨片技术也将用于利用电子探针图像的计算机合成进行石榴子石变斑晶化学成分分析的研究,这个研究用来确定岩石实际的三维成分分带。

致谢 特别感谢KGT有限公司的Tatuya Nikkuni先生在AVS使用中所给予的热情帮助。

(姚国清译,姜作勤校)

参考文献

[1]DShellyIgneous and metamorphic rocks under the microscopeChapman and Hall,1993

[2]MJHibbardPetrography to petrogenesiPrentice Hall,1995

[3]WDCarlson and CDenisonMechanism of porphyroblast crystallizatin:results from high-resolution computed X-ray tomographyScience,1992,257:1236~1239

[4]CDenison,RAKetcham and WDCarlsonUsing high-resolution computed X-ray tomography for three-dimensional quantitative textural analysis(abs)Geo1SciAmerAbswith Progs,1996,28,A-54

[5]TAndo,SOmori,YOgasawara and JBNoblettApplications of 3D visualization technique to petrology—An example of magma mingled rock(abs),AGU Eos Abswith Progs1994,75

[6]TAndo,SOmori,YOgasawaraSynthesis of 3D textures of garnet porphyroblasts in Franciscan eclogiteAGU Eos Abswith Progs,1995a,76

[7]TAndo,SOmori,YOgasawara and JBNoblett3D observation of rock textures with AVS—An example of magma-mingled rock(in Japanese with English abstract)BullCenter for Informatics,Waseda University,1995b,20:12~23

[8]TAndo,SOmori,YOgasawara and JBNoblett3D observation of rock textures(abs)30th Int'l,GeolCongrAbswith Progs,1995,3

[9]YArakawaRb-Sr ages of the gneiss and metamorphosed intrusive rocks of the Hida metamorphic belt in the Urushiyama area,Gifu prefecture,central JapanJapan JourAssocMinPetro1EconGeol1984,79:431~442

[10]RColeman and MALanphereDistribution and age of high-grade blueschists associated eclogites,and amphibolites fromOregon and CaliforniaGeolSocAmerBull1971,164:77~91

[11]MCloosBlueschists in the Franciscan complex of California:petrogenetic ccnstraints on uplift mechanism,Blueschists and EclogitesGeolSciAmerMemoir,1986,164:77~93

[12]JBNoblett and MWStabMid-Proterozoic lamprophyre commingled with late-stage dikes of the anorogen San lsabel batholith,Wet Mountains,ColoradoGeology,1990,18:120~123

以上就是关于电子时钟程序用汇编语言编写全部的内容,包括:电子时钟程序用汇编语言编写、一小段单片机 时钟电路 程序分析、岩石结构的三维可视化分析等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://www.outofmemory.cn/zz/10219917.html

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

发表评论

登录后才能评论

评论列表(0条)

保存