AT89C51
昂德森科技
因为热爱,所以拼搏。
展开
-
51单片机对直流电机的控制
占空比=周期内高电平持续的时间/整个周期直流电机驱动芯片选择L293D电机正转:#include "reg51.h"sbit IN0=P2^0;sbit IN1=P2^1;//使能sbit E=P2^2;void deal(){ IN0=1; IN1=0; E=1; }void main(){ while(1){ deal(); }}延迟函数实现PWM调速:#include "reg51.h"sbit IN0=P2^0;sbit IN1=P2^1;//原创 2021-10-11 20:43:35 · 11799 阅读 · 3 评论 -
51单片机简易clock
#include <reg51.h>sbit RS=P3^0;sbit RW=P3^1;sbit E=P3^2;unsigned char count=0;unsigned int hour=0,min=0,sec=0;unsigned char str[]={"0123456789"};unsigned char str1[]={"CLOCK:"};void delay(unsigned int t){ unsigned int i=0,j=0; for(i=0;i<原创 2021-10-11 14:52:24 · 375 阅读 · 0 评论 -
51单片机LCD1602
#include <reg51.h>sbit RS=P3^0;sbit RW=P3^1;sbit E=P3^2;unsigned char s[]={"Hello world"};void delay(unsigned int t){ unsigned int i=0,j=0; for(i=0;i<t;i++){ for(j=0;j<120;j++){ } }}void writedat(unsigned char dat){ RS=1; RW=0;原创 2021-10-09 11:19:20 · 101 阅读 · 0 评论 -
51单片机串口通信
一 串行口内部结构:原创 2021-10-09 10:26:14 · 204 阅读 · 0 评论 -
51单片机中断
#include "reg51.h"unsigned char s[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};unsigned char num=0;sbit ex=P3^2;void initte(){ IT0=1; EX0=1; EA=1; //下降沿触发 ex=1;}void show(){ P2=s[num]; if(num==10){ num=0; } }void isr_ok() in...原创 2021-10-08 21:12:21 · 185 阅读 · 0 评论 -
51单片机计数器
#include "reg51.h"unsigned char s[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};unsigned char num=0,count=0;void initcounter(){ //0000 0110 TMOD=0x06; TH0=256-3; TL0=256-3; ET0=1; EA=1; TR0=1; }void counter_isr() interrupt 1{ num++.原创 2021-10-07 20:46:36 · 574 阅读 · 0 评论 -
51单片机定时器工作原理及其应用
#include "reg51.h"unsigned char s[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};unsigned char num=0,count=0;void timer(){ //0000 0001 TMOD=0x01; //高8位变低8位 >>(右移) /2^8=256 TH0=(65536-50000)/256; TL0=(65536-50000)%256; //开启定时器0的中断...原创 2021-10-07 20:02:36 · 581 阅读 · 0 评论 -
开关控制数码管
共阴极的数码管#include <reg51.h>typedef unsigned int uint;typedef unsigned char uchar;uchar s[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};sbit btn_0=P1^0;uchar num=0,flag=0;void delay(uint n){ uint i=0,j=0; for(i=0;i<n;i++){ for(j=0原创 2021-10-03 18:50:46 · 1070 阅读 · 0 评论 -
51单片机入门 数码管的显示
共阴极相连的数码管:一共8个LED,数字的显示通过LED的亮灭控制还有多个数码管连在一起的情况:如果想让第三个显示1,上面必须是1101,因为是位选,就是说想显示哪一位亮的,下面的引脚按数字1的8个LED来给0/1。一般数码管的位选都是共阴极接法,二极管是共阳极接法,下面我的这个数码管的程序很简单:#include <REGx52.h>void main(){ P2_1=1; P2_2=1; P2_3=0; P2_4=1; P1_0=0; P1_1=1; P1原创 2021-09-18 22:26:22 · 1029 阅读 · 0 评论