当前位置:首页 > 代码 > 正文

源代码定时器(定时器代码 单片机)

admin 发布:2022-12-19 04:58 96


本篇文章给大家谈谈源代码定时器,以及定时器代码 单片机对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

求用vc编 指针式时钟 源代码!

只实现了大体的时钟外观

用MFC 建单文档程序 在生成的CMainFram类中的PreCreateWindow中添加 cs.cx=200;

cs.cy=290;

然后在View类的OnDraw函数中添加如下代码:

const CRect rcBounds(10,10,180,180);

const CRect rcInvalid(10,10,180,180);

pDC-FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));

CPen pen(PS_SOLID,6,RGB(0,122,122));

pDC-SelectObject(pen);

pDC-Rectangle(rcBounds);

//显示Colock中的3,6,9,12

pDC-TextOut(rcBounds.right/2-8,rcBounds.top+rcBounds.bottom/12,"12");

pDC-TextOut(rcBounds.right/2-4,rcBounds.bottom-rcBounds.bottom/12-17,"6");

pDC-TextOut(rcBounds.left+rcBounds.right/12,rcBounds.bottom/2-4,"9");

pDC-TextOut(rcBounds.right-rcBounds.right/12-8,rcBounds.bottom/2-4,"3");

CTime time = CTime::GetCurrentTime();

int nTime_s = time.GetSecond();

int nTime_m = time.GetMinute();

int nTime_h = time.GetHour();

int nLength_S,nLength_M,nLength_H;

if(rcBounds.right rcBounds.bottom)

{

nLength_S = rcBounds.right/2 - rcBounds.right/7;

nLength_M = rcBounds.right/2 - rcBounds.right/6;

nLength_H = rcBounds.right/2 - rcBounds.right/5;

}

else

{

nLength_S = rcBounds.bottom/2 - rcBounds.bottom/7;

nLength_M = rcBounds.bottom/2 - rcBounds.bottom/6;

nLength_H = rcBounds.bottom/2 - rcBounds.bottom/5;

}

CPoint ptOrigin,ptEndS,ptEndM,ptEndH;

//Origin Point

ptOrigin.x = rcBounds.right/2;

ptOrigin.y = rcBounds.bottom/2;

CPen pen4(PS_SOLID,4,RGB(255,200,40));

pDC-SelectObject(pen4);

pDC-Rectangle(rcBounds.right/2-1,rcBounds.bottom/2+1,rcBounds.right/2+1,rcBounds.bottom/2-1);

//Second

ptEndS.x = (long)(nLength_S*cos(((nTime_s-15)*360/60)*PI/180) + ptOrigin.x);

ptEndS.y = (long)(nLength_S*sin(((nTime_s-15)*360/60)*PI/180) + ptOrigin.y);

//Minute

ptEndM.x = (long)(nLength_M*cos(((nTime_m-15)*360/60)*PI/180) + ptOrigin.x);

ptEndM.y = (long)(nLength_M*sin(((nTime_m-15)*360/60)*PI/180) + ptOrigin.y);

//Hour

if(nTime_h=12)

{

ptEndH.x = (long)(nLength_H*cos(( ((nTime_h-12)*5-15+ nTime_m/15 )*360/60)*PI/180) + ptOrigin.x);

ptEndH.y = (long)(nLength_H*sin(( ((nTime_h-12)*5-15+ nTime_m/15 )*360/60)*PI/180) + ptOrigin.y);

}

else

{

ptEndH.x = (long)(nLength_H*cos(( (nTime_h*5-15+ nTime_m/15 )*360/60)*PI/180) + ptOrigin.x);

ptEndH.y = (long)(nLength_H*sin(( (nTime_h*5-15+ nTime_m/15 )*360/60)*PI/180) + ptOrigin.y);

}

//Draw

CPen pen1(PS_SOLID,4,RGB(0,0,255));

pDC-SelectObject(pen1);

pDC-MoveTo(ptOrigin);

pDC-LineTo(ptEndH);

CPen pen2(PS_SOLID,2,RGB(255,0,255));

pDC-SelectObject(pen2);

pDC-MoveTo(ptOrigin);

pDC-LineTo(ptEndM);

CPen pen3(PS_SOLID,1,RGB(255,0,0));

pDC-SelectObject(pen3);

pDC-MoveTo(ptOrigin);

pDC-LineTo(ptEndS);

在View类中添加OnInitialUpdate虚函数 设置一定时器

SetTimer(1,400,NULL);

在OnTimer函数中使窗口重绘

Invalidate();

定时器控制画线的问题!(附代码)

HOHO!

void CLineMoveDlg::Draw()

这个函数是你自已手工填加的吧!错误就出在这里!你应用向导(例:类向导)填加.

原因:你这个函数不是消息响应函数!不具备重绘功能!被档住了.当然就没了.向导填加的函数可以响应消息,它可不仅仅是在这加一个函数这么简单,还填加了两个地方,从而实现了消息映射.

你把坐标变了,就以为解决问题了,只不过是暂时没有被档住.不信,你最小化这个窗口,再最大化,看看还有没有图形了!

-------------------------------------

不是吧,你的概念错的也太那个了.向导加的函数就是消息响应函数,它是空函数!不是实现特定功能的!也就是说,如果你想把你的函数写到消息映射中去,就是要用向导定义一个消息响应函数,然后将代码写入到里面.所谓的消息映射,都被自动的写入了你定义的消息响应函数的头文件里去了.

-----------------------

你这叫不叫骑驴找驴?

哈哈哈!

---------------------------------

我也是新手,呵呵,你的代码,我看着费劲呀,很多东我还没学呢!不过有一点我可以说一下

OnPainT应该是在初始化窗口前就被调用了.

pt1=CPoint(10,50);

pt2=CPoint(100,20);

PointInit(pt1,pt2);

SetTimer(1,10,NULL);

这四条语句是否在窗口产生前就存在了?

要不你将它们的定义全移到这里后测试一下.

--------------------

重绘:一般的手段是先存成元文件(在别的函数中存),再播放元文件.(在OnPainT函数中).也可用集合类CPtArray代替元文件.

注意的一点是:如果在别的函数中绘图,后想要重绘

要用到一个函数Invalidate();来产生WM_PAINT消息,传给OnPaint函数

注意的第二点是:如果你在OnPaint函数中绘图,你用的是滚屏的类做基类,你还得重设OnPrepareDC(dc);//重新设置逻辑坐标的原点

否则重绘后,图形会跑到第一屏处.

很复杂的,几句话,说不清,你还是看看孙鑫的视频的10课吧

2个多小时,专讲重绘

求一个简单的Java定时器源代码

我是让它每10毫秒扫描一下。

Calendar ca=null;

Calendar ca1=null;

Timer timer=new Timer();

static Connection con=null;

public void chu(){

ca=Calendar.getInstance();

ca1=(Calendar)ca.clone();

ca1.add(Calendar.SECOND, 20);

}

public void Time(){

float s=ca1.get(Calendar.SECOND)-ca.get(Calendar.SECOND)+(ca1.get(Calendar.MILLISECOND)-ca.get(Calendar.MILLISECOND))/1000f;

if(con==null){

System.out.println("耗时"+String.valueOf(s)+"秒");

if(ca.after(ca1)){

System.out.println("取不到连接");

timer.cancel();

return ;

}

}else{

System.out.println("耗时"+String.valueOf(s)+"秒");

}

ca.add(Calendar.MILLISECOND, 10);

timer.schedule(

new TimerTask() {

public void run() {

System.out.println("时间在溜走。。。。");

Time();

}

}, ca.getTime());

}

void getcon(){

Connection con=null;//获取Connection

chu();

Time();

}

C++如何实现根据设定的时间自动执行某功能源代码

1、采用VC++,可以VC6,或VS2005等

2.SetTimer初始化

3、Ontimer时间函数中实现

4、采用API函数:

UINT WinExec(

LPCSTR lpCmdLine, // command line

UINT uCmdShow // window style

);

调用另一.EXE文件

5.更多交流参考我空间文章。

单片机定时器 TH0=0x0F8; TL0=0x0CD; 这里的8 和CD 什么意

定时器0的寄存器是双字节的,分别是高字节TH0和低字节TL0,

里面存储的十六进制数,即F8CD,换算成十进制就是‭63693‬。敲字不易!请采纳!

已知8051单片机的fosc=12MHz,用T1 定时,试编程由P1.2 和P1.3 引脚分别输出周期为2ms 和500μs 的方波

代码如下:

第一个代码程序:

ORG 0000H

LJMP MAIN

ORG 001BH

JMP T1_INT

ORG 0030H

MAIN:

MOV TMOD, #20H

MOV TH1, #6

MOV TL1, #6

MOV IE, #88H

SETB TR1

MOV R7, #4

SJMP $

T1_INT:

CPL P1.3

DJNZ R7, T1_END

CPL P1.2

MOV R7, #4

T1_END:

RETI

END

第二个500us程序:

#include reg51.h        

sbit P1_0=P1^0;

void  main()

{

TMOD=0x01; 

TH0=0xFC;

TL0=0x18; 

EA=1;   

ET0=1;     

TR0=1;  

while(1);

}

void time0_int(void)  interrupt 1    

{

TH0=0xFC;

TL0=0x18;

P1_0=!P1_0;

}

扩展资料:

程序存储器特定入口:

0000H: 复位或开机后的程序入口

0003H: 外部中断0 服务程序入口

000BH: 定时/计数器0 中断服务程序入口

0013H: 外部中断1 服务程序入口

001BH: 定时/计数器1 中断服务程序入口

0023H: 串行I/O 中断服务程序入口

定时/计数器

8031 片内有两个16位定时/计数器(增量式计数)

工作方式(方式0、方式1、方式2、方式3)

以定时/计数器1为例

⑴方式0(13位定时/计数)

方波是一种非正弦曲线的波形,通常会于电子和讯号处理时出现。理想方波只有“高”和“低”这两个值。电流的波形为矩形的电流即为方波电流。不论时间轴上下是不是对称的,只要是矩形就可叫方波,必要时,可加“对称”,“不对称”加以说明

通过单片机内部的计数器/定时器,采用软件编程来产生方波,这种方法的硬件线路较简单,系统的功能一般与软件设计相关。

选择MCS-51系列中的8031单片机,由于是用指示灯显示输出方波信号,一个LED显示灯即可满足设计要求。

方波是一种非正弦曲线的波形,通常会与电子和讯号处理时出现。理想方波只有“高”和“低”这两个值。电流或电压的波形为矩形的信号即为矩形波信号,高电平在一个波形周期内占有的时间比值称为占空比,也可理解为电路释放能量的有效释放时间与总释放时间的比值。

占空比为50%的矩形波称之为方波,方波有低电平为零与为负之分。必要时,可加以说明“低电平为零”、“低电平为负”。

源代码定时器的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于定时器代码 单片机、源代码定时器的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/2749.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载