源代码定时器(定时器代码 单片机)
admin 发布:2022-12-19 04:58 96
本篇文章给大家谈谈源代码定时器,以及定时器代码 单片机对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、求用vc编 指针式时钟 源代码!
- 2、定时器控制画线的问题!(附代码)
- 3、求一个简单的Java定时器源代码
- 4、C++如何实现根据设定的时间自动执行某功能源代码
- 5、单片机定时器 TH0=0x0F8; TL0=0x0CD; 这里的8 和CD 什么意
- 6、已知8051单片机的fosc=12MHz,用T1 定时,试编程由P1.2 和P1.3 引脚分别输出周期为2ms 和500μs 的方波
求用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站长 原创,转载请注明出处和附带本文链接;
- 上一篇:拉勾网代码(拉勾网java)
- 下一篇:jq手机导航滑动效果代码(jq菜单滑动效果)
相关推荐
- 05-09网页代码,网页代码快捷键
- 05-07pb超级报表源代码(pb报表工具)[20240507更新]
- 05-07简历源代码可以上传照片的简单介绍[20240507更新]
- 05-07广告切换源代码免费下载(广告切换源代码免费下载安装)[20240507更新]
- 05-06单页网站的代码(完整的网页代码)[20240506更新]
- 05-06阁楼网源代码(阁楼是什么网站)[20240506更新]
- 05-06个人主页图片代码(个人主页图片代码怎么弄)[20240506更新]
- 05-06提取微信名片代码(微信名片信息提取)[20240506更新]
- 05-06php后台权限管理代码(php管理员权限)[20240506更新]
- 05-06付费观看代码php(付费观看代码)[20240506更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接