资源简介
本设计是2011年大学生电子竞赛题目,本设计方案采用一个高1.2m,圆直径为6-8cm的玻璃圆筒,兵乓球放置玻璃圆筒,玻璃筒底端使用逐流直流风机产生向上风力驱动兵乓球,根据驱动风力的大小来控制兵乓球的高度位置以及高度位置的变化,在顶端向下采用超声波或者uwb测距的方式测量兵乓球的高位置反馈到控制系统,采用pid算法控制以及驱动直流电机产生不同大小的风力控制球的高度位置。本设计代码仅供学习和参考,请勿上传到其他网站赚取积分!
代码片段和文件信息
#include “lcd12864.h“
char clear[] = {“ “}; //写0清除原ROM里面的内容
void delayUs(unsigned char us)
{
unsigned char uscnt;
uscnt=us>>1; /*12MHz频率*/
while(--uscnt);
}
void LCD12864_Byte(unsigned char byte) //LCD写字节指令
{
unsigned char i;
GPIO_ResetBits(GPIOD LCD_CS);
delayUs(50);
GPIO_SetBits(GPIOD LCD_CS);
for(i=0;i<8;i++)
{
GPIO_WriteBit(GPIOD LCD_CLK (BitAction)0x00); // lcd_clk=0;
delayUs(50);
if(byte&0x80)
{
GPIO_WriteBit(GPIOD LCD_SID (BitAction)0x01);
delayUs(50);
}
else
{
GPIO_WriteBit(GPIOD LCD_SID (BitAction)0x00); // lcd_rw=CY;
delayUs(50);
}
byte<<=1;
GPIO_WriteBit(GPIOD LCD_CLK (BitAction)0x01); // lcd_clk=1;
delayUs(50);
}
GPIO_ResetBits(GPIOD LCD_CS);
}
void LCD12864_Clearall(void)
{
unsigned char ij;
LCD12864_Write(com0x34); //8Bit扩充指令集,即使是36H也要写两次
LCD12864_Write(com0x36); //绘图ON,基本指令集里面36H不能开绘图
for(i=0;i<32;i++) //12864实际为256x32
{
LCD12864_Write(com0x80|i); //行位置
LCD12864_Write(com0x80); //列位置
for(j=0;j<32;j++) //256/8=32 byte
LCD12864_Write(dat0);
}
}
unsigned char LCD12864_Read(void)
{
unsigned char itemp1temp2;
temp1 = 0;
temp2 = 0;
GPIO_ResetBits(GPIOD LCD_CS);
delayUs(50);
GPIO_SetBits(GPIOD LCD_CS);
for(i=0;i<8;i++)
{
temp1=temp1<<1;
GPIO_WriteBit(GPIOD LCD_CLK (BitAction)0x00);//sck = 0;
// delayUs(50);
GPIO_WriteBit(GPIOD LCD_CLK (BitAction)0x01);//sck = 1;
// delayUs(50);
GPIO_WriteBit(GPIOD LCD_CLK (BitAction)0x00);//sck = 0;
// delayUs(50);
if(GPIO_ReadInputDataBit(GPIODLCD_SID)) temp1++;
}
for(i=0;i<8;i++)
{
temp2=temp2<<1;
GPIO_WriteBit(GPIOD LCD_CLK (BitAction)0x00);//sck = 0;
// delayUs(50);
GPIO_WriteBit(GPIOD LCD_CLK (BitAction)0x01);//sck = 1;
// delayUs(50);
GPIO_WriteBit(GPIOD LCD_CLK (BitAction)0x00);//sck = 0;
// delayUs(50);
if(GPIO_ReadInputDataBit(GPIODLCD_SID)) temp2++;
}
GPIO_ResetBits(GPIOD LCD_CS);
return 0xf0&temp1+0x0f&temp2;
}
/*************************************************************************lCD写入数据子程序*****************************/
void LCD12864_Write(unsigned char dat_comunsigned char byt) //lCD写入数据子程序
{
unsigned char temp;
delayUs(3);
if(dat_com==0) //如果为0,则表示写入指令
temp=0xf8; //11111RS(0)RW(0)0
else //为1写入数据
temp=0xfa; //11111RS(1)RW(0)0
GPIO_ResetBits(GPIOD LCD_CS);
delayUs(50);
GPIO_SetBits(GPIOD LCD_CS);
LCD12864_Byte(temp); //将首位写入LCD
LCD12864_Byte(byt&0xf0); //写入高四位
LCD12864_Byte(byt<<4); //写入低四位
GPIO_ResetBits(GPIOD LCD_CS);
}
/****************************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-09-25 01:46 简易风洞及控制系统\
文件 10196 2015-08-10 17:41 简易风洞及控制系统\lcd12864.c
文件 1307 2015-08-10 17:41 简易风洞及控制系统\lcd12864.h
目录 0 2015-08-09 13:25 简易风洞及控制系统\STM32-DMP移植\
目录 0 2015-08-09 13:25 简易风洞及控制系统\STM32-DMP移植\6050DMP\
文件 57014 2014-05-16 12:13 简易风洞及控制系统\STM32-DMP移植\6050DMP\anbt_dmp_driver.c
文件 29314 2014-04-11 11:40 简易风洞及控制系统\STM32-DMP移植\6050DMP\anbt_dmp_driver.h
文件 910 2014-04-03 10:37 简易风洞及控制系统\STM32-DMP移植\6050DMP\anbt_dmp_fun.h
文件 34983 2014-05-16 15:25 简易风洞及控制系统\STM32-DMP移植\6050DMP\anbt_dmp_mpu6050.c
文件 6958 2014-05-28 23:18 简易风洞及控制系统\STM32-DMP移植\6050DMP\anbt_dmp_mpu6050.h
文件 7390 2015-07-21 14:03 简易风洞及控制系统\STM32-DMP移植\6050DMP\anbt_i2c.c
文件 2103 2015-07-21 13:50 简易风洞及控制系统\STM32-DMP移植\6050DMP\anbt_i2c.h
目录 0 2015-08-09 13:25 简易风洞及控制系统\STM32-DMP移植\CORE\
文件 17273 2010-06-07 10:25 简易风洞及控制系统\STM32-DMP移植\CORE\core_cm3.c
文件 85714 2015-07-26 17:36 简易风洞及控制系统\STM32-DMP移植\CORE\core_cm3.h
文件 15503 2011-03-10 10:52 简易风洞及控制系统\STM32-DMP移植\CORE\startup_stm32f10x_hd.s
文件 12765 2011-03-10 10:52 简易风洞及控制系统\STM32-DMP移植\CORE\startup_stm32f10x_md.s
文件 399 2011-04-23 10:24 简易风洞及控制系统\STM32-DMP移植\keilkilll.bat
目录 0 2015-08-09 13:25 简易风洞及控制系统\STM32-DMP移植\STM32F10x_FWLib\
目录 0 2015-08-09 13:25 简易风洞及控制系统\STM32-DMP移植\STM32F10x_FWLib\inc\
文件 8982 2011-03-10 10:47 简易风洞及控制系统\STM32-DMP移植\STM32F10x_FWLib\inc\misc.h
文件 21690 2011-03-10 10:47 简易风洞及控制系统\STM32-DMP移植\STM32F10x_FWLib\inc\stm32f10x_adc.h
文件 7555 2011-03-10 10:47 简易风洞及控制系统\STM32-DMP移植\STM32F10x_FWLib\inc\stm32f10x_bkp.h
文件 27559 2011-03-10 10:47 简易风洞及控制系统\STM32-DMP移植\STM32F10x_FWLib\inc\stm32f10x_can.h
文件 6573 2011-03-10 10:47 简易风洞及控制系统\STM32-DMP移植\STM32F10x_FWLib\inc\stm32f10x_cec.h
文件 2162 2011-03-10 10:47 简易风洞及控制系统\STM32-DMP移植\STM32F10x_FWLib\inc\stm32f10x_crc.h
文件 15233 2011-03-10 10:47 简易风洞及控制系统\STM32-DMP移植\STM32F10x_FWLib\inc\stm32f10x_dac.h
文件 3818 2011-03-10 10:47 简易风洞及控制系统\STM32-DMP移植\STM32F10x_FWLib\inc\stm32f10x_dbgmcu.h
文件 20754 2011-03-10 10:47 简易风洞及控制系统\STM32-DMP移植\STM32F10x_FWLib\inc\stm32f10x_dma.h
文件 6824 2011-03-10 10:47 简易风洞及控制系统\STM32-DMP移植\STM32F10x_FWLib\inc\stm32f10x_exti.h
文件 25445 2011-03-10 10:47 简易风洞及控制系统\STM32-DMP移植\STM32F10x_FWLib\inc\stm32f10x_flash.h
............此处省略406个文件信息
相关资源
- 基于stm32升降压DC-DC设计原理图+程序
- 电力拖动自动控制系统(第3版)(陈
- 开放式工业控制系统的软件开发技术
- SMT视觉贴片机控制系统源码2套(含全
- 单片机温度控制系统設計
- 飞行控制系统
- UWB室内定位 含PCB stm32源码
- 基于AVR单片机温室气雾培控制系统的
- SINAMICS S120变频控制系统应用指南
- RichardC.Dorf《现代控制系统》第十三版
- 《现代控制系统》RichardC.Dorf第十二版
- 高级运动控制系统及其应用研究.pdf
- SINAMICS S120 变频控制系统应用指南
- 异步电机直接转矩控制系统 胡育文
- 深入浅出过程控制-小锅带你学过控
- 基于单片机智能灯光控制系统
- AUTOMATIC CONTROL SYSTEMS 10TH (自动控制系
- 全自动洗车控制系统设计
- STM32源码.zip
- 交流电机数字控制系统 第3版 - 李永东
- 控制系统设计指南 第四版高清
- 基于单片机的全自动洗衣机自动控制
- 现代控制系统中文12版+课后答案(英
- 离散时间控制系统第2版
- 离散时间控制系统(第二版)清晰版
- 永磁同步电动机直接转矩控制系统_胡
- 基于msp430单片机的温度控制系统设计
- WIFI智能家居控制系统源码
- STC89C52芯片的模拟路灯控制系统
- 89c51无线控制 基于单片机的无线控制
评论
共有 条评论