扩展板程序

一、数码管

具体可以点击看一下,74ls595锁存器及其用法

74LS595引脚功能说明
void SEG_DisplayValue(u8 Bit1, u8 Bit2, u8 Bit3)
{
    u8 i = 0;   //
    u8 code_tmp = 0;

    code_tmp = Seg7[Bit3];
    for(i=0;i<8;i++){
        if(code_tmp & 0x80){ //如果显示 1(0x06) :0000 0110 & 1000 0000  高位选中,打开段选
            SER_H;   //开启段选,打开
        }else{
            SER_L;   //关闭段选
        }
        
        SCK_H;//开始移位,QA->QH
        code_tmp = code_tmp << 1;//移位,寻找到高位   
        SCK_L;//关闭移位,保持数据
    }
    //八位满了之后:QH·与SER保持一致电平,进行第二个芯片的段选
    code_tmp = Seg7[Bit2];
    for(i=0;i<8;i++){
        if(code_tmp & 0x80){
            SER_H;
        }else{
            SER_L;
        }
        SCK_H;
        code_tmp = code_tmp << 1;   
        SCK_L;
    }   

    code_tmp = Seg7[Bit1]|0x80;  //左高右低,DP 是最高位,小数点显示
    for(i=0;i<8;i++){

        if(code_tmp & 0x80){
            SER_H;
        }else{
            SER_L;
        }
        SCK_H;
        code_tmp = code_tmp << 1;   
        SCK_L;
    }       
    RCLK_H;
    RCLK_L;
}

二、ADC矩阵按键

这个按键程序没难度,直接测ADC的值就好,然后不犯低级错误,问题不大

u8 ScanButton(float value)
{
    static u8 key = 0;
    if(value>0.70&&value<0.79)key = 1;
    else if(value>1.30&&value<1.39)key = 2;
    else if(value>1.70&&value<1.80)key = 3;

    else if(value>0.50&&value<0.60)key = 4;
    else if(value>1.20&&value<1.30)key = 5;
    else if(value>1.60&&value<1.70)key = 6;

    else if(value>0.25&&value<0.35)key = 7;
    else if(value>1.00&&value<1.15)key = 8;
    else if(value>1.50&&value<1.60)key = 9;

    else if(value>0.01&&value<0.10)key = 10;
    else if(value>0.80&&value<1.00)key = 11;
    else if(value>1.40&&value<1.50)key = 12;

    return key;
}

三、DS18B20

(1)浮点型

float ReadTemp(void)
{
    int temp = 0,high = 0,low = 0;

    ow_reset();
    ow_byte_wr(0xcc);   //跳过读
    ow_byte_wr(0x44);   //温度转换
    
    delay(750000);

    ow_reset();
    ow_byte_wr(0xcc);   //跳过读
    ow_byte_wr(0xbe);   //温度转换

    low = ow_byte_rd(); //先读低八位
    high = ow_byte_rd();//后读高八位

    temp = (high&0x0f)<<8|low ;//数值转换

    return temp*0.0625;     
}

(2)整型

u8 ds18b20_read(void)
{
    u8 val[2];
    u8 i = 0;

    s16 x = 0;  

    ow_reset();
    ow_byte_wr(OW_SKIP_ROM);     //0xcc   跳过读
    ow_byte_wr(DS18B20_CONVERT); //0x44   转换温度值
    delay_us(750000);

    ow_reset();
    ow_byte_wr( OW_SKIP_ROM );   //0xcc   跳过读
    ow_byte_wr ( DS18B20_READ ); //0xbe   转换温度值

    for ( i=0 ;i<2; i++) {       //val[0]是低八位 先读
        val[i] = ow_byte_rd();   //val[1]是高八位 后读
    }
    x = val[1];          //整数型数据
    x <<= 4;
    x |= val[0]>>4;     

    return x;
}

四、DHT11

这个程序相对DS18B20较难

unsigned int dht11_read(void)
{
  int i;
  long long val;
  int timeout;

  GPIO_ResetBits(GPIOA, GPIO_Pin_7);
  delay_us(18000);  //pulldown  for 18ms
  GPIO_SetBits(GPIOA, GPIO_Pin_7);
  delay_us( 20 );   //pullup for 30us

  mode_input();

  //等待DHT11拉高,80us
  timeout = 5000;
  while( (! GPIO_ReadInputDataBit  (GPIOA, GPIO_Pin_7)) && (timeout > 0) ) timeout--;    //wait HIGH

  //等待DHT11拉低,80us
  timeout = 5000;
  while( GPIO_ReadInputDataBit (GPIOA, GPIO_Pin_7) && (timeout > 0) ) timeout-- ;    //wait LOW

#define CHECK_TIME 28

  for(i=0;i<40;i++)
  {
    timeout = 5000;
    while( (! GPIO_ReadInputDataBit  (GPIOA, GPIO_Pin_7)) && (timeout > 0) ) timeout--;  //wait HIGH

    delay_us(CHECK_TIME);
    if ( GPIO_ReadInputDataBit (GPIOA, GPIO_Pin_7) )
    {
      val=(val<<1)+1;
    } else {
      val<<=1;
    }

    timeout = 5000;
    while( GPIO_ReadInputDataBit (GPIOA, GPIO_Pin_7) && (timeout > 0) ) timeout-- ;  //wait LOW
  }

  mode_output();
  GPIO_SetBits(GPIOA, GPIO_Pin_7);

  if (((val>>32)+(val>>24)+(val>>16)+(val>>8) -val ) & 0xff  ) return 0;
    else return val>>8; 

}

五、光敏电阻

光敏电阻

从原理图上可以看出AO端可以测量电压,反推出电阻;DO端仅仅进行比较输出,高低电平

1 . AO

tmp = Read_ADC();
snprintf((char *)str, sizeof(str), " R-P:%.2fK  ", tmp/(4096.-tmp)*10);

2 . DO

void DO_Config(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//例程的代码
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3) == Bit_RESET){
    LCD_DisplayStringLine(Line7, (u8*)"       DO:High     ");
}else{
    LCD_DisplayStringLine(Line7, (u8*)"       DO:Low      ");
}

六、其他的是脉冲生成器与0~3.3V的电位器

七、重点在这

扩展板全部代码(官方版)连接——密码:uxu1

另:流水灯

        if(flag400ms)
        {
            flag400ms = 0;                                                                                               
            if(led_num<15)led_num++;
            else led_num = 12;  
        }
        GPIOC->BRR = 1 << led_num;//左移
        GPIOD->BSRR = GPIO_Pin_2;//锁存器
        GPIOD->BRR = GPIO_Pin_2;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,646评论 4 366
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,979评论 1 301
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,391评论 0 250
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,356评论 0 215
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,740评论 3 293
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,836评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,022评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,764评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,487评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,728评论 2 252
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,200评论 1 263
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,548评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,217评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,134评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,921评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,919评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,766评论 2 274

推荐阅读更多精彩内容

  • 野兽派,是20世纪率先崛起的象征主义画派。画风强烈、用色大胆鲜艳,将印象派的色彩理论与梵高、高更等后印象派的大胆涂...
    是hoho呀阅读 1,631评论 0 2
  • 自打早上瞧见那昙花的花骨朵儿,这一天啊,我都心心念着这昙花开! 晚间,约莫八九时,我一心奔着昙花就出去了。...
    凉影阅读 278评论 0 0
  • 我的第一幅油画! 断断续续画了两个月..
    HAIXIA吖阅读 187评论 11 9