51单片机:定时器/计数器TMOD设定
51单片机:定时器/计数器TMOD设定51单片机:定时器/计数器TMOD设定
上图为TMOD格式,8位分为两组,高四位控制T1,低四位控制T0 GATE :为门控位,GATE=0时,只要在编写程序时,使TCON中的TRO或TR1为1,就可以启动定时器/计数器工作。 GATE=1时,不仅要在编写程序时,使TCON中的TRO或TR1为1,且需要外部引脚也为高电平,才能工作。 C/T :定时/计数模式切换,C/T=0时为定时模式,C/T=1时为计数模式。 M1,M0:用来选择定时计/计数器的工作方式,一般使用都是采用16位的计时计数器。
几种TMOD设置: 定时器工作模式下,GATE = 0:
TMOD = 0X01 (T0工作在方式1)
TMOD = 0X02 (T0工作在方式2)
TMOD = 0X10 (T1工作在方式1)
TMOD = 0X20 (T1工作在方式2)
1.方式0时,N=13(此为T ...
51单片机定时器累加计数(000-999)+4位数码管(循环显示)+Proteus仿真
51单片机定时器累加计数(000-999)+4位数码管(循环显示)+Proteus仿真51单片机定时器累加计数(000-999)+4位数码管(循环显示)+Proteus仿真
说明:为什么采用4位的数码管,因为Proteus里面没有3位的数码管器件可选,也可以采用2+1,或者1+1+1,的数码管方式来拼接。
Proteus仿真
Proteus器件:共阳数码管、
实例代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 #include <reg52.h>#define uint unsigned int#define uchar unsigned char sbit a = P2^0; sbit b = P2^1;sbit c = P2^2;sbit d =P2^3;uchar code table[]={ ...
51单片机:开启中断和定时器
51单片机:开启中断和定时器51单片机:开启中断和定时器
相关篇《51单片机:定时器/计数器TMOD设定》
关于中断,需要用到中断允许寄存器:
开启定时器中断需要的条件:
总中断EA:用来开启全局中断。
ET0、1、2:各个定时器中断位。
使用中断位只用将其置1就行,例如EA=1;ET0=1;
打开了中断开关只是完成了一半,还需要定时器控制寄存器: 使用方法也是和中断寄存器一样, 定时器0运行控制位TR0:用来开启定时器0. 把TR0置1,TR0=1;就开启了定时器。
设置中断服务程序:
中断服务程序:就是当计满TH0、TL0时溢出申请中断,然后单片机允许中断时,所要发生的事情。允许后就自动跳转到中断服务程序,并执行。 在服务程序中,如果不装入初值,那定时器中断服务完成后,就会从0开始重新计时,所以要在中断程序中重新计算并装入初值。 然后给一个变量(变量的意义为中断次数),变量+1,当中断次数达到20次的时候(50ms*20次=1000ms=1s),次数清零,并且让产生指令(例如让二极管亮呀,让I ...
51单片机简易MP3程序驱动蜂鸣器播放
51单片机简易MP3程序驱动蜂鸣器播放51单片机简易MP3程序 蜂鸣器播放
新手入门课程,来一曲《敢问路在何方》
Proteus仿真
AT89C51
简易电路搭建
元件
实例代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192#include <reg52.h>sbit beep = P2^3;unsigned char timer0H, timer0L, time;//单片机晶振采用11.0592MHzcode unsigned char FREQH[] = { 0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8, //低音1234567 0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB ...
51单片机自定义串口通讯协议控制流水灯+Proteus仿真
51单片机自定义串口通讯协议控制流水灯+Proteus仿真51单片机自定义串口通讯协议控制流水灯+Proteus仿真
📺Proteus仿真演示
✨注意不要使用Proteus 8 Professional 8.13版本串口通信会出错。
🔨需要利用虚拟串口工具提前创建2个虚拟串口。
✨Proteus里面AT89C52频率设置11.0592MHz
🔧COMPIN串口器件设置
🔖虚拟串口监视器:都设置一样的波特率:9600
⛳串口协议命令说明
$51,LED0#到$51,LED8#:控制P0口以及P2^3口电平状态翻转
$51,LED0#到 $51,LED8#:单独点灯
$51,LED00#:取消所有效果显示
$51,LED83#:流水灯效果
$51,LED82#: led灯闪烁
📝实例代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 ...
51单片机通过按键简单控制直流电机正反转程序(Proteus仿真)
51单片机通过按键简单控制直流电机正反转程序(Proteus仿真)51单片机通过按键简单控制直流电机正反转程序(Proteus仿真)
Proteus仿真
AT89C52、motor、
器件
原理图搭建
实例代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*直流电机正、反转控制\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\ ...
【Proteus仿真】51单片机按键控制数码管加减
【Proteus仿真】51单片机按键控制数码管加减【Proteus仿真】51单片机按键控制数码管加减
📺Proteus仿真演示:
📋采用的是8位数码管,实际上只使用了3位数码管用来显示。
📝实例代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intuchar code DSY_CODE[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//共阳数码管断码uchar Num_Buffer[] = {0,0,0};uchar Key_Co ...
基于51单片机定时器计数+2片74HC595联级+8位数码管时钟+按键修改时间
基于51单片机定时器计数+2片74HC595联级+8位数码管时钟+按键修改时间基于51单片机定时器计数+2片74HC595联级+8位数码管时钟+按键修改时间
Proteus仿真
实例代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168#inclu ...
基于51单片机定时器计数+74HC595移位寄存器+8位数码管时钟
基于51单片机定时器计数+74HC595移位寄存器+8位数码管时钟基于51单片机+74HC595移位寄存器+8位数码管时钟
Proteus仿真
实例代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119#include <REGX52.H>sbit SHCP = P0^1; // 移位寄存器的时钟输入sbit STCP = P0^2; //存储寄存器的时钟输入sbit DS = P0^0; code unsigned char SegTab[17]={ 0x3f,0x06,0x5b,0x4f, 0x6 ...
51单片机 多路超声波测距和报警 +Proteus仿真
51单片机 多路超声波测距和报警 +Proteus仿真51单片机 多路超声波测距和报警 +Proteus仿真
Proteus仿真
Proteus仿真电路搭建注意事项
蜂鸣器采用的是有源蜂鸣器,选择DC直流驱动的蜂鸣器,供电电压选择5V,默认调用出来的是12V,需要修改。
元器件列表
实例代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501 ...
