版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、五.仪器编程2013-101。汇编编程单字节数据表 单字节表用于简单数据换算场合,如代码变换等。表格中,一个X值对应一个字节的Y 值例1: 在MCS-51 单片机中,以片内RAM 20H 单元中的X,查TAB 表中的Y 值,并将Y 存于2AH单元中,式编程。解: 源程序如下: 子程序 SLTB: MOV DPTR, #TAB MOV A, 20H MOVC A,A+DPTR MOV 2AH, A RET 子程序返回例2: 已知:RO低4位有一个十六进制数(0-F中一个) 编出程序: 能将文转换成相应ASC码并送入RO的程序。 MCS-51系列解: 查表方法:用MOVC A, A+PC ORG
2、0400H MOV A, R0 ; A R0 ANL A, #0FH ; 屏蔽高4位(要R0的底4位) ADD A, #03H ; 地址调整 #03=ASCTAB-PC =3字节=03H=字节数 MOVC A, A+PC ; 查表 MOV R0., A ; 存结果 SJMP $ASCTAB: DB 0, 1, 2, 3, 4 DB 5, 6, 7, 8, 9 定义字节伪指令 DB A, B, C, D, E, F END例2(ASCTAB+1)=0 (ASCTAB+2) =1 (ASCTAB+3)=22.C编程图形视窗可实现对虚拟仪器中的多种测试信号的描绘。TC/TC+ 图形函数丰富, 如 所
3、用显示器性能不同,相应的常数设置也不同。以 640480 象素,16色VGA 显示器为例说明几种常用的图形及彩色控制函数的使用方法。void far initgraph (int *gdriver, int *gmode, char * path); 这是一个图形模式初始化设置的过程。当 gdriver=9, gmode=2, 表示VGA 型显示器,分辨率640480 16色。CGA 彩色图形卡MCGA多色图形阵列增强图形适配器(EGA,EGA64,EGAMONO)例:画圆例:用红色笔在蓝纸(背景)上画一个圆的C程序如下:# include # include main ( ) int gdr
4、iver, gmode;gdriver=VGA;gmode=2;initgragp (gdriver,gmode, “d:tc”);set bk color (BLUE); /*背景为蓝色*/set color (RED); /*红笔*/circle (320,240,200); /* 以(320,240)为圆心,200为半径画一个圆*/get ch ( ); /*等击任何键*/close graph ( ); /* 返回文本模式*/简单画线函数用当前颜色,当前画线类型和定度,在(x 0,y0) 到(x1 ,y1)之间画一条直线,不改动当前位置(CP)。 void far line (int
5、xo, int yo, int x1 , int y1); 从(x 0,y0) 到(x1 ,y1)画一条直线。 void far lineto (int x, int y); 从当前坐标到(x, y)画线。 void far rectangle (int left, int top, int right, int bottom); 按所给数据画一个长方形。 void far arc (int x, int y, int stangle, int endangle, int radins). 画一条弧线。 用当前绘图颜色,绘出以(x, y)为圆心和radius 给出的半径,从起始角srangle
6、 到终止角度endangle 的圆弧,当 stangle=0且enddangle =360 则画一个圆。 void far circle (intx,int y, int radius); 画一个圆。3.仪器的混合编程混合编程技术PC应用系统与仪器设计中,实时性很强的操作过程=常用汇编语言直接编程,结果可供主程序调用。所以一个实用的仪器程序常常是用 高级语言 混合编写。 汇编语言 常见 C语言 混编。 汇编语言 1 如何编写可被C语言调用的汇编过程一 个汇编过程若要被C语言调用。执行时又可顺利进行参数互传。将汇编语言程序执行结果返回到C程序中,经按以下的约定编写。3.混合编程1)被调汇编过程的
7、结构规范(1)汇编程序要用 .MODEL 指示字开头,以便在汇编过程中自动产生适当的类型调用和过程返回。其中多 small , compact 模式将自动产生NEAR 调用。对Huge, Large, Medium模式将自动产生FAR调用。 *注; .MODEL 指示字要求MASM 5.0版以上。对5.0 版以下,要求被汇编程序直接用NEAR,FAR具体说明。(2) 汇编程序的代码段和数据段,要用 .CODE, DATA 说明, 5.0以下的MASM仍用 SEGMENT , GROUP, ASSUME 说明。(3)一个被调用的汇编过程名,一定要用 PUBLIC说明为一个公共块。这个过程名要用下
8、划线“” 标示,如: PUBLIC 过程名由此相对应,C程序中要将所要调用的汇编过程说明为一个外部引用函数: extern void 过程名( void)混合编程方法汇编过程中,某些可供C 程序使用的变量也应用PUBLIC说明。并用下划线“标志。PUBLIC-变量名;由此呼应,在C程序中要把该变量表达为以下形式: entern int 变量名在汇编过程中,变量类型的定义须与C程序中的变量说明相一致。对应列表:汇编过程中,要用BP寄存器作参数传递指针。因高级语言在调用汇编过程时,是通过堆栈来传递参数的。在进入汇编程序时,要立即用 PUSH BP 指令空出BP 寄存器。然后用 MDV BP,SP指
9、令,把BP寄存器定义为堆栈指针。= 以有效实现 二种语言程序的参数传递。空出B内容进入汇编子程序,BP 不堆栈变操作的影响,还可直接访问数据,SP不能直接访问数据。 混合编程方法进入子汇编程序。并把执行 PUSH BP 二条指令的堆栈。 MOV BP,SP定义BP为堆栈指针 (SP) BP指针与BP指向如图示:用8位ADC器件组成的数据采集电路C程序与汇编语言 混合编程;2 仪器功能程序的混合编程方法举例 本例用汇编程序完成ADC 0809对被测波形的数据采集,共采512点,然后将采集到波形数据传递给C主程序的adc (512,d) 调用函数: ( 8位数据采集系统)主程序用C语言编写:ent
10、ern void adc ( int n, int *x);int d 512;adc ( 512, d);被调数据采集函数-adc 用汇编语言编写:-TEXT SEGMENT PUBLIC CODE or . MODEL( 5.0版以上)small- TEXT ENDS . CODE- DATA SEGMENT WORD PUBLIC DATA .DATA-DATA ENDS .PUBLIC-adc-BSS SEGMENT WORD PUBLIC BSS-BSS ENDSADC 0809 对被测波形的数据采集DGRDUP GROUP DATA, -BSSASSUME CS: -TEXT, D
11、S: DEROUP, SS: DGROUP-TEXT SEGMENT 汇编为808680286 386,486, 586 指令函数PUBLIC-adc; - - - - - - - - - - - - - - - - - - - - - - - - - - adc PRDC NEARpush bp PC机中;用BP 作数据指针 PC机中push si 16位通用存器,作目的变址存器中mov bp,sp 16 位通用存器 cxPC 中 16位通用存器mov cx, bp+6 地址 (基地变址寻找方式) ;取得数据点总数512 16位地址编移量mov si, bp+8; 取得数据存贮区首址 dx1
12、6位通用对器st: mov dx, 3e8h AL; 对INO通道进行波形采集 (图 5-12) ADC 0809 对被测波形的数据采集out dx, al 启动ADC过程 AL DX 字节(al累加器8位)call delay 直接问接调用近远过程(子程序) 数据传送指令in al ,dx dx AL; 采到一个数据 1字节,1次,无标志mov ah,0 0 AH mov si,ax(ax-通用16 存器);存到指定单元中 ax siinc si si +1 siinc si loop st 现cx-1 若cx0; 512个数据尚未裁定,再回st 采集 则循环至st所指指令。pop sipop bp 栈顶字 si bp 恢复堆栈ret 过程(子程序) 返回 控制传递指令A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宠物饲料品牌形象宣传考核试卷
- 2024版餐饮厨房承包合同
- 喷枪及类似器具生产过程中的安全生产管理考核试卷
- 2024版智能家居系统水箱采购合同
- 2024电商产业园停车服务合同3篇
- 五金产品创新设计与用户满意度研究考核试卷
- 2025年度工业渣土清理与无害化处理合同
- 2025年度货车司机货运合同安全生产责任合同
- 乘客关系与服务投诉处理考核试卷
- 大学生创业教育与孵化器建设考核试卷
- 不锈钢伸缩缝安装施工合同
- 水土保持监理总结报告
- Android移动开发基础案例教程(第2版)完整全套教学课件
- 医保DRGDIP付费基础知识医院内培训课件
- 专题12 工艺流程综合题- 三年(2022-2024)高考化学真题分类汇编(全国版)
- DB32T-经成人中心静脉通路装置采血技术规范
- 【高空抛物侵权责任规定存在的问题及优化建议7100字(论文)】
- TDALN 033-2024 学生饮用奶安全规范入校管理标准
- 物流无人机垂直起降场选址与建设规范
- 冷库存储合同协议书范本
- AQ/T 4131-2023 烟花爆竹重大危险源辨识(正式版)
评论
0/150
提交评论