
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。怎么打开定时器,用什么语句可以使用定时器来实现精确延时等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)