资源简介

STM8S103 通过控制74HC595,动态扫描方式8位数码管显示

资源截图

代码片段和文件信息

/*  添加库函数头文件 */
#include “stm8s.h“

u8 number[8]SMGtimesSMGBit;
//数码管0 ~ F的代码数组
u8 const Data[16] = {0xc00xf90xa40xb00x990x920x820xf80x800x900x880x830xc60xa10x860x8e};
u8 const Wu[8] = {0x010x020x040x080x100x200x400x80};
u32 datadata2;
#define     LED1_ON()       GPIO_WriteLow(GPIOB  GPIO_PIN_5) //LED1亮
#define     LED1_OFF()      GPIO_WriteHigh(GPIOB  GPIO_PIN_5) //LED1灭

//HC595 时钟端口控制
#define     CLK_Set()     GPIO_WriteHigh(GPIOA  GPIO_PIN_1) 
#define     CLK_ReSet()   GPIO_WriteLow(GPIOA  GPIO_PIN_1)
//HC595 数据端口控制
#define     DAT_Set()     GPIO_WriteHigh(GPIOA  GPIO_PIN_3) 
#define     DAT_ReSet()   GPIO_WriteLow(GPIOA  GPIO_PIN_3)
//HC595 各移位数据输出并口控制
#define     RCLK_Set()     GPIO_WriteHigh(GPIOA  GPIO_PIN_2) 
#define     RCLK_ReSet()   GPIO_WriteLow(GPIOA  GPIO_PIN_2)

/*******************************************************************************
**函数名称:void delay(unsigned int ms)     Name: void delay(unsigned int ms)
**功能描述:大概延时
**入口参数:unsigned int ms   输入大概延时数值
**输出:无
*******************************************************************************/
void delay(unsigned int ms)
{
  unsigned int x  y;
  for(x = ms; x > 0; x--)           /*  通过一定周期循环进行延时*/
    for(y = 3000 ; y > 0 ; y--);
}

/*******************************************************************************
**函数名称:void HC595_WriteData(u8 data  u8 wu)    Name: void HC595_WriteData(u8 data  u8 wu)
**功能描述:数码管显示
**入口参数:data->要显示的数据 , wu->设置要第几位数码管显示 
**输出:无
*******************************************************************************/
void HC595_WriteData(u8 data  u8 wu)
{
  u8 i;
  u16 tempdata;
  
  tempdata = (unsigned int)(data);    //先把8位码放入16位里
  tempdata <<= 8;                   //把8位位码移到高8位先发送
  tempdata |= wu;       //再把段码8位放在低8位发送
  
  RCLK_ReSet();   //先把输出存储锁存时钟线拉低
  for(i = 0 ; i < 16 ; i++)
  {
    CLK_ReSet();  //数据输入时钟线拉低
    if(tempdata & 0x8000)  //判断数据,把数据架在输出数据位上
    {
      DAT_Set();
    }
    else
    {
       DAT_ReSet();
    }
     CLK_Set();       //把时钟线拉高,把移位数据输入并移位
    tempdata <<= 1;   //把新数据架在输出数据线上
  }
  CLK_ReSet();
  
  RCLK_Set();         //把输出存储锁存时钟线拉高,把595的移位数据输出到并口
}

/*******************************************************************************
**函数名称:void NumericDisplay_Init()    Name: void NumericDisplay_Init()
**功能描述:驱动HC595芯片 IO口初始化
**入口参数:无 
**输出:无
*******************************************************************************/
void NumericDisplay_Init()
{
    //HC595 CLK  PA1 设置端口PA->1的输入输出方向寄存器为输出方向  推挽输出  输出最大速度为10MHZ
    GPIO_Init(GPIOA  GPIO_PIN_1  GPIO_MODE_OUT_PP_LOW_FAST); 
    //HC595 RTCK PA2 设置端口PA->2 的输入输出方向寄存器为输出方向  推挽输出  输出最大速度为10MHZ
    GPIO_Init(GPIOA  GPIO_PIN_2  GPIO_MODE_OUT_PP_LOW_FAST); 
    //HC595  DAT  PD1 设置端口PD->1 的输入输出方向寄存器为输出方向  推挽输出  输出最大速度为10MHZ
    GPIO_Init(GPIOA  GPIO_PIN_3  GPIO_MODE_OUT_PP_LOW_FAST); 
//设置PB5为快速推挽输出 ,LED1
GPIO_Init(GPIOB  GPIO_PIN_5  GPIO_MODE_OUT

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5557  2018-08-14 20:15  8位数码管\APP\main.c

     文件       4301  2016-09-25 17:57  8位数码管\APP\stm8s_conf.h

     文件      14161  2018-08-14 20:15  8位数码管\APP\stm8s_it.c

     文件       5214  2011-02-25 17:24  8位数码管\APP\stm8s_it.h

     文件      11254  2017-01-24 09:30  8位数码管\Backup of KeQianMCU_STM8S103F3_Library.ewd

     文件      43959  2017-01-24 09:34  8位数码管\Backup of KeQianMCU_STM8S103F3_Library.ewp

     文件       4512  2018-08-14 20:15  8位数码管\Debug\Exe\KeQianMCU_STM8S103F3_Library.hex

     文件      97048  2018-08-14 20:15  8位数码管\Debug\Exe\KeQianMCU_STM8S103F3_Library.out

     文件      19157  2018-08-14 20:15  8位数码管\Debug\List\KeQianMCU_STM8S103F3_Library.map

     文件       9814  2018-08-14 20:15  8位数码管\Debug\List\main.lst

     文件      40717  2017-01-24 09:33  8位数码管\Debug\List\stm8s_adc1.lst

     文件      24672  2017-01-24 09:34  8位数码管\Debug\List\stm8s_adc2.lst

     文件      14143  2017-01-24 09:33  8位数码管\Debug\List\stm8s_awu.lst

     文件      11642  2017-01-24 09:33  8位数码管\Debug\List\stm8s_beep.lst

     文件      77984  2017-01-24 09:34  8位数码管\Debug\List\stm8s_can.lst

     文件      40582  2017-01-24 09:34  8位数码管\Debug\List\stm8s_clk.lst

     文件      13239  2017-01-24 09:33  8位数码管\Debug\List\stm8s_exti.lst

     文件      42387  2017-01-24 09:33  8位数码管\Debug\List\stm8s_flash.lst

     文件      17043  2017-01-24 09:33  8位数码管\Debug\List\stm8s_gpio.lst

     文件      52634  2017-01-24 09:33  8位数码管\Debug\List\stm8s_i2c.lst

     文件      25087  2018-08-14 20:15  8位数码管\Debug\List\stm8s_it.lst

     文件      19633  2017-01-24 09:33  8位数码管\Debug\List\stm8s_itc.lst

     文件       9512  2017-01-24 09:33  8位数码管\Debug\List\stm8s_iwdg.lst

     文件       8352  2017-01-24 09:33  8位数码管\Debug\List\stm8s_rst.lst

     文件      26168  2017-01-24 09:33  8位数码管\Debug\List\stm8s_spi.lst

     文件     134142  2017-01-24 09:33  8位数码管\Debug\List\stm8s_tim1.lst

     文件      75370  2017-01-24 09:33  8位数码管\Debug\List\stm8s_tim2.lst

     文件      59563  2017-01-24 09:34  8位数码管\Debug\List\stm8s_tim3.lst

     文件      24034  2017-01-24 09:33  8位数码管\Debug\List\stm8s_tim4.lst

     文件      79366  2017-01-24 09:33  8位数码管\Debug\List\stm8s_tim5.lst

............此处省略140个文件信息

评论

共有 条评论