51单片机+L293D控制直流电机起保停+数码管PWM调速显示
2021/6/26 23:29:43
本文主要是介绍51单片机+L293D控制直流电机起保停+数码管PWM调速显示,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
51单片机+L293D控制直流电机起保停+数码管PWM调速显示
-
PWM速度10级可调
-
采用L293D驱动
-
数码管显示PWM当前占空比
-
可优化的地方是数码管可以采用其他驱动芯片来驱动,提高驱动能力和减少单片机的IO口占用,例如74LS138译码器来驱动,前面几篇文章有写到采用数码管驱动芯片来做示例的可以参照。
-
仿真演示
-
程序代码
#include <STC89C5xRC.H> typedef unsigned char u8; typedef unsigned int u16; #define EN1 P22 #define D1 P20 #define D2 P21 #define button_Z P10 #define buttun_R P11 #define button_T P12 #define PWM_add P13 //#define PWM_sub P14 u8 flag=0; u8 flag1=0; static u8 b =5; u8 code table[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; void init(); void zhengzhuan(); void fanzhuang(); void ting(); void buttonscan(); void delayms(u8 rms); void display(u16 num); void main (){ init(); EA=1; while(1) { buttonscan(); } } void zhengzhuan(){ //EN1=1; ET0=1; D1=1; D2=0; } void fanzhuang(){ //EN1=1; ET0=1; D1=0; D2=1; } void ting(){ // EN1=0; ET0=0; D1=1; D2=1; } void buttonscan(){ if(button_T==0){ ting(); } if(button_Z==0){ zhengzhuan(); } if(buttun_R==0){ fanzhuang(); } if(PWM_add==0&&flag==0){ flag=1; } if(PWM_add==1&&flag==1) { b++; if(b>10)b=0; flag=0; } display(b); } void init() { TMOD=0X01; TH0 = (65536-1000)/256; TL0 = (65536-1000)%256; TR0 =1; ET0=1; EA=1; ET0=1; } void time0 ()interrupt 1 {//中断处理函数 static u16 a; TH0 = (65536-1000)/256; TL0 = (65536-1000)%256; a++; if(a>9) //1khz a=0; if(a<b) //占空比可改 EN1=1; else EN1=0; } void display(u16 num) { P27=0; P0=table[(num/1000)]; delayms(2); P0=0X00;//消隐 P27=1; P26=0; P0=table[(num/1000)]; delayms(2); P0=0X00; P26=1; P25=0; P0=table[(num/10)]; delayms(2); P0=0X00; P25=1; P24=0; P0=table[(num%10)]; delayms(2); P0=0X00; P24=1; } void delayms(u8 rms) { u8 i,j; for(i=0;i<rms;i++) for(j=0;j<110;j++); }
这篇关于51单片机+L293D控制直流电机起保停+数码管PWM调速显示的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南