STC 51单片机58——旋转LED

news2024/11/27 4:03:16

 

STC11F  LED部分:

 #include "STC11.h"

#define u8 unsigned char
#define u16 unsigned int

//全亮
//u8 code Picture1[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f} ;
//u8 code Picture2[8]={0xe7,0xdb,0xbd,0x7e,0x7e,0xbd,0xdb,0xe7};
//u8 code Picture3[8]={0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00};


//半亮
u8 code Picture1[8]={0x7e,0xbd,0xdb,0xe7,0xff,0xff,0xff,0xff} ;
u8 code Picture2[8]={0xe7,0xdb,0xbd,0x7e,0xff,0xff,0xff,0xff};
u8 code Picture3[8]={0x00,0x7e,0x7e,0x7e,0xff,0xff,0xff,0xff};

u8 code Picture4[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe} ;

 void delay(unsigned char k)
 {
   unsigned char i;
   for(;k>0;k--)
    for(i=0;i<10;i++)
       ;
 }

void show(u8 pic[8],u8 short_n,u16 long_n)
{
  for(;long_n>0;long_n--)
  {
    P3M1=0x7f;
    P3M0=0x80;//P37为推免输出  
    P37=0;    
    P1=pic[0];  
    delay(short_n);
    P37=1;    
    P1=pic[4];  
    delay(short_n);

    P3M1=0xbf;
    P3M0=0x40;//P36为推免输出  
    P36=0;
    P1=pic[1];      
    delay(short_n);
    P36=1;
    P1=pic[5];      
    delay(short_n);

    P3M1=0xdf;
    P3M0=0x20;//P35为推免输出  
    P35=0;
    P1=pic[2];      
    delay(short_n);
    P35=1;
    P1=pic[6];      
    delay(short_n);

    P3M1=0xef;
    P3M0=0x10;//P34为推免输出  
    P34=0;
    P1=pic[3];      
    delay(short_n);
    P34=1;
    P1=pic[7];      
    delay(short_n);
  }
}

void show_single(u8 pic[8],u8 short_n,u16 long_n)
{
  unsigned char k;
    P3M1=0x7f;
    P3M0=0x80;//P37为推免输出  
    P37=0;
  for(;long_n>0;long_n--)    
    for(k=0;k<8;k++)
    {
      P1=pic[k];  
      delay(short_n);
    }
}

 void main()
 {
 P3M1=0xff;
 P3M0=0x00;//P3口为高阻
 P1=0;
 delay(10);
 while(1)
 {
  show(Picture1,20,3000);
  show(Picture2,20,3000);
  show(Picture3,20,3000);

  show_single(Picture4,200,800);
  }
 }

 STC11F  调速部分:

 #include "reg51.h"

//在测试的时候,一定要去掉飞轮!!!!!!!!!

sbit Light=P1^0;
sbit Pwm=P1^1;
sbit Accelerate=P1^2;            //该引脚接地,加大油门控制
sbit Stop=P1^3;            //该引脚接地,停止


unsigned int k=0;                       
unsigned char a=0;            
                  
void Control()
{
  if(Accelerate==0&&k<1100)           //检测是否加油门
    k++;
  if(Stop==0)
    k=0;
}

//void delay(unsigned char j)
//{
//  unsigned char i;
//  for(;j>0;j--)
//    for(i=0;i<255;i++)
//      ;
//}
/**************************************************************
函数功能:主函数
**************************************************************/
void main(void)
{
    EA=1;                  //开总中断
    ET1=1;                 //定时器T1中断允许         
    TMOD=0x10;             //TMOD=0001 000B,使用定时器T1的模式1,16位
    TH1=0xfc-k/256;   //定时器T1的高8位赋初值    
    TL1=0xd3-k%256;  //定时器T1的高8位赋初值
    TR1=1;                 //启动定时器T1
    Light=0;
    while(1)//无限循环等待中断
    {
      while(TF1==0) ;
      TF1=0;
      Control();
      //delay(5);
    }   
 }
/**************************************************************
函数功能:定时器T1的中断服务程序
在此函数中严重禁止使用如下格式赋值!!!!!!!!!!!!!!!
  TH1=(65536-k)/256;        //定时器T1的高8位赋初值
  TL1=(65536-(125-k))%256;  //定时器T1的高8位赋初值
不然输出来的计时长度就会变长!!!!!!!!!!!!!!!!!!
**************************************************************/
void Time1(void) interrupt 3 using 0 //“interrupt”声明函数为中断服务函数
 {
   unsigned char kh,kl;
   kh=k>>8;
   kl=k;
   TR1=0;                 //关闭定时器T1
   if(a==0)
   {
     a=1;
     Pwm=1;                        //高电平
     TH1=0xfc-kh;   //定时器T1的高8位赋初值
     TL1=0xff-kl;  //定时器T1的低8位赋初值, 不能用小于0xff的数-kl,不然就会借位溢出!
   }
   else
   {
     a=0;
     Pwm=0;                           //低电平
     TH1=0xab+kh;   //定时器T1的高8位赋初值    
     TL1=0x00+kl;  //定时器T1的低8位赋初值 ,不能用大于0x00的数+kl,不然就会溢出!
   }
   TR1=1;                 //启动定时器T1
 }

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/68064.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云的工程师又闯祸了,github上紧急修复

最近不少用户使用阿里云提供的测试用例出现了被删除了用户目录下的所有文件&#xff0c;项目地址是&#xff1a;https://github.com/aliyun/aliyun-clialiyun-cli/cli/completion_installer_test.goLines 87 to 99 in 550ccb6path : filepath.Join(u.HomeDir, ".bashrc&qu…

求知 | 聊聊Android资源加载那些事 - Resource的初始化

Hi,你好 &#x1f603; 引言 在上一篇&#xff0c;求知 | 聊聊Android资源加载的那些事 - 小试牛刀 中&#xff0c;我们通过探讨 Resource.getx() ,从而解释了相关方法的背后实现, 明白了那些我们日常调用方法的背后实现。 那么&#xff0c;不知道你有没有好奇 context.reso…

【蓝桥杯国赛真题07】python杨辉三角形 蓝桥杯青少年组python编程 蓝桥杯国赛真题解析

目录 python杨辉三角 一、题目要求 1、提示信息 2、编程实现 3、输入输出

蓝桥杯嵌入式Debug

文章目录前言一、Debug是什么二、如何调试1.重要调试按键介绍2.其他按键介绍三、监视变量窗口总结前言 这一篇文章是非常重要的&#xff0c;掌握了这篇文章有助于大家在比赛中快速找到错误。 一、Debug是什么 Debug是一种程序&#xff0c;一种调试工具&#xff0c;说白了就是…

Elasticsearch:如何在 Elastic Agents 中配置 Beats 来采集定制日志

在我之前的文章 “Observability&#xff1a;使用 Elastic Agent 来摄入日志及指标 - Elastic Stack 8.0”&#xff0c;我详细地描述了如何安装 Elasticsearch&#xff0c;Stack 及 Elastic Agents 来采集系统日志及指标。很多开发者可能会有疑问&#xff0c;在我们的实际使用中…

陈都灵《我们当打之年》热播《关索岭》上热搜,温州人爱望京卡牌

最近&#xff0c;电视连续剧《我们的当打之年》&#xff0c;正在各大卫视台热播&#xff0c;一起热起来的还有该剧主演陈都灵。说起主演陈都灵&#xff0c;她虽然不是正宗的电影学院科班出身&#xff0c;但是她的演技却透露着灵气&#xff0c;也给人以真实的感觉。 陈都灵无疑是…

[附源码]Python计算机毕业设计Django学习帮扶网站设计与实现

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

2023年哪些渲染器更好用?3D新手适合的渲染器汇总

现在很多人都使用3D软件来创作自己的作品&#xff0c;所以渲染器的使用必不可少。有许多流行的渲染器&#xff0c;包括 V-Ray、Octane、Arnold、Corona、RedShift。对于许多 3D 新手来说&#xff0c;哪种渲染器最好&#xff1f; 这些渲染器的原理基本相同&#xff0c;只是操作…

大学免费查题接口系统

大学免费查题接口系统 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&#xff08;点…

地图信息,障碍判断以及寻路算法(A星算法,B星算法和蚁群算法等)

一、广度优先遍历和深度优先遍历 在学习寻路算法之前,我们先来了解一下广度优先遍历和深度优先遍历. 什么是广度优先遍历? 广度优先遍历(breadth first search)是一个万能的算法. 广度优先是从初始状态一层一层向下找&#xff0c;直到找到目标为止。 广度优先遍历&#x…

Elasticsearch入门(一)基本介绍与安装

介绍&#xff1a; Elaticsearch&#xff1a;简称为 ES&#xff0c;ES 是一个开源的高扩展的分布式全文搜索引擎&#xff0c;是整个 Elastic Stack 技术栈的核心。它可以近乎实时的存储、检索数据&#xff1b;本身扩展性很好&#xff0c;可以扩展到上百台服务器&#xff0c;处理…

STL-常用遍历算法

目录 1.for_each 功能描述 函数原型 2.transform 功能描述 函数原型 1.for_each 功能描述 实现容器遍历 函数原型 for_each(itertor beg,iterator end,_func); //遍历算法 遍历容器元素 //beg 开始迭代器 //end 结束迭代器 //_func函数或者函数对象 代码 #include <i…

磕磕绊绊的双非硕秋招之路小结

秋招&#xff0c;真的再见了。 ⭐️我叫恒心&#xff0c;一名喜欢书写博客的研究生在读生。 原创不易~转载麻烦注明出处&#xff0c;并告知作者&#xff0c;谢谢&#xff01;&#xff01;&#xff01; 这是一篇近期会不断更新的博客欧~~~ 有什么问题的小伙伴 欢迎留言提问欧 12…

Pr:导出设置之音频

H.264、HEVC&#xff08;H.265&#xff09;和 MPEG2-DVD 等格式支持多种音频格式。对于这些格式&#xff0c;我们可以通过导出设置中的音频 AUDIO模块导出为不同的音频格式。音频格式设置Audio Format Settings音频格式Audio FormatH.264 默认采用 AAC 音频格式。AAC&#xff0…

RFID固定资产定位管理系统-智慧资产人员可视化管理系统

概述 我司&#xff08;东识科技DONWIT&#xff09;RFID资产可视化管理系统是依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID固定资产进行统一管理、分析的信息化、智能化、规范化的系统。 1.1东识RFID资产管理系统原理 受控样品&#xff08;或…

微服务开发平台 Spring Cloud Blade 部署实践

本文介绍使用 Rainbond 快速部署 Spring Cloud Blade 微服务平台。Spring Cloud Blade 是一个由商业级项目升级优化而来的微服务架构&#xff0c;采用Spring Boot 2.7 、Spring Cloud 2021 等核心技术构建&#xff0c;完全遵循阿里巴巴编码规范。提供基于 React 和 Vue 的两个前…

自定义RBAC(2)

您好&#xff0c;我是湘王&#xff0c;这是我的CSDN博客&#xff0c;欢迎您来&#xff0c;欢迎您再来&#xff5e; 上一次把DAC、MAC、PBAC这三个都一口气介绍完了&#xff0c;本想一口气把RBAC也说完。想了想&#xff0c;饭还是要一口口吃&#xff0c;一次吃太多会消化不良&am…

Python | 今年世界杯哪个队最有可能夺冠?!

文章目录&#x1f3f3;️‍&#x1f308; 1. 数据&#x1f3f3;️‍&#x1f308; 2. 绘图2.1 绘制南丁格尔玫瑰图2.2 设置cloor_bar2.3 添加文字2.4 添加注释2.5 添加标题2.6 词云&#x1f3f3;️‍&#x1f308; 3. 更多可视化项目源码数据大家好&#xff0c;我是 &#x1f4…

Sqoop数据导出 第1关:Sqoop数据导出语法学习

为了完成本关任务&#xff0c;你需要掌握&#xff1a; 1、Sqoop 导出( export )的基本参数。 2、配置环境。 Sqoop 导出( export )的基本参数。 Sqoop 能够让 Hadoop 上的 HDFS 和 Hive 跟关系型数据库之间进行数据导入与导出&#xff0c;多亏了import和export这两个工具。本…

【Tensorflow+自然语言处理+RNN】实现中文译英文的智能聊天机器人实战(附源码和数据集 超详细)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 一、序列-序列机制概述 Seq2Seq 是一个 Encoder-Decoder 结构的神经网络&#xff0c;它的输入是一个序列(Sequence)&#xff0c;输出也是一个序列(Sequence)。在 Encoder 中&#xff0c;将可变长度的序列转变为固定长度的向…