资源简介
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个文件信息
- 上一篇:LochMaster30绿色汉化版
- 下一篇:ADS和HFSS联合仿真
相关资源
- STM8S_StdPeriph_Lib_V2.3.1
- stm8s003f3最小系统原理图
- STM8S003F3-数据手册
- STM8S103中文数据手册
- 基于stm8s103f3p6的NRF24L01收发模块资料电
- STM8S的固件库V2.1.0
- stm8s ds18b20 温度传感器 IAR函数库源代
- STM8S固件库
- STM8S003 IAR环境库函数模拟串口
- STM8s003 IAR库函数定时器1输入捕获功能
- STM8S103F3封装库ddb(schpcb)
- sx1278+stm8s lora通信及信号强度提取
- 基于STM8S103F3P6的模拟串口程序
- STM8S207R8(DS18B20)源代码
- 基于arduino利用两个74hc595制作的16灯旋
- 基于STM8的OLED驱动
- stm8s105 数据手册
- stm8s_demo
- STM8s读取AM2303温湿度传感器MODBUS协议
- STM8S103F3例程资料
- stm8s触摸按键库2.5版本
- 基于74hc595和74hc138的点阵原理图及程序
- MODBUS STM8S
- stm8s最新库函数手册
- 采用STM8S的无刷直流电机控制系统的设
- stm8s官方例程
- stm8s系列中文参考手册
- STM8S003工程模版
- 基于单片机动态扫描文字的设计
- 基于STM8S103F3P6的超声波测距仪与温度
评论
共有 条评论