网站站点创建成功是什么意思,自己制作wordpress子主题,购物网站html代码,wordpress 使用插件下载前言#xff1a;感谢您的关注哦#xff0c;我会持续更新编程相关知识#xff0c;愿您在这里有所收获。如果有任何问题#xff0c;欢迎沟通交流#xff01;期待与您在学习编程的道路上共同进步。 目录
一. 延时函数的生成
1.通过延时计算器得到延时函数
2.可赋值改变…
前言感谢您的关注哦我会持续更新编程相关知识愿您在这里有所收获。如果有任何问题欢迎沟通交流期待与您在学习编程的道路上共同进步。 目录
一. 延时函数的生成
1.通过延时计算器得到延时函数
2.可赋值改变的延时函数
二. LED模块编写原理
1.LED模块图
2.编写原理
1编写原理
2快捷编程
3十六进制编程
三. 具体编写程序
1.通过生成没有改写的延时函数
2.可赋值延时函数编写
四. LED流水灯视频 一. 延时函数的生成 1.通过延时计算器得到延时函数 步骤
1.打开STC-ISP找到软件延时计算器
2.先了解所用51单片机的频率这里的51单片机频率为11.0592选择你需要定时的长度然后注意这里51单片机为AT89C52属于89系列所以8051指令集选择STC-Y1。
3.点击生成C代码再复制代码
源码如下
void Delay250ms(void) //11.0592MHz
{unsigned char data i, j, k;_nop_();i 2;j 193;k 57;do{do{while (--k);} while (--j);} while (--i);
}2.可赋值改变的延时函数 这里我们可以在原有的延时函数的基础上进行变量定义并运用while语句生成可赋值改变的延时函数。
源码
void Delay(unsigned int xms) //11.0592MHz//在Delay延时函数中新定义一个整型变量xms
{unsigned char data i, j;while(xms) //运用while循环注意while循环括号内非零即增{i 2;j 199; do{while (--j);} while (--i);xms--; //注意这里为循环条件改变不改变无法实现同时写成xms也无法实现
}} 二. LED模块编写原理 1.LED模块图
1.单片机多个接口图LED模块接在P2口 2.LED模块图这里我们需要注意LED的走向便于理解编写原理 3.LED与单片机连接部分 2.编写原理
1编写原理 从上面LED的原理图中我们对于LED知道LED具有单向导电的特征而反向则电阻很大所以我们需要使LED单向导电这里我们规定0为低电平而1为高电平根据电流的流向判断当P2口接0即低电平时LED点亮当P2口接1即高电平时LED不亮。
2快捷编程 1. 在编写时我们需要加上一个定义了P2口的头文件如下
#include REGX52.H该头文件定义了所有的接口一般编写都需要我们可以在开始时鼠标右键空白处找到并添加。
2.由于该头文件定义了确切的接口如图
点击打开 查看接口 这里直接定义了接口转为十六进制所以只需要对接口赋值0或1即加高电平还是低电平。
例如
1.定义第一个LED点亮
P2_00;
2.定义第一个LED熄灭
P2_01;
3十六进制编程 十六进制编程与上述类似即对于接口没有转换为十六进制需要自己通过原理来设计编写即对于每个LED的状态进行规定然后写成一个二进制代码再转为十六进制。之前的博客有具体的转换过程。
例如 这里定义D1接0其余接1则表示只让D1亮这里写成二进制串需要从下往上写成1111 1110接着由二进制转十六进制为FE部分二进制转十六进制如图 例如这里在FE前面需要加上0x用于表明为十六进制 P20xFE;
对比对于快捷编写来说即让人容易明白且编写方便而对于十六进制编写则过于麻烦但是该编写方式可以让人更加清楚的熟悉编写原理从而更加灵活的编写同时有利于后续的编写。 三. 具体编写程序 1.通过生成没有改写的延时函数
这里在程序中我们还要引入另一个头文件由于自动生成的延时函数中有一个语句需要被调用为了完善程序我们需要调用该头文件。
需要被调用的语句 _nop_();
需要被调用的头文件
#include INTRINS.H
打开可看到打开方式同另一个头文件 下面就是一个具体的程序C语言编写的
#include REGX52.H //两个头文件的引入
#include INTRINS.Hvoid Delay250ms(void) //11.0592MHz //延时250ms
{unsigned char data i, j, k;_nop_(); i 2;j 193;k 57;do{do{while (--k);} while (--j);} while (--i);
}void main() //函数主体
{while(1) //通过while循环让程序循环进行{P20xFF; //通过十六进制编写Delay250ms(); //延时函数的调用P20xFE;Delay250ms();P20xFD;Delay250ms();P20xFB;Delay250ms();P20xF7;Delay250ms();P20xEF;Delay250ms();P20xDF;Delay250ms();P20xBF;Delay250ms();P20x7F;Delay250ms();P20xFD;Delay250ms();P20xF7;Delay250ms();P20xDF;Delay250ms();P20x7F;Delay250ms();P20xFC;Delay250ms();P20xE7;Delay250ms();P20x3F;Delay250ms();P20xF1;Delay250ms();P20x1F;Delay250ms();P20xF0;Delay250ms();P20x0F;Delay250ms();P20x00;Delay250ms();}}
这里主要可以多试试通过十六进制定义LED的亮灭。 2.可赋值延时函数编写
这里由于改写后没有上面的那个语句所以也不需要添加那个头文件。
源码
#include REGX52.Hvoid Delay(unsigned int xms) //11.0592MHz //定义变量
{unsigned char data i, j;while(xms) //while循环{i 2;j 199;do{while (--j);} while (--i);xms--; //循环条件改变
}}void main() //主函数
{while(1) //while循环非零即增{P20xFE;Delay(100); //调用延时函数对于延时可赋值改变P20xFD;Delay(200);P20xFB;Delay(300);P20xF7;Delay(400);P20xEF;Delay(500);P20xDF;Delay(600);P20xBF;Delay(700);P20x7F;Delay(800);}} 四. LED流水灯视频 大家可以自己设计一个自己的流水灯如果有问题的话欢迎私聊我哦。 51单片机LED流水灯 感谢老铁的浏览希望老铁可以一键三连加个关注您的支持和鼓励是我前进的动力后续会分享更多学习编程的内容。