嵌入式实验报告数码管显示实验

嵌入式实验报告数码管显示实验
嵌入式实验报告数码管显示实验

实验报告

课程名称嵌入式系统编程实践

实验仪器清华同方辰源嵌入式系统实验箱实验名称实验四:数码管显示实验

系别__计算机学院_

专业 _

班级/学号

学生姓名

实验日期 2013年10月11日

成绩___________________

指导教师

实验四:数码管显示实验

一、实验问题回答

(1)如何设置功能3,4中的循环速度?

答:利用系统SysTick Handler中断,控制循环速度

void SysTick_Handler (void)

{

Event = 1;

}

(2)若是想实现类似实验(三)通过键盘动态控制循环速度,考虑一下应该如何设计?

答:SysTickPeriodSet(SysCtlClockGet() / X)

//设置x的大小就可以控制循环的速度。

void Reset_Counter_Speed(int x)

{

SysTickIntDisable();

SysTickDisable();

SysTickPeriodSet(SysCtlClockGet() / x);

// 设置x,控制计数频率,值与频率成正比SysTickEnable();

SysTickIntEnable();

}

,达到预期的效果。

二、实验目的和效果(效果即是否达到实验目的,达到的程度如何)

学习、了解和掌握数码管工作原理和使用方法

实验结果及检查

(1)默认在在OLED屏幕上分行显示自己的学号、姓名、项目序号、时间,如“2010011001”、“zhangsan”、“work4”、“2012-11-”

(2)首先在屏幕上显示四个功能选单,通过键盘A-F键选择不同功能,选择后屏幕显示相关功能提示,接受键盘输入的数字键0-9并在数码管上显示。如:开始显示:“please choose the function:”“A: …”“B: …”“C: …”“D: …”

按下“A”键后,显示”now you choose function A”

(3)按下键盘后,根据不同功能在数码管上显示按键字符。

其中“A”功能表示键盘输入的字符在数码管最右端显示,

“B”功能表示键盘输入的字符在数码管最左端显示,

“C”功能表示键盘输入的字符在数码管上从最右端到最左端循环显示,

“D”功能表示键盘输入的字符在数码管从最左端到最右端循环显示,

“E”功能表示键盘输入的字符会依次从最右端往左端移动显示,如按下“1”、“2”、“1”、“3”,在数码管上显示“空空空空空1”到“空空空空 1 2”

到“空空空 1 2 1”到“空空 1 2 1 3”,超过6个以后,最左端的丢掉。(4)扩展:根据自己的想法,扩展“F”按键,在数码管上显示与上面不同的效果。

(5)扩展:根据自己的想法,扩展“F”+“A”按键,即先按F再按A才有该功能。

三、实验内容和步骤(重点阐述自己的思路及遇到的问题)

(一)Keil开发环境中对项目Project配置

(1)建立项目

1、新建一个project;

2、选择CPU中的Luminary LM3S 8962;

3、加载库文件;

4、项目相关配置项修改。

加载必要程序:

本次实验提供了几个源程序rit128x96x4.h,rit128x96x4.c,startup.s,utility.c,utility.h,definition.h。

其中,definition.h文件中定义了一些宏定义,用于将整个工程中的宏定义放在一起,目的是为了程序的可读性更好。本例中定义了五个不同的功能模式,可以根据自己习惯进行修改。

Utility.c和utility.h中包含了数码管显示处理函数。其函数声明如下:void disp(char x,int location);使用方法:第一个参数表示要显示的字符,在本例中,就是键盘中断服务程序执行完后保存在oledkey[0]里的字符,第二个参数表示显示的位置,其中1表示数码管的最右端,6表示数码管的最左端,2-4依次表示中间4个数码管。

(2)新建主函数程序,并加载到项目中

新建一个文件,保存为main.c,把main.c也加载到项目中。

本次实验需要增加以下头文件

#include

#include

#include

#include

#include

#include

#include

#include

#include "rit128x96x4.h"

#include "utility.h"

#include "definition.h"

(二)嵌入式C程序开发

(3)利用中断,接收键盘输入

(3)--(1)在主函数中开启键盘中断,示例如下:

/*使能外设GPIO*/

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);

/*设置GPIO为输入*/

GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_7);

GPIOPinTypeGPIOInput(GPIO_PORTC_BASE, GPIO_PIN_4);

/*使能中断*/

IntEnable(INT_GPIOD);

IntMasterEnable();

GPIOPinIntEnable(GPIO_PORTD_BASE, GPIO_PIN_7);

GPIOIntTypeSet(GPIO_PORTD_BASE, GPIO_PIN_7, GPIO_RISING_EDGE);

注意:其中,GPIO_PORTC用于传输按下的键值,GPIO_PORTD用于向CPU 发起中断请求。

(4)利用系统SysTick Handler中断,控制循环速度

本步骤与实验(二)对应部分一样,不再重复。

(5)修改主函数,实现本次实验要求的功能

(5)-(1)在主函数中对七段数码管进行相关配置和初始化,如下所示:SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);

/*配置GPIO端口为输出*/

// 7segd1(PB6);7segd2(PB4);7segd3(PB5)

GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6);

// bitcode0(PC5);bitcode1(PC6);bitcode2(PC7)

GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7);

// 7segd0(PD4);7segdot(PD5);rst(PD6)

GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6);

(5)-(2)系统启动后,首先通过键盘输入选择不同功能,并在屏幕上显示不同提示信息。

“A”功能表示键盘输入的字符在数码管最右端显示

“B”功能表示键盘输入的字符在数码管最左端显示

“C”功能表示键盘输入的字符在数码管上从最右端到最左端循环显示

“D”功能表示键盘输入的字符在数码管从最左端到最右端循环显示

“E”功能表示键盘输入的字符会依次从最右端往左端移动显示,如按下“1”、“2”、“1”、“3”,在数码管上显示“空空空空空1”到“空空空空1 2”到“空空空 1 2 1”到“空空 1 2 1 3”,超过6个以后,最左端的丢掉。

(5)--(3)选好A-E功能后,按键后在数码管上按照不同的功能显示不同格式的字符。

注意:数码管上所有位置的数字同时显示,可以使用for循环赋值并进行显示:

for(j=1;j<7;j++)

{

disp(digits[j],j);

for(k=0;k

}

(5)编译、连接,生成可执行程序文件

(编译)

(链接)

(6)反复(3)--(5)步骤,直到完成

如果中间出现错误,修改代码,一直到无错,生成最后程序。

(三)硬件连接

(7)硬件连接

1、接上电源线,先关闭开关

2、用蓝色USB线接上仿真器,仿真器另一JTAG端接LM3S8962 CPU 板(左下较大子板),USB线接电脑

3、确认连接无误后,打开电源开关

(8)联调

1、在Keil uVision4中执行下载,(Flash菜单---Download),即可通过仿真器将(一)步编译链接好的执行程序下载到LM3S8962芯片内的Flash中。

2、按下实验箱上LM3S8962子板屏幕上方的白色按钮Reset键,即可查看程序执行效果。若有问题,返回第一步继续修改程序,编译、链接、下载,一直到显示出满意的效果。

实验代码:

main.c

#include

#include

#include

#include

#include

#include

#include

#include

#include "rit128x96x4.h"

#include "utility.h"

#include "definition.h"

int Event = 0;

int Event_key=0;

int i=0; //i为全局变量,因为只有1根线GPIO_PIN_4与CPU相联,所以一个按键(16种,4bit表示)需要四次中断才能传给CPU。

unsigned char ucValue=0x00;//ucValue为全局变量,该值存储按键值的中间结果。char oledkey[2]; //设置全局变量oledkey用于保存键盘输入的按键

int key_press_flag=0;//有没有按键,0表示没有,1表示有

int A_flag,B_flag,C_flag,D_flag,E_flag,F_flag;//按键CDEF状态,0表示未选中,1表示选中

int led_postion;

char digits[6];

int inputnext; //检测有无下一个输入数字,0表示没有,1表示有。

//系统SysTick Handler中断服务函数

void SysTick_Handler (void) {

Event = 1;}

//键盘中断服务函数ISR

void GPIO_PORT_D_ISR(void)

{

unsigned char ucKey;

unsigned long ulStatus;

ulStatus = GPIOPinIntStatus(GPIO_PORTD_BASE, true);

GPIOPinIntClear(GPIO_PORTD_BASE, ulStatus);

if(ulStatus & GPIO_PIN_7)

{

ucKey = GPIOPinRead(GPIO_PORTC_BASE, GPIO_PIN_4);

ucKey = ucKey>>1;

ucValue = ucValue + ucKey;

ucValue = ucValue<<1;

i++;

if(i==4)

{

i=0;

Event_key = 1;

oledkey[1]='\0';

if((ucValue>>4)<10)

oledkey[0] = (ucValue>>4) + 48;

else

oledkey[0] = (ucValue>>4) - 10 + 'A';

} } }

void updateled()

{

int i;

for(i = 6; i > 1; i--) digits[i] = digits[i-1];}

void displayDigits()

{ int i,k;

for(i = 1; i < 7; i++) {

disp(digits[i], i);

for(k=0;k<200;k++) ;

}}

int main()

{

SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ);

RIT128x96x4Init(1000000);

RIT128x96x4Clear();

SysTickPeriodSet(SysCtlClockGet() / 30);

SysTickEnable();

SysTickIntEnable();

/*使能外设GPIO*/

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);

/*设置GPIO为输入*/

GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_7);

GPIOPinTypeGPIOInput(GPIO_PORTC_BASE, GPIO_PIN_4);

/*使能中断*/

IntEnable(INT_GPIOD);

IntMasterEnable();

GPIOPinIntEnable(GPIO_PORTD_BASE, GPIO_PIN_7);

GPIOIntTypeSet(GPIO_PORTD_BASE, GPIO_PIN_7, GPIO_RISING_EDGE);

/*其中,GPIO_PORTC用于传输按下的键值,GPIO_PORTD向CPU发起中断请求。*/

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);

/*配置GPIO端口为输出*/

// 7segd1(PB6);7segd2(PB4);7segd3(PB5)

GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6);

// bitcode0(PC5);bitcode1(PC6);bitcode2(PC7)

GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7);

// 7segd0(PD4);7segdot(PD5);rst(PD6)

GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6);

RIT128x96x4StringDraw("2010011374", 0, 10, 15);

RIT128x96x4StringDraw("pengxin", 0, 20, 15);

RIT128x96x4StringDraw("Work4 12-05", 0, 30, 15);

RIT128x96x4StringDraw("please choose the", 0, 40, 15);

RIT128x96x4StringDraw("A:左", 5,50, 15);

RIT128x96x4StringDraw("B:右", 5, 60, 15);

RIT128x96x4StringDraw("C:右至左", 5, 70, 15);

RIT128x96x4StringDraw("D:左至右", 5, 80, 15);

RIT128x96x4StringDraw("E:input ", 60, 80, 15);

while(1)

{

if(Event_key)

{

Event_key = 0;

if('A'<=oledkey[0]&&oledkey[0]<='F')

{

RIT128x96x4StringDraw("显示结果:", 50, 30, 15);

RIT128x96x4StringDraw(oledkey, 60, 30, 15);

//只要按ABCDEF中任意一个都必须先把A_flag,B_flag,C_flag,D_flag,E_flag,F_flag置0,避免混乱。

A_flag=B_flag=C_flag=D_flag=E_flag=F_flag=inputnext=0;

switch(oledkey[0]){

case 'A':disp(oledkey[0],1);break;

case 'B':disp(oledkey[0],6);break;

case 'C':C_flag=1;led_postion=1;break;

case 'D':D_flag=1;led_postion=6;break;

case 'E':E_flag=1;break;

case 'F':F_flag=1;break;

default:break;

} }

else

{

inputnext=oledkey[0]-'0';

} }

if(Event)

{

Event=0;

if(C_flag)

{

disp(oledkey[0],led_postion);

led_postion++;

if(led_postion>6)

led_postion=1; }

if(D_flag)

{ disp(oledkey[0],led_postion);

led_postion--;

if(led_postion<1)

led_postion=6; }

if(E_flag)

{ if( inputnext != -1 ) {

updateled();

digits[1] = inputnext + '0';

inputnext = -1;

} }

if( F_flag)

{ updateled();

digits[1] = inputnext + '0';

inputnext = -1;

} }

if( E_flag||F_flag ) displayDigits();

}

return 0;

}

四、实验总结与收获

这次实验的主要内容是数码管的显示,通过程序设计,按键使数码管显示相

应的结果,在实验过程中,主要考查的是中断程序,在实验三中的基础上实现一些操作,在实验之前要对老师所给的资源进行较好的预习,对各个部分做到熟练,同时在一些细节性的方面以后实验需要注意。

软件测试实验报告96812

实验一:软件测试方法 一:实验题目 采用白盒测试技术和黑盒测试技术对给出的案例进行测试 二:试验目的 本次实验的目的是采用软件测试中的白盒测试技术和黑盒测试技术对给出的案例进行测试用例设计。从而巩固所学的软件测试知识,对软件测试有更深层的理解。 三:实验设备 个人PC机(装有数据库和集成开发环境软件) 四:实验内容 1):为以下流程图所示的程序段设计一组测,分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。并在各题下面写出测试用例、覆盖路径及结果等。 2):画出下列代码相应的程序流程图,并采用基本路径测试方法为以下程序段设计测试用例(需列出具体实验步骤)。 void Do (int X,int A,int B) { 1 if ( (A>1)&&(B==0) ) 2 X = X/A; 3 if ( (A==2)||(X>1) ) 4 X = X+1;

5 } 采用基本路经测试方法测试用例,并写出具体步骤 3):在某网站申请免费信箱时,要求用户必须输入用户名、密码及确认密码,对每一项输入条件的要求如下: 用户名:要求为4位以上,16位以下,使用英文字母、数字、“-”、“_”,并且首字符必须为字母或数字; 密码:要求为6~16位之间,只能使用英文字母、数字以及“-”、“_”,并且区分大小写。测试以上用例。 用所学的语言进行编码,然后进行等价类测试,当用户名和密码正确输入时提示注册成功;当错误输入时,显示不同的错误提示 通过分析测试用例以及最后得到的测试用例表分析所测程序的正确性,最后总结自己在这次试验中的收获并写出自己在这次试验中的心得体会。 五:实验步骤 1) (1)用语句覆盖方法进行测试 语句覆盖的基本思想是设计若干测试用例,运行被测程序,使程序中每个可执行语句至少被执行一次。由流程图可知该程序有四条不同的路径: P1:A-B-D P2:A-B-E P3:A-C-F P4:A-C-G 由于p1p2p4包含了所有可执行的语句,按照语句覆盖的测试用力设计原则,设计测试用例 无法检测出逻辑错误 (2)用判定覆盖方法进行测试 判定覆盖的基本思想是设计若干测试用例,运行被测程序,使得程序每个判断的取真和取假分支至少各执行一次,即判断条件真假均被满足。 条件覆盖测试用例 (3)用条件覆盖进行测试 条件覆盖的基本思想是设计若干测试用例,执行被测程序后要使每个判断中每个条件的可能取值至少满足一次。对于第一个判定条件A,可以分割如下: ?条件x>8:取真时为T1,取假时为F1;

LED数码管显示实验

信息工程学院实验报告 课程名称:单片机原理及接口 实验项目名称:LED 数码管显示实验 实验时间:2016年3月11日 班级:通信141 姓名: 学号: 一、实 验 目 的: 熟悉keil 仿真软件、proteus 仿真软件、软件仿真板的使用。了解并熟悉一位数码管与 多位LED 数码管的电路结构、与单片机的连接方法及其应用原理。学习proteus 构建LED 数 码管显示电路的方法,掌握C51中单片机控制LED 数码管动态显示的原理与编程方法。 二、实 验 设 备 与 器 件 硬件:微机、单片机仿真器、单片机实验板、连线若干 软件:KEIL C51单片机仿真调试软件,proteus 系列仿真调试软件 三、实 验 原 理 LED 显示器是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七 段LED ,这种显示器有共阴极与共阳极两种。 共阴极LED 显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发 光二极管则点亮;共阳极LED 显示器的发光二极管阳极并接。 七段LED 数码管与单片机连接时,只要将一个8位并行输出口与显示器的发光二极管引 脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,通常将控制 成 绩: 指导老师(签名): a f b e g c d dp 1 2 3 4 5 10 9 8 7 6 g f a b e d c dp (a) 共阴极 (b) 共阳极 (c) 管脚配置

发光二极管的8位字节数据称为段选码。 多位七段LED数码管与单片机连接时将所有LED的段选线并联在一起,由一个八位I/O 口控制,而位选线分别由相应的I/O口线控制。如:8位LED动态显示电路只需要两个八位I/O口。其中一个控制段选码,另一个控制位选。 由于所有位的段选码皆由一个I/O控制,因此,在每个瞬间,多位LED只可能显示相同的字符。要想每位显示不同的字符,必须采用动态扫描显示方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,位选控制I/O口在该显示位送入选通电平(共阴极送低电平、共阳极送高电平)以保证该位显示相应字符,段选控制I/O口输出相应字符段选码。如此轮流,使每位显示该位应显示字符,并保持延时一段时间,以造成视觉暂留效果。 不断循环送出相应的段选码、位选码,就可以获得视觉稳定的显示状态。由人眼的视觉特性,每一位LED在一秒钟内点亮不少于30次,其效果和一直点亮相差不多。 四、实验内容与步骤 1、电路图的设计。 (1)打开proteus软件,单击P,打开搜索元器件窗口,如图 1-1 所示: 图1-1 搜索元器件 (2)添加元器件AT89C51、CAP、BUTTON、LED-BLUE、RES、CRYSTAL、7SEG-MPXI1CC,修改元器件的参数,绘制电路图,如图1-2 所示:

测量反应时的实验报告

实验报告——反应时的测量 一、摘要:本次试验的目的就是学习视觉简单反应时、选择反应时与辨别反应时的测定方法以及仪器的使用、材料的整理计算,并比较三种反应时的时间差异以及探讨影响反应时的因素。通过计算比较发现,选择反应时最长,简单反应时最短。 二、关键词:简单反应时 三、引言 1、解释术语 简单反应时:一个反应仅对应于一个刺激,当一个刺激呈现时,就立即对其作 出反应,这种反应时间也成为A反应时间; 2、实验目的:通过反应时实验学习使用减法反应时法。 四、方法 1、被试:吉林化工学院,资源与环境工程学院,安全工程专业11360128,秦世瑞。 2、仪器:反应时测试仪器 3、实验过程 (1)准备工作:接通仪器电源,主试打开开关,选择简单反应时实验按钮,等到仪器左边第一个灯亮起的同时,告知被试实验开始,然后开始正式实验过程。 (2)练习操作:被试坐在仪器的正前方,用一根手指放在按压器上,当听到主试“开始”的信号时,被试集中注意,约两三秒钟后,刺激开始间隔出现。当被试瞧到主试要求给出反应的刺激颜色时,立即按压。当听到简单反应时完成的提示音时,按“打印”键打印数据。练习实验作2-3次。 (3) 正式实验: A、简单反应时 ①主试选择一种颜色,并且告诉被试,选择颜色---红色。然后被试按照练习操作步骤中的做法,只要一瞧到显示灯亮了就按按钮,如此反复做20次,然后打印出实验数据。

②当被试提前做出反应或者做出错误反应或者反应时间超过4秒时,仪器自动进行系统复位,重新进行实验。 ③一直做完20次后,仪器自动提示实验完毕。 B、选择反应时 ①这次实验主试不用选择颜色。被试按照练习操作步骤中的做法,只要一瞧到显示灯亮了就按与显示灯相对应颜色的按钮,如此反复做20次,然后打印出实验数据。 ②当被试提前做出反应或者做出错误反应或者反应时间超过4秒时,仪器自动进行系统复位,重新进行实验。 ③一直做完20次后,仪器自动提示实验完毕。 C、辨别反应时 ①主试选择一种颜色,并且告诉被试,选择颜色---红色。然后被试按照练习操作步骤中的做法,只要一瞧到显示灯就是红色就按按钮,其她颜色则不做操作。如此反复做20次,然后打印出实验数据。 ②当被试提前做出反应或者做出错误反应或者反应时间超过4秒时,仪器自动进行系统复位,重新进行实验。 ③一直做完20次后,仪器自动提示实验完毕。 五、实验结果 1、实验数据结果处理 被试简单反应时 (s)选择反应时 (s) 辨别反应时 (s) 1 0、4257 0、6527 0、5159 2 0、3594 0、6664 0、4129 3 0、4453 0、6467 0、4811 平均数/ / / 标准差/ / / 2、比较结果,分析实验 (1)不同实验之间反应时的差异

实验三 数码管显示实验

实验十九数码管显示实验 一、实验目的 1、了解数码管的显示原理; 2、掌握数码管显示的编程方法。 二、实验内容 1、编写数码管显示程序,循环显示0-F字符 三、实验设备 1、硬件: JX44B0实验板; PC机; JTAG仿真器; 2、软件: PC机操作系统(WINDOWS 2000); ARM Developer Suite v1.2; Multi-ICE V2.2.5(Build1319); 四、基础知识 1、掌握在ADS集成开发环境中编写和调试程序的基本过程。 2、了解ARM 应用程序的框架结构; 3、了解数码管的显示原理; 五、实验说明 1、LED显示原理 发光二极管数码显示器简称LED显示器。LED显示器具有耗电低、成本低、配置简单灵活、安装方便、耐震动、寿命长等优点,目前广泛应用于各类电子设备之中。 7段LED由7个发光二极管按“日”字排列。所有发光二极管的阳极连接在一起称共阳极接法,阴极连接在一起称为共阴极接法。一般共阴极可以不需要外接电阻。 其中各二极管的排列如上图在共阳极接法中,如果显示数字“5”,需要在a、c、d、f、g端加上高电压,其它加低电压。这样如果按照dp、g、fe、d、c、b、a的顺序排列的话对应的码段是:6DH。其它的字符同理可以得到。

2、数码管显示驱动 数码管的显示一般有动态显示和静态显示两大类,另外按照驱动方式又分串行驱动和并行驱动两种方式。串行驱动主要是提供串-并转换,减少控制线数量;并行驱动对每一个段提供单独的驱动,电路相对简单。这方面参看数字电路相关内容。 下面主要介绍静态显示和动态显示: 1)静态显示: LED数码管采用静态接口时,共阴极或共阳极节点连接在一起地或者接高电平。每个显示位的段选线与一个8位并行口线相连,只要在显示位上的段选位保持段码电平不变,则该位就能保持相应的显示字符。这里的8位并行口可以直接采用并行I/O口,也可以采用串行驱动。相应的电路如下: 很明显采用静态显示方式要求有较多的控制端(并行)或较复杂的电路(串行)。但是在设计中对器件的要求低。

软件测试实验报告材料58877

标准实用 本科实验报告 课程名称:软件测试技术 实验项目:软件测试技术试验实验地点:实验楼211 专业班级:软件工程学号: 学生:戴超 指导教师:兰方鹏 2015年10月7 日

理工大学学生实验报告 学院名称计算机与软件学院专业班级软件工程实验成绩学生戴超学号实验日期2015.10. 课程名称软件测试实验题目实验一白盒测试方法 一、实验目的和要求 (1)熟练掌握白盒测试方法中的逻辑覆盖和路径覆盖方法。 (2)通过实验掌握逻辑覆盖测试的测试用例设计,掌握程序流图的绘制。 (3)运用所学理论,完成实验研究的基本训练过程。 二、实验容和原理 测试以下程序段 void dowork(int x,int y,int z) { (1)int k=0,j=0; (2)if((x>0)&&(z<10)) (3){ (4)k=x*y-1; (5)j=sqrt(k); (6)} (7)if((x==4)||(y>5)) (8)j=x*y+10; (9)j=j%3; (10)} 三、主要仪器设备 四、操作方法与实验步骤 说明:程序段中每行开头的数字(1-10)是对每条语句的编号。

A 画出程序的控制流图(用题中给出的语句编号表示)。 B 分别用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。 C 编写完整的C 程序(含输入和输出),使用你所设计的测试用例运行上述程序段。完整填写相应的测试用例表(语句覆盖测试用例表、判定覆盖测试用例表、条件覆盖测试用例表、判定/条件覆盖测试用例表、条件组合覆盖测试用例表、路径覆盖测试用例表、基本路径测试用例表) 流程图为: 开始 开始 k=0,j=0 (x>0)&&(z<1) k=x*y-1 j=sqrt(k) (x==4)||(y>5) j=x*y+10 j=j%3 结束 1 2 5 7 8 9

6位7段LED数码管显示实验

6位7段LED数码管显示实验 【实验要求】1)初始化时,使6位LED均显示8,显示时间为1s。2)从第一个LED开始,从0显示到9,0.5s刷新一次。直到最后一个LED。【实验目的】1)熟悉并进一步掌握定时器中断的使用和时基信号的使用。2)进一步巩固I/O口的使用方法。3)了解6位7段LED数码管的使用。【实验设备】1)装有u’nsp IDE仿真环境的PC机一台。2)μ’nSP?十六位单片机实验箱一个。【实验原理】通过对I/O口的控制,初始化时点亮所有的数码管,即6位LED数码管均显示8。1s 后,从第一位数码管开始从0显示到9,刷新时间为0.5s。直到最后一个数码管。1s的时间使用定时器A (FIQ);0.5s的时间使用2HZ的时基信号(IRQ5)。【硬件连接图】A0—A6 接A---G A8—A13 接CS1—CS6 B0—B7 接KEY 【实验步骤】⑴按硬件电路原理图进行连接。⑵画程序流程图。⑶编写程序。⑷调试程序。⑸结合硬件调试,实现最终功能。【主程序流程图】 广告灯设计(利用取表方式) 桂林电子工业学院孙安青 https://www.360docs.net/doc/729119906.html, 1.实验任务 利用取表的方法,使端口P1做单一灯的变化:左移2次,右移2次,闪烁2次(延时的时间0.2秒)。 2.电路原理图 3.系统板上硬件连线 把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L 1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。 4.程序设计内容 在用表格进行程序设计的时候,要用以下的指令来完成 (1).利用MOV DPTR,#DATA16的指令来使数据指针寄存器指到表的开头。 (2).利用MOVC A,@A+DPTR的指令,根据累加器的值再加上DPTR的值,就可以使程序计数器PC指到表格内所要取出的数据。 因此,只要把控制码建成一个表,而利用MOVC工,@A+DPTR做取码的操作,就可方便地处理一些复杂的控制动作,取表过程如下图所示:

反应时实验报告

减法反应时实验 鄢婷婷院芬新鋆国祥 【摘要】本实验通过荷兰心理学家F.C.唐德斯的研究结果,了解基本反应时的概念和测定方法,测量最基本的三种反应时,即简单、选择、辨别反应时。设计阶段反应时实验,运用唐德斯减法反应时原理进行计算。结果发现:每个被试的简单反应实验的总耗时比选择和辨别反应实验是总耗时都短;个体间存在差异。【关键词】简单反应时,选择反应时,辨别反应时,个体差异 1引言 反应时的研究是心理学研究中的一个传统课题。自19世纪中叶以来,反应时作为一个心理指标在个体差异的研究中有着重要的作用,它在智力测验、人格测验中常被定为必测项目。反应时的测量为推测不能直接观察到的心理过程打开了一个窗口。 反应时是指从刺激呈现到做出反应之间所经历的时间。一个完整的反应过程由五部分组成:(1)感受器将物理或化学刺激转化为神经冲动的时间;(2)神经冲动由感受器到大脑皮质的时间;(3)大脑皮质对信息进行加工的时间;(4)神经冲动由大脑皮质传至效应器的时间;(5)效应器做出反应的时间。 实验者可根据测试的目的,选择不同的测量项目。例如:要了解被试的选择反应所用的时间,就要测b反应时和c反应时。b反应时和c反应时的差就是被试的选择反应所花费的时间。如想知道被试辨别刺激的时间,就要测量他的a反应时和c反应时。本实验分为三个部分进行,第一部分测选择反应时,第二部分测辨别反应时,第三部分测简单反应时。 反应时,又称反应潜伏期(response latencies),是指个体从接受刺激作

用开始到开始做出外部反应之间的这段时间。它与我们通常听说的动作完成所需要的时间是有差别的。反应时间包括刺激引起感官的活动,神经的传递,大脑的加工活动及效应器官接受冲动做出反应等所耗费的时间,其中以大脑活动占时最多。反应时的研究并非始于心理学,其最早开始于天文学。1976年,英国格林尼治天文台长马斯基林在使用“眼耳”法观察星体经过望远镜中的铜线时发现其助手比他观察时间慢约半分钟。1823年德国天文学家贝塞尔和天文学家阿格兰德对此现象加以认真研究,确定了人差方程式。1850年赫尔姆霍茨成功地测定了蛙的运动神经传导速度约为26米/秒。而将反应时正式引入心理学领域的是唐德斯。他意识到可以利用反应时来测量各种心理活动所需的时间,并发展了三种反应时任务,后人将它们成为唐德斯反应时ABC。 减法反应时的原理是:安排两种大致相同的反应时作业,其中一种作业比另一种增加了一个认知要求,其余的则相同。那么,增加了的哪个信息加工阶段所需的时间即为这两种作业的反应时之差。唐得斯的减数法把反应分为三类,即A、B、C三种反应:第一类反应称A反应,又称简单反应。A反应一般只有一个刺激和一个反应,如被试对一个灯亮,作一个按键的反应。A反应是最简单的反应,也是复杂反应的成分或基本因素。唐得斯把简单反应时称为基线时间。第二类反应称为B反应,又称选择反应。它是复杂反应中的一种。在这类反应中,有二个或者二个以上的刺激和相当于刺激的反应数。每一个刺激都有它相应的反应。在这样的选择反应中,不仅要区别刺激信号,而且还要选择反应。因而在这样的反应中除了基线操作外,还包括了刺激辨认和反应选择的心理操作。根据减数法的逻辑,B反应时就等于基线时间加上刺激辨别时间和反应选择时间。第三类反应称为C反应,又称为辨别反应。它是另一种形式的复杂反应。C反应也有二个

实验报告七-键盘扫描及显示实验

信息工程学院实验报告 课程名称:微机原理与接口技术 实验项目名称:键盘扫描及显示实验 实验时间: 班级: 姓名: 学号: 一、实 验 目 的 1. 掌握 8254 的工作方式及应用编程。 2. 掌握 8254 典型应用电路的接法。 二、实 验 设 备 了解键盘扫描及数码显示的基本原理,熟悉 8255 的编程。 三、实 验 原 理 将 8255 单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。实验具体内容如下:将键盘进行编号,记作 0~F ,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近 6 次按下的按键编号。 键盘及数码管显示单元电路图如图 7-1 和 7-2 所示。8255 键盘及显示实验参考接线图如图 7-3 所示。 图 7-1 键盘及数码管显示单元 4×4 键盘矩阵电路图 成 绩: 指导老师(签名):

图 7-2 键盘及数码管显示单元 6 组数码管电路图 图 7-3 8255 键盘扫描及数码管显示实验线路图 四、实验内容与步骤 1. 实验接线图如图 7-3 所示,按图连接实验线路图。

图 7-4 8255 键盘扫描及数码管显示实验实物连接图 2.运行 Tdpit 集成操作软件,根据实验内容,编写实验程序,编译、链接。 图 7-5 8255 键盘扫描及数码管显示实验程序编辑界面 3. 运行程序,按下按键,观察数码管的显示,验证程序功能。 五、实验结果及分析: 1. 运行程序,按下按键,观察数码管的显示。

软件测试实验报告

《软件测试技术》 ——实验报告 题目 _____实验一_ __ 指导教师薛曼玲 _ 实验日期 _11.4 专业 学生姓名 _ __ ____ 班级/学号 ____ 成绩 ________ ___ ____ _

一、实验目的 1.能熟练应用黑盒测试技术进行测试用例设计; 2.能对测试用例进行优化设计; 二、实验内容 题目一:电话号码问题 1.某城市电话号码由三部分组成。它们的名称和内容分别是: (1)地区码:空白或3位数字; (2)前缀:非'0'或'1'的3位数字; (3)后缀:4 位数字。 假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。 1.根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。 “一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个

程序要打印出信息, 说明这个三角形是三边不等的、是等腰的、还是等边的。” 题目三:日期问题 1.用决策表测试法测试以下程序:该程序有三个输入变量month、day、year (month 、day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2004 年11月29日,则该程序的输出为2004年12月1日。 (1) 分析各种输入情况,列出为输入变量month 、day 、year 划分的有效等价类。 (2) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。 (3) 根据(1) 和(2) ,画出简化后的决策表。 2.划分有效等价类 1)month变量有效等价类 M1:{month=4,6,9,11}M2:{month=1,3,5,7,8,10} M3:{month=12}M4:{month=2} 2)day变量的有效等价类 D1:{1<= day <= 26}D2:{day=27} D3:{day=28} D4:{day=29} D5:{day=30} D6:{day=31} 3)year变量有效等价类 Y1:{year是闰年} Y2:{year不是闰年} 3.列出所有动作桩

实验四八位七段数码管动态显示电路的设计

八位七段数码管动态显示电路的设计 一、实验目的 1、了解数码管的工作原理。 2、学习七段数码管显示译码器的设计。 3、学习VHDL的CASE语句及多层次设计方法。 二、实验原理 七段数码管是电子开发过程中常用的输出显示设备。在实验系统中使用的是两个四位一体、共阴极型七段数码管。其单个静态数码管如下图4-4-1所示。 图4-1 静态七段数码管 由于七段数码管公共端连接到GND(共阴极型),当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相么。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。 三、实验内容 本实验要求完成的任务是在时钟信号的作用下,通过输入的键值在数码管上显示相应的键值。在实验中时,数字时钟选择1024HZ作为扫描时钟,用四个拨动开关做为输入,当四个拨动开关置为一个二进制数时,在数码管上显示其十六进制的值。 四、实验步骤 1、打开QUARTUSII软件,新建一个工程。 2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。 3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光 盘中提供的示例程序。 4、编写完VHDL程序后,保存起来。方法同实验一。

5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。 6、编译仿真无误后,根据用户自己的要求进行管脚分配。分配完成后,再进行全编译 一次,以使管脚分配生效。 7、根据实验内容用实验导线将上面管脚分配的FPGA管脚与对应的模块连接起来。 如果是调用的本书提供的VHDL代码,则实验连线如下: CLK:FPGA时钟信号,接数字时钟CLOCK3,并将这组时钟设为1024HZ。 KEY[3..0]:数码管显示输入信号,分别接拨动开关的S4,S3,S2,S1。 LEDAG[6..0]:数码管显示信号,接数码管的G、F、E、D、C、B、A。 SEL[2..0]:数码管的位选信号,接数码管的SEL2、SEL1、SEL0。 8、用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与 自己的编程思想一致。 五、实验现象与结果 以设计的参考示例为例,当设计文件加载到目标器件后,将数字信号源模块的时钟选择为1464HZ,拨动四位拨动开关,使其为一个数值,则八个数码管均显示拨动开关所表示的十六进制的值。

简单反应时实验报告

简单反应时实验报告 雷飞心理班20131340001 1.引言 从刺激呈现到做出反应之间所经历的时间称为反应时。反应时的研究是心理学研究中的一个传统课题。自19世纪中叶以来,反应时作为一个心理指标在个体差异的研究中有着重要的作用,它在智力测验、人格测验中常被定为必测项目。反应时的测量为推测不能直接观察到的心理过程打开了一个窗口。一个完整的反应过程由五部分组成:(1)感受器将物理或化学刺激转化为神经冲动的时间;(2)神经冲动由感受器到大脑皮质的时间;(3)大脑皮质对信息进行加工的时间;(4)神经冲动由大脑皮质传至效应器的时间;(5)效应器作出反应的时间。 本实验采用的是荷兰心理学家F.C.唐德斯的研究结果。测量最基本的三种反应时,即简单、选择、辨别反应时。唐德斯将它们分别命名为:a、b、c反应时。 三种反应时有如下关系: 简单反应时a简单 选择反应时b简单辨别刺激选择反应 辨别反应时c简单辨别刺激 实验者可根据测试的目的,选择不同的测量项目。例如:要了解被试的选择反应所用的时间,就要测他的b反应时和c反应时。b反应时和c反应时的差就是他选择反应所花费的时间。如想知道被试辨别刺激的时间,就要测量他的a反应时和c反应时。 2.方法 2.1被试 新乡医学院心理学系2013级心理班全体学生公21人,男8名,女13名,年龄19——22岁。 2.2仪器 计算机及PsyTech心理实验系统。 2.3程序 简单反应时(a反应时) 在测试中呈现的刺激和要求被试做出的反应都只有一个,且固定不变。本实验程序可测量视觉、听觉两种简单反应时。视觉的刺激为一绿圆,听觉的刺激为773Hz纯音。测量方式一样,被试均使用一号接口反应盒的绿键做反应。测30次,每次预备后间隔2秒呈现刺激。如果测试中被试在准备阶段有抢先现象,则该次结果无效,并由计算机剔除并警告抢码被试。另外以每5次呈现为一组,随机加入空白的探测刺激2秒,如有被试在此时抢码,则警告抢码被试,且本组实验将重新进行。最后以有效的结果均值为其简单反应时。 3.结果

单片机实验——数码管显示

单片机实验——数码管显示

数码管显示 一、数码管静态显示 1、电路图 图1 2、电路分析 该电路采用串行口工作方式进行串行显示实验,串行传输数据为8位,只能从RXD端输

入输出,TXD端用于输出同步移位脉冲。当CPU 执行一条写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口开始将发送缓冲器SBUF 中的8位数据按照从低位到高位依次发送出去,8位数据发送完毕,发送结束标志TI置1,必须由软件对它清0后才能启动发送下一帧数据。 因此,当输完8个脉冲后,再一次来8个脉冲时,第一帧的8位数据就移到了与之相连的第二个74LS164中,其他数据依此类推。 3、流程图

发送数据 二、数码管动态显示 1、电路图

图2 2、电路分析 R1-R7电阻值计算:一个7-seg 数码管内部由8段LED 组成,因此导通电压和电流与LED 灯相同,LED 导通压降大概在 1.5V-2.2V ,电流3mA-30mA ,单片机的工作电压是5V , 所以 一般取Rmin 和Rmax 中间值,330Ω、470Ω、510Ω。 由于P0口内部没有上拉电阻,所以在P0 口接1003025Im min 1325Im max =-===-==mA V V an U R K mA V V in U R

排阻,上拉电压。如果没有排阻的话,接上拉电阻时需要考虑数码管的电流,如果太小的话,是驱动不了数码管的。如图3: 发现电流大于5mA时,数码管才能亮,与前面电流最小3mA不符,因此计算数码管电流时使其在10mA-20mA之间,确保能驱动数码管亮。 两个74HC573实现对六位数码管的段选和位选,控制端为LE(第11脚)。 3、思路分析 先使第一个573输出同步,把数据送入573中,然后锁存,第二个573输出同步,打开第一个数

软件测试技术实验报告

《软件测试技术》 实验报告 河北工业大学计算机科学与软件学院 2017年9月

软件说明 电话号码问题 某城市电话号码由三部分组成。它们的名称和内容分别是:地区码:空白或三位数字; 前缀:非'0'或'1'的三位数字; 后缀:4位数字。 流程图 源代码 import java.awt.*; import java.awt.event.*; public class PhoneNumber extends Frame implements ActionListener{ /** * */ private static final long serialVersionUID = 1L;

private final String[] st = {"Name","Local","Prefix","Suffix"}; static int c_person=0; TextField t_name,t_local,t_prefix,t_suffix; RecordDialog d_record; MessageDialog d_message; person a[]=new person[100]; public PhoneNumber() { super("电话号码"); this.setSize(250,250); this.setLocation(300,240); Panel panel1 = new Panel(new GridLayout(4, 1)); for (int i = 0; i < st.length; i++) panel1.add(new Label(st[i],0)); Panel panel2 = new Panel(new GridLayout(4, 1)); t_name =new TextField("",20); t_local =new TextField(""); t_prefix=new TextField(""); t_suffix=new TextField(""); panel2.add(t_name); panel2.add(t_local); panel2.add(t_prefix); panel2.add(t_suffix); Panel panel3 = new Panel(new FlowLayout()); Button b_save = new Button("Save"); Button b_record= new Button("Record"); panel3.add(b_save); panel3.add(b_record); this.setLayout(new BorderLayout()); this.add("West", panel1); this.add("East", panel2); this.add("South", panel3); addWindowListener(new WindowCloser()); b_save.addActionListener(this); b_record.addActionListener(this); d_record=new RecordDialog(this); d_message=new MessageDialog(this); this.setVisible(true);

反应时的测定实验报告

. 人因工程课程设计 —反应时的测量实验报告 专业工业工程 学号 1240408110 姓名志伟 指导老师吴俊 成绩 2015年06月30日

实验报告——反应时的测量 【摘要】本次试验的目的是学习视觉简单反应时、选择反应时和辨别反应时的测定方法以及仪器的使用、材料的整理计算,并比较三种反应时的时间差异以及探讨影响反应时的因素。经过分析实验结果数据得出的结论为:被试作出反应所需时间是由刺激的复杂程度决定的。即简单反应时所需反应时间小于选择反应时所需时间。选择反应时和辨别反应时不存在显著的性别差异。 【关键词】简单反应时选择反应时辨别反应时多项职业能力测量仪1.引言 反应时是人因工程学在研究和应用中经常使用的一种重要的心理特征指标。人的信息处理过程,大部分活动是在体潜伏进行的,难以对信息接受、加工和传递各个阶段精确地进行实验测定。因此,在实践中往往利用反应时指标来近似说明人对信息处理过程的效率及影响因素。利用反应时可以分析人的感知觉、注意、识别、学习、唤醒水平、动作反应、定向运动、信号刺激量等,在此基础上,实现提高作业效率、监视水平和集中注意力等目的,合理制定作业标准,改进人机界面,改善作业条件和环境等。 反应时指刺激作用于有机体后到明显的反应开始时所需要的时间。刺激作用于感官引起感官的兴奋,兴奋传到大脑,并对其加工,再通过传出通路传到运动器官,运动反应器接受神经冲动,产生一定反应,这个过程可用时间作为标志来测量,这就是反应时。 本实验采用的是荷兰心理学家 F.C.唐德斯的研究结果。测量最基本的三种反应时,即简单、选择、辨别反应时。唐德斯将它们分别命名为:a、b、c反应时。(1)简单反应时(RTA) 在测试中呈现的刺激和要求被试做出的反应都只有一个,且固定不变。本实验程序可测量视觉、听觉两种简单反应时。视觉的刺激为一绿圆,听觉的刺激为773Hz纯音。测量方式一样,被试均按绿键反应。测30次,每次预备后间隔2秒呈现刺激。如果测试中被试在准备阶段有抢先现象,则该次结果无效,并由计算机剔除并警告抢码被试。另外以每5次呈现为一组,随机加入空白的探测刺激2秒,如有被试在此时抢码,则警告抢码被试,且本组实验将重新进行。最后以 2

拨码开关输入数码管显示实验

综合课程设计实验报告 班级: 姓名: 学号:11 指导老师:

实验名称: 拨码开关输入数码管显示实验 实验要求: 1. 掌握数码管显示原理 2. 掌握拨码开关工作原理 3. 通过FPGA用拨码开关控制数码管显示 实验目标: 4位拨码开关分别对应4位数码管,拨动任意1位开关,对应的数码管将显示数字1,否则显示数字0。 实验设计软件 Quartus II 实验原理 1.数码管显示模块 电路原理图:

如图所示,数码管中a,b,c,d,e,f,g,dp分别由一个引脚引出,给对应的引脚高电平,则对应引脚的LED点亮,故我们在程序中可以设定一个8位的二进制数reg【7:0】h,每一位对应一个相应的引脚输出,那么我们就可以通过对x的赋值,控制对应的8个LED亮灭的状态进行数字显示。例如,如果我们显示数字2,则在数码管中,a、b、d、e、g亮,c、f、dp不亮,则显示的是数字2,即h=’b代表显示数字2。 2.拨码开关模块 电路原理图: 拨码开关有8个引脚,每个引脚对应于数码管的一个LED灯,当拨码开关的一个引脚是高电平时,则对应的数码管一个LED灯亮,其他7个LED等不亮。通过此原理来实现数码管的LED灯亮暗情况从而实现数码管的数字显示。例如当第一个拨码接通时,此时输入信号为8'b对应的数码管的输出信号为out=8'b,此时相当于数码管a,b,c,d,e,f,g亮,7段数码管全部显示,显示的数字为8。 程序代码 module bomakaiguan(out,key_in,clk); assign p='b1111; output[7:0] out=8'b; input[7:0] key_in; input clk; reg[7:0] out; always @(posedge clk) begin case(key_in) 8'b: out=8'b;

黑盒测试软件测试实验报告2

软件测试与质量课程实验报告实验2:黑盒测试法实验

缺席:扣10分实验报告雷同:扣10分实验结果填写不完整:扣1 – 10分其他情况:扣分<=5分总扣分不能大于10分 参考代码如下: (1)程序参考答案: #include double main() { int hours; double payment,wage; wage=20; cout<<"please input hours:"; cin>>hours; if(hours>=0&&hours<=168){ if (hours<40) payment=hours*wage ; else if ((hours>=40) && (hours<=50)) payment=40*wage+(hours-40)*1.5*wage; else if (hours>50) payment=40*wage+10*1.5*wage+(hours-50)*3*wage; cout<<"The final payment are:"< void main() { int year; int month,maxmonth=12; int day,maxday; printf("请输入年份:(1000~3000)"); scanf("%d",&year); if(year<1000 || year>3000) { printf("输入错误!请从新输入!\n");

七段数码管显示实验

单片机实验报告

实验九七段数码管显示实验 一、实验目的 1.学习七段数码管的工作原理; 2.学习数码管与8051单片机的接口方法; 3.掌握动态扫描显示技术。 二、实验原理 如图4.9-1所示,LED数码管由7个发光二极管组成,此外,还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七段发光二极管亮 共阴极接法共阳极接法 图4.9-1 暗的不同组合,可以显示多种数字、字母以及其它符号。LED数码管中的发光二极管共有两种连接方法: 1)共阴极接法:把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。实验中使用的LED显示器为共阴极接法 2)共阳极接法:把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。 为了显示数字或符号,要为LED显示器提供代码,因为这些代码是为显示字形的,因此称之为字形代码。七段发光二极管,再加上一个小数点位,共计八段。因此提供给LED显示器的字形代码正好一个字节。若a、b、c、d、e、f、g、dp 8个显示段依次对应一个字节的低位到高位,即D0、D1、D2、D3、D4、D5、D6、D7,则用共阴极LED数码管显示十六进制数时所需的字形代码如表4.9-1所示。

表4.9-1 共阴极LED 数码管字形代码 字型 共阴极字形代码 字型 共阴极字形代码 字型 共阴极字形 代码 0 3FH 6 7DH C 39H 1 06H 7 07H d 5EH 2 5BH 8 7FH E 79H 3 4FH 9 6FH F 71H 4 66H A 77H 灭 00H 5 6DH b 7CH *实际上试验中使用的是共阳极数码管,这里就不一一列出。 2、动态显示 按图4.9-2(b )连接线路,通过交替选中LED1和LED0循环显示两位十进制数。七段数码管段码连接不变,位码驱动输入端S1、S0接8255A C 口的PC1、PC0,通过C 口的这两位交替输出1和0,以便交替选中LED1和LED0,从而实现两位十进制数的交替显示。请编程实现在两个LED 数码管上循环显示00 99,程序流程图如图4.9-3(b)所示。 (a) 静态显示程序流程图 (b) 动态显示程序流程图 图4.9-3 十位数的段码至A 口 个位数的段码至A 口 开始 开始 返回DOS 返回DOS 延时并修改要显示的数字

反应时测试实验报告

反应时测定实验报告 专业: 安全工程 指导教师: 陈明利 组员: 欧泽兵胡良民 于清华李欣燃 张琛晨王旭

2014年7月20日 反应时测试实验 【实验目的】 (1)学会测量视觉简单反应时、选择反应时的方法; (2)比较视觉简单平均反应时、选择平均反应时之间的差别; (3)探索简单平均反应时与练习次数的关系; 【实验设备】 BD-II-510A型反应时测定仪 【实验方法】 用反应时测定仪对本小组1女5男做视觉反应时的测量实验。 【实验结果】 记录简单反应时和选择反应时的平均值,并制作不同类型的平均反应时的折线图;不同被试简单反应时和选择反应时的折线图。 【实验理论依据】 反应时可以说是心理学中常用的反应变量之一,它是指刺激施与有机体之后到反应开始所需要的时间。刺激作用于感官(如眼睛、耳朵)引起感官兴奋,兴奋传到大脑,并对其加工,再通过传出神经传到运动器官,反应器接受神经冲动,产生一定反应,这个过程可用时间作为标志来测量,这就是反应时。通常,反应时可分为简单反应时、辨别反应时、选择反应时三类。 简单反应时是指给被试呈现单一刺激,同时要求他们只作单一的反应,这时刺激—反应之间的时间间隔就是反应时。简单反应时的实验已有一百多年的历史,最早始于天文学家对“人差方程”的研究,赫希在1861~1865年间测量了视觉与触觉的“生理时间”,得到简单反应时的时值,光为180毫秒,声为140毫秒,触觉为140毫秒,这些数据到今天还算是相当标准的。 辨别反应时是指当呈现两个或两个以上的刺激时,要求被试对某一特定的刺激作出反应,对其它刺激不做反应,被试在刺激呈现到做出辨别反应的这段时间,就是被试的辨别反应时,又称为C反应时。 选择反应时就是根据不同的刺激物,在各种可能性中选择一种符合要求的反应,并执行该反应所需要的时间。在此过程中被试既要辨别当前出现的是哪个刺激,又要根据出现的刺激选择事先规定的反应。这种反应更能体现人的智能和能力。在选择反应时中,选择数越多,则选择反应时越长,选择任务越复杂,则反应时也越长。对选择反应时作出系统区分的当属唐德斯(1868),他运用减因

EDA设计课程实验报告数码管动态显示实验报告

EDA设计课程实验报告 实验题目:数码管动态显示实验 学院名称: 专业:电子信息工程 班级: 姓名:高胜学号 小组成员: 指导教师: 一、实验目的 学习动态扫描显示的原理;利用数码管动态扫描显示的原理编写程序,实现自己的学号的显示。 二、设计任务及要求

1、在SmartSOPC实验箱上完成数码管动态显示自己学号的后八个数字。 2、放慢扫描速度演示动态显示的原理过程。 三、系统设计 1、整体设计方案 数码管的八个段a,b,c,d,e,f,g,h(h是小数点)都分别连接到SEG0~SEG7,8个数码管分别由八个选通信号DIG0~DIG7来选择,被选通的数码管显示数据,其余关闭。如果希望8个数码管显示希望的数据,就必须使得8个选通信号DIG0~DIG7分别被单独选通,并在此同时,在段信号输入口SEG0~SEG7加上该对应数码管上显示的数据,于是随着选通信号的扫描就能实现动态扫描显示的目的。虽然每次只有1个数码管显示,但只要扫描显示速率足够快,利用人眼的视觉余辉效应,我们仍会感觉所有的数码管都在同时显示。 2、功能模块电路设 (1)输入输出模块框图(见图1) 图1 (2)模块逻辑表达(见表1) 表1(数码管显示真值表) clk_1k dig seg ↑01111111 C0 ↑10111111 F9

注:数码管显示为01180121 (3)算法流程图(见图2) (4)Verilog源代码 module scan_led(clk_1k,d,dig,seg); //模块名scan_led input clk_1k; //输入时钟 input[31:0] d; //输入要显示的数据output[7:0] dig; //数码管选择输出引脚

相关文档
最新文档