单片机新手入门案例

本文档介绍了十个适合初学者的单片机实战案例,包括LED闪烁、双向流水灯、变化流水灯等,通过Proteus和Keil配合,逐步提升编程技能。涵盖了基本灯控制、数码管显示、交通信号模拟、按键操作和报警器设计,是入门单片机学习的实用指南。
根据单片机100案例所做,适合初学者入门单片机的简单案例.

单片机学习进阶版-点这里

单片机案例1

结合proteus和keil
1 闪烁的LED灯
原理图

在这里插入图片描述

程序
/*
	名称:闪烁的LED
	说明:LED按照设定的时间间隔闪烁
*/
#include<reg52.h>
#define INT8U unsigned char
#define INT16U unsigned int 

sbit LED=P2^0;	//LED连接在P2.0引脚

//延时函数
void delay_ms(INT16U x)
{
   
   
	INT8U t;
	while(x--);
	for(t=0;t<120;t++);
}

//主程序
void main()
{
   
   
	while(1)
	{
   
   
		LED=~LED;//取反,形成LED闪烁效果
		delay_ms(150);//延时
	}
}

单片机案例2

结合proteus和keil
2 双向流水灯
原理图

在这里插入图片描述

程序
/*
	名称:8只LED灯双向来回闪亮
	说明:利用了头文件intrins.h提供的循环移位函数:
	_crol_向左
	_cror_向右

*/

#include<reg51.h>
#include<intrins.h>

#define INT8U unsigned char
#define INT16U unsigned int 

//延时
void delsy_ms(INT16U x)
{
   
   
	INT8U t;
	while(x--)
	{
   
   
		for(t=0;t<120;t++);
	}
}

//主程序
void main()
{
   
   
	INT8U i;
	P2=0x01;
	delsy_ms(150);
	while(1)
	{
   
   
		for(i=0;i<7;i++)
		{
   
   
			P2=_crol_(P2,1);//P2口,循环向左移动一位
			delsy_ms(60);
		}

		for(i=0;i<7;i++)
		{
   
   
			P2=_cror_(P2,1);//P2口,循环向右移动一位
			delsy_ms(200);
		}
	}
}

单片机案例3

结合proteus和keil
3 变化多样的流水灯
原理图

在这里插入图片描述

程序
/*
	名称:变换流水灯
	说明:16只LED灯分两组,多种变换进行显示
*/

#include<reg52.h>

#define INT8U unsigned char
#define INT16U unsigned int 

code INT16U array[]=
{
   
   
	0xFCFF,0xF9FF,0xF3FF,0xE7FF,0xCFFF,0x9FFF,0x3FFF,0x7FFE,0xFFFC,
	0xFFF9,0xFFF3,0xFFE7,0xFFCF,0xFF9F,0xFF3F,0xFFFF,0xE7E7,0xDBDB,
	0xBDBD,0x7E7E,0xBDBD,0xDBDB,0xE7E7,0xFFFF,0xE7E7,0xC3C3,0x8181,
	0x0000,0x8181,0xC3C3,0xE7E7,0xFFFF,0xAAAA,0x5555,0x1818,0xFFFF,
	0xF0F0,0x0F0F,0x0000,0xFFFF,0xF8F8,0xF1F1,0xE3E3,0xC7C7,0x8F8F,
	0x1F1F,0x3F3F,0x7F7F,0x7F7F,0x3F3F,0x1F1F,0x8F8F,0xC7C7,0xE3E3,
	
	0xF1F1,0xF8F8,0xFFFF,0x0000,0x0000,0xFFFF,0xFFFF,0x0F0F,0xF0F0,	
	0xFEFF,0xFDFF,0xFBFF,0xE7FF,0xEFFF,0xDFFF,0xBFFF,0x7FFF,0xFFFE,
	0xFFFD,0xFFFB,0xFFF7,0xFFEF,0xFFDF,0xFFBF,0xFF7F,0xFF7F,0xFFBF,

	0xFFDF,0xFFEF,0xFFF7,0xFFFB,0xFFFD,0xFFFE,0x7FFF,0xBFFF,0xDFFF,
	0xEFFF,0xF7FF,0xFBFF,0xFDFF,0xFEFF,0xFEFF,0xFCFF,0xF8FF,0xF0FF,

	0xE0FF,0xC0FF,0x80FF,0x00FF,0x00FE,0x00FC,0x00F8,0x00F0,0x00E0,
	0x00C0,0x0080,0x0000,0x0000,0x0080,0x00C0,0x00E0,0x00F0,0x00F8,
	0x00FC,0x00FE,
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值