80C51单片机系列
- 80C51单片机介绍
- 照亮第一个发光二极管,流水灯案例
文章目录
- 80C51单片机系列
- 前言
- 照亮第一个发光二极管
-
- 程序烧录等操作
- 二极管流水灯
- 下一章:数字管显示、包装和消隐
前言
先看原理图,学单片机首先要了解原理图!
照亮第一个发光二极管
我们LED八个二极管连接,MCU单片机芯片(即800C51单片机),P八串两口(P2^0 ~ P2^7)。
所以我们只需要操作P两口的八个串口可以控制LED二极管的发光和熄灭。
这里就不多说创建项目和文件了。
#include<reg52.h>sbit LED1 = P2^0;void main(){ LED1 = 0;}
这里,
然后下载到单片机!
程序烧录等操作
具体操作,如烧软件、项目配置(设置操作)MHZ)、生成hex文件等,烧软件请自行在线搜索下载。
生成项目配置hex这里的截图说明文件!
首先,项目配置,设置
在刚才的基础上,勾选生成hex文件即可!
最后,用烧录软件下载到单片机!
开机即可!
这样,单片机上的第一个发光二极管就会发光!
:有的可能只亮一下,在LED1 = 0;
后面加一个while(1);死循环!
不是很简单吗?
二极管流水灯
有了以上简单的实验,我们就写一个二极管流水灯。
#include<reg52.h>#include<intrins.h>#define GPIO_LED P2void Delayms(unsigned char);void main(){ unsigned char i; GPIO_LED = 0xfe; Delayms(10); //流水灯 while(1){ for(i = 0; i<7; i++){
//左移7次 GPIO_LED = _crol_(GPIO_LED,1); //GPIO_LED 左移1位 Delayms(10); } for(i = 0; i<7; i++){
//右移7次 GPIO_LED = _cror_(GPIO_LED,1); //GPIO_LED 右移1位 Delayms(10); } }}/*//手动实现轮流赋值void main(){ unsigned char i,led_list[8]= {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0xBF}; while(1){ for(i = 0; i<8; i++){ //循环 GPIO_LED = led_list[i]; Delay10ms(2); } }}*///延时函数void Delayms(unsigned char c){
unsigned char a,b; for(;c>0;c--) for(b=76;b>0;b--) for(a=130;a>0;a--);}
程序中注释部分为,手动实现赋值P2操作。
而导入的**#include<intrins.h>**头文件,可以直接进行位移操作。
调用_crol_进行左移。
调用_cror_进行右移。
下一章:数码管显示及封装与消隐
下一章: