2018-12-27 13:40:11 qq_29769263 阅读数 5417
  • 单片机到底是个什么东西-1.2.第1季第2部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第2个课程,用通俗易懂的语言讲了很多和单片机有关的技术概念,如CPU、ROM、RAM、外设、电路板、软件硬件工作的差别等。目的是希望大家在轻松愉悦的氛围中对单片机加深认识。

    3044 人正在学习 去看看 朱有鹏

51单片机无法烧录程序的N种解决办法


  1. 有没有掉电!!!如果没有自动掉电的电路时,需要手动掉电;
  2. 单片机的晶振有没有安装好,是否有缺失,晶振的负载电容是否合适;
  3. CH340的TXD,RXD要与单片机的TXD,RXD反接,CH340的地线有没有和单片机接好;
  4. 如果单片机的最小系统是自己焊接的,检查一下复位电路,是否因为复位电路有问题,导致RST引脚电平一直被拉高;
  5. 确认单片机的型号是否正确,尝试降低下载的波特率。
2017-09-06 13:06:54 mcuwangzai 阅读数 19425
  • 单片机到底是个什么东西-1.2.第1季第2部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第2个课程,用通俗易懂的语言讲了很多和单片机有关的技术概念,如CPU、ROM、RAM、外设、电路板、软件硬件工作的差别等。目的是希望大家在轻松愉悦的氛围中对单片机加深认识。

    3044 人正在学习 去看看 朱有鹏

这篇博客就来分享一下51单片机最小系统的制作以及怎么下载程序微笑


首先准备的材料有:一块板子,一块89c51/52的芯片,一个51芯片插座,12MHZ的晶振,一个10的电阻,一个10uf的电解电容

两个20-33pf的瓷片电容,线若干,小开关一个


电路图如下:



那个小开关就是复位开关,制作好了大家可以下载一个小程序看看。。。。。。鄙视






最小系统制作非常容易,但是我下载程序时都是先把程序放到开发板上烧好在插入底座中,但是一般的底座由于结构问题,和51单片机芯片针脚太软了,多插几次容易就断掉,所以接下来我就来分享一下怎么不把芯片拔出来就可以任意烧程序(当然有usb转串口就忽视这个方法偷笑


首先把开发板的芯片拔下来,把自己焊的最小系统的VCC,GND,P3^0,P3^1对照接到开发板上:




这样就可以直接烧程序了.....................可怜

2020-01-20 21:53:19 qq_45382733 阅读数 104
  • 单片机到底是个什么东西-1.2.第1季第2部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第2个课程,用通俗易懂的语言讲了很多和单片机有关的技术概念,如CPU、ROM、RAM、外设、电路板、软件硬件工作的差别等。目的是希望大家在轻松愉悦的氛围中对单片机加深认识。

    3044 人正在学习 去看看 朱有鹏

【蓝桥杯单片机 控制LED灯电路经典程序】(2)
接上篇:上一篇(1)中只介绍了控制LED灯的电路,138译码器打通573锁存器,锁存器再控制八路LED灯。这篇主要介绍如何编写代码控制LED灯的亮灭。搞懂前面两篇内容,也就相当于简单入门了。
比赛时用的是keil uv4编译软件和stc-isp烧录软件,它们的使用这里不多讲了。

一、在keil中写好程序基本构架

#include"reg52.h"  //包含头文件
void Delay(unsigned int t)  //延时t毫秒
{
	unsigned char i, j;
	for(i = t; t > 0; t--)
		for(j = 110; j > 0; j--);
}
void main()  //主函数
{
	while(1)  //死循环
	{
	}
}

二、38译码器程序
上篇(1)说过,要使得控制LED灯的锁存器打通,就要让Y4输出低电平,也即让P25=0,P26=0,P27=1。
在这里插入图片描述在程序上是这样表示的:

sbit HC138_A = P2^5;  //定义译码器中ABC所在引脚
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;

HC138_C = 1//给CBA赋值
HC138_B = 0;
HC138_A = 0

三、573锁存器程序控制LED灯

在这里插入图片描述
上一个程序让Y4C输出了高电平,打通了锁存器,则Dx与Qx电平特性一致。低电平,灯亮;高电平,灯灭。下面是让LED一直闪烁的程序:

注:0x00二进制为00000000,所以P0=0x00就是一次性给P20–P27都赋值为了0; 0xff类似,后面的十六进制数都是要转化为2进制来理解的。

P0 = 0x00;  //让P20--P27输出低电平
Delay(1000);
P0 = 0xff;  //让P20--P27输出高电平
Delay(1000);

将程序写完整是这样的:
在这里插入图片描述

2015-12-13 13:29:50 guo13313 阅读数 658
  • 单片机到底是个什么东西-1.2.第1季第2部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第2个课程,用通俗易懂的语言讲了很多和单片机有关的技术概念,如CPU、ROM、RAM、外设、电路板、软件硬件工作的差别等。目的是希望大家在轻松愉悦的氛围中对单片机加深认识。

    3044 人正在学习 去看看 朱有鹏

流水灯的实现

一、硬件

开发板的焊接过程

说明书


工具


完成,烧录程序


成品


二、辅助软件介绍

Proteus(画电路图)

流水灯



交通信号灯


Keil(单片机C语言开发系统)

STC(单片机烧录)


三、程序

#include<at89x51.h>
#define Uint unsigned int
void delayms(Uint number);
void main()  
{
    P3_3=0;                     //打开LED总开关
    while(1) 
   {
P1_0=0;                     //LED1亮
delayms(1000);              //延时
P1_1=0;                     //LED2亮
delayms(1000);              //延时
P1_2=0;
delayms(1000);
P1_3=0;
delayms(1000);
P1_4=0;
delayms(1000);
P1_5=0;
delayms(1000);
P1_6=0;
delayms(1000);
P1_7=0;
delayms(1000);
P1 =0xff;                       //LED全灭
delayms(1000);
   }
}

void Delayms(Uint number)             
{
unsigned char temp;
    for(;number!=0;number--)
   {
      for(temp=112;temp!=0;temp--)
     {                   
     }
   }
}

四、效果图




2017-11-19 12:12:24 object_oriented 阅读数 824
  • 单片机到底是个什么东西-1.2.第1季第2部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第2个课程,用通俗易懂的语言讲了很多和单片机有关的技术概念,如CPU、ROM、RAM、外设、电路板、软件硬件工作的差别等。目的是希望大家在轻松愉悦的氛围中对单片机加深认识。

    3044 人正在学习 去看看 朱有鹏

proteus仿真软件用法:

1.打开软件创建工程

     2.选择要用的元件画图,如选择一个c52,

点击p在keywords中写入要用的元件然后在右边的框中选中目标元件,点击ok

出来后,在要放该元件的地方双击就放好了



这个图是画完之后的图形,led灯亮是因为与程序进行了仿真

仿真步骤:双击单片机选择产生的hex文件,运行仿真


然后点击电路图左下端三角进行仿真




软件程序:

#include <reg52.h>


void Delay10ms(unsigned int c);   


unsigned char LED;


void main()

unsigned char i;


  
LED = 0xFE;


while (1) 
{  
for (i = 0 ;i < 7 ; i++)


P1  = LED;

Delay10ms(50);  

LED = LED << 1;     

// LED = LED | 0x01;  
}


for (i = 0 ;i < 7 ; i++)
{
P1  = LED;


Delay10ms(50);


LED = LED >> 1;


LED = LED | 0x80;  
}



P1=~0x81;
Delay10ms(50);
P1=~0xc3;
Delay10ms(50);
P1=~0xe7;
Delay10ms(50);
P1=~0xff;
Delay10ms(50);
P1=0xff;
Delay10ms(50);
P1=0x00;
Delay10ms(50);
P1=0xff;
Delay10ms(50);
P1=0x00;
Delay10ms(50);
}
 
}


void Delay10ms(unsigned int c)   //误差 0us
{
    unsigned char a, b;


    for (;c>0;c--)
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
           
}       
}

状态1:控制系统通电或复位后,8LED发光二极管依次从左到右开始逐个点亮;

状态28LED发光二极管全亮后,从右向左再逐个熄灭;

状态38LED发光二极管全灭后,从左到右两边开始同时点亮LED发光二极管,全亮后,8LED发光二极管再明暗一起闪烁2次。


没有更多推荐了,返回首页