电子时钟?说的不明白,我自己编写的数码管现实的电子钟给你了
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
以上就是关于电子时钟程序用汇编语言编写全部的内容,包括:电子时钟程序用汇编语言编写、一小段单片机 时钟电路 程序分析、岩石结构的三维可视化分析等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)