当前位置:首页 > 经验 >

单片机实战100例详解合集(单片机编程实例全集)

来源:原点资讯(m.360kss.com)时间:2023-10-25 06:37:40作者:YD166手机阅读>>

#include<reg51.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int //延时 void DelayMS(uint x) { uchar i; while(x--) for(i=0;i<120;i ); } · 根据 P1 口的按键移动 LED void Move_LED() { } //主程序 void main() { uchar Recent_Key; //最近按键 P0=0xfe; P2=0xfe; P1=0xff; Recent_Key=0xff; while(1) { if(Recent_Key!=P1) { Recent_Key=P1; //保存最近按键 Move_LED(); DelayMS(10); } } } 12 K1-K4 按键状态显示 /* 名称:K1-K4 按键状态显示 说明:K1、K2 按下时 LED 点亮,松开时熄灭, K3、K4 按下并释放时 LED 点亮,再次按下并释放时熄灭; */

单片机实战100例详解合集,单片机编程实例全集(9)

#include<reg51.h> #define uchar unsigned char #define uint unsigned int sbit LED1=P0^0; sbit LED2=P0^1; sbit LED3=P0^2; sbit LED4=P0^3; sbit K1=P1^0; sbit K2=P1^1; sbit K3=P1^2; sbit K4=P1^3; //延时 void DelayMS(uint x) { uchar i; while(x--) for(i=0;i<120;i ); } //主程序 void main() { P0=0xff; P1=0xff; while(1) { LED1=K1; LED2=K2; if(K3==0) { while(K3==0); LED3=~LED3; } if(K4==0) { while(K4==0); LED4=~LED4; } DelayMS(10); } } 13 K1-K4 分组控制 LED /* 名称:K1-K4 分组控制 LED 说明:每次按下 K1 时递增点亮一只 LED,全亮时再次按下则再次循环开始, K2 按下后点亮上面 4 只 LED,K3 按下后点亮下面 4 只 LED,K4 按下后关闭所有 LED */

单片机实战100例详解合集,单片机编程实例全集(10)

#include<reg51.h> #define uchar unsigned char #define uint unsigned int //延时 void DelayMS(uint x) { uchar i; while(x--) for(i=0;i<120;i ); } //主程序 void main() { uchar k,t,Key_State; P0=0xff; P1=0xff; while(1) { t=P1; if(t!=0xff) { DelayMS(10); if(t!=P1) continue; //取得 4 位按键值,由模式 XXXX1111(X 中有一位为 0,其他均为 1) //变为模式 0000XXXX(X 中有一位为 1,其他均为 0) Key_State=~t>>4; k=0; //检查 1 所在位置,累加获取按键号 k while(Key_State!=0) { k ; Key_State>>=1; } //根据按键号 k 进行 4 种处理 switch(k) { case 1: if(P0==0x00) P0=0xff; P0<<=1; DelayMS(200); break; case 2: P0=0xf0;break; case 3: P0=0x0f;break; case 4: P0=0xff; } } } } 14 K1-K4 控制数码管移位显示 /* 名称:K1-K4 控制数码管移位显示 说明:按下 K1 时加 1 计数并增加显示位, 按下 K2 时减 1 计数并减少显示位, 按下 K3 时清零。 */ #include<reg51.h> #define uchar unsigned char #define uint unsigned int //段码 uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; //位码 uchar code DSY_Index[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; //待显示到各数码管的数字缓冲(开始仅在 0 位显示 0,其他黑屏) uchar Display_Buffer[]={0,10,10,10,10,10,10,10}; //延时 void DelayMS(uint x) {

单片机实战100例详解合集,单片机编程实例全集(11)

uchar i; while(x--) for(i=0;i<120;i ); } void Show_Count_ON_DSY() { uchar i; for(i=0;i<8;i ) { P0=0xff; P0=DSY_CODE[Display_Buffer[i]]; P2=DSY_Index[i]; DelayMS(2); } } //主程序 void main() { uchar i,Key_NO,Key_Counts=0; P0=0xff; P1=0xff; P2=0x00; while(1) { Show_Count_ON_DSY(); P1=0xff; Key_NO=P1; //P1 口按键状态分别为 K1-0xfe,K2-0xfd,K3-0xfb switch(Key_NO) { case 0xfe: Key_Counts ; if(Key_Counts>8) Key_Counts=8; Display_Buffer[Key_Counts-1]=Key_Counts; break; case 0xfd: if(Key_Counts>0)Display_Buffer[--Key_Counts]=10; break; case 0xfb: Display_Buffer[0]=0; for(i=1;i<8;i ) Display_Buffer[i]=10; Key_Counts=0; } //若键未释放则仅刷新显示,不进行键扫描 while(P1!=0xff) Show_Count_ON_DSY(); }

单片机实战100例详解合集,单片机编程实例全集(12)

栏目热文

51单片机指令详解(51单片机基础代码详解)

51单片机指令详解(51单片机基础代码详解)

为了加深初学者对51单片机指令的理解,现在把指令执行的过程在此详细说明,希望对你有启发!单片机执行程序的过程,实际上就是...

2023-10-25 06:33:18查看全文 >>

最好的51单片机教程(51单片机学习推荐)

最好的51单片机教程(51单片机学习推荐)

单片机入门51单片机是最好的选择。很多人可能以为51单片机已经过时了,能这么想的绝对是没实际产品开发经验的。51最大的优...

2023-10-25 06:04:26查看全文 >>

51单片机文字教程(51单片机怎么弄中文版)

51单片机文字教程(51单片机怎么弄中文版)

点阵显示实验一、什么是点阵?我们用之前的方法一个IO口只能控制一个led,如果需要用更少的IO口控制更多的led怎么办呢...

2023-10-25 05:54:11查看全文 >>

51单片机教程零基础入门(零基础51单片机自学教程)

51单片机教程零基础入门(零基础51单片机自学教程)

大学四年白混了四年,如今要毕业了。学习单片机。也算是工作前的准备。单片机对于工科类的学生来说真的很重要,这点到现在才明...

2023-10-25 06:18:37查看全文 >>

51单片机入门自学(51编程入门教程)

51单片机入门自学(51编程入门教程)

曾经我是自学单片机然后跨行成功,今天来分享下自己的经验。在网上看了很多文章,很多人说现在51单片机已经过时了,建议从ST...

2023-10-25 06:15:13查看全文 >>

51单片机制作教程入门(51单片机入门最好教程)

51单片机制作教程入门(51单片机入门最好教程)

本套教程共3节课程,熟悉这3节课程的话,你已经入门51单片机了。下面是内容正文单片机学习的第一步,什么是单片机最小系统?...

2023-10-25 06:04:12查看全文 >>

自学单片机的亲身经历(零基础从哪里开始学单片机)

自学单片机的亲身经历(零基础从哪里开始学单片机)

大家好,我是无际单片机编程徐工。最近有部分学员陆陆续续开始找工作了,在此分享下我第一份工作的经历。更详细的面试经验和技巧...

2023-10-25 06:18:49查看全文 >>

51单片机从零开始学(51编程入门自学100例)

51单片机从零开始学(51编程入门自学100例)

本套教程共3节课程,熟悉这3节课程的话,你已经入门51单片机了。下面是内容正文单片机学习的第一步,什么是单片机最小系统?...

2023-10-25 06:30:01查看全文 >>

51单片机入门(51单片机入门书本推荐)

51单片机入门(51单片机入门书本推荐)

本套教程共3节课程,熟悉这3节课程的话,你已经入门51单片机了。下面是内容正文单片机学习的第一步,什么是单片机最小系统?...

2023-10-25 06:17:29查看全文 >>

手把手学习51单片机(新人如何学习51单片机)

手把手学习51单片机(新人如何学习51单片机)

本套教程共3节课程,熟悉这3节课程的话,你已经入门51单片机了。下面是内容正文单片机学习的第一步,什么是单片机最小系统?...

2023-10-25 06:24:40查看全文 >>

文档排行