优秀的编程知识分享平台

网站首页 > 技术文章 正文

自学51单片机06:珍惜眼前,不负韶光,慢慢学不要心急

nanyue 2024-07-31 12:29:09 技术文章 6 ℃

调整了几天,开始跟着金善愚老师的教程学51单片机,蜂鸣器先跳过,学完计时器和中断有需要再回头看。前面教程讲的基础之前学过,快速过一遍,今天查漏补缺

1.收集、整理、分类代码,代码模块化,方便以后能直接复制粘贴

把延时函数封装起来以后用会方便许多

DelayXms.h

#ifndef __DelayXms_H__
#define __DelayXms_H__

#define u16 unsigned int
#define u8  unsigned char

void DelayXms(u16 xms);

#endif

DelayXms.c

#include "DelayXms.h"

void DelayXms(u16 xms)
{
	u16 i,j; //unsigned int类型范围是0-65535
	for(i=xms;i>0;i--){		
		for(j=124;j>0;j--);
	}
}


2.利用库函数循环左移循环右移实现正反向流水灯效果

打开keil软件---Help 打开C51文档,之前忽略了C51库函数,以后遇到没见过的函数可以到这个文档中查看

封装好的库函数比之前移位运算符实现流水灯更简单

void main(){
unsigned char temp,i;
	while(1)
	{
		temp = 0xfe;// 1111 1110
		for( i = 0;i<8;i++)
		{
			P1 = temp;
			temp = _crol_(temp,1);//循环左移1位
			DelayXms(1000);
		}
        temp = 0xbf;  //1011 1111
		for(i = 0;i<6;i++)  //掐头去尾流水灯就能衔接起来
		{
			P1 = temp;
			temp = _cror_(temp,1);//循环右移一位
			DelayXms(1000);
		}	
	}			
}

3.keil软件设置文件目录结构,远离混乱

新建一个工程文件夹,再新建4个子文件夹,养成好习惯

Output文件:存放hex等输出文件

Project文件:项目新建在这个文件夹中

Source文件:存放.c和.h文件

Listing文件:存放链接文件

4.keil5和proteus软硬件联调

网上搜索KEIL5与Proteus联调设置,教程很多很简单的安装下驱动设置一下。感觉很酷,运行到哪行代码,硬件就能显示出相应的效果。

不知道为什么keil破解过了,用keil仿真程序,出现 EVALUATION MODE Running with Code Size Limit:2K 提示

进入联调是F10和F11运行速度很慢,直接乱跳延时函数里面不动。F5全速运行很流畅。老师教程用的keil4,单步调试效果很好...很奇怪,目前应该用不到,先了解下吧。

最近发表
标签列表