单片机实验---串行数据转换为并行数据

单片机实验---串行数据转换为并行数据
单片机实验---串行数据转换为并行数据

实验六串并转换实验

一、实验目の

1、掌握8051串行口方式0工作方式及編程方法

2、利用串行口擴展I/O通道の方法

二、實驗說明

本次實驗使用8051串行口和串行輸入並行輸出移位寄存器74LS164,構成單片機輸出介面電路,控制8只LED滾動顯示。單片機工作於串口模式0,即移位寄存器輸入/輸出模式,串行數據通過RXD輸出,TXD則用於輸出移位時鐘脈衝,這種模式有利於用最少硬體實現介面擴展。

_crol_()函數在inrtins.h檔中聲明如下:

unsigned char _crol_(unsigned char val, unsigned n);//功能:將變數val二進位位迴圈左移n位

例如:當val=15=0x0f=0000 1111B時,如果要將valの各二進位位迴圈左移2位,則val=0011 1100B。該過程可用

_crol_(15,2);

來實現,_crol_(15,2)返回值是0011 1100B=0x3c=3*16+12=60

三、實驗線路圖

四、实验步骤

1、先建立檔夾“ex6”,然後建立“ex6”工程專案,最後建立根源程式檔“ex6.c”,輸入如下根源程式;

/*串行數據轉換為並行數據*/

#include //包含單片機寄存器の頭檔

#include //包含對片外存儲器地址進行操作の頭檔

//延時

void Delay(unsigned int ucms)

{

unsigned inti;

while(--ucms) for(i=0;i<120;i++);

}

//主程序

void main()

{

unsigned char dat=0x80;

SCON=0x00;//串口模式0,即移位寄存器輸入/輸出模式

TI=1;//TI置1

while(1)

{

dat=_crol_(dat,1);

SBUF=dat;

while(TI==0) //等待發送結束

TI=0;//TI軟體置位

Delay(400);

}

}

2、用Proteus軟體仿真

經過Keil軟體編譯通過後,可利用Proteus軟體仿真。在ProteusISIS編輯環境中繪製仿真電路圖。打開配套實驗6仿真原理圖文件“ex6.DSN”,將編譯好の“ex6.hex”檔載入AT89C51,啟動仿真。

五、思考題

修改程式,將8只LED改成單只數碼管,然後將若干待顯示數字通過串口發送到數碼管顯示。要求繪製實驗電路,並寫出實驗程式。

#include

#include

void dely(unsigned int ucms)

{unsigned int i;

while(--ucms) for(i=1;i<120;i++);}

unsigned char dat[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//高電平void main()

{unsigned char i;

TI=1;

SCON=0x00;

while(1)

{for(i=0;i<10;i++)

{SBUF=~dat[i];

//while(!TI);

//TI=0;

dely(400);}}}

串行数据转并行数据

串行数据转并行数据中许多操作与并行数据转串行类似。可以参照并行数 据转串行,将其反向得到。 UART_Recei ver Serial_in, istartofpacket,iendofpacket,clk,RSTn,Data_Bus,datavalid,oempty, oendofpacket,ostartofpacket ); module UART_Receiver( parameter word_size =16;parameter Num_counter_bits =4;parameter Num_state_bits =3; parameter word_deepth_size =7;parameter deepth_counter_size =3;parameter idle =3'b001;parameter receiving =3'b010; parameter sending =3'b100; output [word_size-1:0] Data_Bus; oendofpacket,ostartofpacket; output oempty,datavalid, input Serial_in;input clk;input RSTn; input istartofpacket;input iendofpacket; reg [word_size-1:0]RCV_datareg[word_deepth_size -1:0];reg [word_size-1:0]RCV_shftreg;reg [Num_counter_bits-1:0]bit_count; reg [deepth_counter_size-1:0] deepth_count1,deepth_count2;reg [Num_state_bits-1:0]state,next_state; reg inc_bit_counter,clr_bit_counter;reg clr_deepth_counter1;reg clr_deepth_counter2; 串行数据转并行数据 2011年5月1日20:12

单片机实验报告

院系:计算机科学学院专业:智能科学与技术年级: 2012 学号:2012213865 姓名:冉靖 指导教师:王文涛 2014年 6月1日

一. 以下是端口的各个寄存器的使用方式: 1.方向寄存器:PxDIR:Bit=1,输出模式;Bit=0,输入模式。 2.输入寄存器:PxIN,Bit=1,输入高电平;Bit=0,输入低电平。 3.输出寄存器:PxOUT,Bit=1,输出高电平;Bit=0,输出低电平。 4.上下拉电阻使能寄存器:PxREN,Bit=1,使能;Bit=0,禁用。 5.功能选择寄存器:PxSEL,Bit=0,选择为I/O端口;Bit=1,选择为外设功能。6.驱动强度寄存器:PxDS,Bit=0,低驱动强度;Bit=1,高驱动强度。 7.中断使能寄存器:PxIE,Bit=1,允许中断;Bit=0,禁止中断。 8.中断触发沿寄存器:PxIES,Bit=1,下降沿置位,Bit=0:上升沿置位。 9.中断标志寄存器:PxIFG,Bit=0:没有中断请求;Bit=1:有中断请求。 二.实验相关电路图: 1 MSP430F6638 P4 口功能框图: 主板上右下角S1~S5按键与MSP430F6638 P4.0~P4.4口连接: 2按键模块原理图: 我们需要设置两个相关的寄存器:P4OUT和P4DIR。其中P4DIR为方向寄存器,P4OUT 为数据输出寄存器。 主板上右下角LED1~LED5指示灯与MSP430F6638 P4.5~P4.7、P5.7、P8.0连接:

3 LED指示灯模块原理图: P4IN和P4OUT分别是输入数据和输出数据寄存器,PDIR为方向寄存器,P4REN 为使能寄存器: #define P4IN (PBIN_H) /* Port 4 Input */ #define P4OUT (PBOUT_H) /* Port 4 Output */ #define P4DIR(PBDIR_H) /* Port 4 Direction */ #define P4REN (PBREN_H) /* Port 4 Resistor Enable */ 三实验分析 1 编程思路: 关闭看门狗定时器后,对P4.0 的输出方式、输出模式和使能方式初始化,然后进行查询判断,最后对P4.0 的电平高低分别作处理来控制LED 灯。 程序流程图: 2 关键代码分析: #include void main(void) { WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗 P4DIR |= BIT5; // 设置4.5口为输出模式 P4OUT |= BIT0; // 选中P4.0为输出方式 P4REN |= BIT0; // P4.0使能 while (1) // Test P1.4 { if (P4IN & BIT0) //如果P4.0为1则执行,这是查询方式按下去后是低,否则为高

单片机数据传送实验报告

实验名称: 数据传送实验 实验类型: 设计性实验 姓名:袁志生 时间:第五六节课 一、实验目的与要求 实验目的:1、掌握单片机的汇编指令系统及汇编语言程序设计方法。 2、掌握单片机的存储器体系结构。 3、熟悉keil软件的功能和使用方法。 4、掌握单片机应用程序的调试方法。 实验要求:1、实现单片机内部RAM之间,外部RAM之间以及内部RAM 与外部RAM之间的数据传送。 2、利用Keil软件编辑、汇编、调试、运行实验程序并记录实验数据。 二、设计要求 1、编写程序将00H~0FH 16个数据分别送到单片机内部RAM 30H~3FH 单元中。 2、编写程序将片内RAM 30H~3FH的内容传送至片内RAM 40~4FH单元中。 3、编写程序将片内RAM 40H~4FH单元中的内容传送到外部RAM 4800H~480FH单元中。 4、编写程序将片外4800H~480FH单元内容送到外部RAM 5800H~580FH 单元中。 5、编写程序将片外RAM 5800H~580FH单元内容传送回片内RAM 50H~5FH 单元中。

三、实验程序流程框图和程序清单.

程序清单: ORG 0000H START: MOV R0, #30H MOV DPTR, #QW1 MOV R5, #0 MOV R7, #16 LOOP: MOV A, R5 MOVC A, @A+DPTR MOV @R0, A INC R0 INC R5 DJNZ R7, LOOP LJMP QW2 QW1: DB 00H, 01H, 02H, 03H, 04H, 05H, 06H, 07H DB 08H, 09H, 0AH, 0BH, 0CH, 0DH, 0EH, 0FH QW2: MOV R0, #30H MOV R1, #40H MOV R5, #16 LOOP1: MOV A, @R0 MOV @R1, A INC R0 INC R1 DJNZ R5, LOOP1 MOV R1, #40H MOV DPTR, #4800H MOV R5, #16 LOOP2: MOV A, @R1 MOVX @DPTR, A INC R1 INC DPTR DJNZ R5, LOOP2 MOV SP, #60H MOV 11H, #48H MOV 10H, #58H MOV R2, #00H LOOP3: MOV DPL, R2 PUSH 10H PUSH 11H

串行数据系统中的时钟恢复

串行数据系统中的时钟恢复 Ransom Stephens, Ph.D. 摘要: 比特周期,或者说单位时间间隔的定义远没有字面意义上那么简单。如果它仅仅指数据传输速率,那么我们将陷入比现在更糟的境地。在延迟抖动360这方面,经调查研究我们得出了时间间隔的真正含义,以及串行数据系统如何用恢复时钟算法代替独立基准时钟。该研究将揭示时钟恢复算法影响比特误差率、即带宽与峰值(包含振频谱所关联的大部分区域)的关键特征。 如图1所示,将接收器看作一个用时钟定位样本的时间坐标的装置,以便比较器判断该时刻信号电压大于或小于指定临界值。若大于,接收器将赋值1,小于,赋值0。设定电压临界决策非常简单——对于不同的系统临界值几乎全为0,而样本点的时间定位则非常微妙。这就是时钟恢复的便利之处。 图1:串行数据接收器简化图 假设有一带绝对外置基准时钟的单体系统,如图2a所示。如果我们将时钟相关相位调整与输入数据转换相同位,那么将得到接收样本的时钟下降沿,样本点将位于每比特中心位置,如图2b。此系统的

单位间隔即与标称数据速率互等。这是平常我们提起时间位时脑中所映射的概念。这种想法很容易理解,但却有些瑕疵。 第一个问题就是,均为发射器和接收器提供绝对外置时钟需要一根额外的数据线以及一个昂贵的低振频时钟。额。。。我说了“昂贵”这个词吗??但最大的问题是,这样完美的外置时钟却加大了比特误码率! 图2:(a) 带外置时钟的系统(b) 为样本点设置时间定位如果我们将样本点设定在逻辑转换实际发生点之后的半比特,而非他们转换前时刻之后的半比特,我们将得到神马呢?这样的话振动

延迟将没有一点差错!在这种理想状态下,我们可以触发逻辑转换,和样本的半比特周期延迟。样本点应该与数据保持同等振动频率,而信号波动则决不能超过样本点。唯一需要付出的代价,只是一个更复杂的单位间隔定义而已。 当我们以数据自身恢复时钟时,我们可以达到这样的理想境地。一个无限带宽时钟恢复系统会触发数据转换的时钟信号,并且样本点计时和数据振频相同。如果数据与时钟拥有同等振动频率,那么他们的波动将会一致,因此位元的识别虽非理想状态但也处于最佳点——时钟振动与数据振动保持一致,比特误码率也不会受振动影响。在现实情况中,当无限带宽时钟恢复循环时,低频率振动是随数据变化的。只有当振动频率高于时钟恢复带宽时才会出错。不仅时钟重建减少了比特误码率,还允许时钟应用有许多振动叠加,此外它不需要以追踪器或者电缆将时钟信号从转换器传到接收器。 时钟恢复 时钟恢复有两种基本类型,一种是自然模拟,比如锁相环,另一种是则更为数字化。数字化指的是时钟由多重不连续样本重组而成,而非那些连续类比数据信号。尽管涉及许多专利技术但相位内插器是个人尽皆知的好例子。操作上锁相环和内插器最大的不同在于成本,而理论上最大的差异是减弱参数化和模型。相比锁相环,内插器通常有更快的击发间隔,并消耗更少的能量,对表面积的需求低,这意味着更设计上更低的支出。与任何循环单元一样,一个设计优异的内插

数据迁移整合方案

1.历史数据的迁移整合 本次系统是在原有系统的基础上开发完成,因此,新旧系统间就存在着切换的问题。另外,新开发的系统还存在与其他一些应用系统,例如,企业信用联网应用系统、企业登记子网站、外资登记子网站等系统进行整合使之成为一个相互连通的系统。本章将针对新老系统迁移和整合提出解决方案。 1.1.新老系统迁移整合需求分析 系统迁移又称为系统切换,即新系统开发完成后将老系统切换到新系统上来。 系统切换得主要任务包括:数据资源整合、新旧系统迁移、新系统运行监控过程。数据资源整合包含两个步骤:数据整理与数据转换。数据整理就是将原系统数据整理为系统转换程序能够识别的数据;数据转换就是将整理完成后的数据按照一定的转换规则转换成新系统要求的数据格式,数据的整合是整合系统切换的关键;新旧系统迁移就是在数据正确转换的基础上,制定一个切实可行的计划,保证业务办理顺利、平稳过渡到新系统中进行;新系统运行监控就是在新系统正常运转后,还需要监控整个新系统运行的有效性和正确性,以便及时对数据转换过程中出现的问题进行纠正。 系统整合是针对新开发的系统与保留的老系统之间的整合,以保证新开发的系统能与保留的老系统互动,保证业务的顺利开展。主要的任务是接口的开发。1.2.需要进行迁移整合的系统 1.3.数据迁移整合分析 根据招标文件工商总局新建系统的数据库基于IBM DB2,而原有系统的数据库包括ORACLE,SQL Server,DB2。这种异构数据在总局主要存在于两个方面,

即部门内部的异构数据和上下级部门之间的异构数据。同时,系统的技术构件有.NET和J2EE两大类。 对于部门内部的异构数据的集成采用数据移植的方法,如:如果数据有基于DB2管理的,有ORACLE管理的,有SQL Server管理的,就根据新系统DB2的要求,把ORACLE的数据迁移到DB2数据库中,把SQL Server的数据迁移到DB2数据库中。 上下级国工商局之间的异构数据的集成利用数据交换系统来完成,重点在于数据库存储标准、交换标准的制定和遵守,保证数据的共享,这部分工作由数据中心完成。 1.4.系统迁移和整合目标 1.4.1.系统迁移的主要目标: 1.保证系统正常运行 在数据转换过程中,由于原有的系统数据的复杂性,给数据转换工作带来了很大的难度,为了在新系统启动后不影响原系统正常的业务,因此数据转换完成后,必须保证新系统的正常运行。 2.保证原有系统在新系统中的独立性 原有系统是独立运行的系统,数据在新系统中虽然是集中存放的,但是各个系统由于存在业务上的差别,数据在逻辑上应当保持一定的独立性。 1.4. 2.系统整合的目标: 保证直接关联的系统互动,保证业务的正常办理。例如公众服务系统与基本业务系统之间互动,基本业务与协同业务之间互动等等。

单片机实训心得体会

单片机实训心得体会 篇一: 通过今次单片机实训,使我对单片机的认识有了更深刻的理解。系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。 由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。 踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。 但在这次实训中同时使我对汇编语言有了更深的认识。当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。 这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过

程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在以后学习中激励我继续进步。 篇二:单片机实验心得 通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。 作为一名自动化专业的快大三学生,我觉得做单片机实习是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力,如何把我们所学的专业基础课理论知识运用到实践中去,我想做类似实习就为我们提供了良好的实践平台 学习单片机没有捷径,不能指望两三天就学会,要坚持不懈,重在积累单片机是一门应用性和实践性很强的学科,要多动手,多做实验。 (4)要学会参考别人的程序,减少自己琢磨的时间,迅速提高自己的编程能力。 (5)碰到问题可以借助网络来搜寻答案和对自己有帮助的问题,一定会有所收获。

实验一 数据传送

数据传送实验 验证性实验 2012年10月31日第三四节课 一、实验目的 1、掌握单片机的汇编指令系统及汇编语言程序设计方法。 2、掌握单片机的存储器体系结构。 3、熟悉Keil软件的功能和使用方法。 4、掌握单片机应用程序的调试方法。 二、设计要求 1、编写程序将00H~0FH 16个数据送到单片机内部RAM 30H~3FH单元中。 2、编写程序将片内RAM 30H~3FH的内容传送至片内RAM 40~4FH单元中。 3、编写程序将片内RAM 40H~4FH单元中的内容传送到外部RAM 4800H~480FH单元中。 4、编程将片外4800H~480FH单元内容送到外部RAM 5800H~580FH单元中。 5、编写程序将片外RAM 5800H~580FH单元内容传送回片内RAM 50H~5FH 单元中。 三、实验程序流程框图

四、程序清单 ORG 0000H MOV R0, #30H ;初始化数据指针 MOV A, #00H MOV R2, #10H ;设置循环次数LOOP1: MOV @R0, A ;循环体部分 INC R0 ;修改数据指针 INC A DJNZ R2, LOOP1 ;循环控制部分 MOV R0, #30H ;初始化数据指针 MOV R1, #40H MOV R2, #10H LOOP2: MOV A, @R0 ;循环体部分 MOV @R1, A INC R0 ;修改数据指针 INC R1 DJNZ R2, LOOP2 ;循环控制部分

MOV R1, #40H ;设置数据指针R0单元内容 MOV DPTR, #4800H ;外部RAM4800H单元地址作为16位立即数送数 据指针DPTR MOV R2, #10H ;设置循环次数 LOOP3: MOV A, @R1 ;循环体部分 MOVX @DPTR, A INC R1 ;修改数据指针 INC DPTR DJNZ R2, LOOP3 ;循环控制部分 MOV R0, #00H ;初始化数据指针 MOV R1, #48H MOV R2, #58H LOOP4: MOV DPL, R0 ;设置数据指针的低八位内容 MOV DPH, R1 ;设置数据指针的高八位内容 MOVX A, @DPTR ;将外部RAM内容送累加器A MOV DPH, R2 ;重新设置数据指针高八位内容 MOVX @DPTR, A ;将累加器A的内容送回外部RAM INC R0 ;修改数据指针 CJNE R0, #10H, LOOP4 ;循环控制部分 MOV R0, #50H ;初始化数据指针 MOV DPTR, #5800H MOV R2, #10H CLR A ;累加器A清零 LOOP5: MOVX A, @DPTR ;循环体部分 MOV @R0, A INC R0 ;修改数据指针 INC DPTR DJNZ R2, LOOP5 ;循环控制部分 END 五、程序数据

单片机数据传送指令

单片机的累加器A与片外RAM之间的数据传递类指令 MOVX A,@Ri MOVX @Ri,A MOVX A,@DPTR MOVX @DPTR,A 说明: 1)在51系列单片机中,与外部存储器RAM打交道的只能是A累加器。所有需要传送入外部RAM的数据必需要通过A送去,而所有要读入的外部RAM中的数据也必需通过A读入。在此我们能看出内外部RAM的区别了,内部RAM间能直接进行数据的传递,而外部则不行,比如,要将外部RAM中某一单元(设为0100H单元的数据)送入另一个单元(设为0 200H单元),也必须先将0100H单元中的内容读入A,然后再传送到0200H单元中去。 要读或写外部的RAM,当然也必须要知道RAM的地址,在后两条单片机指令中,地址是被直接放在DPTR中的。而前两条指令,由于Ri(即R0或R1)只是一个8位的寄存器,所以只供给低8位地址。因为有时扩展的外部RAM的数量比较少,少于或等于256个,就只需要供给8位地址就够了。 使用时应当首先将要读或写的地址送入DPTR或Ri中,然后再用读写命令。 例:将单片机外部RAM中100H单元中的内容送入外部RAM中200H单元中。 MOV DPTR,#0100H MOVX A,@DPTR MOV DPTR,#0200H MOVX @DPTR,A 程序存储器向累加器A传送指令

MOVC A,@A+DPTR 本指令是将ROM中的数送入A中。本指令也被称为单片机查表指令,常用此指令来查一个已做好在ROM中的表格说明: 此条指令引出一个新的寻址办法:变址寻址。本指令是要在ROM的一个地址单元中找出数据,显然必须知道这个单元的地址,这个单元的地址是这样确定的:在执行本指令立脚点D PTR中有一个数,A中有一个数,执行指令时,将A和DPTR中的数加起为,就成为要查找的单元的地址。 查找到的结果被放在A中,因此,本条指令执行前后,A中的值不一定相同。 例:有一个数在R0中,要求用查表的办法确定它的平方值(此数的取值范围是0-5) MOV DPTR,#TABLE MOV A,R0 MOVC A,@A+DPTR TABLE: DB 0,1,4,9,16,25 设R0中的值为2,送入A中,而DPTR中的值则为TABLE,则最终确定的ROM单元的地址就是TABLE+2,也就是到这个单元中去取数,取到的是4,显然它正是2的平方。其它数据也能类推。 标号的真实含义:从这个地方也能看到另一个问题,我们使用了标号来替代具体的单元地址。事实上,标号的真实含义就是地址数值。在这里它代表了,0,1,4,9,16,25这几个数据在ROM中存放的起点位置。而在以前我们学过的如LCALL DELAY单片机指令中,DE LAY 则代表了以DELAY为标号的那段程序在ROM中存放的起始地址。事实上,CPU正是通过这个地址才找到这段程序的。 能通过以下的例程再来看一看标号的含义: MOV DPTR,#100H

串行数据监测

辽宁工业大学 数字系统综合实验课程设计(论文)题目:串行数据检测电路 院(系):电子与信息工程学院 专业班级: 学号: 学生姓名: 指导教师: 教师职称: 起止时间:

目录 1.绪论 (2) 2.设计方案 (2) 3.电路原理及设计 (3) 3.1电路原理 (3) 3.2电路的设计 (4) 4.安装与调试 (8) 5.结论 (9) 参考文献 (11)

1.绪论 本次试验所需要的选择器有着很重要的应用意义。在当今社会各个领域都发挥着重要的作用,因为它能在触发后产生相应的反应,可以应用在报警器、抢答器等电子产品中,它为人们本次课设所设计的数据选择器在现实生活中带来许多方便之处。接收到本课设时想到的相关内容非常之多:首先是想到了是要有连续的序列脉冲信号输入;其次是要进行以触发器为基础的同步时序电路设计或是以中大规模集成电路为基础的时序电路的设计;最后还应检测一下电路能否自启动。 若以X为输入信号出现,Y为输出信号出现时:以触发器为基础的同步时序电路设计,还要在原始状态图上补充输入不是010111码的各种输入的对应状态及其转换关系,建立完整的原始状态图,然后进行状态化简,求触发器的级数、类型以及驱动方程,最后画出逻辑电路。 2.设计方案 我们自己设计电路时,要要让自己设计的电路力求简单,自己反复思考,提升动手能力,加强团队意识。 一、逻辑抽象,得出电路的状态转换图或状态转换表,就是要求实现的时序逻辑功能表示为时序逻辑函数,可以用状态转换表的形式,也可以用状态转换图的形式。 二、状态化简的目的就在于将等价状态合并,以求得最简单的状态转换图。 三、状态分配又称为状态编码。 四、选定触发器的类型,求出电路的状态方程、驱动方程和输出方程。

JAVA中常用数据类型之间转换的方法

Java中常用数据类型之间转换的方法 Java中几种常用的数据类型之间转换方法: 1.short-->int转换 exp:short shortvar=0; int intvar=0; shortvar=(short)intvar 2.int-->short转换 exp:short shortvar=0; int intvar=0; intvar=shortvar; 3.int->String转换 exp:int intvar=1; String stringvar; Stringvar=string.valueOf(intvar); 4.float->String转换 exp:float floatvar=9.99f; String stringvar;

Stringvar=String.valueOf(floatvar); 5.double->String转换 exp double doublevar=99999999.99; String stringvar; Stringvar=String.valueOf(doublevar); 6.char->String转换 exp char charvar=’a’; String stringvar; Stringvar=String.valueOf(charvar); 7String->int、float、long、double转换Exp String intstring=”10”; String floatstring=”10.1f”; String longstring=”99999999”; String doubleString=”99999999.9”; Int I=Integer.parseInt(intstring); Float f=Integer.parseInt(floatstring); Long lo=long.parseInt(longstring); Double d=double.parseInt(doublestring); 8String->byte、short转换

工作报告之大学单片机实验报告

大学单片机实验报告 【篇一:单片机实验报告】 单片机实验报告 姓名:班级:学号:任课教师:上课地点: 实验一流水灯实验 一、实验目的及要求 1、闪烁的led; 2、从左到右的流水灯; 3、8只led左右来回点亮; 4、led模拟交通灯。 要求1:led按设定的时间间隔闪烁 要求2:接在p0口的8个led从左到右循环依次点亮,产生走马灯效果要求3:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果; 二、实验原理电路图1、 电路图2、 三、源程序 要求1: #includereg51.h #define uchar unsigned char #define uint unsigned int sbit led=p1^0; //延时 void delayms(uint x) { uchar i; while(x--) {for(i=0;i120;i++); } } //主程序 void main() { while(1) {led=~led;delayms(150); } } 要求2: #include reg51.h #include intrins.h //包含程序中的_cror_(p0,y) #define uchar unsigned char #define uint unsigned int uchar led; void delay(unsigned int i) { uint j; uchar k; for(j=i;j0;j-- )for(k=125;k0;k--); } void main() { led=0x7f;//只亮第一个 delay(1000); while(1) { p0=led; delay(500); led=_cror_(led,1);//p0逐步右移一位。} } 要求3: #include reg51.h

微机原理上机实验(一)实验报告数据传输传送实验

微机原理上机实验(一)实验报告 主题:数据传送 一、实验目的 熟悉星研集成环境软件的使用方法。熟悉Borland公司的TASM编译器 熟悉8086汇编指令,能自己编写简单的程序,掌握数据传输的方法。 二、实验内容 1、熟悉星研集成环境软件。 2、编写程序,实现数据段的传送、校验。 三、实验代码 _STACK SEGMENT STACK DW 100 DUP() _STACK ENDS DATA SEGMENT DATA ENDS CODE SEGMENT START PROC NEAR ASSUME CS:CODE, DS:DATA, SS:_STACK MOV AX, DATA ;将数据段的地址存入AX寄存器。AX=004DH MOV DS,AX ;对DS段寄存器赋值。DS=004DH MOV ES,AX ;对ES段寄存器赋值。ES=004DH NOP ;空指令

MOV CX,100H ;把100H送到CX寄存器。CX=0100H MOV SI,3000H ;把3000H送到SI寄存器。SI=3000H MOV DI,6000H ;把6000H送到DI寄存器。DI=6000H CALL Move ;调用Move子程序 MOV CX,100H ;把100H送到CX寄存器。CX=0100H MOV SI,3000H ;把3000H送到SI寄存器。SI=3000H MOV DI,6000H ;把6000H送到DI寄存器。DI=6000H CLD ;将DF标志位置0。设置SI、DI为递增移动,DF=0 REPE CMPSB ;比较[SI]和[DI],CX减1,ZF=0或CX=0跳出 ;若ZF=0或CX=0不成立,则继续比较。SI和DI持续递增 1 JNE ERROR ;若ZF=0,跳到ERROR子程序 TRUE: JMP $ ;跳到目前地址 ERROR: JMP $ ;跳到目前地址 Move PROC NEAR ;Move子程序 CLD ;将DF标志位置0。设置SI、DI为递增移动。DF=0 CMP SI,DI ;比较SI、DICF=SF=PF=1,仅有该三个标志位变化JZ Return ;如果相等,跳到Return JNB Move1 ;如果SI大于等于DI,跳到Move1 ADD SI,CX ;SI=SI+CX。SI=3100H DEC SI ;SI减1。SI=30FFH

数据转换及处理规定

数据转换及处理规定 为保证检测数据采集、计算、处理、记录、报告、存储、传输的准确、安全可靠、有效和保密、特制定本规定。 本规定适用于本检测站检测数据的采集、临界数据的处理、检测数据的计算和处理、数据的修约、数据的判定、数据的转移、错误数据的更正、可以数据的处理、计算机一级数据的控制和管理。 技术负责人负责组织编制、修订和批准自动化测量程序软件,并对自动测量软件进行验证,维护本规定的有效性;检测车间负责人负责规定本部门检测原始数据的采集方法,组织制定自动化设备操作规程;监督员负责校核检测数据和判定结果,对可疑数据提出验证;检测人员负责认真采集和记录原始数据,按规范计算和处理数据。 工作程序要求 1.数据的采集,检测车间负责人应按照本公司承检标准和检验细则的要求,规定出每一类型承检项目的检测数据的手工采集方式和格式;如采用自动采集或打印原始数据,,检测车间应对采集数据所用的相关测量系统实施验证和监控,控制方法如下 (1)、制动性能检验: ○轮重○左、右轮最大制动力○制动力增长全过程中的左、右轮制动力最大差值○制动协调时间○车轮阻滞力○驻车制动

小数点规范问题: 轴荷用整数,制动力为整数或保留一位小数。平衡差、阻滞力、轴荷比、驻车制动效果、整车比保留一位小数 (2)、转向轮横向侧滑量: 仅仅适用于前轴采用非独立悬架的汽车,前轴采用独立悬架的汽车侧滑量测试值不做判定依据。小数点:侧滑量保留1位小数 (3)车速表指示误差检验: 仅对最高时速设计超过40km/h的车辆要求; 在滚筒检验台,对于全时四轮驱动汽车,具有驱动防滑装置且不能接触该功能的汽车,应做路试。 小数点:保留2位小数 采集后的原始数据应当进行适当的修约,遵循先修约后运算的运算原则,最终报出数据的有效位数应当等同上述规定或多出标准规定的一位。 2.临界数据的处理,当测得值接近临界控制值时,检测人员应对其样车增加测量次数,以观测测量结果的发散趋势。如果连续观察到的测量值区域平稳或收敛,则可以按照数据处理的规定或程序进行数据处理或考虑测量不确定度后进行判定。如果连续观测到的测量值趋于发散,则应查找发散原因,以判断是测量仪器、设备问题还是被测量车辆的问题,当肯定是被测车辆的内在质量问题时则应当按照标准的规定给出样车的质量判定。临界数据的判定应参照《应用不确定度评定控制程序》的相关要求。当仪表指数在某一区间摆动时,检测员应根

实验2数据块传送实验程序设计实验

实验2 数据块传送实验程序设计实验 实验目的 ㈠学习和掌握DSP汇编语言程序的基本结构。 ㈡熟悉和掌握常用的数据传送类指令。熟练掌握数据块传送的方法。 二、实验原理 数据传送的常用指令 数据存储器((数据存储器:MVDK Smem,dmad MVKD dmad,Smem MVDD Xmem,Ymem 数据存储器((MMR:MVDM dmad,MMR MVMD MMR,dmad MVMM mmr,mmr 程序存储器((数据存储器MVPD Pmad,Smem MVDP Smem,Pmad READA Smem WRITA Smem Smem——数据存储器的地址;Pmad——16位立即数程序存储器地址;MMR——任何一个存储映象寄存器;Xmem,Ymem——双操作数数据存储器地址;dmad——16位立即数数据存储器地址; 数据传送指令是最常用的一类指令,与RPT指令相结合,可以实现数据块传送。例如,在系统初始化过程中,可以将数据表格与文本一道驻留在程序存储器中,复位后通过程序存储器到数据存储器的数据块传送将数据表格传送到数据存储器,从而不需要配制数据ROM,使系统的成本降低。另外,在数字信号处理(如FFT)时,经常需要将数据存储器中的一批数据传送到数据存储器的另一个地址空间等等。 实验内容 阅读实验程序example,上机运行程序后,查看: ㈠检查程序存储器(PM)1000H~101DH空间中的内容,检查程序存储器(PM)FF80H~FF83H空间中的内容。 ㈡数据存储器(DM)60H~69H(.bss)空间中的内容是什么? ㈢数据存储器(DM)80H~90H(STACK)空间中的内容是什么?

单片机数据传送实验报告

竭诚为您提供优质文档/双击可除单片机数据传送实验报告 篇一:单片机数据传送实验报告 实验名称:数据传送实验 实验类型:设计性实验 姓名:袁志生 时间:04.17第五六节课 一、实验目的与要求 实验目的:1、掌握单片机的汇编指令系统及汇编语言程序设计方法。 2、掌握单片机的存储器体系结构。 3、熟悉keil软件的功能和使用方法。 4、掌握单片机应用程序的调试方法。 实验要求:1、实现单片机内部RAm之间,外部RAm之间以及内部RAm与外部RAm之间的数据传送。 2、利用Keil软件编辑、汇编、调试、运行实验程序并记录实验数据。 二、设计要求

1、编写程序将00h~0Fh16个数据分别送到单片机内部RAm30h~3Fh单元中。 2、编写程序将片内RAm30h~3Fh的内容传送至片内RAm40~4Fh单元中。 3、编写程序将片内RAm40h~4Fh单元中的内容传送到外部RAm4800h~480Fh单元中。 4、编写程序将片外4800h~480Fh单元内容送到外部RAm5800h~580Fh单元中。 5、编写程序将片外RAm5800h~580Fh单元内容传送回片内RAm50h~5Fh单元中。 三、实验程序流程框图和程序清单. 程序清单: oRg0000h sTART:moVR0,#30h moVDpTR,#Qw1 moVR5,#0 Loop: Qw1: Qw2: Loop1: Loop2: Loop3:

R7,#16A,R5A,@A+DpTR@R0,AR0IncR5R7,LoopQw200h,01h,02 h,03h,04h,05h,06h,07h08h,09h,0Ah,0bh,0ch,0Dh,0eh,0F hR0,#30hR1,#40hmoVR5,#16A,@R0@R1,AR0R1R5,Loop1R1,#4 0hmoVDpTR,#4800hR5,#16A,@R1@DpTR,AR1DpTRR5,Loop2moV sp,#60h11h,#48h10h,#58hR2,#00hDpL,R210h11hDphmoVxA, @DpTRmoVmoVmoVcmoVIncDJnZLJmpDbDbmoVmoVmoVmoVIncInc DJnZmoVmoVmoVmoVxIncIncDJnZmoVmoVmoVmoVpushpushpop pop moVx Inc cJne moV moV moV Loop4:moVx moV Inc Inc DJnZ enD 四,实验小结

并串串并转换设计

并串/串并转换电路设计 一、实验目的: 用verilog语言设计一个8:1的并串转换电路、设计一个1:8的串并转换电路。 二、实验原理: 实现8位的并行数据转换为串行的数据:并行转串行,只要把每个输入按从高到低的顺序输出即可。即每个时钟脉冲输出一个数据。 实现8位的串行数据转换为并行的数据:8位串行数据转换为并行数据,需要一个模为8的计数器,当计到8个时钟脉冲时,把之前的8个数据全部输出,然后从新接收。 三、实验内容: 用verilog实现8位的并行数据转换为串行的数据: module bingchuan(out,in,rst,clk); output out; reg out; input [7:0] in; input rst,clk; integer i=0; always@(posedge clk) begin if(rst) out<=0; else begin if(i==8) begin out<=0; end else out<=in[i]; i<=i+1; end end endmodule module textbingchuan; reg [7:0] in;

reg rst,clk; wire out; bingchuan bc(out,in,rst,clk); initial clk=1; always #5 clk=~clk; initial begin rst=1; #100 rst=0;in=8'b11101110; end endmodule 仿真后的波形: 用verilog实现8位的串行数据转换为并行的数据:module chuanbing(out,in,rst,clk); output [7:0] out; reg [7:0] out; input in,rst,clk; reg[7:0] temout; reg[2:0] cd; always@(posedge clk) begin if(rst) cd=3'b111; else begin temout[cd]<=in; cd<=cd-1'b1; if(cd==3'b111) begin out<=temout; end

哈尔滨工业大学单片机实验报告

H a r b i n I n s t i t u t e o f T e c h n o l o g y 单片机原理与应用 实验报告 学生姓名: 学号: 班级: 通信工程 专业: 任课教师: 所在单位: 电子与信息工程学院 月5年2013. 软件实验 在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。 实验一清零程序 一、实验目的 掌握汇编语言设计和调试方法,熟悉键盘操作。 二、实验内容 把2000~20FFh的内容清零。 三、程序框图

四、实验过程 1、LED环境 ⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。 ⑵在“P.”状态下键入0640,然后按“STEP”或“EXEC”进入实验项目的调试与运行。. 2、PC环境 在与PC联机状态下,编译、连接、下载PH51\se01.asm,用连续或单步方式运行程序。 3、运行结果检查 ⑴在单步运行时,每走一步可观察其运行结果。 ⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查2000~20FFH 中执行程序前后的内容变化。 五、实验结果及分析 实验前截图: 实验后截图:

: 实验源程序ORG 0640H SE01: MOV R0,#00H DPTR MOV DPTR,#2000H ;(2000H送(DPTR 送LOO1: MOVX @DPTR,A ;0INC DPTR ;DPTR+1 1 INC R0 ;字节数加个字节再清FF不到CJNE R0,#00H,LOO1 ; SJMP $ END 实验问题:2000H~20FFh中的内容是什么? 解答:实验运行之前,2000H~20FFh中的内容是随机分配的;在执行完清零程序之后, 2000H~20FFh中的内容都变为0. 实验二拆字程序 一、实验目的 掌握汇编语言设计和调试方法。 二、实验内容 把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。 三、程序流程

实验一 单片机数据区传送程序设计

实验一单片机数据区传送程序设计 一、实验目的 1.进一步掌握汇编语言程序设计和调试方法。 2.了解单片机RAM中的数据操作 二、实验说明 要求:编写程序把R2、R3源RAM区首地址内的R6、R7字节数据传送到R4、R5目的地址的RAM区。 三、实验仪器 计算机 伟福软件(lab2000P ) 四、实验内容 在R0、R1中输入源地址(例如:3000H),R2、R3中输入目的地址(例如4000H),R6、R7中输入字节数(例如:1FFFH)。 查看RAM 区3000~30FFH和4000~40FFH内容,也可自己重新赋值。 运行程序,首先单步,然后用执行到指定位置,最后用连续运行方式。 记录下运行结果,检查3000~30FFH中内容是否和4000~40FFH内容完全一致。 五、思考题 1、改变源地址,例如00FFH; 2、改变目的地址,例如2000H; 3、改变传输的个数,小于256个和大于256个的情况。 4、把程序改为对某一数据存储区RAM赋都相同一个数值。 六、源程序及其修改原理 org 0000H Block equ 2000h mov dptr, #Block ; 起始地址 mov r0,#12h mov a,#20h ;修改2000h开始的地址所存放的内容为20h Loop: mov r1,#14h ;增加r1计数,用循环方式实现大于256的数据传输(思 考题3) Loop1: movx @dptr,a inc dptr ; 指向下一个地址 djnz r1,Loop1 djnz r0, Loop ; 双循环实现r0,r1计数相乘 (以上程序实现对某一数据存储区2000h~2168hRAM赋都相同一个数值20h,思考题4) mov r0, #20h ;改变源地址为2000h(思考题1) mov r1, #00h mov r2, #50h;改变目的地址为5000h(思考题2) mov r3, #00h

相关文档
最新文档