首页 > 其他分享 >【单片机】初次实验:Keil51的使用

【单片机】初次实验:Keil51的使用

时间:2023-11-05 19:12:35浏览次数:30  
标签:count char Keil51 int delay 单片机 个灯 初次 include

哔哩哔哩/CSDN/博客园:萌狼蓝天

延时器

delay(int count){
	int i,j;
	for(i=0;i<count;i++){
		for(j=0;j<1000;j++);
	}
}

瞧一瞧

题目要求:P0口接八个发光二极管,先让后面四个灯亮,再让前面四个灯亮,循坏

# include <REGX51.H>

delay(int count){
	int i,j;
	for(i=0;i<count;i++){
		for(j=0;j<1000;j++);
	}
}
void main(){
	while(1){
		P0 = 0x0f;
		delay(1000);
		P0 = 0xf0;
		delay(1000);
	}
}

完整演示

题目要求:P1口接八个灯,从右往左依次亮

创建项目

image-20231025193141196

image-20231025193210961

image-20231025193222072

image-20231025193238980

image-20231025193258315

编写代码

# include <REGX51.H>
# include <intrins.h>
unsigned char pem;
delay(int count){
	int i,j;
	for(i=0;i<count;i++){
		for(j=0;j<1000;j++);
	}
}
void main()
{   pem = 0x01;
	while(1){		
		P1=pem;
		pem = _crol_(pem,1);
		delay(1000);
	}
}

ctrl + s 保存

编译调试

image-20231025200730738

image-20231025200749864

image-20231025200817744

image-20231025200835128

退出调试模式

再点一次debug

image-20231025200937467

做一做

让灯从右往左依次亮

调试可知,

亮1个灯:0x01

亮2个灯:0x02

亮3个灯:0x07

亮4个灯:0x0F

亮5个灯:0x1F

……

# include <REGX51.H>
# include <intrins.h>
unsigned char pem;
unsigned char sum;
void delay(int count){
	int i,j;
	for(i=0;i<count;i++){
		for(j=0;j<1000;j++);
	}
}
void main()
{   
	pem = 0x01;
	sum = 0x01;
	while(1){		
		P1=sum;//P1初始值是0x01
		pem = _crol_(pem,1);//左移一位。这是负责计算每个位置亮灯时的值(只亮这个位置,其他位置不亮灯的时候的值)
		sum+=pem;//统计值
		delay(1000);//延时
		if (sum == 0xFF) {
				P1 = 0xFF;//手动亮灯
				delay(1000);//延时,让效果显示
				//重置状态
				pem = 0x01;
				sum = 0x01;
		}
	}
}

标签:count,char,Keil51,int,delay,单片机,个灯,初次,include
From: https://www.cnblogs.com/mllt/p/keil0x01.html

相关文章

  • 51单片机 小结
    总共耗时14天,把51单片机彻底搞定。耗时13天,把江科大51单片机入门教程视频学完了,就是代码不怎么打。这个另说以后有没有心情手打。以后会不会学习STM32不知道,虽然说现在对下一周的学习也没有什么特别的安排就是了。第十四天做出总结,弄一张思维导图。......
  • 01_单片机及开发板介绍
    单片机及开发板介绍单片机最小系统......
  • 【单片机】I/O口实验
    要求:拨动开关,让所亮小灯位置左移或者右移#include<STC8.H>#include<intrins.h>voiddelay(){ inti,j; for(i=0;i<1000;i++){ for(j=0;j<1000;j++); }}charmove_left(charvalue,intnumber){ value=_crol_(value,number); returnvalue; }charmov......
  • 51单片机中断服务
    1.中断的概念在51单片机中,中断是一种机制,可以让单片机在执行某个任务时,暂停当前程序的执行,转而去执行另外一个优先级更高的任务,待该任务执行完毕后,再回到原来的任务继续执行。中断机制可以有效提高单片机的实时性和响应速度。在51单片机中,中断可以通过设置中断向量表来实现。中......
  • 51单片机-定时器-proteus仿真
    这是代码#include"reg51.h"#defineu16unsignedint#defineu8unsignedchar#defineFOSC11059200L#defineBAUD9600sbitkaiguan=P1^0;u8codeleddat[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x81,0x82,0x84,......
  • ARM单片机知识点
    1、STM32编译信息代码占用FLASH大小为:Code+RO-data,7420字节(5054+2366),所用的RAM大小为:RW-data+ZI-data,8576(372+8204)。编译结果里数据的含义:Code:程序所占用FLASH的大小。RO-data:即ReadOnly-data,表示程序定义的常量,如const类型(FLASH)。RW-data:即ReadWrite-data,表......
  • 微信小程序--6.初次使用vant报错
    6、由于使用了ts踩到的安装vant的坑,重点在第4步1)在根目录下执行安装依赖的命令npmi@vant/weapp-S--production2)修改app.json将app.json中的 "style":"v2" 去除,小程序的新版基础组件强行加上了许多样式,难以覆盖,不关闭将造成部分组件样式混乱。3)修改project.conf......
  • 单片机的结构逻辑,特性
    连接矩阵io口弱上拉,强下拉......
  • stm32单片机在Keil环境下定义的变量都存储到哪去了?(以STM32f1系列为例)
    stm32f1系列单片机,在keil5环境下编译后显示四个储存区域,分别是Code,RO-data,RW-data,ZI-dataCode为程序代码部分RO-data表示程序定义的常量constRW-data表示已初始化的全局变量ZI-data表示未初始化的全局变量储存区域如下:Code,RO-data,RW-data............flashRW-......
  • 单片机
    要求:按下启动按钮SB1,第一台电动机立即启动,启动后3s,第二台电动自行启动,共同工作5秒后,两台电动机同时停止。无论何时按下停止按钮SB2或任一电动机发生过载时两台电动机均同时停止。两台电动机均有工作指示和过载指示(指示灯的工作电压为直流电DC24V),过载时要求相对指示灯以1HZ频率......