数码转换程序实验

合集下载

数码显示译码器实训报告

数码显示译码器实训报告

一、实训目的通过本次实训,掌握数码显示译码器的基本原理、工作原理及电路设计方法,了解数码显示译码器在数字电路中的应用,提高动手能力和实践技能。

二、实训内容1. 数码显示译码器原理及分类(1)原理:数码显示译码器是一种将二进制、BCD码等编码转换为数码管显示的电路。

它主要由编码器、译码器、驱动器等组成。

(2)分类:根据编码方式,可分为二进制译码器、BCD码译码器、十六进制译码器等;根据输出方式,可分为共阳极译码器和共阴极译码器。

2. 数码显示译码器电路设计(1)共阳极译码器电路设计以4-7译码器为例,输入端为二进制编码,输出端为7段数码管的驱动信号。

电路图如下:```A||+---+---+---+---+| | | | |B---+ | | +---C| | | | |+---+---+---+---+| | | |D---+ | +---E| | | |+---+---+---+---+| | | | |F---+ | | +---G| | | | |+---+---+---+---+H```(2)共阴极译码器电路设计以CC4511BCD译码器为例,输入端为BCD码,输出端为7段数码管的驱动信号。

电路图如下:```A||+---+---+---+---+| | | | |B---+ | | +---C| | | | |+---+---+---+---+| | | |D---+ | +---E| | | |+---+---+---+---+| | | |F---+ | | +---G| | | |+---+---+---+---+H```3. 数码显示译码器应用(1)计时器:将计数器输出的二进制编码转换为数码管显示,实现计时功能。

(2)数码管显示模块:在嵌入式系统、智能仪表等设备中,将数字信号转换为数码管显示,方便用户读取数据。

(3)地址译码:在存储器、I/O端口等地址译码电路中,将地址信号转换为输出端口,实现数据传输。

微机原理与接口技术实验指导书

微机原理与接口技术实验指导书

微机原理与接口技术实 验 指 导 书吉林大学仪器科学与电气工程学院2010年12月吉林大学仪器科学与电气工程学院微机原理与接口技术实验指导书目 录第一章 软件实验部分 (2)实验一显示程序与数据传送实验 (2)实验二数码转换程序实验 (6)实验三运算类指令编程实验 (8)第二章 硬件实验部分 (11)实验四8/32位I/O接口实验 (11)实验五8255并口控制器应用实验 (15)实验六8259中断控制器实验 (18)实验七8254定时/计数器应用实验 (22)实验八16550串行控制器应用实验 (327)实验九8237DMA控制器应用实验 (26)实验十A/D转换与D/A转换实验 (39)附录A TD-PIT++实验系统硬件介绍 (43)附录B TDPIT集成操作软件介绍 (46)第一章 软件实验部分本章主要通过实验来学习80X86的指令系统、寻址方式以及程序的设计方法,同时掌握集成操作软件Tdpit的使用。

实验一显示程序与数据传送实验1、实验目的1)掌握在PC机上以十六进制形式显示数据的方法。

2)掌握部分DOS功能调用使用方法。

3)掌握与数据有关的不同寻址方式。

3)熟悉Windows集成操作软件Tdpit的操作环境和操作方法。

2、实验设备PC微机一台、TD-PIT++实验系统一套。

3、实验内容及说明1.显示程序实验一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。

本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并利用DOS功能调用完成一些提示信息的显示。

通过本实验,初步掌握实验系统配套操作软件的使用。

实验中所使用DOS功能调用(INT 21H)说明如下。

(1) 显示单个字符输出入口:AH=02H调用参数:DL=输出字符(2) 显示字符串入口:AH=09H调用参数:DS:DX=串地址,’$’为结束字符(3) 键盘输入并回显入口:AH=01H返回参数:AL=输出字符(4) 返回DOS系统入口:AH=4CH调用参数:AL=返回码2.数据传送实验本实验要求将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。

微机原理-数码转换实验报告

微机原理-数码转换实验报告

微机原理-数码转换实验报告-CAL-FENGHAI.-(YICAI)-Company One1实验九数码转换一、实验目的1、掌握计算机常用数据编码之间的相互转换方法。

2、进一步熟悉DEBUG软件的使用方法。

二、实验内容1、ACSII码转换为非压缩型BCD码2、BCD码转换为二进制码3、十六进制数转换为ASCII码三、实验1、ACSII码转换为非压缩型BCD码DATA SEGMENT PARA 'DATA'DATA1 DB 8 DUP()DATA2 DB 8 DUP()DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX,SEG DATA1MOV DS,AXMOV DX,DATAMOV AH,0AHINT 21HLEA SI,DATA1MOV CL,[SI+1]LEA DI,DATA2ADD SI, 2CHK: MOV AL,[SI+2]CMP AL, '0'JB L01CMP AL, '9'JA L01SUB AL,30HMOV BL,ALMOV [DI], BLINC SIINC DIDEC CXJNZ CHKL01: MOV BL, 0FFHLOOP CHKMOV AH,4CH INT 21H CODE ENDSEND START2、BCD码转换为二进制码DATA SEGMENTBCD DB 1,2,3,4,5A DWDATA ENDSSTACK SEGMENT PARA STACK''STACK''STAPN DW 50 DUP()STACK ENDSCODE SEGMENTMAIN PROC FARASSUME DS:DATA,CS:CODE,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXCALL CONVERTMOV A,BXRETMAIN ENDPCONVERT PROC NEARPUSH SIPUSH CXPUSH AXMOV SI,4L1:MOV AL,BCD[SI]CBWXCHG AX, BXMOV CX,10DMUL CXXCHG AX,BXADD BX,AXDEC SIJNZ L1POP AXPOP CXPOP SIEXIT:MOV AH,4CH INT 21H CONVERT ENDP CODE ENDSEND START3、十六进制数转换为ASCII码DATA SEGMENTDATA1 DW 2010HDATA2 DB 4 DUP()DATA ENDSSTACKS SEGMENT PARA STACK 'STACK'STACKS ENDSCODES SEGMENTASSUME SS:STACKS,CS:CODESASSUME DS:DATASSTART: MOV AX, DATAMOV DS, AXLEA SI, DATA1MOV AX, [SI]MOV CL, 12SHR AX, CLMOV BL, ALCALL ASCMOV DATA2, BLCALL XSMOV AX, [SI]MOV CL, 8SHR AX, CLAND AX, 000FHMOV BL, ALCALL ASCMOV DATA2+1, BLCALL XSMOV AX, [SI]MOV CL, 4SHR AX, CLAND AX, 000FHMOV BL, ALCALL ASCMOV DATA2+2, BLCALL XSMOV AX, [SI]AND AX, 000FHMOV BL, ALCALL ASCMOV DATA2+3, BLCALL XSMOV AH, 4CHINT 21HASC PROCCMP BL, 0AH JC LPADD BL, 07H LP: ADD BL, 30H RETASC ENDPXS PROCMOV DL, BL MOV AH, 02H INT 21HRETXS ENDPCODE ENDSEND START4、六进制数转换为十进制DATAS SEGMENTSTRING1 DB 0DH,0AH,'$'STRING2 DB 0DH,0AH,'$'DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV DX,OFFSET STRING1MOV AH,9INT 21HMOV CL,10HMOV BX,0NEWCHAR:MOV AH,1INT 21HSUB AL,30HJB DISPCBWXCHG AX,BXMOV CH,0MUL CXXCHG AX,BXADD BX,AXJNC NEWCHARDISP:MOV DX,OFFSET STRING2MOV AH,9INT 21HMOV CX,10000AGAIN:MOV DX,0MOV AX,BXDIV CXMOV BX,DXMOV DL,ALADD DL,30HCMP DL,39HJLE NEXTADD DL,7H NEXT:MOV AH,2INT 21HMOV DX,0MOV AX,CXMOV CX,10DIV CXMOV CX,AXCMP CX,0JNZ AGAINMOV AH,4CH INT 21H CODES ENDS END START5、十进制转换成七段码DATA SEGMENTDATA1 DB 3,4TABLE DB 23H,56H,42H,75H,00H,24H,67H,39H,20H DATA2 DB 2 DUP()DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA ST: MOV DI, OFFSET BUFDAMOV CL, 80HMOV BX, OFFSET TABLE DISI: MOV BL, [DI+0]MOV AX, BXXLATMOV DX, PORTSEGOUT DX, ALMOV AL, CLMOV DX, PORTBITOUT DX, ALPUSH CXMOV CX, 30HDELAY: LOOP DELAYPOP CXCMP CL, 20HJZ QUITINC DISHR CL, 1JMP DISIQUITCODE ENDSEND ST。

华南理工大学微机与接口实验报告(四实验,题目原理流程图代码截图完整版)

华南理工大学微机与接口实验报告(四实验,题目原理流程图代码截图完整版)

微机原理实验报告班 级:2012级电子科学与技术卓工班级电子科学与技术卓工班姓 名: 黄中一黄中一 学 号: 201236460273序 号:评阅分数:评阅分数:实验一一、实验目的1、学会如何建立汇编源文件ASM2、学会调用MASM 宏汇编程序对源文件进行汇编,获得目标程序宏汇编程序对源文件进行汇编,获得目标程序 OBJ 及LST 列表文件列表文件3、学会调用LINK 连接程序汇编后的目标文件OBJ 连接成可执行的文件连接成可执行的文件EXE 4、学会使用DEBUG 调试程序把可执行文件装入内存并调试运行,用D 命令显示目标程序,用U 命令对可执行文件反汇编,用G 命令运行调试。

命令运行调试。

二、实验设备装有MASM 软件的IBM PC 机三、实验内容1、汇编程序对源程序进行编译,生成扩展名为OBJ 的目标文件;连接程序是将目标程序和库文件进行连接、定位,生成扩展名为EXE 的可执行文件;调试程序是对目标文件进行调试,验证它的正确性。

是对目标文件进行调试,验证它的正确性。

2、DEBUG 程序各种命令的使用方法程序各种命令的使用方法功能功能命令格式命令格式 使用说明使用说明显示内存单元内容显示内存单元内容D 地址地址从指定地址开始显示40H 个字节或80H 个字节个字节 修改内存单元内容修改内存单元内容 E 地址地址先显示地址和单元内容等待输入修改的内容输入修改的内容检查和修改寄检查和修改寄存器的内容存器的内容R 显示全部寄存器和标志位及下条指令单元十六进制数码和反汇编格式和反汇编格式反汇编反汇编U 地址地址从指定地址开始反汇编16个或32个字节个字节 汇编汇编 A 地址地址从指定地址直接输入语句并从指定指定汇编装入内存从指定指定汇编装入内存跟踪跟踪 T =地址=地址 从指定地址开始逐条跟踪指令运行运行 G =地址=地址无断点,执行正在调试的指令执行正在调试的指令 退出退出Q退出DEBUG 返回DOS3、实验过程①、在edit 环境,写字板,记事本等中输入源程序。

(实验二)二进制码转换为BCD码实验报告

(实验二)二进制码转换为BCD码实验报告

实验二二进制码转换为BCD码一、实验目的1、掌握数码转换基本方法,加深对数码的理解。

2、用于十进制BCD码显示。

二、实验内容将AX的内容转换为十进制BCD码。

三、实验程序框图四、实验步骤脱机模式:(1)在P.态,按SCAL键,输入2CE0,按EXEC键。

(2)复位RST键,由于AX中给定数为0FFFF,查看BCD码结果保留在4100H~4104H 单元中,故其值应为06、05、05、03、05。

联机模式:(1)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开8kAsm文件夹,点击S2.ASM 文件,单击“确定”即可装入源文件,再单击工具栏中编译,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。

(2)复位“系统复位”键,由于AX中给定数为0FFFF,查看BCD码结果保留在4100H~4104H单元中,故其值应为06、05、05、03、05。

注:操作过程参照“实验一二进制多位加法运算”。

五、实验程序清单X:\DICE-8086K3微机原理与接口实验箱CDROM\CODE\86kasm\S2.ASM;将AX拆为5个BCD码,并存入Result开始的5个单元DATA SEGMENT AT 0 ;S2.ASM,BIN-->BCDORG 4000HRESULT DB 5 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATAORG 2CE0HSTART PROC NEARMOV AX, DATAMOV DS, AXMOV DX,0000HMOV AX, 65535MOV CX, 10000DIV CXMOV RESULT, AL ; 除以 10000, 得WAN位数MOV AX,DXMOV DX,0000HMOV CX, 1000DIV CXMOV RESULT+1, AL ; 除以 1000, 得QIAN位数MOV AX,DXMOV DX,0000HMOV CX, 100DIV CXMOV RESULT+2, AL ; 除以 100, 得BAI位数MOV AX,DXMOV DX,0000HMOV CX, 10DIV CXMOV RESULT+3, AL ; 除以 10, 得SHI位数MOV RESULT+4, DL ; 得GE位数JMP $CODE ENDSEND START。

单片机AD模数转换实验报告

单片机AD模数转换实验报告

单片机AD模数转换实验报告一、实验目的和要求1、掌握单片机与ADC0809的接口设计方法。

2、掌握Proteus软件与Keil软件的使用方法。

二、设计要求。

1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。

2、在0809的某一模拟量输入通道上接外部模拟量。

3、在单片机的外部扩展数码管显示器。

4、分别采用延时和查询的方法编写A/D 转换程序。

5、启动A/D转换,将输入模拟量的转换结果在显示器上显示。

三、电路原理图。

图1、电路仿真图四、实验程序流程框图和程序清单。

1、查询法:ORG 0000HSTART: LJMP MAINORG 0100HMAIN: MOV SP, #2FH NT: MOV DPTR, #0FF78H MOVX @DPTR, A LOOP: JB P3.3, LOOP MOVX A, @DPTR MOV B, #51 DIV AB MOV R0, A MOV A, B MOV B, #5 DIV AB MOV R1, A MOV R2, B LCALL DIR SJMP NT DIR: MOV R7, #0 SJMP LOOP1 BH: MOV A, R1 MOV R2, A LOOP1: MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R2 MOVC A, @A+DPTR MOV P1, A LCALL DELAY INC R7 CJNE R7, #2, BH MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R0 MOVC A, @A+DPTR ANL A, #7FH MOV P1, A LCALL DELAY RET DELAY: M OV R5, #01H DL1: MOV R4, #8EH DL0: MOV R3, #02H DJNZ R3, $ DJNZ R4, DL0 DJNZ R5, DL1 RET WK: DB 10H DB 20H DB 40H DK: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ENDdisplay 送百分位字符代码送位选信号延时1ms 送十分位字符代码送位选信号延时1ms 送个位及小数点字符代码送位选信号延时1ms 熄灭第四位数码管延时1ms 返回display 送百分位字符代码送位选信号延时1ms 送十分位字符代码送位选信号延时1ms 送个位及小数点字符代码送位选信号延时1ms 熄灭第四位数码管延时1ms 返回2、延时法:ORG 0000H START: LJMP MAIN ORG 0100H MAIN: MOV SP, #2FH LOOP: MOV DPTR, #0FF78H MOVX @DPTR, A LCALL DELAY MOVX A, @DPTR MOV B, #51 DIV AB MOV R0, A MOV A, B MOV B, #5 DIV AB MOV R1, A MOV R2, B LCALL DIR SJMP LOOP DIR: MOV R7, #0 SJMP LOOP1 BH: MOV A, R1 MOV R2, A LOOP1: MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R2 MOVC A, @A+DPTR MOV P1, A LCALL DELAY INC R7 CJNE R7, #2, BH MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R0 MOVC A, @A+DPTR ANL A, #7FH MOV P1, A LCALL DELAY RET DELAY: M OV R5, #01H DL1: MOV R4, #8EH DL0: MOV R3, #02H DJNZ R3, $ DJNZ R4, DL0 DJNZ R5, DL1 RET WK: DB 10H DB 20H DB 40H DK: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H开始启动AD 延时从AD中取数据数据处理结束调显示子函数END五、实验结果。

[整理]单片机6个必做实验

[整理]单片机6个必做实验

第一部分软件实验实验一二进制到BCD码转换一、实验目的1、掌握简单的数值转换算法2、基本了解数值的各种表达方法二、实验说明单片机中的数值有各种表达方式,这是单片机的基础。

掌握各种数制之间的转换是一种基本功。

我们将给定的一个二进制数,转换成二十进制(BCD)码。

将累加器A的值拆为三个BCD码,并存入RESULT开始的三个单元,例程A赋值#123。

三、实验内容及步骤1、启动计算机,打开伟福仿真软件,进入仿真环境。

首先进行仿真器的设置,选择使用伟福软件模拟器。

2、打开TH2.ASM源程序进行编译,编译无误后,全速运行程序,打开数据窗口(DATA),点击暂停按钮,观察地址30H、31H、32H的数据变化,30H更新为01,31H更新为02,32H更新为03。

用键盘输入改变地址30H、31H、32H的值,点击复位按钮后,可再次运行程序,观察其实验效果。

修改源程序中给累加器A的赋值,重复实验,观察实验效果。

3、打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。

四、流程图及源程序1.源程序RESULT EQU 30HORG 0000HLJMP STARTBINTOBCD:MOV B,#100DIV ABMOV RESULT,A ;除以100得百位数MOV A,BMOV B,#10DIV ABMOV RESULT+1,A ;余数除以10得十位数MOV RESULT+2,B ;余数为个位数RETSTART:MOV SP,#40HMOV A,#123CALL BINTOBCDLJMP $END2.流程图实验四程序跳转表一、实验目的1、了解程序的多分支结构2、掌握多分支结构程序的编程方法二、实验说明多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。

若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。

单片机AD转换实验

单片机AD转换实验

一、实验目的1、掌握单片机与ADC0809的接口设计方法。

2、掌握Proteus软件与Keil软件的使用方法。

二、实验要求1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。

2、在0809的某一模拟量输入通道上接外部模拟量。

3、在单片机的外部扩展数码管显示器。

4、分别采用延时和查询的方法编写A/D转换程序。

5、启动A/D转换,将输入模拟量的转换结果在显示器上显示。

三、实验电路图四、实验程序流程框图和程序清单1、查询ORG 0000H START:LJMP MAINORG 0100HMAIN: MOV SP, #6FHCLR EALOOP: MOV DPTR, #0fef8H MOVX @DPTR, ALOOP1:JNB P3.2, LOOP1MOVX A, @DPTRMOV B, #51DIV ABMOV 23H, AMOV A, #10MOV 22H, AMOV A, BLCALL CHULIMOV 21H, AMOV A, BLCALL CHULIMOV 20H, A LCALL DIRLJMP LOOPDIR: PUSH ACCPUSH DPHPUSH DPLPUSH PSWSETB RS1SETB RS0MOV R0, #20HMOV R3, #0FEH LOOP2:MOV P2, R3 MOV DPTR, #TAB1MOV A, @R0MOVC A, @A+DPTRMOV P1, ALCALL DELAYINC R0MOV A, R3JNB ACC.3, LOOP3RL AMOV R3, ALJMP LOOP2LOOP3:POP PSWPOP DPLPOP DPHPOP ACCRETTAB1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,07FH DELAY:MOV R7, #01HDL1: MOV R6, #8EHDL0: MOV R5, #02HDJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1RETCHULI:CJNE A, #25, LPLJMP LP2LP: JNC LP1LP2: MOV B, #10MUL ABMOV B, #51DIV ABLJMP LP3LP1: CLR CSUBB A, #25MOV B, #10MUL ABCLR CSUBB A, #5MOV B, #51DIV ABADD A, #5LP3: RETEND2、延时ORG 0000HSTART:LJMP MAINORG 0100HMAIN: MOV SP, #6FHCLR EALOOP: MOV DPTR, #0fef8HMOVX @DPTR, ALCALL DELAY100MOVX A, @DPTRMOV B, #51DIV ABMOV 23H, AMOV A, #10MOV 22H, AMOV A, BLCALL CHULIMOV 21H, AMOV A, BLCALL CHULIMOV 20H, ALCALL DIRLJMP LOOPDIR: PUSH ACCPUSH DPHPUSH DPLPUSH PSWSETB RS1SETB RS0MOV R0, #20HMOV R3, #0FEHLOOP2:MOV P2, R3MOV DPTR, #TAB1MOV A, @R0MOVC A, @A+DPTRMOV P1, ALCALL DELAYINC R0MOV A, R3JNB ACC.3, LOOP3RL AMOV R3, ALJMP LOOP2LOOP3:POP PSWPOP DPLPOP DPHPOP ACCRETTAB1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,07FH DELAY:MOV R7, #01HDL1: MOV R6, #8EHDL0: MOV R5, #02HDJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1RETCHULI:CJNE A, #25, LPLJMP LP2LP: JNC LP1LP2: MOV B, #10MUL ABMOV B, #51DIV ABLJMP LP3LP1: CLR CSUBB A, #25MOV B, #10MUL ABCLR CSUBB A, #5MOV B, #51DIV ABADD A, #5LP3: RETDELAY100: MOV R6,#01H;误差 0usDL0:MOV R5,#2FHDJNZ R5,$DJNZ R6,DL0RETEND3、中断ORG 0000HSTART:LJMP MAINORG 0003HLJMP INTT0ORG 0100HMAIN: MOV SP, #6FHSETB EASETB EX0MOV DPTR, #0000HMOVX @DPTR, AHERE: LJMP HEREINTT0:MOVX A, @DPTRMOV B, #51DIV ABMOV 23H, A //整数部分放22H中MOV A, #10MOV 22H, A //小数点放22H中MOV A, BLCALL CHULIMOV 21H, A //小数点后第一位放21H中 MOV A, BLCALL CHULIMOV 20H, A //小数点后第一位放21H中 LCALL DIRMOV DPTR, #0000HMOVX @DPTR, ARETIDIR: PUSH ACCPUSH DPHPUSH DPLPUSH PSWSETB RS1SETB RS0MOV R0, #20HMOV R3, #01HLOOP2:MOV P2, R3 //位控码初始值MOV DPTR, #TAB1MOV A, @R0MOVC A, @A+DPTRMOV P1, ALCALL DELAYINC R0MOV A, R3JB ACC.3 LOOP3RL AMOV R3, ALJMP LOOP2LOOP3:POP PSWPOP DPLPOP DPHPOP ACCRETTAB1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,07FH DELAY:MOV R7, #01HDL1: MOV R6, #8EHDL0: MOV R5, #02HDJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1RETCHULI:CJNE A, #25, LPLJMP LP2LP: JNC LP1MOV B, #10MUL ABMOV B, #51DIV ABLJMP LP3LP1: CLR CSUBB A, #25MOV B, #10MUL ABCLR CSUBB A, #5MOV B, #51DIV ABADD A, #5LJMP LP3LP2: MOV A, #5MOV B, #0LP3: RETEND五、实验结果六、实验总结通过本次试验掌握了A/D转换的电路设计,掌握了AD0808的使用以及编址技术,熟悉了A/D转换的方法和A/D转换的程序设计方法。

杭电微机原理AD转换DA转换实验实验报告

杭电微机原理AD转换DA转换实验实验报告

微型计算机原理与接口技术实验报告班级:学号:姓名:指导老师:朱亚萍实验名称: A/D转换实验D/A转换实验(一)D/A转换实验(二)实验一A/D转换实验一、实验目的了解模/数转换基本原理,掌握ADC0809的使用方法。

二、实验内容利用实验系统上电位器提供的可调电压作为0809模拟信号的输入,编制程序,将模拟量转换为数字量,通过数码管显示出来。

三、实验接线图图 1-1四、编程指南1. ADC0809的START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号,实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,其输入控制信号为CS和WR,故启动A/D转换只须如下两条指令:MOV DX, ADPORT OUT DX, AL ;ADC0809端口地址;发CS和WR信号并送通道地址2.用延时方式等待A/D转换结果,使用下述指令读取A/D转换结果:MOV DX, ADPORTIN AL, DX;ADC0809端口地址五、实验程序框图图 1-2六、实验步骤1.断电连接导线, 将0809 CS4插孔连到译码输出FF80H插孔,将通道0模拟量输入端IN0连电位器W1的中心插头AOUT1(0-5V)插孔,8MHZ→T;2. 在PC机和实验系统联机状态下,新建实验程序,编辑完成后进行保存(保存后缀为.asm文件);3. 编译下载;4. 全速运行,运行程序;5. 按RST键退出。

七、实验程序DATA SEGMENTBUF DB 6 DUP(0)DATA1: DB0c0h,0f9h,0a4h,0b0h,99h,DB 92h,82h,0f8h,80h,90h,DB88h,83h,0c6h,0a1h,86h,DB8eh,0ffh,0ch,89h,0deh,DB0c7h,8ch,0f3h,0bfh,8fhDATA ENDSCODE SEGMENTASSUME CS: CODE,DS: DATAADC EQU 0FF80H; ADC0809端口地址PA EQU 0FF20HPB EQU 0FF21HPC EQU 0FF22H MAIN PROC FAR START: MOV AX, DATA MOV DS, AXMOV ES, AX ADC_S:MOV AX, 00HMOV DX, ADCOUT DX, ALMOV CX, 0500H DELAY:LOOP DELAYMOV DX, ADPORT IN AL, DXCALL CONVERS CALL DISPJMP ADC_S MAIN ENDPCONVERS PROC NEARMOV AH, AL3.循环不断采样A/D转换的结果,边采样边显示A/D转换后的数字量。

单片机bcd码转换

单片机bcd码转换

(软件仿真性实验,2017/2018(2))课程名称:单片机原理与应用实验题目:BCD码转换指导教师:一、实验目的和任务1、掌握Keil μVision4软件的使用(创建工程与设置、编写代码、添加文件和软件调试);2、掌握STC15系列单片机C语言程序的基本写法;3、掌握通过指针,对内部RAM的读写操作;二、实验内容及原理1.通过软件仿真对寄存器进行地址操作,了解单片机的内部结构。

三、实验步骤或程序流程配置数码管与独立按键端口—>对端口进行赋值操作—>编译程序—>下载程序—> 硬件操作四、实验数据及程序代码//#include "REG51.H"#include "STC15F2K60S2.h"#include <absacc.h>void main( ){unsigned char x,xh,xl;unsigned char *p;p =0x30;*p =0x26;x =*p;xh =(*p)/16;xl =(*p)%16;p =0x40;*p =xh;p =p+1;*p =xl;while(1){;}}五、实验数据分析及处理通过对试验箱的观察,结合程序的编程,能够实现对数码管的正确操作,对寄存器地址进行直接分配,实现端口的配置,深刻了解BCD原理并结合实验。

图1.1 BCD码转换图1.2 BCD码转换六、实验结论与感悟(或讨论)了解keil的仿真原理,掌握了对单片机寄存器的操作,明白其工作原理,并能正确的实现其功能,对BCD码有了更深刻的了解,能够开发实验应用操作。

能够学以致用。

汇编语言程序设计2

汇编语言程序设计2

目录系统认识 (1)实验一数码转换编程及程序调试 (5)实验二运算类编程实验 (11)实验三分支程序、循环程序设计实验 (16)实验四子程序设计实验 (22)实验五显示程序实验 (26)实验六串行通讯应用实验 (27)附录WMD86 联机软件使用说明 (40)系统认识一、实验目的掌握TD-PITE微机原理与接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。

二、实验设备PC微机一台,TD-PITE实验装置一套。

三、实验内容编写实验程序,将00H~0FH共16个数写入内存3000H开始的连续16个存储单元中。

四、实验步骤1. 运行Wmd86软件,进入Wmd86集成开发环境。

2. 根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言,如图1所示。

语言选择后,下次再启动软件,语言环境保持这次的修改不变。

在这里,我们选择汇编语言。

图13. 语言选择后,点击新建或按Ctrl+N组合键来新建一个文档,如图2所示。

默认文件名为Wmd861。

图24. 编写实验程序,如图3所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。

图3程序:SSTACK SEGMENT STACK ;定义堆栈段DW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODE, SS:SSTACKSTART: PUSH DSXOR AX, AXMOV DS, AXMOV SI, 3000H ;建立数据起始地址MOV CX, 16 ;循环次数AA1: MOV [SI], ALINC SI ;地址自加1INC AL ;数据自加1LOOP AA1AA2: JMP AA2CODE ENDSEND START5. 点击,编译文件,若程序编译无误,则输出如图4所示的输出信息,然后再点击进行链接,链接无误输出如图5所示的输出信息。

图4图56. 连接PC与实验系统的通讯电缆,打开实验系统电源。

译码显示电路实验报告

译码显示电路实验报告

译码显示电路实验报告译码显示电路实验报告引言:译码显示电路是现代电子设备中常见的一种电路结构,它能够将数字信号转换为可见的字符或数字形式,广泛应用于计算机、电视、手机等设备中。

本实验旨在通过搭建一个简单的译码显示电路,了解其工作原理并验证其功能。

实验材料:1. 译码器:74LS472. 七段数码管:共阳极或共阴极型3. 可调电源4. 连接线5. 电阻:220欧姆实验步骤:1. 连接电路:将译码器和七段数码管连接起来。

根据译码器和数码管的引脚连接图,将它们正确地连接在一起。

2. 连接电源:将可调电源连接到电路中,确保电源的电压和电流适合译码器和数码管的工作要求。

3. 输入信号:通过拨动开关或其他输入设备,输入一个4位二进制数作为译码器的输入信号。

4. 观察显示:观察七段数码管的显示情况,确认其是否正确显示输入的数字。

实验结果:在实验过程中,我们使用了一个共阳极的七段数码管和一个74LS47译码器。

通过连接电路,我们成功地将译码器和数码管连接在一起,并连接了适当的电源。

在输入一个4位二进制数作为译码器的输入信号后,我们观察到七段数码管正确地显示了对应的数字。

讨论:译码显示电路的核心是译码器,它根据输入信号的不同,将其转换为对应的输出信号,以控制七段数码管的显示。

在本实验中,我们使用的74LS47是一种常见的BCD译码器,它能够将4位二进制数转换为七段数码管的控制信号。

在连接电路时,我们需要根据译码器和数码管的引脚连接图来正确连接它们。

特别要注意译码器的极性,确保其正常工作。

此外,电源的电压和电流也需要根据译码器和数码管的工作要求来调整,以避免损坏电路元件。

在实验中,我们可以通过输入不同的二进制数来观察七段数码管的显示情况。

通过对比输入和输出的对应关系,我们可以验证译码显示电路的功能是否正常。

如果出现显示错误或其他异常情况,我们可以检查电路连接是否正确,以及电源是否正常工作。

译码显示电路不仅仅应用于七段数码管,还可以应用于其他类型的显示设备,如液晶显示屏、LED显示屏等。

8位数模转换器ADC0809实验报告

8位数模转换器ADC0809实验报告
3、选择好芯片后,我们需要保存文件,接着就是写程序了,我们新建一个空白文档,这个是点File下面那个按钮。
4、在Text中编写自己的程序,我们需要把51单片机的头文件添加上去,这个是#include<reg51.h>,写好之后把它保存再添加到工程里,这里需要我们注意,是点project的source group里面的Add Files to…… 。
Vcc:电源,单一+5V。
GND:地。
主要特性:
(1)8路输入通道,8位A/D转换器,即分辨率为8位。
(2)具有转换起停控制端。
(3)转换时间为100μs(时钟为640KHz时),130μs(时钟为500KHz时)。
(4)单个+5V电源供电。
(5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
(6)工作温度范围为-40~+85摄氏度。
(7)低功耗,约15mW。
3、晶振电路
本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个晶振和 2个电容即可,如下图所示。
晶Hale Waihona Puke 电路电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路。参数,电路中,电容器C1和C2对震荡频率有微调作用,通常的取值范围是30±10pF,在这个系统中选择了22pF;石英晶振选择范围最高可选24MHz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12MHz,因而时钟信号的震荡频率为12MHz。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

数码相机色空间转换方法

数码相机色空间转换方法
基金项目: 江西省教育厅重点资助项目 (200725 9) 。 收稿日期: 2007201 2 10; 修 订日 期: 2008 2 0 3211
560







第 23 卷
对一定数量的标准色块的输入输出色彩值进行分 析控制, 再利用空间关系求得其 他色块的转换关 系[ 426 ] , 这类方法包括矩阵法、 多项式拟合法、 基于 机器学习的方法, 它由于不考虑色彩转换的中间过 程, 只控制输入输出值, 故难以保证转换精度, 且色 块选取不当容易导致极大的误差。 N eugebauer 方程和 Yu le 2 N ielson 方程是印刷 网点图像呈色理想数学模型 , 因此只适用于印刷网 点图像。 本文首先将两方程的网点面积率参数重新 解释为色彩百分比 , 使得修正后的方程也适用于数 码相机的非印刷网点图像。 再根据多项式拟合算法 分单色、 双色和三色逐层考察数 码相机的色彩误 差, 并逐层对方程予以修正, 从而为数码相机色彩 管理的提出了新的方法和途径。
Abstra ct: A new co lor space convers ion m ode l is presented ba sed on the m u ltinom ial m a tch ing and the N eugebauer equa tion. F irs t ly, the m odel uses the standa rd co lor ta rget as t he exp eri2 m ent al sam p le based on the digita l cam era colo r rende ring p rincip le, and subst itute s colo r b locks into the co lor shade dist rict fo r the com p le te co lo r space to im prove the m odel effic iency. T hen, the m odel rein terp re ts the p aram ete rs of N eugebauer equa t ion fo r the color space con 2 ve rsion of the dig ita l cam era . F ina lly, the m u lt inom ial m atching and the N eugebauer equat ion a re integra ted to deduce the m odif ied m odel of colo r space conve rsion for digita l im age by the single co lor, the bico lor and the t rico lor correct ion s tepw ise. Experim enta l re su lt s show tha t the m odified m ode l can im p rove co lor space convers ion accu racy com pa red w ith m ains t ream m ode ls w ith relat ive high conve rsion accuracy. Key wor ds: co lor space conver sion; m u lt inom ial m a tching; N eugebauer equat ion; digital cam 2 e ra 使图像的色彩在整个复制过程中失真最小。 其基本 思路是: 首先选择一个与设备无关的参考色空间, 然后对设备进行特征化 , 最后在各个设备的色空间 和与设备无关的参考色空间之间建立关系 , 从而使 数据文件在各个设备之间转换时有一个明确的关 系可寻 [1 ]。 目前对图像再现设备的色彩管理研究大致分 为参数法和黑箱法。 参数法是根据转换所涉及的设 备或材料光学参数等形成 RGB 与 X YZ 的转换模 型 [223 ] , 由于数码相机设备中所涉及感光特性曲线 具有较多非线性因素, 故参数法在数码相机中应用 难度极大。黑箱法则是将总体看作一个黑匣子 , 只

数码转换程序实验报告

数码转换程序实验报告

数码转换程序实验报告实验报告:数码转换程序一、实验目的:本实验的目的是编写一个数码转换程序,能够将给定的十进制数转换为二进制数、八进制数和十六进制数。

二、实验原理:1. 十进制数转二进制数的方法:首先,将十进制数不断除以2,得到的商继续除以2,直到商为0为止。

然后,将每次得到的余数按照相反的顺序排列,即为转换后的二进制数。

2. 十进制数转八进制数的方法:将十进制数不断除以8,得到的商继续除以8,直到商为0为止。

然后,将每次得到的余数按照相反的顺序排列,即为转换后的八进制数。

3. 十进制数转十六进制数的方法:将十进制数不断除以16,得到的商继续除以16,直到商为0为止。

然后,将每次得到的余数按照相反的顺序排列,并将10、11、12、13、14、15分别表示为A、B、C、D、E、F,即为转换后的十六进制数。

三、实验过程:1. 设计数码转换程序的算法。

2. 使用Python编程语言实现该算法。

3. 运行程序,输入一个十进制数。

4. 程序将根据用户输入的十进制数,分别计算出对应的二进制数、八进制数和十六进制数。

5. 输出转换结果。

四、实验结果:例如,用户输入的十进制数为1776。

则转换结果为:二进制数:11011110000八进制数:3400十六进制数:6F0五、实验总结:通过本次实验,我学会了如何编写一个数码转换程序,能够将给定的十进制数转换为二进制数、八进制数和十六进制数。

此外,我还加深了对十进制数转换为其他进制数的原理的理解。

通过实际操作,我发现编写一个数码转换程序并不复杂,只需要遵循一定的转换方法,按照算法进行计算即可得到转换结果。

这次实验还增加了我对Python编程语言的实际应用能力。

总的来说,本次实验使我更加熟悉了程序设计与算法,提高了我解决类似问题的能力。

一位BCD码转换为共阳数码管显示码的程序

一位BCD码转换为共阳数码管显示码的程序

一位BCD码转换为共阳数码管显示码的程序随着电子科技的发展,数码管已经成为了我们生活中不可或缺的一部分。

数码管是一种数字显示器件,由许多小的发光二极管组成,可以显示数字、字母、符号等信息。

其中,共阳数码管是一种常见的数码管,它的每个发光二极管的阳极都连接在一起,而阴极则分别接在不同的引脚上。

在实际应用中,我们经常需要将BCD码转换为共阳数码管显示码,以便将数字信息显示在数码管上。

下面,就让我们来了解一下如何编写一位BCD码转换为共阳数码管显示码的程序吧。

一、什么是BCD码?BCD码(Binary-Coded Decimal)是一种二进制编码方式,它将十进制数字的每个十进制位都转换成了4位二进制数。

例如,十进制数字5在BCD码中的表示就是0101,十进制数字9在BCD码中的表示就是1001。

BCD码的优点是可以直接表示十进制数字,而无需进行转换,因此在数字计算和显示方面具有很大的优势。

二、什么是共阳数码管?共阳数码管是一种数码管,它的每个发光二极管的阳极都连接在一起,而阴极则分别接在不同的引脚上。

当阳极接通时,该数码管的对应发光二极管就会发光,从而显示数字、字母、符号等信息。

共阳数码管的优点是可靠性高、功耗低、使用方便等。

三、如何将BCD码转换为共阳数码管显示码?将BCD码转换为共阳数码管显示码的过程需要进行以下步骤:1、读取BCD码:首先需要从输入设备(如键盘、传感器等)中读取BCD码,例如,我们要将数字5转换为共阳数码管显示码,那么它在BCD码中的表示就是0101。

2、转换为二进制数:将BCD码转换为二进制数,例如,0101转换为二进制数为01010100。

3、确定显示码:根据共阳数码管的连接方式,确定对应的显示码。

共阳数码管的连接方式通常是将发光二极管的阳极连接在一起,而阴极则分别接在不同的引脚上。

因此,对于每个数字,需要根据其在共阳数码管中的位置确定对应的显示码。

4、输出显示码:最后,将确定的显示码输出到共阳数码管中,从而实现数字信息的显示。

实验二 数码转换程序实验

实验二 数码转换程序实验

数码转换程序实验实验目的掌握不同进制数及编码相互转换的程序设计方法。

实验内容及说明计算机输入设备输入的信息一般是由ASCII码或BCD码表示的数据或字符,CPU一般均用二进制数进行计算或其他信息处理,处理结果的输出又必须依照外设的要求变为ASCII码、BCD码或七段显示码等。

因此,在应用软件中,各类数制的转换和代码的转换是必不可少的。

计算机与外设间的数码转换关系如图1所示,数码对应关系如表1所示。

图1表11.将ASCII码表示的十进制数转换为二进制数十进制数可以表示为:D n×10n+D n-1×10n-1+…+D0×100=D i×10i其中D i代表十进制数1、2、3…9、0。

上式可以转换为:∑D i×10i=((…(D n×10+D n-1)×10)+D n-2)×10+…+D1)×10+D0由上式可归纳十进制数转换为二进制的方法:从十进制数的最高位D n开始作乘10加次位的操作,依次类推,则可求出二进制数结果。

本实验要求将缓冲区中的一个五位十进制数00012的ASCII码转换成二进制数,并将转换结果按位显示在屏幕上。

转换过程的参考流程如图2所示。

The ascii code of decimal code are:000C。

执行了几步单步之后才有结果的。

图22.将十进制数的ASCII码转换为BCD码本实验要求将键盘输入的一个五位十进制数54321的ASCⅡ码存放在数据区中,转换为 BCD 码后,并将转换结果按位分别显示于屏幕上。

若输入的不是十进制数的ASCⅡ码,则输出“FF”。

提示:一字节ASCⅡ码取其低四位即变为BCD码。

转换部分的实验流程参见图3。

The BCD code of decimal are:01 02 03 04 05.图33.将十六进制数的ASCII码转换为十进制数十六位二进制数的值域为0-65535,最大可转换为五位十进制数。

KH-86PCI 微机原理与接口实验系统实验箱

KH-86PCI 微机原理与接口实验系统实验箱

KH-86PCI 微机原理与接口实验系统实验箱一、系统简介微机原理系统是《16位微机原理与接口》、《32位微机原理与接口》、《微机控制技术》等课程教学的最佳配套实验设备。

为各类院校的教学实验、课程设计、毕业设计提供了良好的实验开发环境。

二、系统组成:·硬件:(1)16位微机系统扩展: CPU(8088),系统控制芯片(1032),64K监控程序存储器,64K用户程序和数据存储器(61256x2),64K实验程序存储器,开放式4*6键盘电路(采用PC键盘),开放式6位动态数码管显示电路,配有串口或USB通信方式,出厂配置为串口。

(2)32位接口单元:32位开关逻辑电平输入/ 输出显示电路,32位I/O接口电路,32存储器电路,32位PCI 接口驱动电路,32位PCI 接口卡(由PCI9054、93C56组成)。

(3)输入/ 输出:128*64 LCD图文电路(或字符式1602 LCD),8位开关逻辑电平输入/ 输出电路,单脉冲发生器,8MH时钟分频,16*16 LED点阵电路,音频功放,0~5V可调模拟量,PWM电路、射极跟随器,打印口,用户串行接口。

(4)常用接口芯片:74LS273、74LS244、8279、0832、0809、8259、8250、8253、8251、8255、8237、RS232等;(5)控制对象:喇叭、蜂鸣器、小型直流电机、步进电机、压力传感器、温度传感器、继电器等;(6)扩展单元接口:提供总线接口,可自行扩展设计或选配我公司扩展模块。

·软件:系统配置Win2000/xp等操作平台的微机仿真调试软件,支持汇编、C语言编译、调试。

32位微机接口实验的应用程序全部采用Visual C++ 6.0 开发,其与驱动的通讯方法将在之后介绍,因为驱动是在VC 基础上开发的,所以应用程序也采用VC,其优点是显而易见的。

32位汇编程序全部在windows2k,winxp下平稳运行,实验系统提供了全部的源程序,特别是32位的汇编程序能在VC下进行单步调试,为用户的开发,调试和学习提供了极大的方便.·电源:系统内置高性能直流稳压电源。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数码转换程序实验
一、实验目的
1、掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解。

2、进一步熟悉键盘的使用方法。

3、进一步熟悉调试程序的方法。

二、实验设备
TDN86/51教学实验系统一台
三、实验内容及步骤
1、将累加器A中的8位二进制转换成3位BCD码格式的十进制。

其中,百位数的BCD码放在21H单元中,十位和个位数放在22H 单元中。

参考程序:
ORG 0000H
LJMP MAIN
ORG 1000H
MAIN: MOV A, #0FFH
MOV B, #64H
DIV AB
MOV 21H, A
MOV A, #0AH
XCH A, B
DIV AB
SWAP A
ADD A, B
MOV 22H, A
L1: SJMP L1
END
实验步骤:
(1)输入程序检查无错误,经汇编、连接后装入系统。

(2)在1012处设段点。

(3)GB=0000↙,运行程序。

(4)用R0721↙查看21H单元,应为02,用R0722查看22H 单元,应为55。

(5)改变A中的数,考察程序的正确。

2、将累加器A中存放的两个BGD码拆开,求他们的乘积,并把乘积以压缩的BCD码形式送回A中。

参考程序:
ORG 0000H
LJMP MAIN
ORG 1000H
MAIN: MOV A, #23H
MOV B, #10H
DIV AB
MUL AB
MOV B, #0AH
DIV AB
SWAP A
ORL A, B
L1: SJMP L1
END
实验步骤:
(1)输入程序检查无错误,经汇编、连接后装入系统。

(2)在100E处设段点。

(3)GB=0000↙,运行程序。

(4)用R↙命令查看A中的数应为06(2×3)。

(5)改变A中的数,检查程序的正确性。

相关文档
最新文档