单片机学习小组
登录
直播中
刘埃生
7年用户
1709经验值
私信
关注
STC8A8K64S4A12静态数码管驱动的方法是什么
开启该帖子的消息推送
单片机
编程语言
mcu138
STC8A8K64S4A12静态数码管驱动的方法是什么
回帖
(1)
范云力
2022-2-9 15:28:44
静态数码管的驱动
终于搞完了期末可以开始搞单片机了!我自己的板子只有四个按键和四个led
某宝买了一块普中的开发板,可惜板子上带的是STC89C52,
好在我原来的板子把所有IO都引了出来,所以我选择转接的方法↓↓↓↓↓(请忽略灵魂走线)
这篇文章我将介绍一下,STC8A8K64S4A12静态数码管驱动的方法
一、数码管
数码管
8段数码管,每段相当于一个led,前7段用于显示数字,最后一段是小数点,通过这8个led的不同组合实现数字显示的功能。
分为共阴共阳两种,手里这块板子上的是共阴数码管,二者在编写程序时需要注意的是码表不一样,下面给出共阴和共阳的码表:
typedef unsigned char u8;//共阳数码管 0~f // code 可以减少空间使用u8 code smgtable[] = {0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}//共阴数码管 0~fu8 code smgtable[] = {0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};
数码管a,b,c,d,e,f,g,dp分别对应IO口的第0到第7个IO口线
“0x”是啥:因为这个单片机的每个IO口有8个IO口线,十六进制1位对应二进制4位,就用2位十六进制数来代表这8个IO口线,前面的0x代表十六进制,拿共阴数码管显示数字 “ 1 ” 举例,显示数字1需要上图中的B,C这两段亮起,共同使用的阴极是低电平,要想亮起就要使对应的IO口线输出高电平,所以用8位二进制数表示就是 0000 0110转换成十六进制就是 0x06。
小数点问题:通过前一点中所讲的如何通过二进制表示哪段管子亮起,可以得出,如果想让上图中的小数点位亮起,就要控制小数点对应位为1,所以只需要在要显示的数后面加上0x80就可以了↓↓↓(显示“ 1. ”)
二、硬件显示
单片机运行速度相对于人眼的识别速度非常快,所以要加入延时函数,延时函数可以直接用stc_isp里面的软件延时计算器直接计算
注意选择和所用mcu匹配的指令集,正确选择系统频率。
三、代码部分
功能:开机之后数码管以1秒钟为间隔,轮流显示从0~f
#include
//头文件
#include
//头文件
typedef unsigned int u16; //定义无符号整型为u16,方便写代码
typedef unsigned char u8; //同理
***it smgA = P2^2; //这三行是因为开发板上使用了74HC138来选
***it smgB = P2^3; //择数码管的第几位,在下一篇动态数码管里会
***it smgC = P2^4; //详细解释,如果你的数码管直接连在mcu上
//就不要写这三行。
u8 code smgtable[] = {0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void Delay1000ms() //@11.0592MHz 时长1秒的延时函数
{
unsigned char i, j, k;
_nop_();
i = 8;
j = 1;
k = 243;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
u16 i;
smgA = 0;
smgB = 0;
smgC = 0;
while(1)//死循环,防止程序“跑飞”
{
for(i = 0;i<16;i++)
{
P0 = smgtable
;//通过开头定义的码表来给端口赋值
Delay1000ms();//调用延时函数
}
}
}
如有错误欢迎指正,新手才疏学浅,请各位大佬见谅。
静态数码管的驱动
终于搞完了期末可以开始搞单片机了!我自己的板子只有四个按键和四个led
某宝买了一块普中的开发板,可惜板子上带的是STC89C52,
好在我原来的板子把所有IO都引了出来,所以我选择转接的方法↓↓↓↓↓(请忽略灵魂走线)
这篇文章我将介绍一下,STC8A8K64S4A12静态数码管驱动的方法
一、数码管
数码管
8段数码管,每段相当于一个led,前7段用于显示数字,最后一段是小数点,通过这8个led的不同组合实现数字显示的功能。
分为共阴共阳两种,手里这块板子上的是共阴数码管,二者在编写程序时需要注意的是码表不一样,下面给出共阴和共阳的码表:
typedef unsigned char u8;//共阳数码管 0~f // code 可以减少空间使用u8 code smgtable[] = {0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}//共阴数码管 0~fu8 code smgtable[] = {0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};
数码管a,b,c,d,e,f,g,dp分别对应IO口的第0到第7个IO口线
“0x”是啥:因为这个单片机的每个IO口有8个IO口线,十六进制1位对应二进制4位,就用2位十六进制数来代表这8个IO口线,前面的0x代表十六进制,拿共阴数码管显示数字 “ 1 ” 举例,显示数字1需要上图中的B,C这两段亮起,共同使用的阴极是低电平,要想亮起就要使对应的IO口线输出高电平,所以用8位二进制数表示就是 0000 0110转换成十六进制就是 0x06。
小数点问题:通过前一点中所讲的如何通过二进制表示哪段管子亮起,可以得出,如果想让上图中的小数点位亮起,就要控制小数点对应位为1,所以只需要在要显示的数后面加上0x80就可以了↓↓↓(显示“ 1. ”)
二、硬件显示
单片机运行速度相对于人眼的识别速度非常快,所以要加入延时函数,延时函数可以直接用stc_isp里面的软件延时计算器直接计算
注意选择和所用mcu匹配的指令集,正确选择系统频率。
三、代码部分
功能:开机之后数码管以1秒钟为间隔,轮流显示从0~f
#include
//头文件
#include
//头文件
typedef unsigned int u16; //定义无符号整型为u16,方便写代码
typedef unsigned char u8; //同理
***it smgA = P2^2; //这三行是因为开发板上使用了74HC138来选
***it smgB = P2^3; //择数码管的第几位,在下一篇动态数码管里会
***it smgC = P2^4; //详细解释,如果你的数码管直接连在mcu上
//就不要写这三行。
u8 code smgtable[] = {0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void Delay1000ms() //@11.0592MHz 时长1秒的延时函数
{
unsigned char i, j, k;
_nop_();
i = 8;
j = 1;
k = 243;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
u16 i;
smgA = 0;
smgB = 0;
smgC = 0;
while(1)//死循环,防止程序“跑飞”
{
for(i = 0;i<16;i++)
{
P0 = smgtable
;//通过开头定义的码表来给端口赋值
Delay1000ms();//调用延时函数
}
}
}
如有错误欢迎指正,新手才疏学浅,请各位大佬见谅。
举报
更多回帖
rotate(-90deg);
回复
相关问答
单片机
编程语言
mcu138
STC8A8K64S4A12
串口通信
2018-03-09
10706
STC8A8K64S4A12
单片机怎么能掉电后保存数据?
2023-10-08
498
如何去实现一种基于
STC8A8K64S4A12
开发板的GPIO按键设计
2021-08-19
1267
如何对基于
STC8A8K64S4A12
单片机的ADC进行检测
2021-08-03
1993
STC8A8K64S4A12
单片机VCC和GND内部短路了怎么解决?
2020-07-01
6001
使用
STC8a8K64s12A
单片机编程一个_nop_()函数需要多长时间?
2023-10-30
461
数码管
静态
显示
2015-05-14
3109
如何实现动态
数码管
和
静态
数码管
?
2021-09-27
1125
请使用给出的元器件
驱动
4
寸+
12
V共阳
数码管
,非常感谢
2013-05-12
8615
4
位
数码管
的
驱动
方式是什么?
2020-03-11
2758
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分