用C语言写一个KEILC51的延时1秒程序,急

用C语言写一个KEILC51的延时1秒程序,急,第1张

keilc51好像也是用C编程,

一般延迟程序就是增加系统负载比如:

int i,j;

yanchi()

{

for(i=0;i<1000;i++)

for(j=0;j<1000;j++)

;

}

这样就可以达到延迟的目的,具体参数你可以随便设。

LZ有没有玩过单片机啊。这年头没有使用8031的啦,建议换一个AT89S51就可以直接烧程序了。程序使用keilC写,C和汇编都可以。如何编程不是几句就可以讲清楚的,建议买一本单片机的书看看。请问为什么要使用2764呢。单片机接373扩展直接接数码管和DS18B20就可以了。这样的程序不难,但是要有硬件电路连接啊。程序要下载到电路板上调试才好。

定时器定时器控制寄存器TCON控制,该寄存器的第4/6位TR0/TR1置1,则打开定时器0/1。

示例语句如下:

先初始化定时器1的相关寄存器:

TMOD|= 0x11;//16位定时器/计数器模式

TH1=0x1C; //12000M

TL1=0x18;

IE = 0x8A; //打开总中断

TR1 = 1; //打开定时器1

设置完成后,每1ms进一次中断,执行中断程序(关于进中断的时间由TH1,TL1控制,具体参见手册)

void T1zd(void) interrupt 3 //3定时器1的中断号 1定时器0的中断号 0外部中断1 2外部中断2 4串口中断

{

TH1 = 0x1c; //12000

TL1 = 0x18;

LedNumVal++;

}

使用定时器,设置定时的时间为50ms,采用中断方式,每中断一次,计数一次,中断20次,就是1秒,再计秒,60秒为1分,再计分,计到10分就行。

其实,就是电子时钟的程序吗,要计秒,分,小时,这都可以实现的,何况你是10分。

uchar j[6]={0x85,0x88,0x8b,0x84+0x40,0x87+0x40,0x8a+0x40}

0x84+0x40, 0x87+0x40, 0x8a+0x40 有这个赋值法

作了一个小例子,供你学习使用,简单的都实现了,代码不够规范,没时间了。程序是net framework 40 winForm的

using System;

using SystemCollectionsGeneric;

using SystemComponentModel;

using SystemData;

using SystemDrawing;

using SystemLinq;

using SystemText;

using SystemWindowsForms;

using SystemMedia;

namespace TestTimer

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

//停止声音

private void AlarmStop_Click(object sender, EventArgs e)

{

playerStop();

}

//闹钟开始运行,是用Form按钮弄得

private void Start_Click(object sender, EventArgs e)

{

myTimerTick += new EventHandler(TimerEventProcessor);

// Sets the timer interval to 60 seconds

myTimerInterval = 60000;

myTimerStart();

// Runs the timer, and raises the event

while (exitFlag == false)

{

// Processes all the events in the queue

ApplicationDoEvents();

}

}

private SystemWindowsFormsTimer myTimer = new SystemWindowsFormsTimer();

static bool exitFlag = false;

private bool _9Flag = false;

private bool _12Flag = false;

private bool _15Flag = false;

private static SoundPlayer player = new SoundPlayer();

// This is the method to run when the timer is raised

private void TimerEventProcessor(Object myObject,

EventArgs myEventArgs)

{

DateTime dtime = DateTimeNow;

switch (dtimeHour)

{

case 9:

if (!_9Flag)

{

Sound();

_9Flag = true;

}

break;

case 12:

if (!_12Flag)

{

Sound();

_12Flag = true;

}

break;

case 15://我是15点作的,所以只弄到这了

if (!_15Flag)

{

Sound();

_15Flag = true;

}

break;

case 0:

_9Flag = false;

_12Flag = false;

_15Flag = false;

break;

default:

break;

}

}

private void Sound()

{

string path = @"C:\Windows\Media\notifywav";

playerSoundLocation = path;

playerPlayLooping();

}

}

}

以上就是关于用C语言写一个KEILC51的延时1秒程序,急全部的内容,包括:用C语言写一个KEILC51的延时1秒程序,急、基于8031的数字时钟、keil c51。怎么打开定时器,用什么语句可以使用定时器来实现精确延时等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10107964.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存