串并转换实验

串并转换实验
串并转换实验

一、实验内容:

(1)在实验箱上完成:利用8031串行口和串行输入并行输出移位寄存器74LS164,扩展一个8位输出通道,用于驱动一个共阳极数码显示器,在数码显示器上循环显示8031串行口输出的0~9这10个数字。

(2)用Proteus软件参照实验电路连线并仿真运行,得出与实验箱上相同的软件仿真结果。

所用元器件:单片机AT89C51、串入并出移位寄存器74LS164、数码管7SEG-COM-CAT-GREEN(BLUE)

二、实验电路及功能说明

串行口工作在方式0时,可通过外接移位存储器实现串并行转换。在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为晶振频率1/12。由软件置位串行控制寄存器(SCON)的REN后才能启动串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。待8位数据输完后,硬件将SCON寄存器的TI位置1,TI 必须由软件清零。共阳极数码管的0~9的显示码如下:0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09

三、实验程序流程图:

主程序:

子程序:

四、实验结果分析

五、心得体会

通过实验让我掌握8031串行口方式0工作方式及编程方法。同时了解和掌握了利用串行口扩展并行I/O通道的方法。

程序清单

#include

unsigned char code table[]={0x03,0x9F,0x25,0x 0D,

0x99,0x49,0x41,0x1F,0 x01,0x09};

int i=0,num=0;

void main() {

TMOD=0X01;

TH0=(65536-5000)/256

;

TL0=(65536-5000)%25

6;

EA=1;

ET0=1;

TR0=1;

SCON=0x00;

while(1);

}

void timer0() interrupt 1

{

TH0=(65536-50000)/25

6;

TL0=(65536-50000)%2

56;

num++;

if(num==10)

{

num=0;

i++;

SBUF=~(table[i]); if(i==10)

{

i=0;

}

}

}

单片机综合实验报告

题目: 单片机与pc机串行通信实验班级:0312409

姓名:田庆

学号: 031240920

指导老师:谭忠祥

时间: 2014.12.17

一、实验内容:

(1)在实验箱上实现:

利用8031单片机串行口,实现与PC机通信。将“PC机发送程序”上的字符(0~F)显示到实验仪的数码管上。

(2)用Proteus软件参照实验电路连线并仿真运行,得出与实验箱上相同的软件仿真结果。

所用元器件:单片机AT89C51、8位锁存器74LS273或74LS373、3-8译码器74LS138、排阻或电阻RESPACK-8(RES)、或非门74LS02、共阳极六合一数码管7SEG-MPX6-CA以上是“时钟显示实验”电路。

另外增加:TTL和RS232电平转换芯片MAX232、RS232串口COMPIM、串口通信仿真器VIRTUAL TERMINAL

二、实验电路及功能说明

实验时需将8032串行接收信号线P3.0(RXD)连到实验仪右上角RX0插孔;8031的P3.1(TXD)连到实验仪右上角TX0插孔上;使用通信电缆连接PC机与实验仪。

三、实验程序流程图:

主程序:

六、实验结果分析

七、心得体会

通过实验让我掌握8031串行口方式0工作方式及编程方法。同时了解和掌握了利用串行口扩展并行I/O通道的方法。

程序清单

#include

#include

#define uchar unsigned char

#define uint unsigned int

#define ZX XBYTE[0xffdc] //字型口,段

#define ZW XBYTE[0xffdd] //字位口,位uint n=0;

uchar code aa[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x 82,0xF8,0x80,0x90};

void init(void) //初始化串口

{

SCON=0x40; //方式1,REN=0

PCON=0x80;

TMOD=0x20; //T1方式2(8位可重装)

TH1=243;

TL1=243;

TR1=1; }

void delay_ms(uint x)

{

uint i;

uint j;

for(i=0;i

for(j=0;j<20;j++); }

void display(void)

{

ZX=aa[n%10]; //个位

ZW=0x04;

delay_ms(5);

ZW=8;

ZX=aa[n/10%10]; //十位

ZW=0x08;

delay_ms(5);

ZW=9;

/* ZX=aa[n/100%10];

ZW=0x10;

delay_ms(5);

ZW=0;

ZX=aa[n/1000%10];

ZW=0x20;

delay_ms(5);

ZW=0; */

}

void main(void)

{

init();

while(1)

{

REN=1;

while(RI==0)

display(); //未接受到数据时RI=0; // 当RI为1时,跳出display

n=SBUF; //SBUF来自接受到的数据

REN=0;

}

}

DA转换实验

实验九 D/A转换实验 一、实验目的 1、熟悉D/A转换的基本原理; 2、掌握AD7303的技术指标和常用方法; 3、熟悉DSP的SPI的应用方法; 4、掌握并熟练使用DSP和AD7303的接口及其操作。 二、实验设备 计算机,CCS 2.0版软件,DSP仿真器,EXP4实验箱,F2812CUP板,示波器。 三、实验原理 DA转换芯片采用Analog Devices公司的AD7303。该芯片是单极性、双通道、串行、8位DA转换器,操作串行时钟最快可达30M,DA转换时间1.2μs采用SPI串行接口和DSP连接。DA 输出通过放大电路,可以得到0~5V的输出范围。DA输出接口在“CPLD单元”的左上角,两个2号孔“D/A输出1、D/A输出2”分别对应AD7303的“OUTA、OUTB”。下面是AD7303的功能框图: 引脚说明: 1、VOUTA:模拟输出A 2、电源 +2.7~+5.5V 3、地 4、REF:参考电压 5、SCLK:数字接口位时钟 6、DIN:数字接口数据 7、SYNC:数字接口片选 8、VOUTB:模拟输出B 接口时序:

输入的数字量和输出电压的关系: 四、实验步骤与内容 1、开关K9拨到右边,即仿真器选择连接右边的CPU:CPU2;运行CCS软件,加载示 范程序; 2、按F5运行程序,用示波器检测“D/A转换单元的的2号孔接口“输出1”输出一个 正弦波;

3、填写实验报告。 4、样例程序实验操作说明 启动CCS 2.0,打开EXP4_09_da目录下面的工程文件“Example_281x_da.pjt”,并加载Example_281x_da.out文件,双击“Source”,可查看源程序。 5、在源文件中“SpiaRegs.SPITXBUF=curve1[p];”处设断点,点击RUN运行程序;

A D转换及多位数码显示实验

课程:微处理器原理与应用 课时:4学时 教学环境:单片机实验室 教学方法:讲解相关内容,指导学生实验 实验四 A/D转换及多位数码显示实验 一、目的、任务和要求 1.1 实验目的 1. 掌握8051单片机控制的多位数码显示器电路的设计方法、程序结构和编程方法。 2. 掌握LED动态扫描显示器的扫描方法和程序结构,同时进一步掌握单片机扩展I/O接口、定时中断的应用和编程方法。 3. 掌握8051单片机控制的A/D转换电路的硬件设计、程序结构和编程方法。 4. 掌握ADC0809芯片的工作原理和完成A/D转换的三种等待工作方式以及三种工作方式下的硬件电路和程序结构的设计方法 1.2 实验任务 搭建一个单片机控制的A/D转换及多位数码显示电路,编写并调试通过一个能实现单路A/D转换和数码显示的程序。本实验采用七段LED数码管来显示A/D转换后的数值。 1.3实验要求 通过利用8051单片机的并行扩展功能和采用ADC0809芯片,搭建一个A/D转换电路,采用七段LED数码管来显示A/D转换后的数值。设计并调试通过相应的程序。 二、实验设备和器件 2.1实验设备 (1)微型计算机(PC机)(装配相关软件),(2)单片机实验箱或开发板。 2.2电路元器件 本实验采用Protues仿真软件搭建一个简单的单片机系统电路,进行电路仿真分析,不需要实际的元器件。若实验采用实验箱或万能板(或面包板)搭建电路,则需要如下元器件: ADC0809,74LS02,10kΩ电位器、七段LED数码管,74HC595、三极管9013、LED限流电阻、软导线等。学生可自己在课后搭建电路进行实验,并与仿真实验比较。 三、实验内容及步骤3.1参考电路与程序代码ADC0809芯片的A/D转换参考电路1.单片机控制芯片,再将电位器80C51单片机最小系统的基础上,通过并行总线扩展ADC0809该电路图是在数段LEDADC0809的输出模拟电压信号接的模拟信号输入端,同时采用扩展的方法接入一个多位7 6.1所示。码显示器。如图 +5V

二进制转换成BCD码 实验报告

一、实验目的 (1)进一步熟练掌握8086汇编语言编译调试工具和环境的操作; (2)掌握完整8086汇编的程序设计编写方法; (3)掌握简单的数值码制转换方法; (4)掌握键盘输出的DOS功能调用方法。 二、实验要求: 将AX中的一个二进制数(对应的十进制数范围是0-65535),转换成压缩性BCD 码表示的十进制,并从屏幕输出转换结果。要求用减法实现,并比较与除法方法进行运行速度比较。 三、实验及报告要求: 3.1、简要说明算法,并画出正确的程序流程图; 3.2、给出完整正确的源程序代码,要求给每一句伪指令或指令加上注释; 3.3、分别在DOS和Windows下编译、连接源程序生成可执行文件并调试,比较两个环境下生成的机器码的长度、寄存器内容、计算结果的异同。 3.4、如何观察转换过程中标志寄存器中各标志位的结果?如何观察转换结果的变化?试改变被转换数值,对结果与编制为的变化加以说明和解释。 3.5、写出完整的实验报告,特别是“实验结果”与“实验总结体会”部分,是评分的主要依据。 3.6、实验总结中要求结合实验中的经验、教训或体会对汇编语言格式、调试方法和微机原理学习方法作出总结。 四、程序流程图 减法。即五位数先循环减10000,直到不够减了,做减法的次数就是万分位的结果;将不够减之前一次的余数恢复,再循环减去1000,直到不够减了,做减法的次数就是千分位的结果;以此类推,最后恢复的正余数就是个位的结果. 除法。即五位数先除以10000,得到的商存放万位数的变量上;再将余数除以1000,得到的商存放千位数的变量上;之后将余数除以100,得到的商存放百分位的变量上;以此类推,最后的余数存放在个位的变量上。

串转并转换器1

一、题意分析及解决方案 1、课程设计名称及内容 应用STAR ES598PCI单板开发机系列接口芯片设计一个串转并转换器,熟悉串转并转换原理,掌握使用串并转换芯片扩展I/O口的实现方法。设计编写程序,循环点亮8个指示灯瞬间只有一个灯亮。观察实验结果,验证串并转换数据的正确性。 2、题意需求分析 根据题目给定的内容与要求可得:本实验需要用到的主要是控制数据输入的芯片、实现串并转换的芯片和用于显示的发光管。 本实验的核心部分是8位移位寄存器74HC164,它可以实现数据的串行输入和并行输出,达到数据从串行转换为并行的目的。为了方便控制74HC164的输入,考虑运用可编程接口芯片8255连接CPU和74HC164,实现数据的串行输入和CP脉冲的变化。同时,为了方便观察实验结果,使用74HC164移位寄存器输出接口连接8位发光二极管,显示并行输出结果。 3、解决问题的思路与方法 (1)硬件部分 程序用到的硬件芯片有8255、74HC164、发光二极管: 使用8255作为CPU和移位寄存器之间的接口电路来控制8位串行数据的输入,其本身的接口就可以支持输出的操作。而且8255的可编程并行接口,具有传输速度快效率高等优点,不需要附加外部电路便可和大多数并行传输数据的外部设备相连,数据的各位同时传送,使用十分方便。 74HC164是8位移位寄存器,当其中一个(或二个)选通串行输入端的低电平禁止进入新数据,并把第一个触发器在下一个时钟脉冲来后复位到低电平时,门控串行输入端(A 和B) 可完全控制输入数据。一个高电平输入后就使另一个输入端赋能,这个输入就决定了第一个触发器的状态。虽然不管时钟处于高电平或低电平时,串行输入端的数据都可以被改变,但只有满足建立条件的信息才能被输入。时钟控制发生在时钟输入由低电平到高电平的跃变上。为了减小传输线效应,所有输入端均采用二极管钳位。时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA 和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的

汇编程序设计—二进制码转换为BCD码

二进制码转换为BCD码 一、实验目的 1、掌握数码转换基本方法,加深对数码的理解。 2、掌握顺序结构程序设计的基本方法。 二、实验内容 将AX的内容转换为十进制BCD码。 AX中给定数为0FFFF,将其转化为BCD码,结果保留在名字为result开始的数据区中,此数据区段地址为0、且偏移地址从4100H开始。值分别为06、05、05、03、05。 三、实验程序框图

四、源程序 DATA SEGMENT AT 0 ORG 4100H RESULT DB 5 (0) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MOV AX,DATA

MOV DS,AX MOV AX,0FFFFH ;0FFFFH送至AX MOV BX,10000 ;10000送至BX DIV BX ;AX/BX,商存于AL,余数存于DX MOV RESULT,AL ;将万位数存入RESULT中 MOV AX,DX ;余数存入AX中 MOV DX,0 ;DX清零 MOV BX,1000 DIV BX MOV RESULT+1,AL ;将千位数存入RESULT+1中 MOV AX,DX MOV DX,0 MOV BX,100 DIV BX MOV RESULT+2,AL ;将百位数存入RESULT+2中 MOV AX,DX MOV DX,0 MOV BX,10 DIV BX MOV RESULT+3,AL ;将十位数存入RESULT+3中 MOV RESULT+4,DL ;将个位数存入RESULT+4中 MOV AH,4CH INT 21H CODE ENDS END START

单片机串并口转换实验定稿版

单片机串并口转换实验 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

我也是刚入手单片机,今天编了一段小程序,就是关于单片机串口转并口和并口转串口的一个小实验,本程序在PTOTUES中完美运行。在单片机开发试板上也是完美运行。今天贴出来供大家分享,看完本历程,有助于提高您对单片机IO口的基本操作,锁存器的用法以及串并转换的使用技能 #include 本例程的电路连接图如上,在电路中使用了AT89C51单片机一块,74HC595八路串/并转换器,74HC165八路并串转换器和一片74HC573 锁存器。实验者请按上图连接好实验电路。

#include #include< intrins.h > #define uchar unsigned char #define uint unsigned int #define ulong unsigned long code uint a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; sbit SO=P1^0; //定义165的输出 sbit STCP=P1^1; sbit DS=P1^2; sbit SHCP=P1^3; sbit SHLD=P1^4; sbit CLK=P1^5; sbit cs573=P1^6; /**************************************************/

void delay(ulong X) //延时函数,采用了形参传递函数{ while(X--); } /**************************************************/ void LED(); //函数声明 /**************************************************/ void main() //主函数 { while(1) { LED (); } }

实验一数码转换编程及程序调试

实验一数码转换编程及程序调试 一、实验目的 掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解。 熟悉程序调试的方法。 二、实验设备 Pc 微机一台,TD-PITE 实验装置一套。 三、实验内容及步骤 计算机输入设备输入的信息一般是由ASSII 码或BCD 码表示的数据或字符,CPU 一般均用二进制数进行计算或其它信息处理,处理结果的输出又必须依照外设的要求变为ASCII 码、BCD 码或七段显示码等。因此,在应用软件中,各类数制的转换是必不可少的。b5E2RGbCAP 计算机与外设间的数制转换关系如图所示2-1所示,数制对应关系如表2-1所示。 BCD 码 二进制 二进制

图2-1 数制转换关系表1 数制对应关系表 1. 将ASCII码表示的十进制数转换为二进制数十进制表示为: Di代表十进制数0,1,2, (9) 上式转换为:

由此可归纳十进制数转换为二进制数的方法:从十进制数的最高位Dn开始作乘10加次位的操作,依次类推,则可求出二进制数的结果。p1EanqFDPw 参考流程: 实验程序: PUBLIC SADD SSTACK SEGMENT STACK DW 64 DUP(?> SSTACK ENDS DATA SEGMENT SADD DB 30H,30H,32H,35H,36H 。十进制数:00256 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA

START: MOV AX, DATA MOV DS, AX MOV AX, OFFSET SADD MOV SI, AX MOV BX, 000AH MOV CX, 0004H MOV AH, 00H MOV AL, [SI] SUB AL, 30H A1: IMUL BX MOV DX, [SI+01] AND DX, 00FFH ADC AX, DX SUB AL, 30H INC SI LOOP A1 A2: JMP A2 CODE E NDS E ND START 实验步骤: <1)绘制程序流程图,编写实验程序,经编译、链接无误后装入系统;

实验二 数码转换编程及程序调试

实验二 数码转换编程及程序调试 一、实验目的 1. 掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解。 2. 熟悉键盘使用方法。 3. 熟悉调试程序的方法 二、实验设备 TDN86/51或TDN86/88教学实验系统一台 三、实验内容及步骤 计算机输入设备输入的信息一般是由ASCII 码或BCD 码表示的数据或字符,CPU 一般均用二进制进行计算或其他信息处理,处理结果的输出又必须依照外设的要求变为ASCII 码、BCD 码或七段显示码等。因此,在应用软件中,各类数制的转换和代码的转换是必不可少的。 计算机与外设间的数码转换关系如图2-1所示,数码对应关系如表2-1所示。 1. 将ASCII 码表示的十进制数转换为二进制数 十进制表示为: ∑=--?=?++?+?n i i i n n n n D D D D 00 01110101010 ┅┅┅┅┅┅┅┅┅(1) Di 代表十进制数1,2,3,┅9,0; 上式转换为: 011010)10)10((((10D D D D D n n i n i i +?++?+?=?-=∑ ┅┅┅┅┅┅┅┅┅(2) 由式(2)可归纳十进制数转换为二进制数的方法:从十进制数的最高位Dn 开始作乘10加次位的操作,依次类推,则可求出二进制数的结果。 实验步骤 (1) 输入程序并检查无误,经汇编、连接后装入系统。 (2) 在3500-3504H 单元存入十进制数12的ASCII 码,即E3500↙,并输入30 30 30 31 32。 (3) G=0000:2000↙,运行以上程序,并用CTRL+C 来中断程序,返回监控状态。 (4) 用D3510↙查看结果,应为:3510 0C 00。 (5) 反复试几组数,考察程序的正确性。 图2-1 数码转换关系 二进制

实验八 串转并与并转串实验

贵州大学实验报告纸 实验八串转并与并转串实验 一、实验目的 1.掌握使用74LS164扩展输出的方法。 2.掌握使用74LS165扩展输入的方法。 二、实验内容 1、使用74LS165扩展输入数据,使用74LS164扩展输出数据。74LS165的并行口 接八位逻辑电平输出(开关),CPU使用P1.0、P1.1和P1.2串行读入开关状态;74LS164的并行口接一只数码管,CPU使用P1.3和P1.4串行输出刚读入的开关状态,使之在数码管上显示出来。 2、拨动开关,在数码管显示0~9,A~F。 三、实验要求 1、根据实验内容编写一个程序,并在实验仪上调试和验证。 四、实验说明和电路原理图 1)74LS165为8位移位寄存器,其引脚功能如下: S/L:移位/置数端,低电平有效。 P0~P7:并行数据输入端。 QH:串行数据输出端。 CLK、CKLINH:时钟信号输入端。 2)74LS164为串行输入并行输出移位寄存器,其引脚功能如下: A、B:串行输入端; Q0~Q7:并行输出端; MR:清零端,低电平有效; CLK:时钟脉冲输入端,上升沿有效。 3)用P1端口输出数据时,要编程位移数据,每操作一个数据位,对应一个移位脉冲。 4)本实验需要用到CPU模块(F3区)、八位逻辑电平输出模块(E4区)和静态数码管显示模块(B4区)。74LS165电路原理图参见图8-1,74LS164电路原理图参见图8-2。 注:74LS164集成电路芯片在主板反面。

图8-1 74LS165电路 五、实验程序 ;//**************************************************************** ;//*文件名:164165 串转并,并转串实验程序 ;功能:把开关量通过74**165串行输入到内存,并通过74**164串行输出到数; 码管上显示。 ;接线:P1.0接QH165,P1.1接CLK165,P1.2接SH_LD, ; P1.3、P1.4接静态数码显示的DIN、CLK。 ;//**************************************************************** QH165 BIT P1.0 CLK165 BIT P1.1 SH_LD BIT P1.2 DAT164 BIT P1.3 CLK164 BIT P1.4 MEMORY EQU 30H

二进制码转换为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-->BCD ORG 4000H RESULT DB 5 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA ORG 2CE0H START PROC NEAR MOV AX, DATA MOV DS, AX MOV DX,0000H MOV AX, 65535 MOV CX, 10000 DIV CX MOV RESULT, AL ; 除以 10000, 得WAN位数 MOV AX,DX MOV DX,0000H MOV CX, 1000 DIV CX MOV RESULT+1, AL ; 除以 1000, 得QIAN位数 MOV AX,DX MOV DX,0000H MOV CX, 100 DIV CX MOV RESULT+2, AL ; 除以 100, 得BAI位数 MOV AX,DX MOV DX,0000H MOV CX, 10 DIV CX MOV RESULT+3, AL ; 除以 10, 得SHI位数 MOV RESULT+4, DL ; 得GE位数 JMP $ CODE ENDS END START

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

实验九数码转换 一、实验目的 1、掌握计算机常用数据编码之间的相互转换方法。 2、进一步熟悉DEBUG软件的使用方法。 二、实验内容 1. ACSII码转换为非压缩型BCD码 编写并调试正确的汇编语言源程序,使之实现:设从键盘输入一串十进制数,存入DATA1单元中,按回车停止键盘输入。将其转换成非压缩型(非组合型) BCD码后,再存入DATA2开始的单元中。若输入的不是十进制数,则相应单元中存放FFH。调试程序,用D命令检查执行结果。 2. BCD码转换为二进制码 编写并调试正确的汇编语言源程序,使之将一个16位存储单元中存放的4位BCD码DATA1,转换成二进制数存入DATA2字单元中。调试程序,用D命令检查执行结果。 3. 十六进制数转换为ASCII码 编写并调试正确的汇编语言源程序,使之将内存DATA1字单元中存放的4位十六进制数,转换为ASCⅡ码后分别存入DATA2为起始地址的4个单元中,低位数存在低地址的字节中,并在屏幕上显示出来。 三、实验预习 1. 复习材料中有关计算机数据编码部分的内容。 2. 按要求编写程序。 四、实验步骤 1. 编辑源文件,经汇编连接产生EXE文件。 2. 用DEBUG调试、检查、修改程序。 五、实验内容 1. ACSII码转换为非压缩型BCD码 STACK SEGMENT PARA STACK 'STACK' DB 256 DUP(?) ; 为堆栈段留出256个字节单位 STACK ENDS DATA SEGMENT PARA 'DATA' ;定义数据段 DATA1 DB 32 ; 缓冲区最大长度 DB ? DB 32 DUP(?) DATA2 DB 32 DUP(?) DATA ENDS CODE SEGMENT ; 定义代码段

verilog实现串并并串转换的代码和仿真结果

题目:串并互换电路的设计 系(部):*** 专业班:*** 姓名:*** 学号:*** 指导教师:*** 完成比例:** 2011年12 月

摘要 本文主要讲述用verilog实现串并互换电路,在同步时钟的控制下,四位的并行数据和串行数据相互转换,通过一位的控制信号来控制该电路为串并或并串转换,最后由串并有效位来表示串并互换成功。 关键词:串转并并转串移位寄存器

Abstract This paper deals with verilog realize string and swap circuit, in synchronous clock under the control of four parallel data and serial data transformation, through a control signals to control the circuit for the series and or and string of conversion, finally by string and effective to say a string and swap success. Key W ords:Parallel turns to serial serial turns to parallel Shift register

目录 摘要.............................................................................................................................................................................. I ABSTRACT ..................................................................................................................................................................... II 1 选题背景. (1) 1.1本课题的意义 (1) 2 方案论证 (2) 2.1串并并串选择的分析 (2) 2.2串并并串转换是否成功的标志位及表达 (2) 3、程序的具体实现及仿真结果 (3) 4、本人完成部分及对该部分的理解 (9) 5结论或总结 (9) 致谢 (10) 参考文献 (10)

实验二二进制码转换为bcd码实验报告终审稿)

实验二二进制码转换为 B C D码实验报告 公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08]

实验二二进制码转换为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文件夹,点击文件,单击“确定”即可装入源文件,再单击工具栏中编译,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。 (2)复位“系统复位”键,由于AX中给定数为0FFFF,查看BCD码结果保留在4100H~4104H单元中,故其值应为06、05、05、03、05。 注:操作过程参照“实验一二进制多位加法运算”。 五、实验程序清单 X:\DICE-8086K3微机原理与接口实验箱CDROM\CODE\86kasm\ ;将AX拆为5个BCD码,并存入Result开始的5个单元 DATA SEGMENT AT 0 ;,BIN-->BCD ORG 4000H RESULT DB 5 DUP() DATA ENDS CODE SEGMENT

串并转换

实验五串并转换实验 一、实验目的 1、掌握串并行转换的原理及采用74LS164扩展端口的方法。 2、掌握数码管显示的原理及方法。 3、学习用任意两根I/O口线进行数据传输的方法。 二、实验要求 利用实验箱的显示电路,在数码管上循环显示0-9这10个数,每个数显示1秒。完成后修改程序,仅在一个数码管上显示0-F这16个数(其它三个数码管不显示)。 三、实验原理 实验设备中数码管为共阴接法,接线确定了各段从左 至右的排列顺序为:abcdefgh。如果要显示数字1,应该 是b c段发光,所以b c段对应的位写1,其它不发光的位写0。因此1的显示码为 60H。其它显示码可按此规律得出。 实验原理图见图二,串并转换芯片74LS164的A、B端为串行数据输入端,将其接到数据线P1.0上,CLK为时钟端接到时钟线P1.1上,Q0~Q7为并行输出端接数码管。在P1.1产生的时钟脉冲的作用下,数据的显示码从74LS164输入端一位一位的输入,经164转换后,串行数据变为8位并行数据经其输出端Q0~Q7加到数码管上,数码管就能显示相应的数字。 下面是数据60H的传输及显示过程: 1、将A中数据的最低位送到串口的数据线P1.0上。 2、在时钟线P1.1上产生一个脉冲。 3、在这个脉冲的作用下,P1.0上的数据被打入164的Q0输 出端,原来Q0上的数据移到Q1,Q1的数移到Q2…, 完成一位数的传输。 4、第1步到第3步重复8次,这样一个字节的数据就输出 完毕,同时74LS164将接收到的串行数据转换成并行数据 在数码管上显示出来。 四、实验框图 实验框图见图一。 五、实验连线及步骤 1、DIN接P1.0,CLK接P1.1,打开实验箱电源,打开串并 转换数码管显示模块上的开关。 2、启动KEIL软件界面,根据框图编程。 在初始化框中有两个内容,它们分别是: * 送表指针初值---寄存器 MOV R1,#0 * 送表首地址---DPTR 图一串并转换程序框图

串转并和并转串实验

实验五串转并与并转串实验 一、实验目的 1.掌握使用74LS164 扩展输出的方法。 2.掌握使用74LS165 扩展输入的方法。 二、实验内容 使用74LS165 扩展输入数据,使用74LS164 扩展输出数据。74LS165 的并行口接八位逻辑电平输出(开关),CPU 使用P1.0、P1.1 和P1.2 串行读入开关状态;74LS164 的并行口接一只数码管,CPU 使用P1.3 和P1.4 串行输出刚读入的开关状态,使之在数码管上显示出来。 三、实验要求 根据实验内容编写一个程序,并在实验仪上调试和验证。 四、实验说明和电路原理图 1)74LS165 为8 位移位寄存器,其引脚功能如下: S/L:移位/置数端,低电平有效。 P0~P7:并行数据输入端。 QH、QH:串行数据输出端。 CLK、CKLINH:时钟信号输入端。 2)74LS164 为串行输入并行输出移位寄存器,其引脚功能如下: A、B:串行输入端; Q0~Q7:并行输出端; MR:清零端,低电平有效; CLK:时钟脉冲输入端,上升沿有效。 3)用P1 端口输出数据时,要编程位移数据,每操作一个数据位,对应一个移位脉冲。 4)本实验需要用到CPU 模块(F3 区)、八位逻辑电平输出模块(E4 区)和静态数码管显示模块(B4 区)。74LS165 电路原理图参见图5-1,74LS164 电路原理图参见图8-2。 注:74LS164 集成电路芯片在主板反面。 图5-1 74LS165 电路

图5-2 74LS164电路 五、实验步骤 1)系统各跳线器处在初始设置状态。 用导线对应连接八位逻辑电平输出模块的QH165、CLK165、SH/LD 到CPU 模块的P10、P11、P12。用导线对应连接静态数码管显示模块的DIN、CLK 到CPU 模块的P13、P14。 2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。 3)观察数码(八段码)管的亮灭与拨动开关的状态是否一致。拨动开关拨下输出为低电平,段码点亮。 QH165 BIT P1.0 ;位定义 CLK165 BIT P1.1 SH_LD BIT P1.2 DAT164 BIT P1.3 CLK164 BIT P1.4 MEMORY EQU 30H ORG 0000H AJMP START ORG 00B0H START: SETB CLK165 ;开关数据置入165 CLR SH_LD ;低电平置数 SETB SH_LD ;高电平移位 MOVR7, #8 Input: RRA MOVC, QH165 ;读数 MOV ACC.7, C ;把C送到累加器最高位 CLR CLK165 ;脉冲

实验三 代码转换程序设计-推荐下载

实验三代码转换程序设计 一.实验目的: 1.掌握几种最基本的代码转换方法; 2.运用子程序进行程序设计. 二.实验内容: 1.从键盘上输入若干两位十进制数,寻找其中的最小值,然后在屏幕上显示出来. 2.两个十进制数之间的分隔符,输入结束标志自定,但要在报告中说明. 3.对输入要有检错措施,以防止非法字符输入,并有适当的提示. 4.将整个程序分解为若干模块,分别用子程序实现.在报告中要给出模块层次图. 三、创新功能: 1、成功避免空格影响,在输入数据时,用户可以键入无限多用于分隔的空格,不会影响程序的输入,按回车结束一串待比较数的输入。 2、扩充了题目要求,将判断范围扩展到负数领域,在一串数中允许有负数输入,且可以输出最小数。 运行结果如下,可以看到,负数存在时仍可正常判断,以回车作为结束标志 四.预习题: 1.如何将输入的两个字符(0 -- 9)变为十进制或二进制数? 答:将(高位ASCII码-‘0’)*10+低位ASCII码-‘0’即为对应10进制数。 将高位ASCII码-‘0’后左移一位保存,再左移两位,求两者之和,在加上低位ASCII码-‘0’则可通过移位转移成二进制数。 2.如何将选出的最小值(二进制或十进制)变为ASCII 码再进行显示? 答:可将两位数除10,对AL中的商+‘0’显示,AH中的余数+‘0’显示。 3.你觉得采用二进制运算还是十进制运算更适合于这个实验? 答:二进制运算。直接通过ASCII码高低位判断大小。

五、流程图:

六、代码分析 JUDGE MACRO; 判断字符是否合法 CMP AL,'0' JB WRONG ;不合法转去wrong处执行 CMP AL,'9' JA WRONG ENDM PRESENT MACRO X,Y ;显示两个字符 MOV AH,02H MOV DL,X INT 21H MOV AH,02H MOV DL,Y INT 21H ENDM INPUT MACRO;从键盘读取字符 MOV AH,01H INT 21H ENDM DATA SEGMENT STRING DB 'The min is:','$' STRING1 DB 0DH,'Input illegal!','$' STRING3 DB 'Please input number: ','$' DATA ENDS STACK SEGMENT 'STACK' DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START: MOV DX,SEG DATA MOV DS,DX MOV BH,9+'0';BH中存放正的最小值的十位,并将其转换为ASCII码 MOV BL,9+'0';BL中存放正的最小值的个位 MOV CH,'0';CH中存放负的最小值的十位 MOV CL,'0';CL中存放负的最小值的十位 MOV AH,09H MOV DX,SEG STRING3 MOV DS,DX LEA DX,STRING3 INT 21H LOOP1: INPUT

LS164串进并出实验及165并串转换实验

2、165并串转换实验。 (1)74LS165芯片引脚图 管脚说明: D0 through D7 --Parallel in puts SI -- Serial in put Q7,/Q7 -- Data outputs CLK -- Clock CKIN -- Clock in hibit S/L --(高有效)Shift/Parallel-load 实验二 74LS164串进并出实验及165并串转换实验 一、 实验目的 1 、了解74LS164芯片的工作原理,以及与单片机的接口方法。 2、掌握单片机串行口的工作原理以及编程方法。 3 、了解74LS165芯片的工作原理。 4、掌握74LS165芯片在单片机系统中的应用及编程。 二、 实验内容 1、 用74LS164芯片扩展并行输出口,本实验中我们用 74LS164扩展两个8位输出口的 接口显示电路,两位数码管循环显示 00~99之间的数字。 2、 利用实验系统上的 74LS165芯片,编程实现8位数据并行输入,串行口串行接收, 并将接收的数据存放在 CPU 内部存储区50H~59H 中,共10个数据。(并行输入数据由P1 口 来送入) 三、 编程指南 1、74LS164串进并出实验。 (1) 本实验中MCS-51单片机串行口工作在方式 0 (移位寄存器方式,用于并行 I/O 口 扩展)的发送状态时,串行数据由 P3.0(RXD )送出,移位时钟由 P3.1( TXD 送出。在移位 时钟的作用下,串行口发送缓冲器的数据一位一位地移入 74LS164中。需要指出的是,由于 741S164无并行输出控制端,因而在串行输入过程中,其输出端的状态会不断变化,故在某 些应用 场合,在74LS164的输出端应加接输出三态门控制, 以便保证串行输入结束后再输出 数据。 (2) 74LS164引脚功能图 管脚说明: SIA 、SIB --- Serial in puts Q0 through Q7 ---- Data outputs CLK ---- CLOCK CLR ——Clear in put 功能表: VCC Q7 08 Q5 射 CLK CLK | K I ] nJ 17 10 * | T 7ns 16^1 □J 2 jj LsJ LzJ SIA 5IB QQ QI Q? Q3 ENJ S/L CP D4 D5 D6 DT /Q7 GND

(实验二)二进制码转换为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-->BCD ORG 4000H RESULT DB 5 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA ORG 2CE0H START PROC NEAR MOV AX, DATA MOV DS, AX MOV DX,0000H MOV AX, 65535 MOV CX, 10000 DIV CX MOV RESULT, AL;除以 10000,得 WAN位数 MOV AX,DX MOV DX,0000H MOV CX, 1000 DIV CX MOV RESULT+1, AL;除以 1000,得 QIAN位数 MOV AX,DX MOV DX,0000H MOV CX, 100 DIV CX MOV RESULT+2, AL;除以 100,得 BAI 位数 MOV AX,DX MOV DX,0000H MOV CX, 10 DIV CX MOV RESULT+3, AL;除以 10,得 SHI 位数 MOV RESULT+4, DL;得 GE位数 JMP $ CODE ENDS END START

实验四(一) 串并转换实验(2学时)

湖北民族学院科技学院 信息工程学院 单片机原理实验报告 实验名称:单片机串口应用 专业班级 学号 姓名 指导教师

实验四(一)串并转换实验(2学时) 一、实验目的 ⑴掌握8031串行口方式0工作方式及编程方法。 ⑵掌握利用串行口扩展并行I/O通道的方法。 二、实验内容 (1)在实验箱上完成: 利用8031串行口和串行输入并行输出移位寄存器74LS164,扩展一个8位输出通道,用于驱动一个共阳极数码显示器,在数码显示器上循环显示8031串行口输出的0~9这10个数字。 (2)用Proteus软件参照实验电路连线并仿真运行,得出与实验箱上相同的软件仿真结果。 所用元器件:单片机AT89C51、串入并出移位寄存器74LS164、数码管7SEG-COM-CAT-GREEN(BLUE) 参考仿真电路图: 三、实验说明 串行口工作在方式0时,可通过外接移位存储器实现串并行转换。在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为晶振频率1/12。由软件置位串行控制寄存器(SCON)的REN后才能启动串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。待8位数据输完后,硬件将SCON寄存器的TI位置1,TI必须由软件清零。 共阳极数码管的0~9的显示码如下:0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09 四、实验步骤 ⑴将串并单元DATA插孔接P3.0插孔。 ⑵将串并单元CLK插孔接P3.1插孔。 ⑶将串并单元CLR插孔接地址线A9下方CLR插孔。上电时对164复位。 ⑷执行程序 ⑸在串并单元数码管上循环显示0~9这10个数字。 五、实验电路(图中粗实线)

微机实验数码转换

微机原理实验报告实验九:数码转换 电子信息工程 150210班 金峥 15021005

一、实验题目 实验九——数码转换 二、实验目的 1、掌握计算机常用数据编码之间的相互转换方法。 2、进一步熟悉DEBUG软件的使用方法。 三、实验步骤 1、编辑源文件,经汇编连接产生EXE文件。 2、用DEBUG调试、检查、修改程序。 四、实验流程图 实验9——1流程图

五、实验源代码 实验(一)ASCⅡ码转换为非压缩型BCD码 编写并调试正确的汇编语言源程序,使之实现:设从键盘输入一串十进制数,存入DATA1单元中,按回车停止键盘输入。将其转换成非压缩型(非组合型) BCD 码后,再存入DATA2开始的单元中。若输入的不是十进制数,则相应单元中存放FFH。调试程序,用D命令检查执行结果。 代码

DATA SEGMENT PARA 'DATA' ;定义数据段 DATA1 DB 16 DUP(0) ;输入的ACSII码 DATA2 DB 16 DUP(0) ;转换后输出的BCD码 DATA ENDS STACK SEGMENT PARA STACK 'STACK' ;定义堆栈段 STACK1 DB 256 DUP(0) ;为堆栈准备256字节 STACK ENDS CODE SEGMENT ;定义代码段 ASSUME SS:STACK,CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,DATA1 ;DATA1首地址存入SI LEA DI,DATA2 ;DATA2首地址存入DI MOV CX,16 ;循环次数 STEP1: MOV AH,01H ;输入字符,AL=输入的ASCII码 INT 21H MOV [SI],AL CMP AL,0DH ;与回车作比较 JE STEP3 ;若为回车则跳转到STEP3 CMP AL,'0' ;比较AL与0的大小 JB STEP2 ;若AL<0,跳转到STEP2 CMP AL,'9' ;比较AL与9的大小 JA STEP2 ;若AL>9,跳转到STEP2 SUB AL,30H ;将输入字符的ASCII码转换为十进制数 MOV [DI],AL ;将结果存入DATA2中 INC SI INC DI ;为下一次数码转换做准备 LOOP STEP1 ;跳转到STEP1,进行循环 STEP2: MOV [DI],0FFH ;若输入的不是十进制数,相应单元存入0FFH INC SI INC DI LOOP STEP1 ;跳转到STEP1,进行循环 STEP3: MOV AH,4CH ;带返回码的结束 INT 21H CODE ENDS

相关文档
最新文档