资源简介
嵌入式课设做的设计,用的STM32F103ZET6,使用按键控制步进电机状态,包括加速减速停止正反转等,带LCD显示。

代码片段和文件信息
#include “zihanshu.h“
#include “delay.h“
u8 Disp[]=“Speed:“;
u8 Disp2[]={0x300x310x320x330x340x350x360x370x380x39};//0-9的地址码
u8 Disp3[]=“foreward“;//正转的英文????
u8 Disp4[]=“reversal“;//反转的英文????
u8 Disp5[]=“ static “;//静止
u8 Disp6[]=“XZIT 15DX2“;
int keyflag;
int keyflag2;
int mn;
int i=18;
/*对io口进行配置*/
void shuchu_Init(void)
{
/*使能时钟*/
RCC->APB2ENR|=1<<3;
RCC->APB2ENR|=1<<6;
RCC->APB2ENR|=1<<5;
RCC->APB2ENR|=1<<7;
/*设置端口状态*/
GPIOB->CRL&=0XFF0FFFFF; //清除其他位并保证要设置的位不变
GPIOB->CRL|=0X00300000;//PB.5 推挽输出
GPIOB->ODR=0x0; //PB.5 输出低
GPIOB->CRH&=0XFFFFFFF0;
GPIOB->CRH|=0X00000003;//PB.8 推挽输出
GPIOB->ODR=0x0; //输出为低
GPIOE->CRL&=0XFF000000;
GPIOE->CRL|=0X00388888;//PE.5推挽输出PE1234输入
GPIOE->ODR=0x1f; //PE.5输出低 1234输入高
GPIOD->CRL&=0X00000000;
GPIOD->CRL|=0X11111111; //PD推挽输出最大频率10mhz
GPIOD->ODR=0x00;
GPIOF->CRL&=0XFFFF000F;
GPIOF->CRL|=0X00003330; //PF推挽输出
GPIOF->ODR=0xff;
}
/*向LCD写入一个字节的命令*/
void LcdWriteCom(u8 com) //写入命令
{
LCD1602_E = 0; //使能
LCD1602_RS = 0; //选择发送命令
LCD1602_RW = 0; //选择写入
LCD1602_DATAPINS = com;
delay_ms(1);
LCD1602_E = 1; //写入时序
delay_ms(5); //保持时间
LCD1602_E = 0;
}
/*向LCD写入一个字节的数据*/
void LcdWriteData(u8 dat) //写入数据
{
LCD1602_E = 0; //使能清零
LCD1602_RS = 1; //选择输入数据
LCD1602_RW = 0; //选择写入
LCD1602_DATAPINS = dat; //写入数据
delay_ms(1);
LCD1602_E = 1; //写入时序
delay_ms(5); //保持时间
LCD1602_E = 0;
}
/*显示speedis的部分 初始化有清屏*/
void LcdInit()
{
LcdWriteCom(0x38); //开显示
LcdWriteCom(0x0c); //开显示不显示光标
LcdWriteCom(0x06); //写一个指针加1
LcdWriteCom(0x01); //清屏
LcdWriteCom(0x80); //设置数据指针起点 1 0000000
}
/*显示速度的部分 初始化不能清屏*/
void LcdInit2()
{
LcdWriteCom(0x38); //开显示
LcdWriteCom(0x0c); //开显示不显示光标
LcdWriteCom(0x06); //写一个指针加1
//LcdWriteCom(0x01); //清屏
LcdWriteCom(0x86); //设置数据指针起点 1 0000110
}
/*显示正反转和静止的部分 初始化不能清屏*/
void LcdInit3()
{
LcdWriteCom(0x38); //开显示
LcdWriteCom(0x0c); //开显示不显示光标
LcdWriteCom(0x06); //写一个指针加1
//LcdWriteCom(0x01); //不清屏
LcdWriteCom(0x88); //设置数据指针起点
}
void LcdInit4()
{
LcdWriteCom(0x38); //开显示
LcdWriteCom(0x0c); //开显示不显示光标
LcdWriteCom(0x06); //写一个指针加1
//LcdWriteCom(0x01); //不清屏
LcdWriteCom(0xc3); //设置数据指针起点
}
/*****************************************************************/
/*显示speed is*/
void xianshi()
{ u8 i;
u8 k=6;
LcdInit(); //初始化对应
for(i=0;i {
LcdWriteData(Disp[i]);
}
}
/*********************************************************************/
/*****************显示数字 显示速度用***********************************/
void xianshi2(u8 n)
{
LcdInit2();
LcdWriteData(n); //发送数字的码
}
/******显示字符动态显示状态*********/
void xianshi3(u8 m[])
{
u8 i;
LcdInit3(); //对应的初始化,不清屏否则speedis被清除
for(i=0;i<8;i++)
{
LcdWriteData(m[i]);
}
}
void
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-08-14 21:23 ARM课设\
目录 0 2018-07-11 10:32 ARM课设\OBJ\
文件 224879 2018-07-11 10:32 ARM课设\OBJ\delay.crf
文件 312 2018-07-11 10:32 ARM课设\OBJ\delay.d
文件 238940 2018-07-11 10:32 ARM课设\OBJ\delay.o
文件 236636 2018-07-11 10:32 ARM课设\OBJ\dianji.axf
文件 1807 2018-07-11 10:32 ARM课设\OBJ\dianji.build_log.htm
文件 225543 2018-07-11 10:32 ARM课设\OBJ\dianji.crf
文件 349 2018-07-11 10:32 ARM课设\OBJ\dianji.d
文件 7161 2018-07-11 10:32 ARM课设\OBJ\dianji.hex
文件 47968 2018-07-11 10:32 ARM课设\OBJ\dianji.htm
文件 362 2018-07-11 10:32 ARM课设\OBJ\dianji.lnp
文件 66638 2018-07-11 10:32 ARM课设\OBJ\dianji.map
文件 238036 2018-07-11 10:32 ARM课设\OBJ\dianji.o
文件 479 2018-07-08 14:51 ARM课设\OBJ\dianji.sct
文件 3177 2018-07-11 10:32 ARM课设\OBJ\dianji_Target 1.dep
文件 55 2018-07-11 10:32 ARM课设\OBJ\startup_stm32f10x_hd.d
文件 49300 2018-07-11 10:32 ARM课设\OBJ\startup_stm32f10x_hd.lst
文件 6712 2018-07-11 10:32 ARM课设\OBJ\startup_stm32f10x_hd.o
文件 226200 2018-07-11 10:32 ARM课设\OBJ\sys.crf
文件 255 2018-07-11 10:32 ARM课设\OBJ\sys.d
文件 251804 2018-07-11 10:32 ARM课设\OBJ\sys.o
文件 228347 2018-07-11 10:32 ARM课设\OBJ\zihanshu.crf
文件 383 2018-07-11 10:32 ARM课设\OBJ\zihanshu.d
文件 257856 2018-07-11 10:32 ARM课设\OBJ\zihanshu.o
目录 0 2018-07-08 14:37 ARM课设\SYSTEM\
目录 0 2018-07-08 14:37 ARM课设\SYSTEM\delay\
文件 5968 2018-06-30 20:02 ARM课设\SYSTEM\delay\delay.c
文件 1995 2015-05-19 13:12 ARM课设\SYSTEM\delay\delay.h
目录 0 2018-07-08 14:37 ARM课设\SYSTEM\sys\
文件 85714 2011-02-09 14:59 ARM课设\SYSTEM\sys\core_cm3.h
............此处省略18个文件信息
- 上一篇:智能驾驶进程与毫米波雷达技术动态
- 下一篇:MicroHard P900 应用手册
相关资源
- AsyncTask文件控制暂停和继续,在状态
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- DV泵加罗茨泵独立控制系统PID.smart
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- F28335无刷直流电机开闭环控制
- STM32蓝牙和串口程序
- 模糊PID控制 c
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- 基于MSP430G2553的蓝牙控制小车
- stm32f030 IAP Demo(原创)
- Verilog FPGA UART串口控制器
- STM32基于rt_thread操作系统的SDHC卡文件
- 步进电机课程设计(个人设计)
- NRF24L01实现51与STM32双向通讯
- SG3525频率PWM控制均可调模块
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- 51单片机控制舵机程序
- Qt Creator opengl实现四元数鼠标控制轨迹
- 机器人单机械臂滑模控制程序
- ply格式文件的读写程序
- [免费]msp430f149控制PS2键盘并用1602显示
- stm32官方例程
- STM32F103定时器中断程序
评论
共有 条评论