历史上的今天
今天是:2025年02月20日(星期四)
2020年02月20日 | 42步进电机控制单片机程序
2020-02-20 来源:51hei
下面是仿真图:



/****************************************Copyright (c)**************************************************
**
** -----------------------------------------------------------------------------------------------------
** File Name :
** Version : V1.0.0
** Description :
* 【外部晶振】: 11.0592mhz
* 【主控芯片】: STC89C52
* 【编译环境】: Keil μVisio4
* 【程序功能】:
* 【使用说明】:
** -----------------------------------------------------------------------------------------------------
** Author : Creavalia
** Date : 2016年10月19日
** -----------------------------------------------------------------------------------------------------
** Modify Person:
** Modify Date :
** Description :
*********************************************************************************************************/
// Includes --------------------------------------------------------------------------------------------
#include /******************************************************************************************************** ** Marcos define *********************************************************************************************************/ #define MotorTabNum 5 unsigned char T0_NUM; //IO设置 sbit K1 = P3^5; // 启动 sbit K2 = P3^4; // 反向 sbit K3 = P3^3; // 加速 sbit K4 = P3^2; // 减速 sbit FX = P2^4; // 方向 sbit MotorEn = P2^5; // 使能 sbit CLK = P2^6; // 脉冲 //----数码管--------------- sbit SMG1 = P2^0; //数码管第一位定义 sbit SMG2 = P2^1; //数码管第二位定义 sbit SMG3 = P2^2; //数码管第三位定义 sbit SMG4 = P2^3; //数码管第四位定义 int table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //共阴极数码管段值 //int table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,}; //共阳极数码管段值 unsigned char g_MotorSt = 0; // 启停 unsigned char g_MotorDir = 0; // 正反 //unsigned char MotorTab[6] = {200, 160, 120, 80, 40, 20}; unsigned char MotorTab[6] = {12, 10, 8, 6, 4, 2}; //unsigned char MotorTab[6] = {6, 5, 4, 3, 2, 1}; signed char g_MotorNum = 0; //-------------- void delayms(xms); void mDelay(unsigned int DelayTime); //延时函数 void T0_Init(); void KeyScan(void); void Display(void); // 主程序 main() void main(void) { unsigned char i; T0_Init(); // 定时器0 初始化 MotorEn = 0; // L297 使能(只有智能,才能正常工作,否则停止) FX = 0; while(1) { KeyScan(); // 按键 for(i=0; i<10; i++) Display(); } } /********定时器初始化***********************************************************/ void T0_Init() { TMOD = 0x01; TH0 = (65535-100)/256; // 1ms TL0 = (65535-100)%256; EA = 1; ET0 = 1; // TR0 = 1; } /********定时器中断*****************/ void T0_time() interrupt 1 { // TR0 = 0; TH0 = (65535-100)/256; TL0 = (65535-100)%256; T0_NUM++; if(T0_NUM >= MotorTab[g_MotorNum]) // 增加按键g_MotorNum++ 减小按键g_MotorNum-- { T0_NUM = 0; CLK=CLK^0x01; // 输出脉冲 } // TR0 = 1; } //-----按键控制--------------------- void KeyScan(void) { if(K1 == 0) { delayms(5); // 软件延时消抖 if(K1 == 0) { while(!K1){Display();}; g_MotorSt = g_MotorSt ^ 0x01; MotorEn ^= 1; TR0 = 1; } } if(K2 == 0) { delayms(10); // 软件延时消抖 if(K2 == 0) { // while(!K2){Display();}; g_MotorDir = g_MotorDir ^ 0x01; FX ^= 1; while(!K2){Display();}; } } if(K3 == 0) // 加速 { delayms(5); // 软件延时消抖 if(K3 == 0) { while(!K3){Display();}; g_MotorNum++; if(g_MotorNum > MotorTabNum) g_MotorNum = MotorTabNum; } } if(K4 == 0) // 减速 { delayms(5); // 软件延时消抖 if(K4 == 0) { while(!K4){Display();}; g_MotorNum--; if(g_MotorNum < 0) g_MotorNum = 0; } } } /****************************************************************************** * 名称: Set_Display() * 功能: 数码管显示函数 * 输入: 无 * 输出: 无 * 说明: ******************************************************************************/ void Display(void) { unsigned char b1, b2; b1=g_MotorNum/10; b2=g_MotorNum%10; if(FX == 0) P0=0x71;//显示F else P0=0x79; SMG1=0; delayms(3); SMG1=1; P0=0x40; SMG2=0; //显示--
史海拾趣
|
先前的是可以同步的,后来我把gews删除了,因为也要涉及到ActiveSync,也一起删除了,然后就同步不了了。于是我有把ActiveSync重新加回来,再编译内核,也是不能同步了。串口在USB插入以后显示如下: 11:20:15.578 GET_DESCRIPTOR:DEVICE 0x12, 0x ...… 查看全部问答> |
|
我用的周立功EasyARM2100开发板附带有工程模板,当新建工程选择LPC2100时会自动生成很多初始化的文件,其中startup.s文件中有这样一段语句: ;The imported labels ;引入的外部标号在这声明 IMPORT FIQ_Exception  ...… 查看全部问答> |
|
大家好,我现在缺一个ISD1720的下载软件,我有一个ISD的拷贝机,想把MP3的语音格式的文件下到ISD1720语音芯片里面,但是现在缺少软件从电脑上下载到语音芯片里面,如果谁有,麻烦请您发下给我,谢谢您了!我的邮箱是:lijianhuijgsdx@163.com ...… 查看全部问答> |
|
关键字: 技术标准 技术标准化 认证 伴随着科技的不断进步发展,更多新颖的技术与随之而来的标准规范相应而生。之前我们已经专文谈论过技术标准化(Technology Standardization)的重要性,技术标准化不仅在产 ...… 查看全部问答> |
|
/******************************************************* 程序功能:用从P2.3和P2.4输出的PWM波形驱动LED闪烁 P2.3口输出方波的占空比为75% P2.4口输出方 ...… 查看全部问答> |
|
本人刚学dsp Fs=10000; x=wavrecord(2*Fs,Fs,\'int16\'); y=double(x); soundsc(y,Fs) n=0:length(y)-1; plot(n,x) 这个程序怎么改能变成这几个图形 … 查看全部问答> |




