资源简介

本设计是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个文件信息

评论

共有 条评论