当前位置: 首页 > news >正文

51单片机实验课一

实验任务一:实现控制8个发光管的亮(灭)

#include <REGX52.H>
void Delay1ms(unsigned int xms)		//@11.0592MHz
{unsigned char i, j;while(xms){xms--;i = 12;j = 169;do{while (--j);} while (--i);}	
}
void main()
{while(1){P2=0;//八个LED灯全亮Delay1ms(100);//延时100msP2=1;//八个LED灯全灭Delay1ms(100);}
}

实验任务二:实现8位流水灯的效果

 实验现象单片机从P2_0——P2_7逐个点亮LED(始终只有一个亮,呈现LED流水灯的形式)

直到P2_7的LED灯点亮之后再熄灭,P2_0的LED灯又点亮,如此循环往复

#include <REGX52.H>
unsigned char i;
void Delay1ms(unsigned int xms)		//@11.0592MHz
{unsigned char i, j;while(xms){xms--;i = 12;j = 169;do{while (--j);} while (--i);}
}
void main()
{P2=0xFE;while(1){   for(i=0;i<8;i++){Delay1ms(100);P2=P2<<1;P2=P2|0x01;Delay1ms(100);}P2=0xFE;}
}

 程序讲解:

在for循环中,让流水灯的程序循环八次

P2=P2<<1;

因为LED灯为共阳极,所以为低电平点亮,我们将P2端口数值左移一位,“<<”表示左移,“1”为移动的位数

P2=P2|0x01;

将P2端口的数值(8位)与00000001进行或运算,即给P2端口最低位补1

最后,P2=0XFE,让P2等于11111110,重新开始新一轮循环

http://www.lryc.cn/news/285716.html

相关文章:

  • 【.NET Core】多线程之线程池(ThreadPool)详解(一)
  • 圆的参数方程是如何推导的?
  • sqlmap使用教程(2)-连接目标
  • c++ http第一个服务
  • 深入Android S (12.0) 探索Framework之输入子系统InputReader的流程
  • 【cucumber】cluecumber-report-plugin生成测试报告
  • 华为欧拉操作系统结合内网穿透实现固定公网地址SSH远程连接
  • 加速 Selenium 测试执行最佳实践
  • c语言野指针
  • 【MySQL】where和having的区别
  • npm pnpm yarn 报错或常见问题处理集锦
  • 【Git】常用的Git操作集合
  • JavaScript库jquery的使用方法
  • Vue (v-bind指令、el与data的两种写法、理解MVVM、数据代理、V-no事件处理、双向数据绑定V-model、登陆页面实现
  • SpringBoot - SpringBoot手写模拟SpringBoot启动过程
  • 40. 组合总和 II - 力扣(LeetCode)
  • 第15届蓝桥杯嵌入式省赛准备第二天总结笔记(使用STM32cubeMX创建hal库工程+按键输入)
  • 【论文阅读】One For All: Toward Training One Graph Model for All Classification Tasks
  • Python多线程爬虫——数据分析项目实现详解
  • unity全局音量管理/全局音量设置与音量设置界面(含静音功能)
  • C++ vector 数组转换、查找、最大最小值、排序、排行的几种用法
  • vmware 安装Rocky-9.3系统
  • C++提高编程——模板
  • 单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new
  • 《设计模式的艺术》笔记 - 外观模式
  • sql 查询时间范围内的数据
  • TestNG中的@BeforeSuite注释
  • [学习笔记]刘知远团队大模型技术与交叉应用L3-Transformer_and_PLMs
  • 图像处理工具包Pillow的使用分享
  • python进程间通信——命名管道(Named Pipe、FIFO)