c51单片机

  51单片机是控制电路系统的开关,当然芯片就是51芯片,现在随着科技的发展,也是出了很多,功能更多,更全的芯片。

                      51是用c语言做为程序编程的语言

——我对基本基础硬件的了解

        电阻: 降电流电压;                 电容:就像蓄电池一样(但是只能蓄微弱的电量);

——最基本的一个公式

            U= I R;

——电平(这是我了解的新的一个知道点)

    电平分为高电平和低电平

                高电平——3v和5v(单片机工作的电压)

                低电平——0v

                       ——只要有高低电平的差,才会有“工作”

——程序的编程(让一个小灯亮)

#include  "reg52.h"      //导入头文件   reg52.h

sbit led = P0^1;     //定义一个   广角(端口),p0的1端口

void main()     //主函数

{

  led = 1;(或者是0;这是取决与单片机的设置)            //给 端口 输出一个 高电平或者低电平;

}                         //小灯简单的点亮

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

                让小灯闪烁的程序(非精确延时)

#include "reg52.h"

sbit P0^0;

void main()

{

  unsigned int  i = 0 ;//定义int 型的 i;它的值是 0~65535

  while(1)                //程序的死循环   单片机用得是非常多的

  {

    led = 1;

    for(i=0;i<30000;i++);      //一个非精确的延时

    led = 0;

    for(i=0;i<30000;i++)

  }

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

                  精确的延时

  如果想要使用精确延时,就必须先打延时的功能,它是c51内部的一个功

#include "reg52.h"

void main()

{

  TH0 = 0XFC;  //1秒的延迟高八位的初值

  TL0 = 0x67;      //低八位的初值

  TR0 = 1;   //定时器的开关

  while(1)

  {

    if(TF0 = 1)

    {

      TF0 = 0;//溢出标志,溢出了就清0,

      TH0 = 0xfc;      //重新赋值

      TL0 = 0x67;

      cnt++;       //cnt  记录溢出的次数

      if(cnt >= 1000)    // 溢出是 1毫秒;溢出一千次就是1秒

      {

        cnt = 0;

        sec++;      // sec  ,记录了 溢出的多少秒

      }

    }

  }

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

                          中断系统

这是非常重要的的一个知识点,利用一个函数

#include "reg52.h"

void Interrupt_Time0()  interrupt 1  //中断的函数和别的函数有所不同,()后还要加  interrupt  和函数值  1 ←这个值不是随便取的,要看数据芯片;

{

  static unsigned char   i = 0;

  static unsigneed int  cnt = 0; 

  TH0 = 0xfc;

  TL0 = 0x67;

  cnt++;

  if(cnt >= 1000)

  {

    cnt = 0;

    flag_1s = 1;//等于一就会跳转到  flag_1s里;

  } 

  switch(i)

  {

    caes 0:.....................................;break;

  }

}

void main()

{

  TMOD = 0x01; //表示打开定时器的 1 模式  ;

  TH0 = 0xfc;

  TL0 = 0x67;

  TR0 = 1;    //打开定时器    定时器的开关

  EA = 1;    //中断系统的总开关

  ET0 = 1;            //定时器0 的开关

  while()

  {

    if(flag_1s ==1)

    {

      flag_1s = 0

      sec++;

      led_buff[0] = led_char[sec%]; //赋值

    }

  }

}

C51单片机_day_01(定时器和中断系统)的更多相关文章

  1. 打打基础,回头看看avr单片机的定时器、中断和PWM(转)

    以前小看了定时器,发现这东西还真的很讲究,那先复习复习吧. 先提提中断:我的理解就是cpu执行时,遇到中断——根据对应的中断源(硬件或软件)——pc定位中断入口地址,然后根据这里的函数指针——跳转到相 ...

  2. MCS-51 单片机的中断系统

    MCS-51 单片机的中断系统 MCS-51中断系统:5个中断源(两个外部中断, 两个定时器, 一个串口),2个优先级 中断相关概念 中断:当CPU正在处理某件事情时,单片机外部或内部发生的某一紧急事 ...

  3. 系统滴答定时器(SysTick)中断配置

    系统滴答定时器(SysTick)中断配置 在STM32标准库中是通过SysTick_Config()函数配置时钟中断的,然后SysTick_Handler()函数自动定时触发其中的函数. if(Sys ...

  4. AVR单片机教程——定时器中断

    本文隶属于AVR单片机教程系列.   中断,是单片机的精华. 中断基础 当一个事件发生时,CPU会停止当前执行的代码,转而处理这个事件,这就是一个中断.触发中断的事件成为中断源,处理事件的函数称为中断 ...

  5. C51单片机头文件和启动文件

    STARTUP.A51//启动文件. 清理RAM.设置堆栈等.即执行完start.a51后跳转到.c文件的main函数 <reg51.h>  //特殊寄存器的字节地址和位地址,sfr定义字 ...

  6. 430单片机之定时器A功能的大致介绍

    总的来说,430单片机一共有三个定时器,定时器A,定时器B,还有就是看门狗定时器,这里我们主要是讨论430单片机的定时器A的功能,定时器A的功能是我目前见过最厉害的定时器,视频上说用好定时器A的话,对 ...

  7. TMS320F28335项目开发记录9_28335中断系统

    28335中断系统 1.中断系统 在这里我们要十分清楚DSP的中断系统. C28XX一共同拥有16个中断源,当中有2个不可屏蔽的中断RESET和NMI.定时器1和定时器2分别使用中断13和14.这样还 ...

  8. STM32的中断系统

    STM32的中断系统 STM32具有十分强大的中断系统,将中断分为了两个类型:内核异常和外部中断.并将所有中断通过一个表编排起来,下面是stm32中断向量表的部分内容: 上图-3到6这个区域被标黑了, ...

  9. MCS-51单片机的定时器/计数器概念

    一.MCS-51单片机的定时器/计数器概念 单片机中,脉冲计数与时间之间的关系十分密切,每输入一个脉冲,计数器的值就会自动累加1,而花费的时间恰好是1微秒;只要相邻两个计数脉冲之间的时间间隔相等,则计 ...

随机推荐

  1. DevExpress之TreeList控件用作导航使用说明

    最近项目用的是DEV界面框架, 由于各控件属性太多,以免遗忘.所以做个笔录.也方便有这方面需求的网友交流学习.下面开始讲解具体实现步骤. 一.先布局,设置相关属性. 1.首先到工具箱拖一个 TreeL ...

  2. 一个redis因为关闭快照无法连接的BUG

    [2018-04-19 11:00:08,587: ERROR/MainProcess] consumer: Cannot connect to redis://127.0.0.1:6379/0: M ...

  3. Oracle学习DayTwo

    一.创建表和管理表 1.表名和列名的命名规则 必须以字母开头必须在 1–30 个字符之间必须只能包含 A–Z, a–z, 0–9, _, $, 和 #必须不能和用户定义的其他对象重名必须不能是Orac ...

  4. 使用IdentityServer4,在一个ASPNetCore项目中,配置oidc和api的AccessToken两种认证授权

    1.配置两种认证方式 JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); services.AddAuthentication(op ...

  5. Flex-box入门---flex-grow, flex-shrink, flex-basis

    Block Elements and inline elements(块元素和行内元素) 在进入正题之前,我们先来简单总结一下传统的block元素和inline元素. HTML中的block元素显示在 ...

  6. c# 多线程的几种方式

    1.什么是线程? 进程作为操作系统执行程序的基本单位,拥有应用程序的资源,进程包含线程,进程的资源被线程共享,线程不拥有资源. 2.前台线程和后台线程的区别? 程序关闭时,后台线程直接关闭,但前台线程 ...

  7. 关于JDBC和连接池我学到的(转载保存)

    1.JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet.beans)中建立数据库连接. 进行sql操作 断开数据库连接. 这种模 ...

  8. jstl,el表达式

    在上一篇中,我们写了将数据传到jsp页面,在jsp页面进行展示数组,但是我们发现,在jsp页面写代码是一件很烦的事,一个循环要拆成两部分,例如for循环,在例如if语句: <%int a=22; ...

  9. springboot单元测试自动回滚:@Transactional

    2019-04-21 12:23:14.509 INFO 9384 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - St ...

  10. IDEA常用快捷键总结

    Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论.每个人都有自己的最爱,想排出个理想的榜单还真是困难.以前也整理过Intellij的快捷键,这次就按 ...