键盘上分别c 输入二进制数2位十进制数的被加数和加数,把和用二位十六进制数显示出来,要求汇

汇编 编程从键盘输入一个一位十六进制数,定义一个子程序将其以二进制形式输出到屏幕_百度知道
汇编 编程从键盘输入一个一位十六进制数,定义一个子程序将其以二进制形式输出到屏幕
我有更好的答案
code segmentassume cs:codestart:mov bx,0mov si,4mov di,10hinput:mov ah,07接受输入但不显示int 21hmov cl,将输入字符暂放入clsub al,30-30将ASCII转为对应数小于0,则不是有效字符,要求重新输入cmp al,9 小于9,则是0-9十个数字,直接进入下一步处理sub al,27判断输入是否是a-f小于a,则输入字符无效,重新输入cmp al,0大于f,无效字符重新输入ja inputgoin:mov ah,0 xchg ax,交换bx,ax值先输入的数乘上16D=10Hadd bx,将当于n1*10+n2,n1为之前输入数,n2为刚输入数mov dl,将有效字符显示出来mov ah,02hint 21hdec si循环输入4个有效字符mov dl,'=' ;输入等于号mov ah,02hint 21hmov ch,10Hprint:mov dl,1 ;假设输入的数的二进制每一位都是1rol bx,1 ;将输入的数循环向左移1位jc CF_1 ;如果该是1,则CF为1,即产生进位mov dl,0 ;CF=0,即该位为0CF_1:mov ah,02hadd dl,30加0、1转为ASCII码int 21h循环16=10H次,即一个4位十六进制等于16位的二进制jnz printmov ah,4chint 21hcode endsend start如果你还有什么不懂的,可以百度搜下:编程回忆录,他们现在正在录制这方面的教程,都是零基础开始,由浅入深。
采纳率:40%
你改变输入方式试一下
为您推荐:
其他类似问题
十六进制数的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Bad Request
Bad Request - Invalid URL
HTTP Error 400. The request URL is invalid.STAR ES598PCIS(8086)使用说明_伤城文章网
0第一章 1.1 1.2 1.3目录简介.................................................................... 实验仪介绍............................................................. 实验仪配置方案 ......................................................... 功能特点............................................................... 1.3.1 软件............................................................. 1.3.2 硬件............................................................. 1 1 1 1 1 2第二章 硬件结构................................................................ 4 2.1 电路外观.............................................................. 4 2.2 A1 区:1602C、12864 液晶显示模块电路 ................................... 5 2.3 A2 区:X5045 .......................................................... 6 2.4 A3 区:CPU 总线、I/O 接口 片选区 ....................................... 6 2.5 A4 区:控制区 ......................................................... 6 2.6 B1 区:语音模块 ISD1110 电路 ........................................... 7 2.7 B2 区:逻辑笔、单脉冲、频率发生器 ..................................... 7 2.8 B3 区:8259 电路 ....................................................... 8 2.9 B4 区
电路 .................................................. 9 2.10 B5、D6 区:扩展区 ................................................... 9 2.11 C1 区:电源区 ...................................................... 10 2.12 C2 区:138 译码器 ................................................... 10 2.13 C3 区:继电器 ...................................................... 10 2.14 D1 区:步进电机 .................................................... 10 2.15 D2 区:光敏电阻、压力测量 .......................................... 11 2.16 D3 区:8279 键盘/LED 控制器 ......................................... 12 2.17 D4 区:8250 ........................................................ 12 2.18 D5 区:8253 ........................................................ 13 2.19 E1 区:直流电机转速测量/控制 ....................................... 13 2.20 E2 区:DAC0832 数模转换 ............................................. 14 2.21 E3 区:蜂鸣器 ...................................................... 14 2.22 E4 区:温度测量/控制 ............................................... 14 2.23 E5 区:RS485 ....................................................... 15 2.24 E6 区:RS232 ....................................................... 15 2.25 F1 区:红外通讯 .................................................... 15 2.26 F2 区:0~5V 电压输出 ............................................... 15 2.27 F3 区:ADC0809 模数转换 ............................................. 16 2.28 F4 区:键盘&LED .................................................... 16 2.29 F5 区:发光管、按键、开关 .......................................... 17 2.30 F6 区:8*8LED 点阵 .................................................. 181 第三章 星研集成环境软件 ....................................................... 3.1 软件安装............................................................. 3.1.1 安装星研集成环境软件 .......................................... 3.1.2 软件卸载 ...................................................... 3.1.3 USB 驱动程序 .................................................. 3.1.4 软件启动 ...................................................... 3.1.5 编译器 ........................................................ 3.1.6 README 文件 ................................................... 3.2 如何使用星研集成环境软件 ............................................. 3.2.1 数据传送程序(ASM) ........................................... 3.2.2 数据传送程序(C) ............................................. 3.3 实验连线、演示实验、测试实验仪 ....................................... 3.4 频率计(EMU598+) ...................................................... 3.5 模拟波形发生器(EMU598+) .............................................. 3.6 TDS2、TDS2A(EMU598+)虚拟示波器 ..................................... 第四章 软件实验............................................................... 实验一 数据传送........................................................... 实验二 双字节 BCD 码(十进制数)加法 ......................................... 实验三 双字节 BCD 码(十进制数)减法 ......................................... 实验四 四字节十六进制数转十进制数 ......................................... 实验五 散转............................................................... 实验六 冒泡排序........................................................... 实验七 二分查找法.........................................................19 19 19 19 19 20 21 21 22 22 35 41 43 44 44 46 46 48 51 54 57 59 61第五章 基础硬件实验........................................................... 63 实验一 8255 控制交通灯实验 ................................................ 64 实验二 74HC138 译码器实验 ................................................. 67 实验三 8155 输入、输出、SRAM 实验 .......................................... 69 实验四 8253 方波实验 ...................................................... 71 实验五 8259A 中断控制器实验 ............................................... 73 实验六 8250 可编程通信实验(与微机) ........................................ 76 实验七 8279 键盘显示实验 .................................................. 80 实验八 并行 DA 实验 ........................................................ 83 实验九 并行 AD 实验(数字电压表实验) ........................................ 85 实验十 红外通信实验 ....................................................... 88 实验十一 字符型液晶显示实验(1602C) ........................................ 92 实验十二 图形点阵显示实验 ................................................. 97 实验十三 8237 DMA 传输实验 ............................................... 106 第六章 综合实验.............................................................. 实验一 简易电子琴实验 .................................................... 实验二 LED8 * 8 点阵实验 ................................................. 实验二 LED8 * 8 双色点阵实验(选配) ....................................... 109 109 119 1242 实验三 实验四 实验五 实验六 实验七 实验九 实验十数字式温度计实验(18B20) ........................................... 步进电机实验 ...................................................... 直流电机测速实验 .................................................. 旋转图形实验 ...................................................... ISD1110 语音模块实验 .............................................. 电子钟(CLOCK) ..................................................... 光敏电阻测量光照强度实验 ..........................................130 136 143 149 153 163 1693 4 1 简介1.1 实验仪介绍STAR ES598PCIS 实验仪是 STAR ES598PCI 的简化版,提供详尽的 C、汇编例子程序、使用 说明,可以满足各大专院校进行单片机、微机原理、32 位微机接口课程的开放式实验教学,通 过扩展模块,可以让参加电子竞赛的学生熟悉各种类型的接口芯片,做各种实时控制实验,轻 松面对电子竞赛;也可以让刚参加工作的电子工程师迅速成为高手。 实验仪主机就是一个实验平台,通过更换不同的 CPU 模块,可做不同类型 CPU 的实验,极 大的提高了性价比。 STAR ES598PCIS 提供实验仪与微机同步演示功能,方便实验室老师的教学、演示。提供一 个库文件,如果学生上机时间有限,只需编写最主要的程序,其它调用库文件即可。它布局合 理,清晰明了;模块化设计,可以无限升级,让您的选择永不落伍;兼容性强,可以轻松升级, 减少设备投资;使用方便,易于维护。1.2 实验仪配置方案微机原理二种配置方案: 1、实验仪主机、ES8688 模块(CPU:8088) 、EMU598 仿真模块(不含虚拟示波器、信号发 生器、频率计功能) 。 2、实验仪主机、EMU598+仿真模块,内含 8086,含虚拟示波器、信号发生器、频率计功能。1.3 功能特点 1.3.1 软件1、提供我公司自主版权的星研集成环境软件,2004 年它已被认定为上海市高新技术成果 转化项目 ◇ 集编辑器、项目管理、启动编译、连接、错误定位、下载、调试于一体,多种实验仪、 仿真器、多类型 CPU 仿真全部集成在一个环境下,操作方法完全一样。 ◇ 完全 VC++风格。支持 C、PL/M、宏汇编:同时支持 Keil 公司 C51、Franklin 公司 C51、 IAR/Archimedes 公司的 C51、Intel C96、Tasking 的 C196、Borland 公司的 TASM、Turbo C。 ◇ 支持 ASM(汇编)、C、PLM 语言,多种语言多模块混合调试,文件长度无限制。 ◇ 支持 BIN、HEX、OMF、AUBROF 等文件格式。可以直接转载 ABS、OMF 文件。 ◇ 支持所有数据类型观察和修改。自动收集变量于变量窗(自动、局部、模块、全局)。 ◇ 无须点击的感应式鼠标提示功能。 ◇ 功能强大的项目管理功能,含有调试该项目有关的仿真器、所有相关文件、编译软件、 编译连接控制项等所有的硬软件信息,下次打开该项目,无须设置,即可调试1 ◇ 支持 USB、并口、串口通信。 ◇ 提供模拟调试器。 ◇ 符合编程语言语法的彩色文本显示,所有窗口的字体、大小、颜色可以随意设置。 3、提供几十个实验的汇编、C 版本的源文件。提供一个库文件,如果学生上机时间有限, 只需编写最主要的程序,其它调用库文件即可。 实验仪可提供以下软件实验:十进制数加法,十进制数减法,四字节二进制数转十进制数, 数据传送,冒泡排序,二分查找法,散转等。逻辑分析图实时跟踪图1.3.2 硬件1、传统实验 74HC244 、74HC273 扩展简单的 I/O 口;蜂鸣器驱动电路;74HC138 译码; RS232 和 RS485 接口电路; 扩展实验;8253 定时、分频实验;8250 串行通讯实验;16*2 液晶显示 模块 (可以选配多种 128*64 液晶点阵显示模块) 8X8 LED 点阵显示模块; ; 键盘 LED 控制器 8279, 并配置了 8 位 LED、4 * 4 键盘;32K 数据 RAM 读写,使用 C51 编制较大实验成为可能;并行 AD 实验;并行 DA 实验;直流电机控制;步进电机控制;继电器控制实验;逻辑笔;打印机实验; 电子琴实验;74HC4040 分频得到十多种频率;另外提供 8 个拨码盘、8 个发光二极管、8 个独 立按键;单脉冲输出。 2、新颖实验 录音、放音模块实验;光敏电阻、压力传感器实验、V/F、F/V 实验(扩展模块) 、非接触 式 IC 卡读写实验(扩展模块) 、NAND FALSH 实验(扩展模块) ; 串行接口实验2 1)一线 DALLAS 公司的 DS18B20 测温实验 2)红外通信实验 3)CAN CAN2.0(扩展模块) 4)USB USB1.1、USB2.0(扩展模块) 5)以太网 10M 以太网模块(扩展模块) 6)GPRS (扩展模块) 7)GPS (扩展模块) 8)蓝牙 (扩展模块) 3、闭环控制 1)门禁系统实验 2)光敏电阻、压力传感器实验 3)旋转图形展现实验 4)直流电机转速测量,使用光电开关测量电机转速 5)直流电机转速测量,使用霍尔器件测量电机转速 6)直流电机转速控制,使用霍尔器件、光电开关精确控制电机转速 7)数字式温度控制,通过该实验可较好认识控制在实际中的应用 4、实验扩展区,提供扩展实验接口,用户可自行设计实验 可以提供 USB1.1、USB2.0、USB 主控、10M 以太网接口的 TCP/IP 实验模块、CAN 总线、非 接触式 IC 卡、NAND FLASH 模块、FV_VF 模块、触摸屏模块、GPS、GPRS、双通道虚拟示波器、 虚拟仪器、读写优盘、CPLD、FPGA、超声波测距、测速模块。其它模块正在陆续推出中,例如: 蓝牙。 5、EDA ―― CPLD、FPGA 可编程逻辑实验 逻辑门电路:与门、或门、非门、异或门、锁存器、触发器、缓冲器等;半加器、全加器、 比较器、二、十进制计数器、分频器、移位寄存器、译码器;常用 74 系列芯片、接口芯片实验; 8 段数码块显示实验;16x16 点阵式 LED 显示实验;键盘数码块实验(实时钟) 、交通灯实验、 串行通信收发;I2C 总线实验;SPI 总线(数字电压表)实验等 提供 ABEL、VHDL 语言编写的实验范例3 2 硬件结构2.1 电路外观本章将逐一介绍实验仪的各个功能模块、相应的结构,读者在编写程序前,首先熟悉相应 的硬件电路。4 2.2A1 区:1602C、12864 液晶显示模块电路1602C 字符型液晶:CS:片选信号,低电平有效;RS:选择读写的是指令或数据,L:指令, H:为数据。RW:读写控制端,L:写操作,H:读操作。 12864J 图形点阵液晶:CS:片选信号,低电平有效;CS1/2:左右半屏使能选择,H:左半 屏,L:右半屏;RS:选择读写的是指令或数据,L:指令,H:为数据。RW:读写控制端,L: 写操作,H:读操作。R4 470 R31 WR RD 1 2 U5A CS RS RW JP9 2 1 15 16 6 U3B D0 D1 D2 D3 D4 D5 D6 D7 7 8 9 10 11 12 13 14 10K 3 5 W2 10K 4 3 4 5 6 DS1 VCC JP6 1 2 VSS VDD V0 RS RW E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 LED+ LED1602C123456(1602C 字符型液晶)A R31 WR RD 1 2 U5A CS RS B RW 6 U3B D0 D1 D2 D3 D4 D5 D6 D7 7 8 9 10 11 12 13 14 15 16 17 18 19 20 10K 3 5 R4 470 W2 10K 4 3 4 5 6 DS1 VCC JP6 1 2 VSS VDD V0 RS RW E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 CS1 CS2 RST VOUT LED+ LED12864J C ABCS1/22 1 3 U3A JP9 2 1(12864J 图形点阵液晶)CTitleDSize A4 Date: File: 1 2NumberRevision5D Sheet1.SchDoc 3 4Sheet of Drawn By : 5 6 2.3A2 区:X5045VCC R86 C43 0.1uF U29 R89 10K 1 2 3 4 CS/WDI SO WP Vss Vcc 8 7 6 5 R90 10K SCK SI RESET C44 30pF R91 10K R92 10K 470 DS28 JP38 1 2CSSORESET X5045 SCK SICS: 片选,低电平有效 SCK: 时钟 SI: 数据输入 SO: 数据输出 RESET : 复 位 信 号 输 出 端,高电平有效2.4A3 区:CPU 总线、I/O 接口 片选区JP45:地址线 A0..A7; JP48:低位地址/数据总线 JP51:MCS51 的 P1 口; JP59:高位地址线 A8..A15; JP61:MCS51 的 P3 口,P3.7、P3.6 作读、写信号线用; JP66:相当于一个 CPU 座,使用 40 芯扁线与用户板相连,可仿真 P0、P2 口作地址/数据使 用的 CPU。 片选区 片选 地址范围 片选 地址范围 CS1 0F000H~0FFFFH CS5 0B000H~0BFFFH CS2 0E000H~0EFFFH CS6 0A000H~0AFFFH CS3 0D000H~0DFFFH CS7 09000H~09FFFH CS4 0C000H~0CFFFH CS8 08000H~08FFFH2.5A4 区:控制区主控部分。6 2.6B1 区:语音模块 ISD1110 电路JP14 2 DS2 R5 470 U4 DS7 R10 470 26 7 8 11 22 4.7uF 470K R25 5.1K C10 0.1uF C7 C8 0.1uF 0.1uF C4 0.1uF 25 19 20 21 18 17 14 15 C5 0.1uF 12 13 XCLK NC NC NC NC RECLED AGC ANA IN ANA OUT MIC REF MIC SP+ SPVSSD VSSA ISD1420 JP328 7 6 5 4 3 2 13 1 REC 3 1 REC PLAYE 3 1 PLAYE PLAYL PLAYL VCC U2VCCJP1 1 2 R22 R23 R24100K 100K 100KJP13 2 JP15VCCD VCCA REC PLAYE PLAYL28 16C92R27 1K R34 10K Mic C13 220uF R35 10K0.001uF 27 24 2320A0 A1 A2 A3 A4 A5 A6 A71 2 3 4 5 6 9 102 5 6 9 12 15 16 19Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7D0 D1 D2 D3 D4 D5 D6 D7 GND3 4 7 8 13 14 17 18 10D0 D1 D2 D3 D4 D5 D6 D713C12 R26VCCRST CLK1 11 U3DSN 7 4 S0 2 N 11WR CPSpeakerSN74LS273NJP13、JP14、JP15:设置操作模式,MCU:CPU 控制方式;MANUAL:手动(REC、PLAYL、PLAYE) 控制方式。 REC: 录音按键,低电平有效; PLAYE: 电平放音按键,低电平有效,直到放音内容结束停止放音 PLAYL: 边沿放音按键,下降沿有效,并在下一个上升沿停止放音D2.71 B2 区:逻辑笔、单脉冲、频率发生器2VCC R77 C32 A U19D 2K 9 8 R40 470 SN74HC04N DS14逻 笔 辑470pF R76 4.7K R66 C28 470pF R67 4.7K 2KU19C 5 6 SN74HC04N R39 VCC 330 DS13B逻辑笔电路原理图 逻辑笔: 测试接口,输入测量信号 绿灯(DS13):高电平点亮 红灯(DS14):低电平点亮 1 两灯同时亮:频率信号2127 VCCR62 4.7K 3 2 S41 2U17A 3 SN74HC00N 3U19B 4 SN74LS04ND1 4 U17B 6 5 SN74HC00N SN74LS04N 1 U19A 2R634.7K单脉冲电路原理图 S4: 脉冲发生开关 正脉冲:上凸符号端口输出正脉冲 负脉冲:下凹符号端口输出负脉冲U25 U19F 13 12 SN74HC04N R74 R73 51 C37 30pF 2 1M 8MHZ 1 R75 51 C36 30pF 8 GND SN74HCE 10 SN74HC04N 11 10 CLR CLK VCC QA QB QC QD QE QF QG QH QI QJ QK QL VCC 16 9 7 6 5 3 2 4 13 12 14 15 1 4M 2M 1M 500K 250K 125K 62.5K
53XTAL1频率发生器电路原理图 4M: 输出 4MHZ 频率信号 其他端口输出的信号频率与端口下标识的数值一致1223 42.8B3 区:8259 电路U28 1 2 3 4 5 6 7 8 9 10 11 12 13 14CSWR RD D7 D6 D5 D4 D3 D2 D1 D03CS WR RD D7 D6 D5 D4 D3 D2 D1 D0 CAS0 CAS1 GND 8259VCC A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT SP/EN CAS2VCC 28 27 A0 26 25 24 23 22 21 20 19 18 17 16 SP/EN 15INTA IR7IR2 IR1 IR0 INT4CS: 片选信号,低电平有效; A0: 地址信号 IR0..IN7:中断输入 INTA: 中断响应 55 6 7 8R96 1K84 3 2 1 2.9B4 区
电路 1U36 D0 D1 D2 D3 D4 D5 D6 D7 RD WR 34 33 32 31 30 29 28 27 5 36 9 8 35 6 D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 RESET CS PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 823JP56AJP53A0 A1 CSRSTJP52CS: 片选信号,低电平有效; A0、A1:地址信号。 JP52: PC 口; JP53: PB 口; JP56: PA 口。BJP798 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1TMROUT TMRIN PC5 5 PC4 2 PC3 1 PC2 39 PC1 38 PC0 37 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21U41 PC5 PC4 PC3 PC2 PC1 PC0 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 8155 RESET 4 RSTTMRIN3TMRINTMRINJP75TMROUT6TMROUTTMROUTCALE IO/M WR RD CE11 7 10 9 8ALE WR RD 8155 IO/MCSJP76AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD019 18 17 16 15 14 13 12D7 D6 D5 D4 D3 D2 D1 D0CS: 片选信号,低电平有效。 IO/M:高电平,选择 I/O 口; 低电平,选择数据 RAM。 JP75:PB 口; JP76:PA 口; JP79:PC 口。DJP69 GND PC0 PA7 PA5 PA3 PA1 1 3 5 7 9 1 11 13 2 4 6 8 10 12 14TitleSizeNumberPB7 PA6 PA4 PA2 PA0A打印口2Date: File: 3 Sheet1.SchDoc2.10 B5、D6 区:扩展区实验仪提供了二个扩展区, 用来扩展 USB1.1、 USB2.0、 主控、 USB 以太网、 总线、 CAN V/F_F/V、 非接触式 IC 卡、双通道虚拟示波器、CPLD、FPGA、GPS、GPRS、NAND FLASH 等扩展模块,其它9 模块正在陆续推出中。 如果扩展模块较大,可以同时使用二个扩展区。2.11C1 区:电源区C1 区为用户提供了 5V(2A)、+12V(300mA)、-12V(300mA)等几种电源接口。2.12 C2 区:138 译码器DS20 R68 A B C G1 G2A G2B 1 2 3 6 4 5 U21 A B C G1 G2A G2B VCC Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 16 JP36 15 14 13 12 11 10 9 7 1 2 3 4 5 6 7 8 470 VCC JP28 1 2A、B、C:3 位数据输入口G1、 G2A 、 G2B :译码控制口 Y0~Y7: 8 位译码数据输出口8GNDSN74LS138N2.13 C3 区:继电器D4 DS22 R70 8 7 R81 18 CUT1 CLOSE1 CUT2 CLOSE2 6 4 5 3 1 2 K1 K COM1 2K COM2 R83 CTRL Q5 R82 470 VCC JP30 1 2CTRL: 继电器开闭控制端 COM1、COM2:公共端 1、2 CLOSE1、CLOSE2:常闭端 1、2 CUT1、2: 常开端 1、2212.14 D1 区:步进电机DS3 R7 A D 5 U7C 6 8 8 1 2 3 4 5 6 7 U6 GND I1 I2 I3 I4 I5 I6 I7 ULN VCC O1 O2 O3 O4 O5 O6 O7 9 16 15 14 13 12 11 10 Motor Step VCC JP3 1 2SN74HC04N A 9 U7DSN74HC04N B 11 U7E 10MSN74HC04N C 13 U7F 12SN74HC04NB10 2.15光敏电路VCCD2 区:光敏电阻、压力测量1 2R137 100K4U15A 2 W4 100K R58 1K 1K 3R48 AA1R133 10K R134U15C 9 10U15D 13 8 R136 10K 12 LM324N44D14 OUTCR49LM324N11LM324ND2 R56 2.5V 1KR41 R50 1K R57 R135 10K11C83 1000pF R139 10K W3 100K C21 1000P100K R140 7 1KU15B 6 5 LM324N B4R64 10KR138BR41、R57 是光敏电阻;OUT:模拟电压信号输出端。 测压电路R137 100K4 411VCC W4 100K R48 R49 1K D2 R41 R56 2.5V 1K R50 1K 1K R57 1K R58 1K3 LM324NA1R1341110C8R203 10KU26D 13 12 LM324N4U15A 24R205 100K R133 10K U15C 9 U15D 13 14 R204 10K11111KD12 LM324ND14 OUT1KLM324N11C83 1000pFC92 1000pF R139 10K W3 100K11C21 1000PR135 10K 100K U15B 6 5 LM324N R140 7 1K R64 R138 10K4R206 10KCB压力测量:R41:电阻应变片,阻值 1K ; OUT:压力模拟电压信号输出端D111211 2.16D3 区:8279 键盘/LED 控制器4 F4 区的D_0 5 F4 区的D_1 6JP181_1 1_2 1_3 1 2 37 8 92_1 2_2 2_382791 2 3EDAU40 SN74LS240P 1 19 2 4 6 8 11 13 15 17 10 OE1 OE2 A1 A2 A3 A4 A5 A6 A7 A8 GND VCCU39 U37 e f g dp D0 D1 D2 D3 D4 D5 D6 D7 INT 8279 RD WR 27 26 25 24 12 13 14 15 16 17 18 19 4 22 10 11 21 3 9 OUTA0 OUTA1 OUTA2 OUTA3 DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 IRQ CS RD WR A0 CLK RESET 8279 OUTB0 OUTB1 OUTB2 OUTB3 BD SL0 SL1 SL2 SL3 RL0 RL1 RL2 RL3 RL4 RL5 RL6 RL7 SHIFT CNTL/S 31 30 29 28 23 32 33 34 35 38 39 1 2 5 6 7 8 36 37 1 2 3 4 5 6 7 8 a b c d 1 2 3 VCC 6 4 5 A B C OE1 OE2A OE2B VCC Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7VCC 16 15 14 13 12 11 10 9 7VCC 20VCC8GNDY1 Y2 Y3 Y4 Y5 Y6 Y7 Y818 16 14 12 9 7 5 31 2 3 4 5 6 7 8SN74LS138N U40 SN74LS240P VCC 20接F4 区的A1 19 a b c d e f g dp 2 4 6 8 11 13 15 17 10OE1 OE2 A1 A2 A3 A4 A5 A6 A7 A8 GNDVCCA0 CLK RSTR123 10KCS: CLK: A: C:片选信号,低电平有效 时钟 已连接至按键的列线 已连接至数码管选择脚A0: B:JP18 的 1、 2:地址信号 已连接至数码管段码 已连接至按键的行线JP18 的短路块连接至 8279 端,F4 区的键盘、数码块由 82C79 扫描;短路块连接至 EDA 端, 82C79 与 F4 区的键盘、数码块断开,可由其它芯片接管 F4 区,例如:使用 EDA 模块扫描键盘、 数码块。2.17 D4 区:8250U43 D0 D1 D2 D3 D4 D5 D6 D7 SIN SOUT VCC R133 10K CS 2 1 WR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 D0 VDD D1 RI D2 DCD D3 DSR D4 CTS D5 MR D6 OUT1 D7 DTR RCLK RTS SIN OUT2 SOUT INTR CS0 NC CS1 A0 CS2 A1 BAUDOUT A2 XIN ADS XOUT CSOUT WR DDIS WR RD VSS RDPC164503.072MHZ R127 30PF C65 1M 50PF C6616C550129 8 7 6 5 4 3 2 1VCC 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 RDRI DCD DSR CTS RST DTR RTSA0 A1 A2接F4 区的BCSY1 Y2 Y3 Y4 Y5 Y6 Y7 Y818 16 14 12 9 7 5 3 VCC1 2 3 4 5 6 7 8接F4 区的C CS: SIN :片选信号,低电平有效; 串行输入A0、A1、A2: 地址信号; SOUT: 串行输出2.18 D5 区:8253U35 D0 D1 D2 D3 D4 D5 D6 D7 CS 8253 RD WR 8 7 6 5 4 3 2 1 21 22 23 19 20 D0 D1 D2 D3 D4 D5 D6 D7 CS RD WR A0 A1 8253 OUT2 GATE2 CLK2 OUT0 GATE0 CLK0 10 11 9 OUT0 GATE0 CLK0CS:片选信号,低电平有效; A0、A1:地址信号;OUT1 GATE1 CLK113 14 15OUT1 GATE1 CLK1A0 A117 16 18OUT2 GATE2 CLK22.19 E1 区:直流电机转速测量/控制使用光电开关测速VCC R8 CTRL VCC R16 470 R20 4.7K 3 4 GP2S05 R28 4.7K SN74LS14N SN74LS14N Q4 A 2 3 DS4 JP4 1 2 R18 DS10 330 R17 330 R19 330 U7B 4 REV DS9 DS8LIGHTM直流电机330 OP1 1 2126使用霍尔器件测速R8 CTRL 470 A DS47 VCC8JP4 1 2 R18 DS10MR16 330 U1 VCC 3 REV OUT 3020 GND 1 2330 R17 330 R19 330DS9 DS8直 电 流 机LIGHTCTRL:控制电压(DAC0832 经功放电路提供)输入;REV:光电开关或霍尔器件脉冲输出(用 于转速测量);LIGHT:低电平点亮发光管。B13 B2.20 E2 区:DAC0832 数模转换R71 470 U20 1 2 18 19 17 7 6 5 4 16 15 14 13 3 10 CS WR1 WR2 ILE XFER DI0 DI1 DI2 DI3 DI4 DI5 DI6 DI7 AGND DGND VDD 20 W5 1K DS23 VCCCSR78 510 D5 C33 0.1uF -12V R151 VCC +12V R162 R150 U26C 9 10 LM324N OUT R79 4.7K -12V OUT1WRW6 -12V 10K411D0 D1 D2 D3 D4 D5 D6 D7D A C0 8 3 2 L CNVREF RFB IOUT1 IOUT2811 12U23 2 3 LM741CN 5798 6 14C8Q7 C2655R149CS:片选,低有效;OUT:转换电压输出;OUT1:经功放电路的电压输出;电位器 W5:调 整基准电压。2.21 E3 区:蜂鸣器Vcc
R1 Ctrl 2K 5.1K C40 0.01uF Buzzer R11 100 LS1Ctrl:控制接口,0-蜂鸣2.22 E4 区:温度测量/控制VCC R9 470 R3 10K U1 2 DQ 1 3 38 TCtrl DS5 JP5 1 2TOUTVCC DS18B20 GND热源RT1TOUT: 数据线 TCtrl: 温度控制端,向发热电阻 RT1 供电14t 2.23 E5 区:RS485U47 RE/DE RO 2 1R BVCC VCCA8 6 7 R119 120 B ADI3 4 5 GNDDMAX485CPA2.24 E6 区:RS232VCC 0.1uF C75 C76 J1 C72 U46 13 8 11 10 1 3 R1 IN R2 IN T1 IN MAX202CPE T2 IN C1+ C1 R1 OUT R2 OUT T1 OUT T2 OUT C2+ C2 12 9 14 7 4 5 0.1uF 0.1uF 1 6 2 7 3 8 4 9 52 6 1611 10V+ VV CCRXDTXDC700.1uFGNDC710.1uF2.25 F1 区:红外通讯VCC DS11 R29 470 JP11 1 2 R37 100 C12 R38 10K OUT 4.7uF 2 Q5 3 8550 1K R36 10K R30 IN 8550 HS0038B 1K R32 10K VCC R21 100 Q315R33 CLK1DS12Q21IN: OUT: CLK:1串行数据输入 串行数据输出 载波输入,可接 31250(B2 区)频率输出2TSAL620022.26 F2 区:0~5V 电压输出VCC W1 A 0-5V 10K0-5V: 电压输出端15 2.27 F3 区:ADC0809 模数转换R72 470 U18 CLK 10 6 26 27 28 1 2 3 4 5 25 24 23 22 13 CLK START IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 ADD A ADD B ADD C ALE GND VCC EOC OE D0 D1 D2 D3 D4 D5 D6 D7 11 7 9 17 14 15 8 18 19 20 21 D0 D1 D2 D3 D4 D5 D6 D7 EOC U24B 4 5 SN74LS02N SN74LS02N 6 RD DS24 VCC U24A 1 2 3 CS WRIN0IN5 IN7 ADDA ADDB ADDCA D C0 8 0 9 CCNIN3VREF+ VREF-12 16CS: CLK: ADDA,ADDB,ADDC: EOC: IN0、IN3、IN5、IN7:片选,低有效; 输入时钟(10k-1280kHZ); 通道地址输入口; 转换结束标志,高有效。 模拟量输入2.28 F4 区:键盘&LEDDS29 1 2 3 4 5 6 7 8 SEGA SEGB SEGC SEGD SEGE SEGF SEGG SEGH 11 7 4 2 1 10 5 3 a b c d e f g dpa g d b c dp GND4 GND3 f e a g d b c dp GND2 f e a g d b c dp GND1 f eLG4041AHa g d b c dpDS30 SEGA SEGB SEGC SEGD SEGE SEGF SEGG SEGH 11 7 4 2 1 10 5 3 a b c d e f g dpa g d b c dp GND4 GND3 f e a g d b c dp GND2 f e a g d b c dp f eLG4041AHa g d b c dp GND1BJP421212JP41 1 2 3 4 5 6 7 8986986CJP9211 21 31 41 51 61 71 8112 22 32 42 52 62 72 821 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8DJP47AA: C:按键的列线 数码管选择脚B: D:数码管段码 按键的行线16 122.29 F5 区:发光管、按键、开关JP65 VCC R107 LED1 LED2 LED3 LED4 470 DS32 JP63 1 2ADS35 DS36 DS37 DS38 DS39 DS40 DS41 DS42 B发光管电路原理图 JP65:发光管控制接口,0-灯亮,1-灯灭1 2510 510 510 510 510 510 510 510R1 1 1 R1 1 2 R1 1 3 R1 1 4 R1 1 5 R1 1 6 R1 1 7 R1 1 81 2 3 4 5 6 7 81JP74 VCC2JP80R119 10KVCC1 2 3 4 5 6 7 8AAC1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8R124 1 2 3 4 5 6 7 8 910KK5 K6 K7 K8S29S30S31S32S33S34S35S36S21BS22S23S24S25S26S27S28B按键电路原理图JP74:按键控制接口;按下-0 信号,松开-1 信号D开关电路原理图JP80:开关控制接口;闭合-0 信号,断开-1 信号C12C17 2.30 F6 区:8*8LED 点阵JP241017 15 13 11 8 6 4 2 A8 A7 A6 A5 A4 A3 A2 A1U50 SN74LS240N 8255R1 R2 R3 R4 R5 R6 R7 R8DS26 R88 470 VCC JP40 1 2 U12 1 19 JP23 L1 L2 L3 L4 L5 L6 L7 L8 2 4 6 8 11 13 15 17 10 OE1 OE2 A1 A2 A3 A4 A5 A6 A7 A8 GND VCC VCC 20GND3 5 7 9 12 14 16 1820V CCVCCLED1 18 16 14 12 9 7 5 3 8 7 3 14 2 12 11 5 R1 R2 R3 R4 R5 R6 R7 R8Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8SN74LS244NJP23:8 根行扫描线;JP24:8 根列扫描线。18C1 C2 C3 C4 C5 C6 C7 C8LG7088BH1 6 16 4 9 15 10 13Y8 Y7 Y6 Y5 Y4 Y3 Y2 Y1OE2 OE119 1 3 星研集成环境软件USB 接口的仿真器、实验仪客户:USB 设备是即插即用的设备,在第一次安装时,Windows 将调用“添加新设备向导” 扫描所有可用的 INF 文件,试图找到合适的驱动程序。为了避免 USB 设备安装可能造成的麻烦,我们强烈的建议您先安装星研集成环境软件,安装程序将自动处理 USB 设备安装所需的 INF 文件和驱动程序。3.13.1.1软件安装安装星研集成环境软件一. 新用户安装步骤 使用光盘安装: 1.将仿真器、实验仪所配 CD 插入 CD-ROM 驱动器。 2.在“我的电脑”或“资源管理器”中选择 CD-ROM 驱动器\ WIN32\星研,然后运行 SETUP.EXE 文件即可进入安装界面。 3. 中文界面,用户只需按程序提示一步一步进行安装即可。 使用 Internet 下载文件的用户 1.运行下载文件(XingYan.exe) ,软件自动执行安装程序。 2.安装程序为中文显示,用户只需按程序提示一步一步进行安装即可。 二. 已安装过低版本星研集成环境软件的用户的安装步骤: 1.首先将原来的低版本软件进行卸载,具体步骤请参考“软件卸载”部分的内容。 2.以后按新用户的安装步骤进行安装。 在安装过程中,如果用户没有指定安装目录,安装完成后会在 C:盘建立一个 C:\XINGYAN 目录(文件夹),结构如下: XingYan 可执行文件、DLL 文件、寄存器文件 EXAMPLES 例子程序3.1.2软件卸载1.进入控制面板,运行“添加/删除程序” 。 2.进入“添加/删除程序”窗口,在“安装/卸载”页面上的列表中选择“星研集成环境软件” , 按“删除”按钮,之后按自动卸载程序的说明一步一步地操作即可。3.1.3USB 驱动程序1、USB 驱动程序的安装 通过 USB(通用串口总线)接口将微机与仿真器、实验仪相连,打开仿真器、实验仪电源。 仿真器、实验仪与微机的第一次连接引起驱动程序的安装会变得很简单,您只需等待安装过程19 的结束或按驱动程序的安装向导执行完即可。驱动程序的安装会出现如下界面:实际的界面可能有些差别,请等待该过程的结束。驱动程序的安装过程中,请勿执行其它 应用程序。 2、 如何解决连接不上的情况 如果仿真器、实验仪与微机连接不上是由于未按正确步骤造成的,可根据以下步骤解决: Window98/Window Me:重新安装星研集成环境软件,关闭仿真器电源,稍等几秒钟,再打 开电源,等待操作系统安装新的驱动程序结束后,运行星研软件即可。 Windows2000/WinXP:在仿真器电源打开的情况下,使用控制面板中的“设备管理器” ,可 以看到一个未安装好的 USB 设备:上图中的“通用串行总线控制器”下有一个打问号的 USB 设备,选中后按鼠标右键,选择 菜单中的“卸载”项。重新安装星研集成环境软件,关闭仿真器、实验仪电源,稍等几秒钟, 再打开电源,等待操作系统安装新的驱动程序结束后,运行星研软件即可。 注意:必须先安装星研集成环境软件;在 WinXP 中,驱动程序的安装会有选项,按缺省的值选 择即可。3.1.4软件启动运行 Windows,进入桌面窗口。 鼠标单击“开始”按钮,在“程序”栏中打开“星研集成环境软件”菜单栏,在其中选择 “星研(SUPER、STAR 系列仿真器),开始启动星研集成环境软件。 ”20 注意:当您使用低配置机器时,从星研集成环境软件退出后必须等待足够的时间,让系统完全 退出(硬盘停止工作)后,方可再次启动星研集成环境软件。3.1.5编译器星研集成环境软件支持的编译器 MCS51 Keil A51、C51 Franklin A51、C51 Intel ASM51、PL/M51 Archimedes A8051、C-51 MCS96、MCS196 Intel ASM96、PLM96、C96 Tasking ASM196、C196 80X86 TC、TASM编译器请用户自备。 设置工作环境 您的编译器正确安装后,请设置星研集成环境软件的编译器工作环境。 打开[主菜单 ? 项目 ? 设置工作环境]:例如:您使用的编译器是 TASM、TC,安装在 C:\xingyan\TASM,C:\xingyan\TC, TASM 宏汇编路径: C:\xingyan\TASM; Turbo C 路径: C:\xingyan\TC;3.1.6README 文件使用通用的文本编辑器,打开星研集成环境软件安装目录下的 README.DOC 文件,可获 得此版本软件新增功能及最新的仿真器、实验仪安装、新增功能和使用信息,这些信息往往未 及写入本手册。21 3.2如何使用星研集成环境软件下 边 几 节 , 介 绍 如 何 使 用 星 研 集 成 环 境 软 件 : 3.2.1 使 用 汇 编 语 言 , 将 数 据 段 中 3000H~30FFH 单元的内容传送给实验仪 B4 区的 61C256 的 2000H~20FF 中;B4 区的 61C256IOW 读写; 在 I/O 设备区, 使用 IOR 、 再将它传送回数据段的 6000H~60FFH 中。 3.2.2 使用 TurboC,重新编写第一个实验。3.2.1数据传送程序(ASM)星研集成环境软件推荐您使用项目为单位来管理您的程序。如果您做一个简单的实验,或 只希望看一个中间结果,您可以不建立项目文件,系统需要的各种设置,来源于“缺省项目” 。 本节不使用项目文件。 本例子旨在通过建立一个具体的程序来介绍星研集成软件的使用方法以及它的强大的调试 功能。使用户很快的上手,体验到我们软件功能的强大和方便。 本实例是将数据段中 3000H~30FFH 单元的内容传送给实验仪 B4 区的 61C256 的 2000H~ 20FFH 中; 区的 61C256 在 I/O 设备区, B4 使用 IOR 、IOW 读写; 再将它传送回数据段的 6000H~ 60FFH 中,程序是用汇编语言来编写。下面介绍相应的操作步骤: 首先运行星研集成软件。启动画面如图:1、选择仿真器或仿真模块22 执行 [主菜单 ? 辅助 ? 仿真器],出现一个对话框:请选择实验仪:STAR ES598PCIS;仿真器:EMU598+仿真模块;选择“确认” 。 如果选择“模拟调试器” ,实验仪电源不用开启,使用微机 CPU 模拟执行程序,可以调用 附件中的软中断,但无法对 I/O 接口操作。 学生在做实验前,可以选择“模拟调试器” ,在星研集成环境中编写程序,对它编译、连 接,解决语法错误,使用模拟调试功能,初步调试;可以大幅度减少在实验室中做实验的时间。 2、设置缺省项目 执行 [主菜单 ? 辅助 ? 缺省项目],出现一个对话框:(使用 EMU598 仿真模块, 选择 “STAR ES8688 仿真模块” ) (使用 EMU598+仿真模块, 选择 “8086 (EMU598+)) ”23 点击进入下一步: “选择语言”您可以根据自己的需要以及程序的类型作相应的选择,本实例选择 Borland 公司的 Turbo C (3.0) 、TASM(5.0) (请确定在选择语言之前已经安装好相应的编译软件)。然后再点击进入 下一步: “编译、连接控制项”实验仪提供 64K memory 空间,memory model 请选择 tiny,缩写为如果需要源 程序级别调试,必须使用-v Cy 控制项,为了支持多文件 编译、 连接, 必须使用-c 控制 项。 一般不必改变 Turbo C 的 编译控制项。24 如果需要源程序级别调 试,必须使用/zi /l 控制项。 一般不必改变 Tasm 的编 译控制项。如果需要源程序级别调 试, 必须使用/m /l /v 控制项。 一般不必改变 TLINK 的 连接控制项。然后再点击进入下一步: “存贮器出借方式”25 仿真模块 EMU598 提供 64K 仿真 RAM,作程序段(CS) 、数据段(DS) 、附加段(ES) 、堆栈 段(SS)使用。 2、建立源文件 下面我们建立源文件,执行 [主菜单 ? 文件 ? 新建], (或者点击图标 )打开窗口如下:首先选择存放源文件的目录,输入文件名,注意:一定要输入文件名后缀。对源文件编译、 连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。比如:*.asm 文件, 使用 TASM 来对它编译。本实例文件名为 move.asm。窗口如下:26 按“确定”即可。然后出现文件编辑窗口:输入源程序,本实例的源程序如下: .MODEL TINY .STACK 100 .CODE START: MOV AX,@DATA MOV DS,AX MOV ES,AX NOP MOV CX,100H MOV SI,3000H MOV DX,2000H START1: MOV AL,[SI] OUT DX,AL INC SI INC DX LOOP START1 MOV DI,6000H MOV DX,2000H MOV CX,100H START2: IN DX,AL MOV [DI],AL INC DI INC DX LOOP START2 SJMP $ Move ENDP END;memory mode :堆栈 ;开始程序段START输入源程序,如下图:27 这样一个源文件就建立好了。 3.编译、连接文件 首先选择一个源文件,然后可以编译、连接文件了。对文件编译,如果没有错误,再与库 文件连接,生成代码文件(DOB、EXE 文件) 。编译、连接文件的方法有如下二种: (1)使用[ 主 菜单 ? 项目 ? 编译、连接 ]或[主菜单 ? 项目 ? 重新编译、连接 ]”(2)点击图标 或 。 来“编译、连接”或“重新编译连接” 。 “编译连接”与“重新编译、连接”区别: “重新编译、连接”不管源文件是否修改、编译 软件是否变化、编译控制项有无修改,对源文件编译,如果没有错误,再与库文件连接,生成 代码文件(DOB、EXE 文件) 。编译、连接过程中产生的信息显示在信息窗的“建立”视中。编 译没有错误的信息如下:若有错误则出现如下信息框:28 有错误、警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车, 系统自动打开对应的出错文件,并定位于出错行上。这时用户可以作相应的修改,直到编译、连接文件通过。 5.调试 在进入调试状态以前,请正确设置通信口:执行[ 主菜单 ? 辅助 ? 通信 ],对话框如下:仿真器、实验仪配套的通信线可以与微机 USB 口相连,即为 USB 通信线,请选择 USB。 对于最下面一行的校验,通常您不必选中它,可以提高传送 DOB、HEX、BIN 文件时的速度。 在进入调试状态以前,你还必须确定实验仪与微机的正确连接,电源接通,开关打开。 如果编译、连接正确后,可以开始调试程序。进入调试状态方法有: a) 执行[ 主菜单 ? 运行 ? 进入调试状态] b) 点击工具条的 c) 执行[ 主菜单 ? 运行 ? 装载 DOB、HEX、BIN 文件]29 进入后的窗口如下:在整个图片中我们可以看到相对应的窗口信息。在“工作区窗”的“CommonRegister”中我 们可以了解通用寄存器的信息。中间的窗口为源程序窗口,用户可在此设置断点,设置光标的 运行处,编辑程序等。寄存器窗我们可以看到一些常用的寄存器的数值。存贮窗 1、存贮窗 2 显示相应的程序段(CS) 、数据段(DS) 、IO 设备区的数据,还有变量窗,自动收集变量显示其 中。反汇编窗显示对程序反汇编的信息代码、机器码、对应的源文件。在信息窗的“装载”视 中,显示装载的代码文件,装载的字节数,装载完毕后,显示启始地址,结束地址。这种船坞 化的窗口比通常的窗口显示的内容更多,移动非常方便。用鼠标左键点住窗口左边或上方的标 题条,移动鼠标,将窗口移到您认为合适的位置;将鼠标移到窗口的边上,鼠标的图标变成可 变化窗口时的形状,用鼠标左键点住,移动鼠标,变化一个或一组窗口的大小。在调试过程中, 可以根据您的需要,在[主菜单 ? 查看]中打开:寄存器窗、存贮器窗 1、2、3、观察窗、变量 窗、反汇编窗。您也可以通过[主菜单 ? 辅助 ? 设置 ? 格式],设置每一种窗口使用的字体、 大小、颜色。移动窗口到您喜欢的位置、大小。首先在“种类”中选择一个窗口,然 后选择“字体”“大小” 、 ,在“颜色” 中选择某一类,在“前景” “背景” 、 中选择您喜欢的颜色。30 对于高级语言,在您的程序前有一段库文件提供的初始化代码, (当前可执行标志)不 会出现在您的文件行上, 如果您使用 C 语言, 可将光标移到 main 函数上, F4 功能键, CPU 按 让 全速运行到 main 行上后停下;如果您使用 PL/M 语言,按 F7 功能键,让 CPU“单步进入” ,运 行到您的任何一个可执行行后停下。 您可以使用以下命令调试您的程序: 设置或清除断点(功能键为 F2) 在当前光标行上设置或清除一个断点 单步进入(功能键 F7) 单步执行当前行或当前指令,可进入函数或子程序。 连续单步进入(功能键 Ctrl + F7) 连续执行“单步进入” ,用鼠标点击 或按任意键后,停止运行。 单步(功能键 F8) 单步执行当前行或当前指令,将函数或子程序作为一条指令来执行。如果当前行中含 有函数、子程序或发生中断,CPU 将执行完整个函数、子程序或中断,停止于当前行或当 前指令的下一有代码的行上。 连续单步(功能键 Ctrl + F8) 连续执行“单步” ,用鼠标点击 或按任意键后,停止运行。 运行到光标行(功能键 F4) 从当前地址开始全速运行用户程序,碰到光标行、断点或用鼠标点击 ,停止运行。 全速断点(功能键 F9) 从当前地址开始全速运行用户程序,碰到断点或用鼠标点击 ,停止运行。 全速运行(功能键 Ctrl + F10) 从当前地址开始全速运行用户程序,此时,按用户系统的复位键,CPU 从头开始执行 用户程序,用鼠标点击 ,停止运行。全速运行时,屏蔽了所有断点,即不会响应任何断点。 停止运行 终止微机与仿真器之间通信(功能键 ESC) 。 注意:欲终止微机与仿真器之间通信,功能键 ESC 是一个很方便的键,它的效果比点击相 应的图标的效果要好。建议用户多用 ESC 键。在系统运行“连续单步”或者“连续单步进入” 时 ESC 键被禁止,这时用户可以按键盘的其他任意键停止其运行。 5.调试的方法及技巧 一般来说,用户的程序或多或少的会有一些逻辑错误,我们的仿真器、实验仪和星研集成 软件可以帮助用户很快的定位,很快的查出相应的错误。 在调试状态的窗口中我们可以看到很多的窗口,用户只要熟练地应用这些窗口来观察、分 析数据就会很快的调试好程序,达到事半功倍的效果。 进入调试界面后,由于我们本次操作需要观察三个数据块:数据段 3000H~30FFH,数据段 6000H~60FFH,I/O 区 2000H~20FFH,可以打开二到三个存贮器窗口,具体操作是:[主菜单? 查看]31 然后根据你的需要打开不同的窗口。调整后的调试界面为:由于我们本次操作主要是观察存贮器窗口,所以我们拉大了这两个存贮器窗口的大小。每个窗 口设置了 4 个分页项: ,我们可以在不同的分页项设置不同的观察 数据空间以及地址范围。在 中可以选择 CS:Memory,DS:Memory,I/O,根据需要 可以做不同的选择。在 中可以直接输入地址,然后按回车,就可以直接转到 我们输入的地址的窗口上面观察数据。 由于我们在此程序中的写入数据的 RAM 空间分别为 DS: 3000H~30FFH、DS:6000H~60FFH、I/O 区 2000H~20FFH,故我们建立的分页项如下: 存贮 0 分页项:32 存贮 1 分页项:存贮 2 分页项:我们这样设置界面的目的就是当用户要观察不同地址段的数据时, 只要切换一下分页项就行了。 由于本次程序需要同时观察 DS:3000~30FFH、I/O:2000~20FFH 和 I/O:2000H~20FFH、DS: 6000H~60FFH,所以打开二个存贮器窗。如图:33 软件中总共存在 3 个存贮器窗。可以同时观察三个不同的地址。 存贮器窗口支持数据的直接修改功能。本软件的所有窗口中的数据都支持直接修改功能。 用户可以根据自己的需要在窗口中直接修改数据。比如:执行程序前,将 DS:3000H~300FH 中的数据改为 11、22、33、44、55、66、77、88、99、AA、BB、CC、DD、EE、FF、00,在相对 应的地址中直接输入数据即可。如图:一般刚刚写好的程序,在进入调试状态后,执行“单步”或者“单步进入” ,我们推荐您能 记住这些操作的相对应的功能键,这样您就在调试程序的过程中很方便。 在刚才的调试程序中我们多次执行“单步(F8) ”命令,在工作区窗口的 CommonRegister 视中查看通用的寄存器:我们可以观察到在本程序中所使用的一些寄存器的变 化,比如 AX、CX、DX、SI 的数值的变化,每一次循环, CX 减一, SI 加一, 寄存器的低字节 AL 暂存从 DS: DX、 AX [SI]取出的数值:11、22、33、44、55、66??。我们可以看到存贮器窗口中的相对应的 RAM 的数据的变化。比如其中右边为相应数据的 ASCII 码。切换分页项我们可以观察到其它地址的数据。 把光标移动到 MOV DI,6000H 行上,点击图标 (功能键 F4) ,全速运行到光标行,检 查 IO:2000H~20FFH 内容,是否与 DS:3000H~30FFH 相同,如果完全一样,说明以上程序没 有任何问题。 切换分页项,存贮器窗显示 DS:6000H 开始的单元内容,将光标移到 JMP $行的左边,34 鼠标变为,点击鼠标,在该行上设置了一个断点,也可以用鼠标点击该行,将光标移到鼠标 (功能键为 F2) ,设置断点,重复操作,清除断点。处,点击图标点击图标 (功能键 F9) ,CPU 全速断点运行到光标处停下,检查 DS:6000H~60FFH 内 容,与 I/O:2000H~20FFH 内容是否一样,相同表示程序没问题;如果不相同,将光标移到 MOV DI,6000H 行上(具体操作是:用鼠标点击该行,然后再点击图标 ) ,使用单步进入命令 F7 或连续单步进入命令 Ctrl + F7,检查结果,判断程序出错原因。3.2.2数据传送程序(C)本例子使用项目文件来管理,旨在通过建立一个具体的项目来介绍星研集成软件的使用方 法。如果您的系统有几个文件组成,就必须使用项目文件。 1、建立项目文件 执行 [主菜单 ? 文件 ? 新建], (或者点击图标 )打开窗口如下:由于星研集成软件是以项目为单位来管理 程序的。 所以我们在建立文件之前先要建立项目 文件。点击“创建项目文件”分页项,如图示:我们可以输入项目文件名,以及选择目录, 星研集成软件在您输入一个项目文件名时, 就建 立了以项目文件名为名的一个文件夹, 以后您在 编译、 调试过程中生成的所有文件都在此文件夹 里。 这体现了星研集成软件的人性化设计。 键入 项目文件名“move” ,如下:35 然后按确定,进入“设置项目文件”部分。 2、设置项目文件 设置项目文件与设置缺省项目操作完全一样,请参阅上一节。 3、建立源文件 建立好项目文件的窗口如下图所示:工作区窗的项目视中,包含“源文件”“头文件”“库文件”“其它文件”“其它文件” 、 、 、 , 中通常包含对该项目用途作一些说明的文件。 “库文件”通常包含编译软件自带的 OBJ 文件、 LIB 等库文件。 下面我们建立源文件,执行 [主菜单 ? 文件 ? 新建], (或者点击图标 )打开窗口如下:36 选定刚才建立的项目文件的文件夹,输 入文件名,注意:一定要输入文件名后缀。 系统会根据不同的后缀名给文件归类。比 如:*.asm 文件系统会自动归类为源文件。 选中“添加到项目文件中” ,系统自动将该 模块文件加入到项目中。本实例文件名为 move.c。按“确定”即可。然后即出现文件编辑窗口:程序清单: #include &conio.h& void main(void) { unsigned char array1[0x100]; unsigned char array2[0x100]; for (i = 0; i & 0x100; i++) array1[i] = ~i; for (i = 0; i & 0x100; i++) outportb(i + 0x2000, array1[i]); for (i = 0; i & 0x100; i++) array2[i] = inportb(i + 0x2000); while (1); } 建立好文件的窗口如下:37 附: 注意:若在新建文件时不输入文件后缀,则其文件不会保存在源文件那一项,而是保存在其他 文件的文件夹中。一般我们建立对项目说明的文件即可用此方法。如图建立一个本程序的说明 文档“shuoming”然后编辑文档,如下图:38 然后保存,就可以了。 4、编译、连接文件 在建立好项目文件、源文件后,就可以编译、连接文件了。对工作区窗项目视的“源文件” 中所有模块文件编译, 如果没有错误, 再与 “库文件” 中所有库文件连接, 生成代码文件 (DOB、 EXE 文件) 。编译、连接文件的方法有如下三种: (1)在工作区窗的项目视中按鼠标右键,系 统弹出快捷菜单,选择“编译、连接”或“重新编译连接”(2)使用[ 主菜单 ? 项目 ? 编译、 。 连接 ]或[主菜单 ? 项目 ? 重新编译、连接 ]”(3)点击图标 或 来“编译、连接”或“重 。 新编译连接” 。 “编译连接”与“重新编译、连接”区别: “重新编译、连接”不管项目中有无添加、删除 模块文件、编译软件是否变化、编译控制项有无修改、模块文件有无修改,对“源文件”中所 有模块文件编译,如果没有错误,再与“库文件”中所有库文件连接,生成代码文件(DOB、 EXE 文件) 。编译、连接过程中产生的信息显示在信息窗的“建立”视中。 详细请参阅上一节。 5、调试项目文件 下面我们进入调试状态,调试 C 语言程序时,我们观察的比较多的是寄存器窗、观察窗和 变量窗。所以我们把这些窗口放在前台,并调整至适当的大小。如图所示:39 我们执行“单步”命令时就会在变量窗口中看到相应的变量的变化:变量窗包含“自动”“局部”“模块”“全局”四个标签视。 、 、 、 自动: 星研自动搜集当前行(PC 指针对应的文件行)及前二行上的变量。通常这三 行有您最关心的变量,也是星研集成环境的一大特色。 局部: 显示当前函数或当前过程中的所有变量。 模块: 显示当前模块文件中所有模块级变量。 全局: 显示所有全局变量。 经常查看的变量分别放入观察窗的 4 个标签视中,您会感觉非常方便、快捷。在观察窗口 中我们可以随意的添加我们想要观察的变量,具体方法是:(1)在文件窗中,用鼠标左键双击 变量名,按住鼠标左键,将该变量名拖至观察窗中,释放鼠标左键,星研自动将该变量添至观 察窗中。(推荐方法)(2)用鼠标左键双击观察窗中的虚线框,出现一个编辑框,在编辑框中 输入一个变量名,输入回车即可。观察窗中的四个页面项的作用完全一样,当您要观察的变量 很多时,用户可以在不同的页面项输入观察变量,这样观察时只要点击一下页面项就可以了。 这也是星研软件的人性化设计的一个方面。比如;我们在观察窗中添加变量 i,array1,array2 观察,如图:40 这也就方便了用户的调试和分析。 在第一个循环中,连续执行单步操作,我们可以看到 i 的值在递增,0FFH~00H 赋给 array1[0]~array1[255];第二个循环中,连续执行单步操作,我们可以看到数组 array1 复制 给 I/O:2000H~20FFH;第三个循环中,连续执行单步操作,我们可以看到 I/O:2000H~20FFH 单元数据复制给数组 array2;比较数组 array1、array2 中数据,判断程序是否正确。 当然这些窗口中的数值也支持直接修改功能,双击要修改的数值,出现一个编辑框,在编 辑框中输入数据,输入回车即可。用户在调试很长的程序时,为了分段检测,若前段程序有问 题,我们可以在下一段程序前用修改变量的方法先使程序满足所需要运行的条件,这样就方便 了下一段程序的检测。 另外一种查看变量方法:鼠标移到文件窗、反汇编窗口中的变量、寄存器上,半秒钟后, 在它们的旁边,会显示相应的值。所以说星研集成软件为用户提供了许多实用和方便的观察、调试、分析的功能,其他的一 些功能我们会在后续的实例中作更详细的介绍。用户也可以依此类推,发掘出更多更好的为自 己调试程序方便的功能。3.3实验连线、演示实验、测试实验仪演示实验 选择仿真器或仿真模块时,必须正确选择购买的实验仪,选择完毕后,会出现一个工具条41 首先选择哪一类实验, 例如: 软件实验、 基础硬件实验、 综合实验; 然后选择实验, 点击 显示该实验对应的连线说明:,点击 ,星研软件自动将该实验的机器码装入实验仪,并全速运行该程序;如果按照上述 连线后,没有出现实验结果,可以怀疑与该实验相关的芯片出问题。 完整自检 SUN 系列实验仪,如果配置了 Test Board 测试模块,点击 ,可以对整套实验仪检测,包 括测试模块:42 首先,请正确选择串口,星研软件通过串口,向实验仪发出各种测试命令;然后,选择使 用的液晶,12864J:12864 图形点阵液晶;12864M:带汉字库的 12864 图形点阵液晶;12864C: 12864 图形点阵液晶,通常同时配置触摸屏。 如果需要测试 RS485,必须选择当前实验仪是主机还是从机;如果还需测试模块,请正确 选择模块。 如果只需测试实验仪的一部分,请自行选择。 点击“开始测试” ,根据对话框的下半部分提示,完成对实验仪的完整测试。 (整个测试 过程,只需连接扁线、一、二根连接线,非常适合新学期开始,对所有作一检测,了解实验仪 的实际状况。 )3.4频率计(EMU598+)如果您需要测试 CPU 的振荡频率、 您电路中其它信号的频率, 您可以选择频率计功能: 主 [ 菜单 ? 分析手段 ? 频率计 ]。它可以测试 100M 以内的信号。43 EMU598+仿真模块的 FREQ 与被测信号相连。 频率计、仿真部分可以并行运行。3.5模拟波形发生器(EMU598+)EMU598+仿真模块可以提供 2 路模拟波形:正弦波、方波、锯齿波、三角波或自定义波形。 您可以选择模拟波形发生器功能:[ 主菜单 ? 分析手段 ? 模拟波形发生器 ]。EMU598+仿真模块的 W1、W2 对应于通道 1、通道 2。 任意波形:首先创建一个 BIN 文件,包含 100 个字数据;每个字数据包含 12bit 二进制数, 即每个字数据的有效范围为 0000H-0FFFH;根据您希望产生的波形,换算出 100 个字数据。 模拟波形发生器、仿真部分可以并行运行。3.6TDS2、TDS2A(EMU598+)虚拟示波器TDS2 虚拟示波器模块的安装软件在“实验仪\TDS2”文件夹;TDS2A 虚拟示波器的安装软件 在“实验仪\TDS2A(EMU598+)”文件夹,运行 SETUP.EXE 文件即可进入安装界面,您只需按程序 提示一步一步进行安装即可。44 点击“启动/暂停”按钮,可以启动或暂停虚拟示波器功能。操作与一般示波器类似。45 4软件实验软件实验部分共有七个实验组成, 通过对这些实验程序的编写、 调试, 使学生熟悉
的指令系统等,了解程序设计过程,掌握汇编程序、C 程序设计方法以及如何使用实验系统提 供的各种调试、分析手段来排除程序错误。实验一数据传送一、实验目的 熟悉星研集成环境软件的使用方法。熟悉 Borland 公司的 TASM 编译器 熟悉 8086 汇编指令,能自己编写简单的程序,掌握数据传输的方法。 二、实验内容 1、熟悉星研集成环境软件。 2、编写程序,实现数据段的传送、校验。 三、程序框图开始 循环次数--&CX,源首地址 --&SI,目的首地址--&DI 调用数据传送子程序 循环次数--&CX,源首地址 --&SI,目的首地址--&DI CLD:执行字符串指 令后,SI+1,DI+1 串比较,CMPSB N 相等? Y 操作成功 操作失败 结束 结束 数据块传送比较程序框图 数据传送子程序 Y 开始 CLD:执行字符串指 令后,SI+1,DI+1 比较SI和DI SI=DI? N SI&DI? N 设定SI为源数据块末地 址(SI=SI+CX-1) 设定DI为目的数块末地 址(DI=DI+CX-1) STD:执行字符串指 令后,SI-1,DI-1 数据串传送操作(MOVSB) Y四、实验步骤 在 DS 段内 3000H~30FFH 中输入数据; 使用单步、 断点方式调试程序, 检测 DS 段内 6000H ~ 60FFH 中的内容。熟悉查看特殊功能寄存器、CS 段、DS 段的各种方法。46 五、程序清单 .MODEL .STACK .DATA .CODE MOV MOV MOV NOP MOV MOV MOV CALL MOV MOV MOV CLD REPE JNE JMP $ JMP $ PROC CLD CMP JZ JNB ADD DEC ADD DEC STD REP RET ENDP END TINY 100START:AX,@DATA DS,AX ES,AX CX,100H SI,3000H DI,6000H Move CX,100H SI,3000H DI,6000H CMPSB ERRORTRUE: ERROR: MoveNEAR SI,DI Return Move1 SI,CX SI DI,CX DI MOVSBMove1: Return: MoveSTART六、思考题 1、子程序 Move 中为什么比较 SI、DI? 源数据块与目标范围有可能部分重叠,需要考虑从第一个字节开始复制(顺序复制) ,还 是从最后一个字节开始复制(倒序复制) 。 2、编写一个程序,将 DS 段中的数据传送到实验仪 B4 区的 61C256 中。 说明:B4 区的 61C256 在 I/O 设备区,使用 IOR 、 IOW 读写。47 实验二双字节 BCD 码(十进制数)加法一、实验目的 熟悉 8086 汇编指令,学会使用星研集成环境软件,能自己编写简单的程序,熟悉 BCD 码, 了解如何调用系统提供的子程序。 二、实验内容 从键盘上输入 4 位被加数、加数,实现双字节 BCD 码(四位数)的加法,结果显示在数码管 上;熟悉使用断点、单步进入、单步、运行到光标处、修改 PC 指针、全速运行等各种调试手段; 熟悉查看特殊功能寄存器、CS 段、DS 段存贮器的各种方法。 三、实验框图开始 设定&先清LED 再接收键 输入&标志 通过键盘获得4位被加 数(压缩BCD码) 设定&接收到第一个键 后才清除LED&标志 通过键盘获得4位 加数(压缩BCD码) 被加数与加数低位字 节不带进位加法 十进制调整 被加数与加数的高位字 节带进位加法 十进制调整 压缩BCD码转换为非压 缩BCD码 高位消隐 显示结果 双字节BCD码加法程序框图四、实验步骤 1、连线说明: D3 区 :CLK D3 区 :CS D3 区 :A0 ―― ―― ―― B2 区:2M A3 区:CS5 A3 区:A02、在 F4 区的键盘上输入 4 位被加数、加数 3、结果显示在 F4 区的数码管上 五、程序清单 EXTRN EXTRN .MODEL TINY Display8:NEAR,GetBCDKey:NEAR F1:BYTE .STACK 100 .DATA DB 8 DUP(?)BUFFER48 augend addendDB 2 DUP(?) DB 2 DUP(?) .CODE START: MOV AX,@DATA MOV DS,AX MOV ES,AX NOP MOV F1,0 START1: LEA DI,augend MOV CX,4 CALL GetBCDKey MOV F1,1 LEA DI,addend MOV CX,4 CALL GetBCDKey MOV AL,augend ADD AL,addend DAA XCHG AL,AH MOV AL,augend + 1 ADC AL,addend + 1 DAA XCHG AL,AH MOV BL,0 ADC BL,0 CLD LEA DI,BUFFER CALL B1toB2 MOV AL,AH CALL B1toB2 MOV AL,BL STOSB MOV AL,10H STOSB STOSB STOSB LEA SI,BUFFER+4 MOV CX,4 CALL BlackDisplay LEA SI,BUFFER CALL Display8 JMP START1 ;将一个字节压缩BCD码转换成二个字节非压缩BCD码 B1toB2 PROC NEAR;被加数 ;加数;先清除显示,再接收键输入 ;按键次数 ;得到双字节十进制数(被加数) ;接收到第一个键,才清除显示 ;按键次数 ;得到双字节十进制数(加数) ;低位;高位;进位 ;存放显示结果 ;低位 ;高位;最高三位消隐;将高位0消隐49 B1toB2 BlackDisplayBlackDisplay1:Exit: BlackDisplayPUSH AND STOSB POP AND ROR STOSB RET ENDP PROC STD MOV LODSB CMP JNZ MOV STOSB LOOP CLD RET ENDP ENDAX AL,0FH AX AL,0F0H AL,4NEAR DI,SI ;将高位0消隐 AL,0 Exit AL,10H BlackDisplay1START50 实验三双字节 BCD 码(十进制数)减法一、实验目的 熟悉 8086 汇编指令,学会使用星研集成环境软件,掌握汇编语言的设计和调试方法。能看 懂程序流程框图,能自己设计程序,熟悉 BCD 码、补码,了解如何调用系统提供的子程序。 二、实验内容 从键盘上输入 4 位被减数、减数,实现双字节 BCD 码(四位数)的减法,结果显示在数码管 上;进一步熟悉使用断点、单步进入、单步、运行到光标处、修改 PC 指针、全速运行等各种调 试手段;熟悉查看特殊功能寄存器、CS 段、DS 段存贮器的各种方法。 三、程序框图开始 设定&先清LED 再接收键 输入&标志 通过键盘获得双字节十 进制被减数(压缩BCD码) 设定&接收到第一个键 后才清除LED&标志 通过键盘获得双字节十 进制减数(压缩BCD码) 被减数&=减数 ? N 被减数与减数 10H--& 符号位 交换,11H--& 符号位(负数) Y 压缩 缩被减数与减数低位字节 不带进位相减 十进制调整 被减数与减数高位字节 带进位相减 十进制调整 码转换为非压 码高位0消隐,若结果为负, 前面加上&-& 显示结果双字节十进制减法程序框图四、实验步骤 1、连线说明: D3 区 :CLK D3 区 :CS D3 区 :A0 ―― ―― ―― B2 区:2M A3 区:CS5 A3 区:A02、在 F4 区的键盘上输入 4 位被减数、减数 3、结果显示在 F4 区的数码管上 五、程序清单.MODEL EXTRN EXTRN F1:BYTE TINY Display8:NEAR, GetBCDKey:NEAR51 .STACK .DATA BUFFER minuend subtrahend START: DB DW DW .CODE MOV MOV MOV NOP MOV START1: LEA MOV CALL MOV LEA MOV CALL MOV MOV MOV CMP JNB XCHG MOV START2: SUB DAS XCHG SBB DAS XCHG CLD LEA CALL MOV CALL MOV STOSB STOSB STOSB STOSB LEA MOV CALL100 8 DUP(?) 1 DUP(?) 1 DUP(?) AX,@DATA DS,AX ES,AX F1,0 DI,minuend CX,4 GetBCDKey F1,1 DI,subtrahend CX,4 GetBCDKey AX,minuend BX,subtrahend DL,10H AX,BX START2 AX,BX DL,11H AL,BL AL,AH AL,BH AL,AH DI,BUFFER B1toB2 AL,AH B1toB2 AL,10H ;高位 ;最高三位消隐 ;存放显示结果 ;低位 ;高位 ;负数 ;低位 ;按键次数 ;得到双字节十进制数(减数) ;按键次数 ;得到双字节十进制数(被减数) ;接收到第一个键,才清除显示 ;先清除显示,再接收键输入 ;被减数 ;减数SI,BUFFER+3 CX,3 BlackD将高位0消隐52 LEA CALL JMP B1toB2 PROC PUSH AND STOSB POP AND ROR STOSB RET B1toB2 BlackDisplay BlackDisplay1: ENDP PROC MOV CMP JNZ MOV MOV DEC LOOP Exit: CLD MOV RET BlackDisplay ENDP ENDSI,BUFFER Display8 START1 NEAR AX AL,0FH AX AL,0F0H AL,4;将一个字节压缩BCD码转换成二个字节非压缩BCD码NEAR AL,[SI] AL,0 Exit AL,10H [SI],AL SI BlackDisplay1 [SI+1],DL;将高位0消隐START六、思考题 带符号的十进制数加法程序如何编写?53 实验四四字节十六进制数转十进制数一、实验目的 进一步熟悉 8086 汇编指令,了解十六进制数转十进制数的方法。 二、实验内容 从键盘上输入 8 位十六进制数,实现四字节十六进制数转 8 位十进制数,并在数码管上显 示。注意输入数据必须在 H~05F00000H 范围,否则,结果超出 8 位十进制数,无法正 确显示。 三、程序框图开始 设定&先清LED 再接收键 输入&标志 通过键盘获得四字节十 六进制数 设定&接收到第一个键 后才清除LED&标志 4字节16进制数--&DI,SI 调用四字节十六进制转 十进制子程序 显示结果 主程序 N CX=CX-1 CX=0 ? Y 结束 四字节十六转十进制子程序 开始 0--&BX,AX(存放结果用) 32--&CX(循环次数) DI,SI(32位)循环右移一 位--&CYBH,BL,AH,AL x 2 +进位 CY,同时进行十进制调整四、实验步骤 1、连线说明: D3 区 :CLK D3 区 :CS D3 区 :A0 ―― ―― ―― B2 区:2M A3 区:CS5 A3 区:A02、在 F4 区的键盘上输入 8 位十六进制数 3、结果显示在 F4 区的数码管上 五、程序清单 EXTRN EXTRN .MODEL Display8:NEAR, F1:BYTE .STACK .DATA DB TINY GetKey:NEAR 100 8 DUP(?)BUFFER54 .CODE START: MOV AX,@DATA MOV DS,AX MOV ES,AX NOP MOV F1,0 ;先清除显示,再接收键输入 START1: LEA DI,BUFFER MOV CX,8 ;按键次数 CALL GetK得到4字节十六进制数 MOV F1,1 ;接收到第一个键,才清除显示 MOV SI,WORD PTR BUFFER MOV DI,WORD PTR BUFFER + 2 CALL B4toD4 ;转换成十进制数 LEA DI,BUFFER ;存放显示结果 CALL B1toB2 ;低位 MOV AL,AH CALL B1toB2 MOV AL,BL CALL B1toB2 MOV AL,BH CALL B1toB2 LEA SI,BUFFER+7 MOV CX,7 CALL BlackD将高位0消隐 LEA SI,BUFFER CALL Display8 JMP START1 ;将一个字节压缩BCD码转换成二个字节非压缩BCD码 B1toB2 PROC NEAR PUSH AX AND AL,0FH STOSB POP AX AND AL,0F0H ROR AL,4 STOSB RET B1toB2 ENDP BlackDisplay PROC NEAR STD MOV DI,SI BlackDisplay1: LODSB ;将高位0消隐 CMP AL,0 JNZ Exit55 MOV AL,10H STOSB LOOP BlackDisplay1 Exit: CLD RET BlackDisplay ENDP ;四字节十六进制数转十进制数:DISI为十六进制,BXAX为压缩BCD码 B4toD4 PROC NEAR XOR AX,AX XOR BX,BX MOV CX,32 B4toD4_1: RCL SI,1 RCL DI,1 ADC AL,AL DAA XCHG AL,AH ADC AL,AL DAA XCHG AL,BL ADC AL,AL DAA XCHG AL,BH ADC AL,AL DAA XCHG AL,BH XCHG AL,BL XCHG AL,AH LOOP B4toD4_1 RET B4toD4 ENDP END START六、思考题 如果不考虑在数码管上显示,不限制数据范围,程序应如何编写。56 实验五散转一、实验目的 熟悉使用 8086 指令,掌握汇编语言的设计和调试方法;理解并能运用散转指令。 二、实验内容 编写程序,根据接收到的键值,作不同的处理。 三、程序框图开始 键盘扫描 直到有一个按 键输入(值存于AL中) AL&8? N 0--&AL AH=0, AX--& BX BX * 2 --& BX 散转表地址--&DI JMP CS:[DI][BX] Y0号键: 1号键: 2号键: 3号键: 4号键: 5号键: 6号键: 7号键:显示8个1 显示8个2 显示8个3 显示8个4 显示8个5 显示8个6 显示8个7 显示8个8散转程序流程框图四、实验步骤 1、连线说明: D3 区 :CLK D3 区 :CS D3 区 :A0 ―― ―― ―― B2 区:2M A3 区:CS5 A3 区:A02、在 F4 区的键盘上输入 1 位数 3、使用各种手段调试程序 3、结果显示在 F4 区的数码管上 五、程序清单 ;调用 GetKeyB 返回键值,根据键值执行相应的程序.MODEL EXTRN .STACK .DATA BUFFER START: DB .CODE MOV MOV MOV AX,@DATA DS,AX ES,AX 8 DUP(?) TINY 100 Display8:NEAR, GetKeyB:NEAR57 NOP START1: CALL CMP JB XOR START2: XOR MOV SHL LEA JMP Table_1: Key0: Key1: Key2: Key3: Key4: Key5: Key6: Key7: Key: DW MOV JMP MOV JMP MOV JMP MOV JMP MOV AL,5 JMP MOV JMP MOV JMP MOV JMP MOV LEA REP LEA CALL MOV LOOP JMP END Key AL,6 Key AL,7 Key AL,8 Key CX,8 DI,BUFFER STOSB SI,BUFFER Display8 CX,60000 $ START1 START ;延时 GetKeyB AL,8 START2 AL,AL AH,AH BX,AX BX,1 DI,Table_1 CS:[DI][BX] Key0, Key1, Key2, Key3, Key4, Key5, Key6, Key7 AL,1 Key AL,2 Key AL,3 Key AL,4 K大于7,作0处理 ;键值存放在AL中六、思考题 程序中为什么要把输入的值作乘以 2 处理?58 实验六冒泡排序一、实验目的 熟悉使用 8086 指令, 掌握汇编语言的设计和调试方法, 了解如何使用高效方法对数据排序。 二、实验内容 编写并调试一个排序程序,要求使用冒泡法将一组数据从小到大重新排列。 三、程序框图开始 [SI]与[SI-1]交换 数据数-1 --&CX 1--&DL(数据交换过) PUSH CX 比较首地址--&SI 数据交换标志 DL=0 [SI]--&AL,SI+1-&SI [SI]--&AH (AH)&(AL)? N Y N CX=CX-1,CX=0 ? Y POP CX YDL=0? N CX=CX-1 结束冒泡排序程序框图四、实验步骤 使用断点方式调试程序,检查数据段中数据是否按从小到大的顺序排列。 五、程序清单 .MODEL TINY .STACK 100 .DATA DB 0H,5H,6H,3H,8H,92H,04H,57H,46H,01H,0FFH,0A0H,45H,99H,55H,66H .CODE MOV AX,@DATA MOV DS,AX NOP MOV CX,16 - 1 ;存放比较次数 = 数据个数 - 1 PUSH CX LEA SI,TAB_1 MOV DL,0 ;0-&交换过数据标志 LODSB MOV AH,[SI] CMP AH,ALTAB_1: START:STAR2:STAR3:59 STAR5:Exit:JNB MOV MOV MOV LOOP POP CMP JZ LOOP JMP ENDSTAR5 [SI],AL [SI - 1],AH DL,1 STAR3 CX DL,0 Exit STAR2 $ START;1-&交换过数据标志六、思考题 你还知道哪些排序方法?另外编写一个排序子程序。 数据结构方面的教材上有十几种排序 ( 方法) 。60 实验七二分查找法一、实验目的 熟悉使用 8086 指令,掌握汇编语言的设计和调试方法。 二、实验内容 编写并调试一个二分查找法程序,要求在一组从小到大排列的数据中查找一个数。 三、程序框图开始 基地址--&SI 最大偏移DH=[SI] SI=SI+1,最小偏移DL=0 当前偏移AH=0,0--&BH BL--&AH [SI+BX]--&AL AL=待查找值? N AL&待查找值? Y N AH--&DH AH--&DL 找到,偏移值在AL中 结束 二分查找法流程框图 Y N(DH+DL)/2--&BLBL=AH ? Y 没找到,0FFH--&AL四、实验步骤 在 Search_Data 中定义一个需要查找的数据,运行程序,是否能找到指定的数据,结果是 否正确。 五、程序清单 Search_Data .MODEL EQU .STACK .DATA DB DB DB .CODE MOV MOV NOP LEA TINY 60 100 ;需要查找的数据TAB_1:32 ;共有32个数 01,03,05,06,07,10,11,12,13,14,15,16,20,25,26,29 37,38,39,42,43,44,45,50,52,53,56,59,60,62,66,68 AX,@DATA DS,AX SI,TAB_1START:61 STAR1:STAR2:STAR3:STAR4: Find: NoFind:LODSB MOV MOV MOV XOR MOV ADD CLC SHR CMP JNE MOV JMP MOV MOV CMP JNZ MOV JMP JB MOV JMP MOV JMP JMP JMP ENDDH,AL DL,0 AH,0 BH,BH BL,DH BL,DL BL,1 BL,AH STAR2 AL,0FFH NoFind AH,BL AL,[SI + BX] AL,Search_Data STAR3 AL,AH Find STAR4 DH,AH STAR1 DL,AH STAR1 $ $ START;最大位置 ;最小位置 ;当前位置;没有找到六、思考题 1、程序只能实现 256 字节范围内的查找,请读者考虑,若查找范围大于 256 字节,程序该 怎么编写?62 5 基础硬件实验基础硬件实验本章和下一章将结合实验仪的所有单元电路(包括标准配置和可选各种模块)向读者逐一介绍 各个实验,由浅入深,从最基础的实验开始,直到读者学会使用当今流行的各种外围电路,开 发有一定深度的项目。硬件实验分为基础实验和综合实验两部分,本章主要介绍常用外围电路; 综合实验介绍一些新颖外围电路,将各个单元电路灵巧组合、深入挖掘,生成一些具有实际意 义的工程。读者也可以根据自己的理解、需要,将各个单元电路自行组合而成具有实际意义的 复杂控制电路,在设计电路板前,在实验仪上作一认证。可见,STAR ES598PCI 适合于不同层 次的学者、工程师以及电子爱好者进行学习、实践,STAR ES598PCI 提供了完整的源代码,可 以直接复制到用户系统中,为你节省大量宝贵时间。63 实验一8255 控制交通灯实验一、实验目的与要求 1、了解 8255 芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学 会使用 8255 并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。 2、熟悉 8255 内部结构和与 8088 的接口逻辑,熟悉 8255 芯片的 3 种工作方式以及控制字 格式。 3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。 二、实验设备 STAR 系列实验仪一套、PC 机一台 三、实验内容 1、编写程序:使用 8255 的 PA0..2、PA4..6 控制 LED 指示灯,实现交通灯功能。 2、连接线路验证 8255 的功能,熟悉它的使用方法。 四、实验原理图VCC 510 U36 D0 D1 D2 D3 D4 D5 D6 D7 RD WR 34 33 32 31 30 29 28 27 5 36 9 8 35 6 D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 RESET CS PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 510 R111 R112 1 2 3 4 5 6 7 8 DS35 DS36 DS37 DS38 DS39 DS40 DS41 DS42510 R113 510 R114 510 R115 510 R116 510 R117 510 R118A0 A0 A1 A1 CS1(0F000H) CSRST五、实验步骤 1、连线说明: B4 区:CS(8255)、A0、A1 B4 区:JP56(PA 口) ―― ―― A3 区:CS1、A0、A1 F5 区:JP652、观察实验结果,是否能看到模拟的交通灯控制过程。 六、演示程序64 COM_ADD PA_ADD PB_ADD PC_ADDLED_DataSTART:START1:START2:.MODEL EQU EQU EQU EQU .STACK .DATA DB DB DB DB DB DB .CODE MOV MOV NOP MOV MOV OUT MOV MOV OUT LEA MOV XLAT OUT CALL MOV MOV AL,1 XLAT OUT CALL MOV XLAT OUT CALL LOOP MOV XLAT OUT CALL MOV XLATTINY 0F003H 0F000H 0F001H 0F002H 100 011011B AX,@DATA DS,AX DX,COM_ADD AL,80H DX,AL DX,PA_ADD AL,0FFH DX,AL BX,LED_Data AL,0 DX,AL DL5S CX,6 ;东西绿灯,南北红灯 ;东西绿灯闪烁,南北红灯 ;东西黄灯亮,南北红灯 ;东西红灯,南北绿灯 ;东西红灯,南北绿灯闪烁 ;东西红灯,南北黄灯亮;PA、PB、PC为基本输出模式 ;灯全熄灭;东西绿灯,南北红灯DX,AL DL500ms AL,0 DX,AL DL500ms START2 AL,2 DX,AL DL3S AL,3;东西绿灯闪烁,南北红灯;东西黄灯亮,南北红灯;东西红灯,南北绿灯65 START3:DL500msDL500ms1:DL500ms DL3SDL3S1:DL5SDL5S1:OUT CALL MOV MOV XLAT OUT CALL MOV XLAT OUT CALL LOOP MOV XLAT OUT CALL JMP PROC PUSH MOV LOOP POP RET ENDP PROC PUSH MOV CALL LOOP POP RET ENDP PROC PUSH MOV CALL LOOP POP RET ENDPDX,AL DL5S CX,6 AL,4 DX,AL DL500ms AL,3 DX,AL DL500ms START3 AL,5 DX,AL DL3S START1 NEAR CX CX,60000 DL500ms1 CX;东西红灯,南北绿灯闪烁;东西红灯,南北黄灯亮NEAR CX CX,6 DL500ms DL3S1 CXNEAR CX CX,10 DL500ms DL5S1 CXEND START 七、实验扩展及思考 1、如何对 8255 的 PC 口进行位操作?66 实验二74HC138 译码器实验一、实验目的与要求 1、掌握 74HC138 译码器的工作原理,熟悉 74HC138 译码器的具体运用连接方法,了解 74HC138 是如何译码的。 2、认真预习本节实验内容,尝试自行编写程序,填写实验报告 二、实验设备 STAR 系列实验仪一套、PC 机一台 三、实验内容 1、编写程序:使用 82C55 的 PC0、PC1、PC2 控制 74HC138 的数据输入端,通过译码产生 8 选 1 个选通信号,轮流点亮 8 个 LED 指示灯。 2、运行程序,验证译码的正确性。1 2四、实验原理图DS20 R68 (8255)PC0 A (8255)PC1 B A (8255)PC2 C (C1)VCC G1 (C1)GND G2A (C1)GND G2B 8 GND SN74LS138N 1 2 3 6 4 5 470 VCC JP28 1 2 510 VCC Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 16 510 15 14 13 12 11 10 9 7 R111 R112 1 2 3 4 5 6 7 8 DS35 DS36 DS37 DS38 DS39 DS40 DS41 DS42 VCCU21 A B C G1 G2A G2B510 R113 510 R114 510 R115 510 R116 510 R117 510 R118五、实验步骤 1、连线说明: C2 区:A、B、C C2 区:G1、G2A、G2B C2 区:JP36 B4 区:CS(8255)、A0、A1B 2、―― ―― ―― ――B4 区:PC0、PC1、PC2 C1 区:VCC、GND、GND F5 区: (LED 指示灯) JP65 A3 区:CS1、A0、A1调试程序,查看运行结果是否正确。六、演示程序 Con_8255 PC_8255 .MODEL EQU EQU .STACK .CODE MOV TINY 0F003H 0F002H 100 DX,Con_控制口 ;8255 PC口START:67C START1:Delay Delay1:DelayMOV OUT MOV MOV OUT CALL INC JMP PROC XOR LOOP RET ENDP ENDAL,80H DX,AL DX,PC_8255 AL,0 DX,AL Delay AL START1 NEAR CX,CX $;8255初始化,PC口作输出用;延时START七、实验扩展及思考 在应用系统中,74HC138 通常用来产生片选信号,请读者考虑一下,应如何处理?68 实验三8155 输入、输出、SRAM 实验一、实验目的与要求 了解 8155 的内部资源与结构;了解 8155 与 8088 的接口逻辑;熟悉对 8155 的初始化编程、 输入和输出程序的设计方法、8155 定时器/计数器的使用方法。 认真预习,做好实验前的准备工作,填写实验报告 二、实验设备 STAR 系列实验仪一套、PC 机一台 三、实验内容 1、编写程序:从 8155 的 PB 口将 F5 区的 8 位开关读入,写入 8155 的内部 RAM,再读出后, 写入 PA 口,显示于 LED 指示灯上。 2、连接线路,验证 8155 的功能,熟悉它的使用方法。 四、实验原理图R124 5 2 1 39 38 37 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 510 510 510 510 510 510 510 510 U41 PC5 PC4 PC3 PC2 PC1 PC0 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 8155 RESET 4 RSTVCC S28 S27 S26 S25 S24 S23 S22 S2110K1 2 3 4 5 6 7 8 9TMRIN3TMRINTMRINTMROUT6TMROUTTMROUTALE IO/M WR RD CE11 7 10 9 8ALE WR IO/M RD 8155 CS A8CS1(0F000H)AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD019 18 17 16 15 14 13 12D7 D6 D5 D4 D3 D2 D1 D0DS42 DS41 DS40 DS39 DS38 DS37 DS36 DS35 8 7 6 5 4 3 2 1五、实验步骤 1、连线说明: B4 区:CS(8155)、IO/M B4 区:JP76(PA 口) B4 区:JP75(PB 口) ―― ―― ―― A3 区:CS1、A8 F5 区:JP65 F5 区:JP832、测试实验结果:F5 区的开关状态反应在 F5 区的 LED 指示灯上。R1 1 8R1 1 7R1 1 6R1 1 5R1 1 4R1 1 3R1 1 2R1 1 1VCC69 六、演示程序 COM_8155 PA__8155 PB__8155 RAM_8155 .MODEL EQU EQU EQU EQU .STACK .CODE MOV MOV OUT MOV IN MOV OUT MOV IN MOV OUT JMP END TINY 0F100H 0F101H 0F102H 0F000H 100 DX,COM_8155 AL,1 DX,AL DX,PB__8155 AL,DX DX,RAM_8155 DX,AL AL,0FFH AL,DX DX,PA__8155 DX,AL STAR1 STAR ;命令子/状态器寄存器 ;PA口地址 ;PB口地址 ;8155内部RAM 00单元地址STAR:;控制口地址 ;PA为基本输出,PB为基本输入 ;从PB口获得输入值(拨码盘输入) ;存入8155内部RAM里 ;消除输入结果 ;重新从8155相同地址取数 ;输出送显示(八个发光二极管)STAR1:七、实验扩展及思考 1、例子程序中只展示了 8155 的输入输出和读写数据 RAM 的功能,8155 还有定时器/计数 器的功能, 有兴趣读者可以自己编写程序, 通过 8155 来实现定时, 当作定时器用时, 如何接线? 2、若是要对 PC 口位操作,应该如何编写程序? 3、如何使用 8155 实现键盘扫描和 LED 显示?70 实验四8253 方波实验一、实验目的与要求 了解 8253 的内部结构、工作原理;了解 8253 与 8088 的接口逻辑;熟悉 8253 的控制寄存 器和初始化编程方法,熟悉 8253 的 6 种工作模式。 二、实验设备 STAR 系列实验仪一套、PC 机一台 三、实验内容 1、编写程序:使用 8253 的计数器 0 和计数器 1 实现对输入时钟频率的两级分频,得到一 个周期为 1 秒的方波,用此方波控制蜂鸣器,发出报警信号,也可以将输入脚接到逻辑笔上来 检验程序是否正确。 2、连接线路,验证 8253 的功能,熟悉它的使用方法。 四、实验原理图U35 D0 D1 D2 D3 D4 D5 D6 D7 CS CS5(0B000H) RD WR A0 A0 A1 A1 8 7 6 5 4 3 2 1 21 22 23 19 20 D0 D1 D2 D3 D4 D5 D6 D7 CS RD WR A0 A1 8253 OUT2 GATE2 CLK2 OUT0 GATE0 CLK0 10 11 9 GATE0 VCC 2M(B2) CLK0 13 14 15 OUT1 Ctrl(D1) VCC GATE1OUT1 GATE1 CLK117 16 18OUT2 GATE2 CLK2五、实验步骤 1、连线说明: D5 区:CS、A0、A1 D5 区:CLK0 D5 区:OUT0 D5 区:OUT1 D5 区:GATE0、GATE1 ―― ―― ―― ―― ―― A3 区:CS5、A0、A1 B2 区:2M D5 区:CLK1 E3 区:Ctrl(蜂鸣器) C1 区的 VCC2、测试实验结果:蜂鸣器发出时有时无的声音;用逻辑笔测试蜂鸣器的输入端口,红绿灯 交替点亮。 六、演示程序 COM_ADDR T0_ADDR T1_ADDR .MODEL EQU EQU EQU .STACK TINY 0B003H 5 0B000H 0B001H 100671 START:.CODE MOV MOV OUT MOV MOV OUT MOV OUT MOV MOV OUT MOV MOV OUT MOV OUT JMP ENDDX,COM_ADDR AL,35H DX,AL DX,T0_ADDR AL,00H DX,AL AL,10H DX,AL DX,COM_ADDR AL,77H DX,AL DX,T1_ADDR AL,00H DX,AL AL,10H DX,AL $ START;计数器T0设置在模式2状态,BCD码计数;CLK0/1000;计数器T1为模式3状态, 输出方波,BCD码计数;CLK1/1000 ;OUT1输出1S的方波七、实验扩展及思考 1、8253 还有其它五种工作方式,其它工作模式下,硬件如何设计?程序如何编写? 2、使用 8253,编写一个实时钟程序。72 实验五8259A 中断控制器实验一、实验目的与要求 了解 8259A 的内部结构、工作原理;了解 8259A 与 8088 的接口逻辑;掌握对 8259A 的初始 化编程方法,了解 8088 是如何响应中断、退出中断的。 复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。 二、实验设备 STAR 系列实验仪一套、PC 机一台 三、实验内容 1、编制程序:拨动单脉冲开关, “ ”送给 8259A 的 IR0,触发中断,8088 计数中断次数, 显示于 F4 区的数码管上4 5四、实验原理图U28 (0F000H)CS1 CS WR RD D7 D6 D5 D4 D3 D2 D1 D0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CS WR RD D7 D6 D5 D4 D3 D2 D1 D0 CAS0 CAS1 GND 8259 VCC A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT SP/EN CAS2 VCC 28 27 A0 26 25 24 23 22 21 20 19 18 17 16 SP/EN 15INTA IR7INTAIR0 INTIR2 IR1 (B2) INTR5 6 7 8R96 1K五、实验步骤 1、连线说明: B3 区:CS、A0 B3 区:INT、INTA B3 区:IR0 D3 区:CS、A0 D3 区:CLK ―― ―― ―― ―― }

我要回帖

更多关于 汇编 键盘输入二进制 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信