粤嵌单片机兴趣课(五)
前言
本次实验所用单片机为C51单片机,CPU为AT89C52,使用的开发软件是Keil uVision4,将程序下载到单片机所使用的软件为stc-isp-15xx-v6.85H.exe。
注意事项
(1)如果需要创建工程并添加文件和学习如何向单片机烧入可执行程序,请参考博客https://blog.youkuaiyun.com/APPDREAMER/article/details/115568852,本篇博客不在做相关赘述。
(2)由于实验结果需要上传视频,因此没有将相关实验结果图片放置于博客中。
(3)具体学习所有过程请参考博客粤嵌单片机兴趣课(一)~(六)。
(注:链接如下:粤嵌单片机兴趣课(一))
(注:链接如下:粤嵌单片机兴趣课(二))
(注:链接如下:粤嵌单片机兴趣课(三))
(注:链接如下:粤嵌单片机兴趣课(四))
(注:链接如下:粤嵌单片机兴趣课(六))
C51单片机之延时函数的实现方式一
1、使用stc-isp-15xx-v6.85H.exe中的软件延时计算器功能,按照如图所示设置,点击生成代码。

2、生成1毫秒的延时函数。(注:程序如下)
void Delay1ms() //@11.0592MHz
{
unsigned char i, j;
_nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
C51单片机之延时函数的实现方式二
1、使用stc-isp-15xx-v6.85H.exe中的定时器计算器功能,按照如图所示设置,点击生成代码。

2、生成1毫秒的定时器中断函数。(注:程序如下)
void Timer0Init(void) //1毫秒@11.0592MHz
{
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x01; //设置定时器模式
TL0 = 0x66; //设置定时初值
TH0 = 0xFC; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
}
3、利用中断实现延时器(注:程序如下)
int count = 0;
void Timer0Init(void) //1毫秒@11.0592MHz
{
AUXR &= 0x7F; //定时器时钟12T模式
TMOD <

本文介绍了使用C51单片机实现延时函数的两种方法,并通过红外传感器实现了小车的循迹避障功能。首先,通过软件延时计算器和定时器中断的方式实现了精确延时;其次,详细讲解了红外循迹模块的工作原理及其实现代码。
最低0.47元/天 解锁文章
2528





