自动化之–回归自然,8051的控制之 最简易单片机系统。 2021-08-15
工业领域,稳定性是第一位的,所以单片机是不可或缺的 自动化控制利器。重新温习n年前的旧知识,看看能否在新生活中发挥更多的作用。 准备: proteus软件,作用是进行51单片机的电路设计,模拟和仿真 c语言的基础,作用是进行程序编辑和控制 其它,没有其它了,开始干活: 首先设计最基本的led控制逻辑,也是裸奔的51单片机控制电路,参见下图: 系统的运行效果哦,是大约每1秒,led进行一次点亮,然后间隔1秒,关闭。如此循环,知道重启或者关闭。运行效果图参见下图:
基础晶振,设置为12M,其实这个不用设置也可以,系统默认会带有一个晶振,不然51系统不能正常工作。 reset电路也不是必须的,但是为了完整起见,还是把它设计出来。 最简单的绿,黄,蓝,三种led点亮输出电路。 由于P0口需要上拉电阻才能正常工作,所以设计一个简易的上拉电路。 软件编程使用c语言(当然,最新版早就支持python了,这里不是广告,不是广告,告),在proteus中配置好使用的c语言后,结果程序如下:
```c
/* Main.c file generated by New Project wizard
*
* Created: 周日 8月 15 2021
* Processor: 80C52
* Compiler: Keil for 8051
*/
#include <reg51.h>
#include <stdio.h>
int i=0;
int j=0;
void Delay(int t)//这个时间不一定很准,需要计算进行精确调整。
{
//12M时钟频率,则机器周期为1us,......
i=0;
//int j=0;
while(i<=t)//时间延迟设计
{
i++;
//NOP();
j=t;
while(j>0)
{
j-=50;
}
}
}
void On()//LED ON COMMAND
{
P0=0X42;//ONLY LIGHT UP PIN 1AND PIN7; 绿,黄
P1=0X00;//OFF
P2=0X84;//ONLY LIGHT UP PIN3 AND PIN8;绿,蓝
P3=0X00;
}
void Off()//PORT IS SET 0, THIS IS TO SET OFF STATUS.
{
P0=0X00;
P1=0X00;
P2=0X00;
P3=0X00;
}
void main(void)
{
// Write your code here
//initialization
P0=0XFF;
P1=0XFF;
P2=0XFF;
P3=0XFF;
//cycles
while (1)
{
On();
Delay(1000);
Off();
Delay(1000);
};
}
根据使用的管脚,编程控制对应的接口和管脚,就实现了1hz频率的led闪烁。 如果改成红黄绿三色灯,再进行时间的调整设置,就是一个简易的红绿灯控制电路了。
是不是很简单? 这个造价,比起动辄上万的工业pc配置,是不是一道雨后春风般的小凉菜? 后面学习会继续进行,看能把知识捡回来多少呢。
原始程序下载,已经设置免积分:最精简的8051系统设计 上传的资源还在审核中。。。。。
|