零基础学会51单片机:自学51单片机06珍惜眼前
零基础学会51单片机:自学51单片机06珍惜眼前Project文件:项目新建在这个文件夹中Output文件:存放hex等输出文件#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 ) { P
调整了几天,开始跟着金善愚老师的教程学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 单步调试效果很好...很奇怪,目前应该用不到,先了解下吧。