搜档网
当前位置:搜档网 › 关于VB的Timer的Interval属性值的实验

关于VB的Timer的Interval属性值的实验

关于VB的Timer的Interval属性值的实验
关于VB的Timer的Interval属性值的实验

关于VB的Timer的Interval属性值的实验

作者:朱晚春

我们在用Timer时发现timer的时间不准,也就是Timer内的代码运行时间越长就越不准,我实验发现Interval属性值是Timer过程结束到下一次进入Timer的时间,实验如下。建立如下窗口:

Form1的代码如下:

Dim SetNum As Long, t1 As SYSTEMTIME

Private Declare Function GetTickCount Lib "kernel32" () As Long

Private Type SYSTEMTIME

wYear As Integer

wMonth As Integer

wDayOfWeek As Integer

wDay As Integer

wHour As Integer

wMinute As Integer

wSecond As Integer

wMilliseconds As Integer

End Type

Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME) Private Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)

Private Function ChangToMs(t As SYSTEMTIME) As Double

Dim n As Long, k As Double

If t.wYear >= 2000 Then

For n = 2000 To t.wYear

If ((n Mod 4) = 0 And (n Mod 100) <> 0) Or (n Mod 400) = 0 Then

k = k + 31622400000# '366 * 24 * 60 * 60 * 1000

Else

k = k + 31536000000# '365 * 24 * 60 * 60 * 1000

End If

Next n

For n = 1 To t.wMonth - 1

Select Case n

Case 1, 3, 5, 7, 8, 10, 12

k = k + 2678400000# '31 * 24 * 60 * 60 * 1000

Case 2

If ((t.wYear Mod 4) = 0 And (t.wYear Mod 100) <> 0) Or (t.wYear Mod 400) = 0 Then

k = k + 2505600000# '29 * 24 * 60 * 60 * 1000

Else

k = k + 2419200000# '28 * 24 * 60 * 60 * 1000

End If

Case 4, 6, 9, 11

k = k + 2592000000# '30 * 24 * 60 * 60 * 1000

End Select

Next n

k = k + (t.wDay - 1) * 86400000# '24 * 60 * 60 * 1000

k = k + t.wHour * 3600000# '60 * 60 * 1000

k = k + t.wMinute * 60000# '60 * 1000

k = k + t.wSecond * 1000#

k = k + t.wMilliseconds

ChangToMs = k

Else

' MsgBox "计算机时间错误!"

ChangToMs = 0

End If

End Function

Private Function ChangToS(t As SYSTEMTIME) As Double

ChangToS = ChangToMs(t) / 1000

End Function

Private Function MyDateDiff(str As String, t1 As SYSTEMTIME, t2 As SYSTEMTIME) As Double

Select Case str

Case "s"

MyDateDiff = ChangToS(t2) - ChangToS(t1)

Case "ms"

MyDateDiff = ChangToMs(t2) - ChangToMs(t1)

Case "m"

MyDateDiff = (ChangToS(t2) - ChangToS(t1)) / 60

Case "h"

MyDateDiff = (ChangToS(t2) - ChangToS(t1)) / 3600

Case "d"

MyDateDiff = ((ChangToS(t2) - ChangToS(t1)) / 3600) / 24

End Select

End Function

Private Function MyNow() As SYSTEMTIME

GetLocalTime MyNow

End Function

Private Function MyTime(k As SYSTEMTIME) As String

MyTime = Right("0" & k.wHour, 2) & ":" & _

Right("0" & k.wMinute, 2) & ":" & _

Right("0" & k.wSecond, 2)

End Function

Private Function MyDate(k As SYSTEMTIME) As String

MyDate = Right("0000" & k.wYear, 4) & "年" & _

Right("0" & k.wMonth, 2) & "月" & _

Right("0" & k.wDay, 2) & "日" & _

Right("0" & k.wHour, 2) & ":" & _

Right("0" & k.wMinute, 2) & ":" & _

Right("0" & k.wSecond, 2) & ":" & _

Right("000" & k.wMilliseconds, 3)

End Function

Private Sub Form_Load()

Text3.Text = 100

Text4.Text = 30000000

SetNum = 30000000

Timer1.Interval = 100

End Sub

Private Sub Text3_Change()

Timer1.Interval = Val(Text3.Text)

End Sub

Private Sub Text4_Change()

SetNum = Val(Text4.Text)

End Sub

Private Sub Timer1_Timer()

Dim n As Long, m As Long, t As SYSTEMTIME

t = MyNow '进入过程,代码运行前的时间

Text1.Text = MyDateDiff("ms", t1, MyNow) '计算从跳出该过程到再次进入该过程所用的时间

For n = 0 To SetNum

m = m + 1

Next n

Text2.Text = MyDateDiff("ms", t, MyNow) '计算代码运行所用的时间

t1 = MyNow

End Sub

调试时修改Text4的值就是改变Timer内代码运行的时间,修改Text3的值就是改变Timer 的Interval值。

VB期末考试试题及答案

二、选择题 1、菜单控件只包括一个事件,即 C ,当用鼠标单击或键盘选中后按“回车”键时触发该事件,除分隔条以外的所有菜单控件都能识别该事件。 A、GotFocus B、Load C、Click D、KeyDown 2、滚动条控件(如图所示)的Max属性所设置的是 A 。 A、滚动框处于最右位置时,一个滚动条位置的Value属性最大设置值 B、单击滚动条和滚动箭头之间的区域时,滚动条中滚动块的最大移动量 C、单击滚动条的箭头区域时,滚动条中滚动块的最大移动量 D、滚动条控件无该属性 3、SQL 语句 Select * Form student 中的 *表示 B 。 A、所有记录 B、所有字段 C、所有表 D、都不对 4、以下选项中,不属于标签的属性是 C 。 A、Enabled B、Caption C、Default D、Font 5、要求改命令按钮显示的文本,应当在属性窗口中改变的属性是 A 。 A、Caption B、Name C、Text D、Label 6、设置一个单选按钮(OptionButton)所代表选项的选中状态,应当在属性窗口中改变的属性是 D 。 A、Caption B、Name C、Text D、Value

7、允许在菜单项的左边设置打勾标记,下面哪种论述是正确的 D 。 A、在标题项中输入&,然后打勾 B、在索引项中打勾 C、在有效项中打勾 D、在复选项中打勾 8、当执行以下过程时,在窗体上将显示 A 。 Private Sub Command1_Click( ) Print "VB"; Print "Hello! "; Print "VB" End Sub A、 VBHello!VB B、 VB Hello!VB C、 VB D、 VB Hello! VB Hello! VB 9、语句Print "The answer is:";20/4-2的结果为 B 。 A、The answer is 20/4-2 B、The answer is 3 C、The answer is "20/4-2" D、非法语句 10、下列哪个控件是容器控件 B 。 A、Image B、Picture C、ComboBox D、FileListBox 11、若要将窗体从内存中卸载出去,其实现的方法是 D 。 12、以下选项中,不是 Visual Basic控件的是 A 。 A.窗体 B.定时器 C.单选框 D.命令按钮 13、双击窗体中的对象后,Visual Basic将显示的窗口是 A 。 A.代码窗口 B.工具箱 C.项目(工程)窗口 D.属性窗口 14、可决定窗体的左上角是否有控制菜单的属性是 A 。 15、设有如下语句: Strl=InputBox("输人","","练习") 从键盘上输人字符“示例”后,Strl的值是 D 。 A.“输入” B.“” C.“练习” D.“示例” 16、窗体Form1的Name属性是Frm1,它的单击事件过程名是 C 。 A. Form1_Click C. Frm1_Click D. Me_Click 17、窗体的hide属性的含义是 A 。 A.隐藏 B.展现 C.装入 D.卸载 18、若要设置定时器控件的定时时间,需设置的属性是 C 。 A.Enabled B.Value C.Interval D.Text 19、能够改变复选框中背景颜色的属性是 C 。

定时器实验报告

定时器实验报告 文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

电子信息工程学系实验报告课程名称:单片机原理及接口应用 实验项目名称:51定时器实验 实验时间: 班级:姓名:学号: 一、实验目的: 熟悉keil仿真软件、protues仿真软件的使用和单片机定时程序的编写。了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。 二、实验环境: 软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件 三、实验原理: 1、51单片机定时计数器的基本情况 8051型有两个十六位定时/计数器T0、T1,有四种工作方式。 MCS-51系列单片机的定时/计数器有几个相关的特殊功能寄存器: 方式控制寄存器TMOD; 加法计数寄存器TH0、TH1 (高八位);TL0、TL1 (低八位); 定时/计数到标志TF0、TF1(中断控制寄存器TCON) 定时/计数器启停控制位TR0、TR1(TCON) 定时/计数器中断允许位ET0、ET1(中断允许寄存IE) 定时/计数器中断优先级控制位PT0、PT1(中断优IP)

2 、51单片机的相关寄存器设置 方式控制寄存器TMOD: D7D6D5D4D3D2D1D0 GATE C/T M1 M0GATE C/T M1M0 TMOD的低四位为T0的方式字,高四位为T1的方式字。TMOD不能位寻址,必须整体赋值。 TMOD各位的含义如下: 1. 工作方式选择位M1、M0 M1、M0的状态决定定时器的工作方式: M1M0功能说明 0 0 1 10 1 1 方式0,为13位的定时/计数器 方式1,为16位的定时/计数器 方式2,为常数自动重装入的8位定时/计数器 方式3,T0分为两个8位定时/计数器, T1在该方式时停止 3、51单片机定时器的工作过程(逻辑)方式一方式1:当M1M0=01时,定时器工作于方式1。

实验3-2timer定时器(中断方式)

实验三-2 timer定时器(中断方式) 【实验目的】 1、学习LPC1768处理器timer定时器(中断方式)的功能原理; 2、掌握定时器功能设置及使用方法。 【实验要求】 1、了解LPC1768处理器timer定时器(中断方式)的功能原理。 【实验原理】 一、LPC系列处理器定时器的原理 参见课本P106中有关定时器的章节,重点要掌握定时器工作原理、定时器寄存器设置和定时器中断的工作方法等。 二、实验板上的定时器 1.LPC1700嵌入式处理器具有4个32位可编程定时/计数器,除了外设基址之外操作完全相同。 2. 定时/计数器对外设时钟(PCLK)周期或外部时钟进行计数,可选择产生中断或根据匹配寄存器的设定,在到达指定的定时值时执行其它动作(输出高/低电平、翻转或者无动作)。 3. 中断方式使用定时器: 在这种方式下定时器与处理器可以并行工作,等计数完成定时器通过中断通知处理器转而执行中断服务程序。这样的使用方式可以提高系统的效率。 程序首先要初始化使用的定时器,init_timer()函数执行内容包括设置定时器的匹配寄存器MRn和匹配控制寄存器MCRn,还有安装定时器中断服务函数等。该函数有两个参数:timer_num为初始化定时器序号,TimerInterval为Fpclk周期数也即定时器中断间隔时间。 三、程序说明 1.SystemInit(): 系统初始化,包括系统时钟设置等。 2. init_timer ( uint8_t timer_num, uint32_t TimerInterval ): 根据不同定时器编号设置定时器相关寄存器以及安装中断服务程序。 3. enable_timer( uint8_t timer_num ): 定时器使能,本实验中使用定时器0,因此参数timer_num设置为0。 4. TIMER0_IRQHandler (void):

九江学院VB期末考试题目及详细答案

九江学院期末考试复习题(政法A1111)第一套 一、判断题 1、Visual Basic?序开发的特点是面向对象的事件驱动。(J 2、Print_Text 是一个不合法的变量名。(为 3、窗体的AutoRedraw属性实现了屏幕图像的重建。(翌 4、设置字体大小应使用Font属性(为 5、Sub过程可以实现嵌套调用(寸 6、IIF函数中的三个参数都不能省略。(寸 7、块结构条件语句以End If结束,而单行结构条件语句没有End旧(明 8、当终值小于初值时,步长为负数。(5 9、执行While-Wend循环时,如果一开始条件就不成立,则语句块一次也不会执行。(寸 10、关于数组的引用,在程序中,凡是简单变量可以出现的地方都可以出现数组元素的引用(/) 二、单项选择题 1. Print Format (123, ” ###说执行之后的结果为 A)# 123B) 123C) 123# D) # # # # 【答案】B 2. 下面可以表示注释语句开头的为 A)R e B R C Rem。dim 【答案】C 3. 下列选项中窗体载入事件为 A) Load 事件B) Click事件C) DblClick事件D) Unload 事件

【答案】A 4. Timer控件可以使用下列哪种事件 A) Click事件B) Timer 事件C) Dblclick 事件D) Change事件 【答案】B 5. 在InputBox函数中哪一个参数是必须的 A) Prompt B) Buttons C) Title D) Context 【答案】A 6. 以下叙述中错误的是: A)如果过程被定义为Static类型,则该过程中的局部变量都是Static类型 B) Sub过程中不能嵌套定义Sub过程 C) Sub过程可以嵌套调用Sub过程 D) 事件过程可以像通用过程一样由用户定义过程名 【答案】C 乙要填加一个标准模块,可使用“ 单中的添加模块”命令。 A)文件B)视图C)工程D)工具 【答案】C 8 .在块结构条件语句If-Then / Endif中 (A) 必须至少有一个Elseif语句 (B )可以有任意多个ElseIf-Then语句 (C)如果没有Else语句,运行时将出现错误

定时器实验报告

电子信息工程学系实验报告 课程名称:单片机原理及接口应用Array实验项目名称:51定时器实验实验时间: 班级:姓名:学号: 一、实验目的: 熟悉keil仿真软件、protues仿真软件的使用和单片机定时程序的编写。了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。 二、实验环境: 软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件 三、实验原理: 1、51单片机定时计数器的基本情况 8051型有两个十六位定时/计数器T0、T1,有四种工作方式。MCS-51系列单片机的定时/计数器有几个相关的特殊功能寄存器: 方式控制寄存器TMOD; 加法计数寄存器TH0、TH1 (高八位);TL0、TL1 (低八位); 定时/计数到标志TF0、TF1(中断控制寄存器TCON) 定时/计数器启停控制位TR0、TR1(TCON) 定时/计数器中断允许位ET0、ET1(中断允许寄存IE) 定时/计数器中断优先级控制位PT0、PT1(中断优IP) 2、51单片机的相关寄存器设置 方式控制寄存器TMOD: TMOD的低四位为T0的方式字,高四位为T1的方式字。TMOD不能位寻址,必须整体赋值。TMOD各位的含义如下: 1. 工作方式选择位M1、M0 3、51单片机定时器的工作过程(逻辑)方式一 方式1:当M1M0=01时,定时器工作于方式1。

T1工作于方式1时,由TH1作为高8位,TL1作为低8位,构成一个十六位的计数器。若T1工作于定时方式1,计数初值为a,晶振频率为12MHz,则T1从计数初值计数到溢出的定时时间为t =(216-a)μS。 4、51单片机的编程 使用MCS-51单片机的定时/计数器的步骤是: .设定TMOD,确定: 工作状态(用作定时器/计数器); 工作方式; 控制方式。 如:T1用于定时器、方式1,T0用于计数器、方式2,均用软件控制。则TMOD的值应为:0001 0110,即0x16。 .设置合适的计数初值,以产生期望的定时间隔。由于定时/计数器在方式0、方式1和方式2时的最大计数间隔取决于使用的晶振频率fosc,如下表所示,当需要的定时间隔较大时,要采用适当的方法,即将定时间隔分段处理。 计数初值的计算方法如下,设晶振频率为fosc,则定时/计数器计数频率为fosc/12,定时/计数器的计数总次数T_all在方式0、方式1和方式2时分别为213 = 8192、216 = 65536和28 = 256,定时间隔为T,计数初值为a,则有 T = 12×(T_all – a)/fosc a = T_all – T×fosc/12 a = – T×fosc/12 (注意单位) THx = a / 256;TLx = a % 256; .确定定时/计数器工作于查询方式还是中断方式,若工作于中断方式,则在初始化时开放定时/计数器的中断及总中断: ET0 = 1;EA = 1; 还需要编写中断服务函数: void T0_srv(void)interrupt 1 using 1 { TL0 = a % 256; TH0 = a / 256; 中断服务程序段} .启动定时器:TR0(TR1)= 1。 四、实验内容过程及结果分析: 利用protues仿真软件设计一个可以显示秒表时间的显示电路。利用实验板上的一位led数码管做显示,利用中断法编写定时程序,控制单片机定时器进行定时,所定时间为1s。刚开始led数码管显示9,每过一秒数码管显示值减一,当显示到0时返回9,依此反复。然后设计00-59的两位秒表显示程序。 (1)实现个位秒表,9-0

初三_vb期末考试试卷+答案

九年级期末VB 考试试卷 班级:学号:姓名: 123456789101112131415 一、选择题(每题两分,共十五题) 1.下列叙述中正确的是 (c) A. 只有窗体才是VB中的对象 B.只有控件才是VB中的对象 C. 窗体和控件都是VB中的对象 D.窗体和控件不是VB中的对象 2. 下列可以激活属性窗口的操作是(D) A. 用鼠标双击窗体的任何部位 B.执行“工程”菜单中的“工具箱”命令 C. 按 Ctrl+F4 键 D.按F4键 3. 下列不能打开工具箱窗口的操作是(B) A. 执行“视图”菜单中的“工具箱”命令 B.按 Alt+F8键 C. 单击工具栏上的“工具箱”按钮 D.按 Alt+V键,然后按 Alt+X键 4.假定已在窗体上画了多个控件,并有一个控件是活动的,为了在属性窗口中设置窗体的属性,预先 应执行的操作是 (A) A. 单击窗体上没有控件的地方 B.单击任一个控件 C. 不执行任何操作 D.双击窗体的标题栏 5. 为了把窗体上的某个控件变为活动的,应执行的操作是(C) A. 单击窗体的边框 B.单击该控件的内部 C. 双击该控件 D.双击窗体 6. 确定一个控件在窗体上的位置的属性是(D) A. Width 或 Height B. Width和 Height C. Top 或 Left D. Top和 Left 7. 确定一个窗体或控件的大小的属性是(B) A. Width 或 Height B. Width和 Height C. Top 或 Left D. Top和 Left 8. 为了同时改变一个活动控件的高度和宽度,正确的操作是( B) A. 拖拉控件 4 个角上的某个小方块 B.只能拖拉位于控件右下角的小方块 C. 只能拖拉位于控件左下角的小方块 D.不能同时改变控件的高度和宽度

05_STM32F4通用定时器详细讲解

STM32F4系列共有14个定时器,功能很强大。14个定时器分别为: 2个高级定时器:Timer1和Timer8 10个通用定时器:Timer2~timer5 和 timer9~timer14 2个基本定时器: timer6和timer7 本篇欲以通用定时器timer3为例,详细介绍定时器的各个方面,并对其PWM 功能做彻底的探讨。 Timer3是一个16位的定时器,有四个独立通道,分别对应着PA6 PA7 PB0 PB1 主要功能是:1输入捕获——测量脉冲长度。 2 输出波形——PWM 输出和单脉冲输出。 Timer3有4个时钟源: 1:内部时钟(CK_INT ),来自RCC 的TIMxCLK 2:外部时钟模式1:外部输入TI1FP1与TI2FP2 3:外部时钟模式2:外部触发输入TIMx_ETR ,仅适用于TIM2、TIM3、TIM4,TIM3,对应 着PD2引脚 4:内部触发输入:一个定时器触发另一个定时器。 时钟源可以通过TIMx_SMCR 相关位进行设置。这里我们使用内部时钟。 定时器挂在高速外设时钟APB1或低速外设时钟APB2上,时钟不超过内部高速时钟HCLK ,故当APBx_Prescaler 不为1时,定时器时钟为其2倍,当为1时,为了不超过HCLK ,定时器时钟等于HCLK 。 例如:我们一般配置系统时钟SYSCLK 为168MHz ,内部高速时钟 AHB=168Mhz ,APB1欲分频为4,(因为APB1最高时钟为42Mhz ),那么挂在APB1总线上的timer3时钟为84Mhz 。 《STM32F4xx 中文参考手册》的424~443页列出与通用定时器相关的寄存器一共20个, 以下列出与Timer3相关的寄存器及重要寄存器的简单介绍。 1 TIM3 控制寄存器 1 (TIM3_CR1) SYSCLK(最高 AHB_Prescaler APBx_Prescaler

大一VB期末考试试卷及答案

大一VB期末考试试卷及答案 1.在代码中引用一个控件时,应使用控件的( b )属性。 A.Caption B.Name C.Text D.Index 2.设变量x = 4,y = -1,a = 7,b = -8,下面表达式( a )的值为“假”。 A.x+a <= b-y B. x > 0 AND y < 0 C.a = b OR x>y D. x+y > a+b AND NOT (y < b) 3.表达式Int(Rnd*71)+10产生的随机整数范围是( c )。 A.(10,80) B.(10,81) C.[10,80] D.[10,81] 4.函数Sgn(3.1416)的返回值是( c )。 A.-1 B.0 C.1 D.以上都不对 5.67890属于( d )类型数据。 A.整型 B.单精度浮点数 C.货币型 D.长整型 6.下列变量名中正确的是( d )。 A.3S B.Print C.Select My Name D.Select_1 7.下列赋值语句( a )是有效的。 A.sum = sum -sum B.x+2 = x + 2 C.x + y = sum D.last = y / 0 8.以下的控件或方法具有输入和输出双重功能的为( b )。 A.Print B.Textbox C.Optionbutton D.Checkbox 9.若要获得列表框中被选中的列表项的内容,可以通过访问( d )属性来实现。 A.Name B.ListIndex C.ListCount D.Text 10.下列代码的运行结果为( b )。 Private Sub command1_click() Dim m(10)

vbvb期末考试实验答案作业

请参考10_2.exe程序的运行结果,新建一个工程,完成"调色板"程序的设计,该程序由红绿兰三原色进行调色,如果预览满意,单击"应用"按钮,将调好的颜色作为文本框中文字的颜色。将完成后的工程文件以Design.Vbp、窗体文件以Design.frm保存到D:\10_2目录下。 具体要求如下: 1. 应用程序界面设计参考图示。 2. 要求水平滚动条和颜色成分输入文本框分别采用控件数组实现。 3. 要求操作任意一个滚动条,都会在相应的文本框中显示该颜色成分的当前取值,并且动态改变预览框中长方形的颜色。[注意:滚动条最大值为255] 4. 要求在任意一个颜色成分输入文本框中输入一个0-255的数据,相应的滚动条的滑块都会移到正确的位置上,并且预览框中长方形的颜色也随之而调整。 5. 单击"应用"按钮后将调好的颜色作为文本框中文字的颜色。 思考题:拖动滚动条时有没有触发滚动条的Change事件? 提示: 1. 应用程序界面设计参考图示。 程序界面右下角的预览框架里的长方形是形状控件Shape1(工具箱中的),将其FillStyle属性设置为0。 2. 要求水平滚动条和颜色成分输入文本框分别采用控件数组实现。 三个滚动条的Min设为0,Max设为255;三个文本框的Text属性设为空字串。

3. 要求操作任意一个滚动条,都会在相应的文本框中显示该颜色成分的当前取值,并且动态改变预览框中长方形的颜色。 颜色是利用Rgb(r,g,b)函数来表示,其中r,g,b是红、绿、兰颜色的饱和度,分别通过滚动条来控制。 Private Sub HScroll1_Change(Index As Integer) Text1(Index).Text = HScroll1(Index).Value Shape1.FillColor = RGB(HScroll1(0).Value, HScroll1(1).Value, HScroll1(2).Value) End Sub 4. 要求在任意一个颜色成分输入文本框中输入一个0—255的数据,相应的滚动条的滑块都会移到正确的位置上,并且预览框中长方形的颜色也随之而调整。 设计文本框的Change事件: Private Sub Text1_Change(Index As Integer) HScroll1(Index).Value = Val(Text1(Index).Text) End Sub 5. 单击“应用”按钮后将调好的颜色作为文本框中文字的颜色。 Text2.ForeColor = Shape1.FillColor 下载10_1.exe 请参考10_1.exe程序的运行结果,新建一个工程,完成"过程练习"程序的设计,并将工程文件以Design.Vbp、窗体文件以Design.frm保存到D:\10_1目录下。 具体要求如下: 1. 各题必须按要求用通用过程或函数过程进行编程。 2. "第一题":编写一个求n!的阶乘函数F(n),利用该函数计算二项式系数Cmn=m!/(n!*(m-n)!);其中m>=n;m和n从键盘输入。 3. "第二题":编写一个求1+2+……+n的函数Sum(n),利用该函数计算1+(1+2)+(1+2+3)+……+(1+2+……+100)的和。 4. "第三题":编写一个三个数中求最大数的函数过程Max(x,y,z)。随机产生7个∈[0,50]之间的整数,然后用这个函数过程分别求出前三个数的最大值、前五个数的最大值以及这七个数中的最大值。 5. "第四题":编写一个每行可以打印5个下标变量的打印数组的通用过程,。随机产生一个∈[100,500]、有20个下标变量的数组,调用该通用过程打印出原始数据;再将该数组中的偶数组成一个新的数组,再调用该通用过程打印出偶数数组。 思考题:通用过程与函数过程的区别? 提示:

单片机定时器实验报告

XXXX大学信息工程与自动化学院学生实验报告 (2009 —2010 学年第二学期) 课程名称:单片机开课实验室: 2010年 5月14日 一.实验目的: 掌握定时器T0、T1的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 二.实验原理: MCS-51单片机内设置了两个可编程的16位定时器T0和T1,通过编程,可以设定为定时器和外部计数方式。T1还可以作为其串行口的波特率发生器。 定时器T0由特殊功能寄存器TL0和TH0构成,定时器T1由TH1和TL1构成,特殊功能寄存器TMOD控制定时器的工作方式,TCON控制其运行。定时器的中断由中断允许寄存器IE,中断优先权寄存器IP中的相应位进行控制。定时器T0的中断入口地址为000BH,T1的中断入口地址为001BH。 定时器的编程包括: 1)置工作方式。 2)置计数初值。 3)中断设置。 4)启动定时器。 定时器/计数器由四种工作方式,所用的计数位数不同,因此,定时计数常数也就不同。

在编写中断服务程序时,应该清楚中断响应过程:CPU执行中断服务程序之前,自动将程序计数器PC内容(即断点地址)压入堆栈保护(但不保护状态寄存器PSW,更不保护累加器A和其它寄存器内容),然后将对应的中断矢量装入程序计数器PC使程序转向该中断矢量地址单元中以执行中断服务程序。定时器T0和T1对应的中断矢量地址分别为000BH 和001BH。 中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。“RETI”指令的操作一方面告诉中断系统该中断服务程序已经执行完毕,另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入到程序计数器PC,使程序返回到被到中断的程序断点处,以便继续执行。 因此,我们在编写中断服务程序时注意。 1.在中断矢量地址单元放一条无条件转移指令,使中断服务程序可以灵活地安排在64K 字节程序存储器的任何空间。 2.在中断服务程序中应特别注意用软件保护现场,以免中断返回后,丢失原寄存器、累加器的信息。 3.若要使执行的当前中断程序禁止更高优先级中断,可以先用软件关闭CPU中断,或禁止某中断源中断,在返回前再开放中断。 三.实验内容: 编写并调试一个程序,用AT89C51的T0工作方式1产生1s的定时时间,作为秒计数时间,当1s产生时,秒计数加1;秒计数到60时,自动从0开始。实验电路原理如图1所示。 计算初值公式 定时模式1 th0=(216-定时时间) /256 tl0=(216-定时时间) mod 256

23.Step7如何将定时器(Timer)的剩余时间转为浮点数

【S7-300】Step7如何将定时器(Timer)的剩余时间转为浮点数 在Step7中定时器(Timer)的输出参数BI、BCD,是其剩余时间的两种数据格式。BI以整数Int格式显示,BCD以BCD格式显示。如何将BI、BCD转为秒为单位的浮点数(Real),下面提供了思路和例程。 1 定时器(Timer)的参数说明 定时器(Timer)在编程中大量使用,有时会用到其剩余时间,例如用剩余时间进行其他运算和编程,或者在其它厂家的触摸屏上显示。这时,需将定时器的剩余时间转为浮点数(Real),以秒为单位。 下面是调用定时器的程序截图,预设定时时间为1分钟为例。

首先,分析定时器的各参数含义,按鼠标左键点击定时器框图后按F1键会看到step7帮助信息,如下图。 由此可见输出参数BI、BCD是定时器剩余时间的两种数据格式。BI以整数Int 格式显示,BCD以BCD格式显示。注意,此处BCD格式即是S5Time格式,其数据结构和时基如下:

明显看出,参数BI转为秒为单位的浮点数,必须利用参数BCD的时基。参数BCD转为秒为单位的浮点数,需调用库函数FC33(S5TI_TIM)。 2 剩余时间参数BI,转为秒为单位的浮点数(Real) 思路:参数BI -> 整数INT -> 双整数DI -> 浮点数Real -> 取参数BCD的时基-> 根据不同时基,转为秒为单位的浮点数Real。编程如下:

3 剩余时间参数BCD,转为秒为单位的浮点数(Real) 思路:参数BCD -> 时间S5Time -> 库函数FC33(S5TI_TIM) -> 时间Time -> 双整数DI -> 浮点数Real -> 除以1000.0,转为秒为单位的浮点数Real。编程如下: 4 结果显示 本例程中,定时器的预设定时时间为1分钟,启动定时器,截图如下。 可见,截图时定时器剩余时间为30s500ms,参数BI和BCD转为秒为单位的浮点数,均为30.5秒。

大一的vb期末考试题和答案

大一的vb期末考试题和答案 1.在代码中引用一个控件时,应使用控件的()属性。 A.Caption B.Name C.Text D.Index 2.设变量x = 4,y = -1,a = 7,b = -8,下面表达式()的值为“假”。 A.x+a <=b-y B.x>0 AND y<0 C.a = b OR x>y D. x+y > a+b AND NOT (y < b) 3.表达式Int(Rnd*71)+10产生的随机整数范围是()。 A.(10,80) B.(10,81) C.[10,80] D.[10,81] 4.函数Sgn(3.1416)的返回值是()。 A.-1 B.0 C.1 D.以上都不对 5.67890属于()类型数据。 A.整型 B.单精度浮点数 C.货币 型 D.长整型 6.下列变量名中正确的是()。

A.3S B.Print C.Select My Name D.Select_1 7.下列赋值语句()是有效的。 A.sum=sum-sum B.x+2=x+2 C.x+y = sum D.last = y / 0 8.以下的控件或方法具有输入和输出双重功能的为()。 A.Print B.Textbox C.Optionbutto n D.Checkbox 9.若要获得列表框中被选中的列表项的内容,可以通过访问()属性来实现。 https://www.sodocs.net/doc/a05769625.html, B.ListIndex C.ListCount D.Text 10.下列代码的运行结果为()。 Private Sub command1_click() Dim m(10) For k = 1 To 10 m(k) = 11 - k Next k x = 5

单片机实验报告——定时器

实验四定时器实验 自动化121班1202100236 张礼 一.实验目的 掌握定时器的工作原理及四种工作方式,掌握定时器计数初始值的计算,掌握如何对定时器进行初始化,以及程序中如何使用定时器进行定时。 二.实验仪器 单片机开发板一套,计算机一台。 三.实验任务 编写程序,使用单片机开发板上8位共阴极数码管的其中一位来显示0~9这九个字符,先从“0”开始显示,数字依次递增,当显示完“9”这个字符后,又从“0”开始显示,循环往复,每1秒钟变换一个字符,1秒钟的定时时间必须由定时器T0(或T1)提供。 开发板上的8位共阴极数码管与单片机的输入输出端口P1的硬件接线如图4-1所示,单片机P1口的8条数据线通过J3端子同时连接到2片74HC573D锁存器的输入端,数码管的各个同名端分别连接后再与锁存器U2的8个输出端相连,每一位数码管的位选端分别与锁存器U3的8个输出端相连。两片锁存器的输出使能端OE都恒接地,使得锁存器的内部数据保持器输出端与锁存器的输出端保持接通。而U2的锁存使能端LE由P2.1控制,所

以P2.1是段锁存;U3的锁存使能端LE由P2.0控制,所以P2.0是位锁存。当锁存使能端为“1”时,则锁存器输入端的数据传送到输出端;当锁存使能端为“0”时,锁存器输入端的数据则不能传送到输出端;因此段码和位码通过锁存器分时输出。 汇编语言程序流程如图4-2: 四.实验步骤: 1.数码管的0~9的字型码表如下: 2.参考图4-2所给的程序流程图编写实验程序。(注:以下程序为两位60秒计数程序) #include sbit wei=P2^0; sbit duan=P2^1; char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

vbvb期末考试实验答案

下载10_1.exe 请参考10_1.exe程序的运行结果,新建一个工程,完成"过程练习"程序的设计,并将工程文件以Design.Vbp、窗体文件以Design.frm保存到D:\10_1目录下。 具体要求如下: 1. 各题必须按要求用通用过程或函数过程进行编程。 2. "第一题":编写一个求n!的阶乘函数F(n),利用该函数计算二项式系数Cmn=m!/(n!*(m-n)!);其中m>=n;m和n从键盘输入。 3. "第二题":编写一个求1+2+……+n的函数Sum(n),利用该函数计算1+(1+2)+(1+2+3)+……+(1+2+……+100)的和。 4. "第三题":编写一个三个数中求最大数的函数过程Max(x,y,z)。随机产生7个∈[0,50]之间的整数,然后用这个函数过程分别求出前三个数的最大值、前五个数的最大值以及这七个数中的最大值。 5. "第四题":编写一个每行可以打印5个下标变量的打印数组的通用过程,。随机产生一个∈[100,500]、有20个下标变量的数组,调用该通用过程打印出原始数据;再将该数组中的偶数组成一个新的数组,再调用该通用过程打印出偶数数组。 思考题:通用过程与函数过程的区别? 提示: 1. 各题必须按要求用通用过程或函数过程进行编程。 2. “第一题”:编写一个求n!的阶乘函数F(n),利用该函数计算二项式系数Cmn=m!/(n!*(m-n)!);其中m>=n;m和n从键盘输入。 阶乘自定义函数F(n)的编写参考上课讲义 计算二项式系数Cmn可以通过调用F(n)函数完成:cmn=F(m)/(F(n)*F(m-n)) 3. “第二题”:编写一个求1+2+……+n的函数Sum(n),利用该函数计算1+(1+2)+(1+2+3)+……+(1+2+……+100)的和。 自定义函数Sum(n)的编写: Function Sum(n As Integer) As Long ……'编写s=1+2+...+n的程序段 Sum=s '将计算结果赋值给函数名 End Function 计算1+(1+2)+(1+2+3)+……+(1+2+……+100)的和就转化为计算Sum(1)+Sum(2)+Sum(3)+……+Sum(100)的编程。 参考计算1!+2!+……+10!的程序 4. “第三题”:编写一个三个数中求最大数的函数过程Max(x,y,z)。随机产生7个∈[0,50]之间的整数,然后用这个函数过程分别求出前三个数的最大值、前五个数的最大值以及这七个数中的最大值。

嵌入式系统流水灯,按键,定时器实验报告

嵌入式系统应用 实验报告 姓名: 学号: 学院: 专业: 班级: 指导教师:

实验1、流水灯实验 1.1实验要求 编程控制实验板上LED灯轮流点亮、熄灭,中间间隔一定时间。 1.2原理分析 实验主要考察对STM32F10X系列单片机GPIO的输出操作。 参阅数据手册可知,通过软件编程,GPIO可以配置成以下几种模式: ◇输入浮空 ◇输入上拉 ◇输入下拉 ◇模拟输入 ◇开漏输出 ◇推挽式输出 ◇推挽式复用功能 ◇开漏式复用功能 根据实验要求,应该首先将GPIO配置为推挽输出模式。 由原理图可知,单片机GPIO输出信号经过74HC244缓冲器,连接LED灯。由于74HC244的OE1和OE2都接地,为相同电平,故A端电平与Y端电平相同且LED灯共阳,所以,如果要点亮LED,GPIO应输出低电平。反之,LED灯熄灭。 1.3程序分析 软件方面,在程序启动时,调用SystemInit()函数(见附录1),对系统时钟等关键部分进行初始化,然后再对GPIO进行配置。 GPIO配置函数为SZ_STM32_LEDInit()(见附录2),函数中首先使能GPIO 时钟: RCC_APB2PeriphClockCmd(GPIO_CLK[Led], ENABLE); 然后配置GPIO输入输出模式: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 再配置GPIO端口翻转速度:

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 最后将配置好的参数写入寄存器,初始化完成: GPIO_Init(GPIO_PORT[Led], &GPIO_InitStructure)。 初始化完成后,程序循环点亮一个LED并熄灭其他LED,中间通过Delay()函数进行延时,达到流水灯的效果(程序完整代码见附录3)。 实验程序流程图如下: 硬件方面,根据实验指南,将实验板做如下连接: 1.3实验结果

定时器Timer实时修改时间间隔(周期)

1.定时器Timer当时间间隔(周期)变化时,实时去修改 我项目中主要是实现在某个时间段上午8:00-12:00,下午 2:00(pm_start)-19:00(pm_end),每隔3分钟(pm_time)(可以手动设置)自动上传当前的位置(google的定位) // 执行定时任务 privateboolean bool= true;// true表示服务器与本地数据相同,false表示服务器与本地数据不相同 privatevoid start_schedule_pm() { final Timer timer = new Timer(); timerTask = new TimerTask() { @Override publicvoid run() { //当不相同时取消timer重新new一个timer if (!bool) { if (timer != null) { Log.e("%%%%", bool + ""); timerTask.cancel(); timer.cancel(); start_schedule_pm(); bool = true;

return; } } if ((getCurrentTime() - 12) >= Double.valueOf(pm_end)) { timerTask.cancel(); timer.cancel(); //我的是在android service里跑的程序,所以关闭了service stopSelf(); return; } if (!AppUtils.checkNet(getApplicationContext())) { Log.d("data", "网络未连接"); return; } Log.d("data", "新任务开始");

VB期末考试上机题编程答案

VB期末考试上机题编程答案 1.新建一个工程,编写一个找出所有四位荣幸数显示在列表框中,并将荣幸数的个数显示在文本框中。所谓荣幸数是指凡前两位数字之和等于后两位数字之和的四位数。将原窗体文件和工程文件分别另存为为和,保存在D盘的VBTest文件夹中。如不按要求保存,造成文件无法上传,后果自负! 详尽要求: 1、程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见; 2、单击“查找“按钮,则开始查找并在列表框中显示结果,并在文本框中显示荣幸数的个数; 3、单击“清除”按钮,则将列表框和文本框清空; 4、单击“退出”按钮,结束程序运行; 5、程序中应包含一个过程,用于判断一个数是否是荣幸数。 解:Private Sub Command1_Click() Dim i As Integer, a As Integer For i = 1000 To 9999 If k(i) Then i: a = a + 1 Next i = a End Sub Private Sub Command2_Click() = ““ End Sub Private Sub Command3_Click()

End End Sub Private Function k(n As Integer) As Integer Dim i As Integer, a As Integer, s1 As Integer, s2 As Integer Dim s As String s = CStr(n) For i = 1 To Len(s) / 2 s1 = s1 + Mid(s, i, 1) s2 = s2 + Mid(s, Len(s) + 1 - i, 1) Next i If s1 = s2 Then k = True End Function 2.新建一个工程,编写求某一自然数因子和的程序。要求通过文本框获取输入的自然数,计算后将所计算得到的因子和显示在另一文本框中。将原窗体文件和工程文件分别另存为为和,保存在D盘的VBTest文件夹中。如不按要求保存,造成文件无法上传,后果自负! 详尽要求: 1、程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见; 2、单击“求和“按钮,则在文本框中显示计算得到的因子和; 3、单击“清除”按钮,则将文本框清空,焦点设置在第一个文本框; 4、单击“退出”按钮,结束程序运行;

单片机定时器实验报告

( 2009 —2010 学年第二学期) 课程名称:单片机开课实验室: 2010年 5月14日 一.实验目的: 掌握定时器T0、T1的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 二.实验原理: MCS-51单片机内设置了两个可编程的16位定时器T0和T1,通过编程,可以设定为定时器和外部计数方式。T1还可以作为其串行口的波特率发生器。 定时器T0由特殊功能寄存器TL0和TH0构成,定时器T1由TH1和TL1构成,特殊功能寄存器TMOD控制定时器的工作方式,TCON控制其运行。定时器的中断由中断允许寄存器IE,中断优先权寄存器IP中的相应位进行控制。定时器T0的中断入口地址为000BH,T1的中断入口地址为001BH。 定时器的编程包括: 1)置工作方式。 2)置计数初值。 3)中断设置。 4)启动定时器。 定时器/计数器由四种工作方式,所用的计数位数不同,因此,定时计数常数也就不同。 在编写中断服务程序时,应该清楚中断响应过程:CPU执行中断服务程序之前,自动

将程序计数器PC内容(即断点地址)压入堆栈保护(但不保护状态寄存器PSW,更不保护累加器A和其它寄存器内容),然后将对应的中断矢量装入程序计数器PC使程序转向该中断矢量地址单元中以执行中断服务程序。定时器T0和T1对应的中断矢量地址分别为000BH 和001BH。 中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。“RETI”指令的操作一方面告诉中断系统该中断服务程序已经执行完毕,另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入到程序计数器PC,使程序返回到被到中断的程序断点处,以便继续执行。 因此,我们在编写中断服务程序时注意。 1.在中断矢量地址单元放一条无条件转移指令,使中断服务程序可以灵活地安排在64K 字节程序存储器的任何空间。 2.在中断服务程序中应特别注意用软件保护现场,以免中断返回后,丢失原寄存器、累加器的信息。 3.若要使执行的当前中断程序禁止更高优先级中断,可以先用软件关闭CPU中断,或禁止某中断源中断,在返回前再开放中断。 三.实验内容: 编写并调试一个程序,用AT89C51的T0工作方式1产生1s的定时时间,作为秒计数时间,当1s产生时,秒计数加1;秒计数到60时,自动从0开始。实验电路原理如图1所示。 计算初值公式 定时模式1 th0=(216-定时时间) /256 tl0=(216-定时时间) mod 256

VB期末考试题库及答案

试卷方案:201105 Visual Basic 期末考试方案 一、单项选择_共50题(选:20题*1’=20分) 第1题 以下有关对象属性的说法中,错误的是___________. A. 工具箱中的控件并不是VB 中所有的控件 B. 若将Frame 的Enabled 属性设置为False ,则不能使用放置在Frame 里面的控件 C. 对象的Name 属性在运行时不能改变 D. 对象的所有属性都可以在属性窗口中设置 第2题 数学表达式 ||27sin 3 y x e x +++ 的VB 算术表达式为_______ . A. Sin(27)+Sqr(x+Exp3)/(x+y) B. Sin(27*3.14159/180)+Sqr(x+Exp(3))/Abs(x+y) C. Sin(27*3.14159/180)+Sqr(x+e^3)/Abs(x+y) D. Sin(27*pi/180)+Sqr(x+Exp(3)/Abs(x+y) 第3题 下列有关对象的叙述中,正确的是______ A. 对象由属性,事件和方法构成 B. 对象的所有属性既可以在属性窗口设置,又可以在程序运行时用赋值语句设置 C. 对象的事件一定就是由VB 预先设置好的人工干预的动作 D. 对象的方法是对象响应某个事件后执行的一段程序代码 第4题 表达式CInt(4.5)+Cint(-4.51)+Int(4.9)+Int(-4.1)+Fix(-1.9)+0 Mod 2的运算结果是___. A. 1 B. -1 C. –2 D. –3 第5题 下列关于菜单的说法中,错误的是__________. A. 每一个菜单项就是一个对象,并且可设置自己的属性和事件 B. 菜单项不可以响应DblClick 事件 C. VB6.0允许创建超过四级的子菜单 D. 程序执行时,如果要求菜单项是灰色,不能被用户选择,则应设置菜单项的Enabled 属性为False 第6题 以下关于数组的说法中,错误的是__________. A. 使用了Preserve 子句的Redim 语句,只允许改变数组最后一维的上界 B. 对于动态数组, Redim 语句可以改变其维界但不可以改变其数据类型 C. Erase 语句的功能只是对固定大小的数组进行初始化 D. Lbound 函数返回值是指定数组某一维的下界 第7题 设a=3,b=2,c=1,运行print a>b>c 的结果是____________. A. True B. False C. 1 D. 出错 第8题

相关主题