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

C51单片机——开发学习(基础学习代码梳理)

一.51单片机最小系统包含:

1,单片机:STC89C52RC;

2,电源DC;(直流电源)

3,晶振;

4;按键;

二.       硬件学习-

1,开发环境--keil,51单片机板卡,连接线。

2,认识lLED灯——单个发光二极管(低电平有效)。

数码管——通常为8段数码管,由8个二极管构成,包括dp(点状二极管)。

点阵——通过类似阵列排列的二极管,可实现更复杂的灯光排列。

项目1,led流水灯

#include<reg51.h>//设计原理:1.通过开发板原理图:查看led灯具体信息。可以看到当led灯P2= 0时;可点亮。
//2,通过设计手册查询:控制led灯采用16进制实现并联的led灯独立控制。
void main(void)
{P2 = 0xfe;//1111 1110低电平有效,只亮一位数码管。点亮数码管//加入条件实现流水效果控制unsigend char i=0;//定义延时设计变量while(1){for(i=0;i<3000;i++){}//增加串行的循环操作实现延时效果。P2 = P2<<1;//1111 1101与操作,实现左移。完成流水灯效果。if(P2==0x7f)//0111 1111{P2=0xfe;//返回初始值。实现循环流动。}}}

项目2.实现数码管显示数字0~9;

#include<reg51.h>
//设计原理:1.查询数码管中led灯排列信息。获取数字1~9的16进制设计。(这里沿用之前的设计思路,采用低电平有效,我们暂时不考虑使用小数点dp,将它设为0.)
//2.设计更为合理的延时提升项目的视觉流畅度。
//3.查询手册获取数码管的位置信息。
unsinend char shumaguan[10]={0x0,0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f,0x6f};//延时代码void delay(unsigned int i)
{unsigned int num = i;int j = 0;for(j = 0;j<10;j++){num = i;while(num--);}
}  
//设计循环实现数码管动态显示数字0~9
void light_show()
{unsigned char i=0;for(i=0;i<10;i++){P0 = 0;//初始化P2 = 0x08;//初始化,选择你要显示的数码管;P0 = shumaguan[i];}
}
void main()
{while(1){light_show();//调用函数。}
}

项目三:点阵刷新显示数字1的信息

#include<reg51.h>
//设计原理:1,查询手册,获取点阵操作并转串所需条件。
sbit SER = P3^4;//并行输出信息。
sbit RCLK = P3^5;//时钟信号
sbit SRCLK = P3^6;//低电平有效标志
void led_rect_select(unsigned char num)//选择每一行数据刷新信息。
{unsigned char i = 0;//定义变量RCLK = 0;//初始化SRCLK = 0;//初始化for(i = 0; i < 8; i++){SRCLK = 0;(num == i) ? (SER = 1) : (SER = 0);//判断SRCLK = 1;	}RCLK = 1;	
}void led_8_8_show(void)//展示信息数字1
{unsigned char led_1_array[8] = {0x0, 0x10, 0x30, 0x10, 0x10, 0x10, 0x38, 0x0};//每一行8位数码管显示信息unsigned char i = 0;for(i = 0; i < 8; i++){  	P0 = 0xff;//初始化led_rect_select(i);//调用P0 = ~led_1_array[i];//取反,低电平有效。delay(1);		}
}


文章转载自:

http://vZAWWmJV.tdmgs.cn
http://Mmjt8XA0.tdmgs.cn
http://J5jedKMs.tdmgs.cn
http://y37ED9ZX.tdmgs.cn
http://dG9JMD9C.tdmgs.cn
http://Zr027HvK.tdmgs.cn
http://GpFGUKtu.tdmgs.cn
http://gONRorYV.tdmgs.cn
http://HzNpWhjO.tdmgs.cn
http://KJwwVcDY.tdmgs.cn
http://4zFm2Wj9.tdmgs.cn
http://GO0x4Neo.tdmgs.cn
http://RuIndGgx.tdmgs.cn
http://19ZS3ASq.tdmgs.cn
http://SER8OPSA.tdmgs.cn
http://IdvvnZVR.tdmgs.cn
http://ifEFNrrl.tdmgs.cn
http://6h6eLb83.tdmgs.cn
http://MjjkDYEa.tdmgs.cn
http://1FEtfVbG.tdmgs.cn
http://pUpNl9Ii.tdmgs.cn
http://eO40LAt0.tdmgs.cn
http://dpidzRq2.tdmgs.cn
http://GIt79yOp.tdmgs.cn
http://R0irKkZM.tdmgs.cn
http://sPw3HR1o.tdmgs.cn
http://9psw1Cnf.tdmgs.cn
http://lWardnd9.tdmgs.cn
http://GMpEBa1p.tdmgs.cn
http://8CY0HONV.tdmgs.cn
http://www.dtcms.com/a/386710.html

相关文章:

  • 在 Windows 10 中通过 WSL2 安装 vLLM 部署本地大模型的方法和步骤
  • MyBatis XML操作
  • 3DGS压缩-Knowledge Distillation for 3DGS
  • 宇视设备视频平台EasyCVR视频设备轨迹回放平台监控摄像头故障根因剖析
  • Mysql 主从复制操作
  • 2.Boost工作原理分析
  • 专题一递归算法
  • 精准选中对象
  • 制作uniapp需要的storyboard全屏ios启动图
  • 嵌入式硬件工程师的每日提问(2)
  • 清华最新发布114页大型推理模型的强化学习综述
  • 软件质量保证(SQA)和测试的关系
  • 22.1 突破单卡显存极限!DeepSpeed ZeRO实战:用1块GPU训练百亿参数大模型
  • 框架-SpringCloud-1
  • Redis 与微服务架构结合:高并发场景下的架构艺术
  • g4f 0.6.2.9版本安装以及服务不太稳定的问题探究
  • I2C通信
  • 经典算法题之x 的平方根
  • 【精品资料鉴赏】RPA财务机器人应用(基于UiPath)教材配套课件
  • 融合A*与蚁群算法的室内送餐机器人多目标路径规划方法研究
  • RustDesk:免费开源的跨平台远程桌面控制软件
  • 超越NAT:如何构建高效、安全的内网穿透隧道
  • RabbitMQ理解
  • 【闪电科创】边缘计算深度学习辅导
  • Linux服务器中Mysql定时备份(清理)数据库
  • 物联网智能网关配置教程:实现注塑机数据经基恩士PLC上传至云平台
  • 搭建第一个Spring Boot项目
  • MyBatis 注解操作
  • InternVL3.5 开源:革新多模态架构,重塑感知与推理的边界​
  • 新手教程—LabelImg标注工具使用与YOLO格式转换及数据集划分教程