基于STM8的74HC759驱动数码管显示程序学习笔记.docx

上传人:飞****2 文档编号:60949224 上传时间:2022-11-19 格式:DOCX 页数:5 大小:10.33KB
返回 下载 相关 举报
基于STM8的74HC759驱动数码管显示程序学习笔记.docx_第1页
第1页 / 共5页
基于STM8的74HC759驱动数码管显示程序学习笔记.docx_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《基于STM8的74HC759驱动数码管显示程序学习笔记.docx》由会员分享,可在线阅读,更多相关《基于STM8的74HC759驱动数码管显示程序学习笔记.docx(5页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、74HC759驱动数码管显示程序学习笔记本程序基于STM8S105K4 单片机学习程序。程序硬件就是STM8的最小开发板搭建,用的内部高速晶振1分频,数码管用595串联驱动输入四线。经测试可以正常显示。最终通过调试和实验。所有的程序如下:(程序中可能还有些其他没有发现的问题,或其他错误有问题再学习更改。 )具体注释见程序:/#ifndef _DISPLAY_595_H/#define _DISPLAY_595_H/*/*DS GPIOD4 串行数据输入 */*STCP GPIOD5 存储寄存器时钟 */*SHCP GPIOD6 移位寄存器时钟 */*OE GPIOD7 输出使能(低电平有效)

2、可选择脉冲输出以调节亮度 */*显示数据调用方法,void init_595();输入实际数据,符号位(0为正,1为负),小数点位置(没有置0)/extern display_all(unsigned int display_data_int ,unsigned char flag ,unsigned char dot);*/*设置方向寄存器*/#define DS_IO() GPIO_Init(GPIOD, GPIO_PIN_4, GPIO_MODE_OUT_PP_LOW_FAST);#define STCP_IO() GPIO_Init(GPIOD, GPIO_PIN_5, GPIO_MO

3、DE_OUT_PP_LOW_FAST);#define SHCP_IO() GPIO_Init(GPIOD, GPIO_PIN_6, GPIO_MODE_OUT_PP_LOW_FAST);#define OE_IO() GPIO_Init(GPIOD, GPIO_PIN_7, GPIO_MODE_OUT_PP_LOW_FAST);/*设置数据输出0*/#define DS_OUT0() GPIO_WriteLow(GPIOD, GPIO_PIN_4);#define STCP_OUT0() GPIO_WriteLow(GPIOD, GPIO_PIN_5);#define SHCP_OUT0()

4、 GPIO_WriteLow(GPIOD, GPIO_PIN_6);#define OE_OUT0() GPIO_WriteLow(GPIOD, GPIO_PIN_7);/*设置数据输出1*/#define DS_OUT1() GPIO_WriteHigh(GPIOD, GPIO_PIN_4);#define STCP_OUT1() GPIO_WriteHigh(GPIOD, GPIO_PIN_5);#define SHCP_OUT1() GPIO_WriteHigh(GPIOD, GPIO_PIN_6);#define OE_OUT1() GPIO_WriteHigh(GPIOD, GPIO

5、_PIN_7);/*显示数据调用方法,输入实际数据,符号位(0为正,1为负),小数点位置(没有置0)*/extern display_all(unsigned int display_data_int ,unsigned char flag ,unsigned char dot);void init_595(); /595的初始化void decomposition(unsigned int display_data); /将目标数据分解为各位 void data_to_sh(unsigned char data ,unsigned char dot_in ); /送单个字节数据到数据寄存器

6、void data_out_display(); /存储寄存器数据输出void display_all(unsigned int display_data_int ,unsigned char flag ,unsigned char dot); /总显示程序#includedisplay_595.hunsigned char a5=0,0,0,0,0; /五位数的数据分解存放 unsigned char dis_bit=0; /判断显示的位数const unsigned char code=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x

7、88,0x83,0xc6,0xa1,0x86,0x8e,0xbf;/0-9和负号编码/*uchar SEG_A_List16=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/共阴数码管代码表0-Fuchar SEG_B_List16=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;/共阳数码管代码表0-F*/void init_595()DS_IO(); /数据输出方向D

8、S_OUT0(); /输出低STCP_IO(); /数据输出方向STCP_OUT0(); /输出低SHCP_IO(); /SHCP_OUT0(); /OE_IO(); /OE_OUT1(); /输出使能关闭(低电平有效)void decomposition(unsigned int display_data) a4=a3=a2=a1=a0=0;if(display_data=10000)dis_bit=5; /判断显示的位数else if(display_data=1000)dis_bit=4;else if(display_data=100)dis_bit=3; else if(displa

9、y_data=10)dis_bit=2;else dis_bit=1;while(display_data = 10000) display_data -= 10000; a4+;while(display_data = 1000) display_data -= 1000; a3+;while(display_data = 100) display_data -= 100; a2+;while(display_data = 10) display_data -= 10; a1+;a0=display_data;void data_to_sh(unsigned char data ,unsig

10、ned char dot_in )unsigned char i,j;i=codedata; if(dot_in) i=i&0x7f; /有小数点的加小数点SHCP_OUT0(); for(j=0;j8;j+)if(i&0x80)=0x80) /判断并送入低位/ DS_OUT1();else DS_OUT0(); SHCP_OUT1(); /上升沿送入i = 1; /循环右移1位 ;SHCP_OUT0(); void data_out_display()STCP_OUT0(); ;STCP_OUT1();void display_all(unsigned int display_data_int ,unsigned char flag ,unsigned char dot)unsigned char m;/ OE_OUT1();decomposition(display_data_int);for(m=0;m4;m+) if(dot=m) data_to_sh(am,1); else if(flag=1)&(m=4)data_to_sh(10,0); else data_to_sh(am,0);data_out_display(); /将数据输出OE_OUT0(); /输出使能

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com