第一篇:实验二 定时器程序设计121
一、实验目的学会使用单片机定时器产生定时中断,并利用定时中断产生更长时间延时。
二、实验设备及器件
IBM PC机
一台
DP-51PRO.NET单片机仿真器、编程器、实验仪三合一综合开发平台
三、实验内容
1.实验二 定时器程序设计
2.编写程序,使P10端口来控制LED闪烁 3.C语言程序
//1ms定时中断实现100ms发光管闪烁 #include“REG51.h” sbit LED=P1^0;void main(void){ TMOD = 0x01;//设置定时器模式 16位定时器
TL0 = 0x18;//设置定时初值
TH0 = 0xFC;//设置定时初值
TR0 = 1;//定时器T0开始计时
ET0=1;//开定时器中断
EA=1;
//开总中断
while(1);}
//******************** //1ms void pit0(void)interrupt 1(中断程序){ static unsigned char ms_cnt=0;//16 ffff TL0 = 0x18;//设置定时初值
TH0 = 0xFC;//设置定时初值
if(++ms_cnt==100){
ms_cnt=0;
LED=!LED;} } 定时器的由程序
直接汇编语言 ORG 0 AJMP MAIN ORG 0BH AJMP PIT0 MAIN: MOV TMOD,#01H MOV TH0,#18H MOV TL0,#0FCH SETB TR0 SETB ET0 SETB EA SJMP $
生成;********************************** PIT0: MOV TH0,#18H MOV TL0,#0FCH INC R7 CJNE R7,#100,PIT0_R MOV R7,#0 CPL P1.0 PIT0_R: RETI END
四 实验要求
学会使用并掌握单片机定时器中断来实现LED100ms闪烁。
五 实验步骤
1.调试运行本节实验程序。若程序无错误,编译并进行二进制转换,下载程序。
2.连接线路,将A2区的P10端口连接到D1区的任意LED接口。3.观察LED灯闪烁情况
第二篇:实验二 单片机定时器和计数器编程
仲恺农业工程学院实验报告纸
信息学院(院、系)专业班组单片机原理及接口技术课实验二单片机定时器/计数器编程
一、实验目的1、掌握单片机定时器/计数器的工作方式;
2、掌握单片机定时器/计数器的编程方法。
二、实验内容
1、学习单片机定时器/计数器的工作方式、初始化以及应用等;
2、利用单片机定时器/计数器编写程序驱动开发板上的led和蜂鸣器按一定规律工作。
三、实验设备
1、STC单片机开发板;
2、PC机以及串口线。
四、实验步骤
参考实验指导书。
五、实验总结
第三篇:C语言程序设计实验二
C语言程序设计实验
(二)[实验1]
1.实验题目
下列各题的算法用传统流程图及N-S流程图两种方式表示:
(1)输出图形(顺序结构)
★★★★★★★★
★★★★★★★★
★★★★★★★★
★★★★★★★★
(2)判断用户输入的字符是数字字符、字母字符还是其它字符。(选择结构)
(3)运用循环结构打印如下图形(for循环结构)。
◆
◆◆◆
◆◆◆◆◆
◆◆◆◆◆◆◆
◆◆◆◆◆◆◆◆◆
(4)输入任意数N,求P的值(P=N!)(当型循环结构)
(5)输出1~N间20个不能被3整除的数列(直到型循环结构)
(6)计算并打印九九表。(直到型循环结构)
2.实验目标
(1)熟练掌握流程图表示算法的方法。
(2)熟练掌握结构化程序设计的三种基本结构。
[实验2] 变量的变化情况。
1.实验题目
有以下程序
#include
#definea 3*2+1
#defineA a*a+a
#defineb(3*2+1)
#defineB(b)*(b)+(b)
main()
{
int x1,x2;
int y1,y2;
x1=a*a;
y1=A*A;
x2=b*b;
y2=B*B;//换为y2=(A)*(A)结果是否相同
printf(“x=%d tty=%dn”,x1,y1);
printf(“x=%dtty=%dn”,x2,y2);
}用逐行断点测试方法,体会程序运行时各变量值的变化情况。
2.实验要求
(1)在上机实验之前先将每执行一条语句后变量x1、x2和y1、y2的预期结果写在相应语句旁。
(2)设置4个监视项x1、x2和y1、y2,断点逐行测试执行程序。
(3)每执行一条语句后,对比Watch窗口中变量x1、x2和y1、y2的值与预期的值是否一致,若不一致,请解释原因。
(4)将语句“y2=B*B;”换为“y2=(A)*(A)”,测试结果是否相同,为什么?
(5)运行结束后查看输出结果,确认该结果是否与预期的值一致。
3.实验目标
(1)宏定义的正确定义。
(2)宏定义的正确使用。
第四篇:实验二 简单的C程序设计
实验二
简单的C程序设计
实验目的:
1.掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。
2.通过编程进一步理解和掌握运算符的确切含义和功能。
3.理解和掌握运算符与运算对象的关系,优先级和结合方向。
1.通过编程,掌握C语言的几种基本数据类型,int、char、flloat、double,以及由这些基本数据类型构成的常量和变量的使用方法。
2.掌握基本输入/输出函数的使用方法,包括printf()、scanf()、getchar()、putchar()。3.掌握简单的C程序的查错方法。实验内容:
一、输入程序,观察输出结果,并对输出结果作出合理的解释。1./* e1.cpp */ #include
{
float x;double y;x=213.82631;y=213.82631;printf(“%-4.2f,-6.2en”,x,y);}
输出结果: 解释:
2./* e2.cpp */ #include
char ch;
int k;
ch=’a’;k=10;
printf(“%d,%x,%o,%c”,ch,ch,ch,ch,k);
printf(“k=%%dn”,k);
} 输出结果:
解释:
3./* e3.cpp */
#include
double b1,b2;
a1=3141.59;a2=0.000001;
b1=3141.59;b2=0.000001;
printf(“%f,%lfn”,a1+a2,b1+b2);
} 输出结果:
解释:
4. /* e4.cpp */ #include
float x=5/2,y=5.0/2;
printf(“x=%f,y=%fn”,x,y);} 输出结果:
解释:
二、编写程序。
1. 编程(c1.cpp)定义3个整型变量x,y,z和一个实型变量averge,计算并输出3个整数的平均值averge,其中x=y=1,z=0。观察运行结果。再将x,y,z和averge改为实型变量,再观察运行结果。理解整除和不同类型数据进行混合运算的转化规律,对结果进行合理的解释。源程序:
输出结果: 解释:
2. 改写程序(c2.cpp),针对上一题要求,采用从键盘用scanf()函数输入x,y,z的值。要求输出结果的形式为averge=…。
源程序:
输出结果: 解释:
3. 输入3个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,把b原来的值给c,把c中原来的值给a。源程序:
输出结果:
三、调示示例。1. 求华氏温度100。F对应的摄氏温度。计算公式:C=(5/9)(F-32),其中C表示摄氏温度,F表示华氏温度。源程序(有错误)#include
int celsius;fahr;fahr=100;celsius=5*(fahr-32)/9;printf(“fahr=d,celsius=%dn”,fahr,celsius);} 1)输入源程序。
2)实验一中用菜单完成编译、连接和运行,现在介绍工具栏的使用方法。在工具栏
或菜单栏上单击鼠标右键,出现如图所示的整个工具箱,在“编译”或“编译微型条”项前打上“√”。
图中第1个按钮为“Compile”(编译,Ctrl+F7),第2个按钮为“Build”(构件,F7),第4个按钮为“Build Execute”(执行,Ctrl+F5)。3)单击“编译”工具条中的第1个按钮,出现第一个错误信息:
Cannot open include file: 'stdoi.h': No such file or directory(不能打开stdoi.h)
改正(应该是stdio.h)后,重新编译,新产生的第一个错误信息是:
'fahr' : undeclared identifier(“fahr”变量没有定义)改正:将fahr前的分号改为逗号,重新编译,编译正确。
4)单击“编译”工具条中的第2个按钮,连接正确。
5)单击“编译”工具条中的第4个按钮,运行结果为 :
fahr=d,Celsius=100
不符合题目的要求,仔细检查源程序,发现函数printf()中的d应为%d,改正的,重新连接和运行,运行结果与题目要求的结果一致,程序调试结束。
2. 改错,计算某个数x的平方y,并以算术公式的形式输出x和y的值.请不要删除源程序中的任何注释。输入输出示例(假设x的值为3): 9=3*3 3*3=9 #include
int y;
y=x*x;
printf(“%d=%d*%d”,x);
/* 输出
printf(“d*%d=%d”,y);
}
改正后的源程序:
实验报告要求
将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。
第五篇:课程设计论文--基于labview的定时器程序设计
基于labview的定时器程序设计
目录
1.程序设计背景„„„„„„„„„„„„„„„„„„„„„„„„„„3
1.1.labview定时器的介绍„„„„„„„„„„„„„„„„„„„„„3
2.程序介绍„„„„„„„„„„„„„„„„„„„„„„„„„„„„3
a、主要用途和功能„„„„„„„„„„„„„„„„„„„„„„„4
b、前面板图和主要部件的功能„„„„„„„„„„„„„„„„„„„5
c、程序框图„„„„„„„„„„„„„„„„„„„„„„„„„„„6
3.程序改进„„„„„„„„„„„„„„„„„„„„„„„„„„„„8
4.程序界面及层次关系„„„„„„„„„„„„„„„„„„„„„„9
5.存在的一些问题„„„„„„„„„„„„„„„„„„„„„„„„10
6.程序来源说明„„„„„„„„„„„„„„„„„„„„„„„ 10
1.程序设计背景
定时器在家用电器中经常用于延时自动关机、定时。延时自动关机用于:收音机、电视机、录音机、催眠器、门灯、路灯、汽车头灯、转弯灯以及其他电器的延时断电及延时自停电源等。定时可用于:照相机曝光、定时闪光、定时放大、定时调速、定时烘箱、冰箱门开定时报警、水位定时报警、延时催眠器、延时电铃、延时电子锁、触摸定时开关等。例如空调中的定时器,在工作一段时间后便能自动切断电源停止工作。夏季夜间使用,入睡前先设好预定时间,等睡熟后到了预定时间,空调自动关机。方便节能。定时器除了应用于家电之外 还广泛应用于工农业生产和服务设施,军事等。发展前景
传统的定时器大多数是发条驱动式、电机传动式或电钟式等机械定时器,部分电子器械中也有试用时间继电器的。相对于传统的定时器,电子定时器的体积小,重量轻。造价低。精度高、寿命长,而且安全可靠,调整方便,适于频繁的使用。同时随着现代电子技术的不断发展,定时器也在不断更新,朝着更多用途,更高精度,更小体积发展着。
Labview的定时器:
1.为什么要使用定时: 一般来说在循环中,我们都会添加一个定时器。他们的作用主要有2 个:
1.控制代码执行的速率:简单的来说,如果在循环中添加了定时,就可以控制循环以一定间隔重复执行;或者在串口通信中,在发送指令后等待指定的时间再读返回值。
2.降低CPU 占用率:如果没有设置定时,CPU 的大部分资源会一直被该线程占用,而无法执行其他线程。2.定时VI 用法:
在LabVIEW 中的常用定时有等待(ms)倍毫秒
1. 等待(ms)
该VI 的输入端为整型,单位是ms。指定代码执行的时间间隔。举例来说,连入VI 的输入为10ms,如果循环中代码的运行时间是3ms,那么每次循环的时间是10ms;如果循环中代码的运行时间是14 毫秒(大于10ms),那么每次的循环的时间是14ms。
(Windows 下软件定时的精度在1 个ms 左右,所以实际的情况会有1ms 左右的误差)
2. 等待到下一个整数倍毫秒
该VI 输入为整型,单位是ms。该VI 将定时和系统的时钟对应起来,使用该定时VI 后,代码将在系统时钟为定时时间的整数倍执行。使用该定时VI 的第一次运行时间间隔是不确定的。比如设定定时为1000ms,对于第一次运行,无论当前时间是50ms 还是850ms,都将在下一次1000ms 的整数倍时间第二次运行该代码,那么实际的间隔分别是950ms 和150ms。
3.定时的精度: 对于上面提到的定时VI,输入的单位都是ms,但是实际运行的最小间隔在2ms 以上。这是因为Windows 操作系统中,对线程的操作最小的间隔是2ms。
4.使用定时的注意事项:
在使用等待到下一个整数倍毫秒时需要注意,当该VI 处于等待状态时,整个线程都将处于等待状态。在对时间要求较高的实时系统中,往往不可以简单的将该定时VI 和代码并行的放置。
,和等待到下一个整数程序介绍
a、主要用途和功能 在测量过程中,有时需要测量、记录数据在2小时内的分布情况(稳定性、波动性);有时需要每10分钟测量一次数据并保存结果。这就需要有一个定时器或倒计时器来控制测量的过程,利用“已用时间”快速vi做了一个既有“定时”功能又有“倒计时”功能的vi,基本上满足应用程序的设计要求。
该vi的定时精度不是很高,大概在正、负1s左右,基本上可以满足工程上的使用要求。
b、前面板图和主要部件的功能
定时时间选择——这是一个枚举控件,用来选择定时或倒计时的时间间隔。设计时定义了一些常用时间的数据列表。
定时器(倒计时器)——这是一个开关控件,用来选择是定时功能还是倒计时功能。开始计时后将被灰化(运行时不可再操作)。
停止(开始)——这是一个开关控件,用来控制是否开始计时。开始计时后将被灰化(运行时不可再操作)。
定时持续时间——这是一个字符显示控件,用来实时显示定时或倒计时的时间间隔数值。
强行停止计时——这是一个开关控件,用来强行停止计时过程(退出计时)。
c、程序框图
整个程序框图
程序在执行时,首先通过选择按钮,选择是定时器模式还是倒计时模式,然后经过每局按钮确定定时时间,再按下开始,若在定时器模式下,则定时显示时间从0递增到枚举选择的时间,此过程中按钮变灰,不可用,到点时,由开始转为停止,所有键可用。倒计时器模式与此过程大致相同,唯一不同便是计数从预设值递减为0。程序在执行过程中可用确定强制退出键退出。
计时的功能由“已用时间”实现,枚举的数值为其上限,在定时器模式,已用时间直接输出到格式化日期,再到时间显示控件。在倒计数器模式,已用时间输出数据先与枚举数做减法运算,在输入到格式化日期。
中断循环由已用时间的结束输出、强行停止键、过程错误输出三者通过逻辑与接到中止键。
程序改进
上述程序过于简单,现做改进如下:
1.将枚举控件用一个数值输入控件代替,这样就可以自行确定定时或倒计时的时间,从而扩大了程序适用的范围。(注意输入的数值以分钟记)
2.为了更好的达到倒计时预警的效果,现加入LED灯进行倒计时小于10时的显示,从而更加直观,鲜明,同时为了不影响程序的观看效果,LED灯只在倒计时的最后10秒出现,其余情况皆为不可见。3.在程序设计中使用属性节点,比如本例中:利用属性节点将程序运行过程中的操作限定在唯一性上,可以降低操作者的误操作可能性。本程序运行时,要么等待定时结束,要么由操作者强行停止计时。
4.新增一个图片下拉表,它的可视性与LED灯的情况相同。
5当定时时间到时,发出声音报警。整体程序图
程序界面
存在的一些问题
本程序的定时显示精确性不高,例如LED灯的数字无法做到同步显示等等。程序来源说明
本文原程序来源于http://tieba.baidu.com/p/1585935847 9