c语言怎么弄小数点,数码管小数点
1.显示小数点
我们可能忽略了数码管上还有一段发光二极管,这个在它的右下角,平时我们点亮这个小点是用来表示数字的小数点。要想让这个小数点即使显示的数字一直变但它还是保持常亮状态有什么办法吗。
我们不可能为每一个数字再弄一个带小数点的真值表数组,这样太麻烦了,熟悉C语言知识的话,我们用另一种方法。
大家要明白这个知识点:(0x7F)&(0xC0)=0x40
用二进制表示
0111 1111
&
1100 0000
=
0100 0000
01000000(0x40)就是使数码管显示0的同时还显示小数点了
所以不管是0xC0还是要显示其他数字,我们只要“0x7F & LedBuff[x]”就能保持住小数点常亮了。
2.代码#include
sbit ADDR2 = P1^2;
sbit ADDR1 = P1^1;
sbit ADDR0 = P1^0;
sbit ENLED = P1^4;
sbit ADDR3 = P1^3;
unsigned char code LedChar[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//数码管状态值初始化
unsigned char LedBuff[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};//数码管显示缓存区
void delay_ms(unsigned int x)
{
unsigned int i,j;
if(x==1000)
{
for(i=0;i<19601;i++)//延时1s
{
for(j=5;j>0;j--);
}
}
else while(x--)for(j=115;j>0;j--);
}
void main()
{
unsigned char Second=0;
ADDR3 = 1;//使能三八译码器
ENLED = 0;//
ADDR2 = 0;//*************************
ADDR1 = 0;//三八译码器的IO0输出低电平
ADDR0 = 0;//*************************
while(1)
{
LedBuff[0]=LedChar[Second];
P0=0x7F & LedBuff[0];
Second++;
if(Second>=10)Second=0;
delay_ms(1000);
}
}
因为代码功能只是显示一个数码管,所以不需要快速切换三八译码器的其他IOx输出低电平,也就可以用“delay_ms(1000);”。
c语言怎么弄小数点,数码管小数点相关推荐
- 带小数点数码管的显示
带小数点数码管的显示 数码管的示意图如上,通过点亮a-g七个led来拼成对应的数字或字符,数码管有共阳极(底电平亮)和共阴极(高电平亮),以上图的数字2为例: 共阳极(0亮1灭): DP G F E ...
- 两位数码管秒表c语言,单片机C语言编程实现双数码管可调秒表
单片机C语言编程实现双数码管可调秒表 解:只要满足题目要求,方法越简单越好.由于单片机I/O资源足够,所以双数码管可接成静态显示方式,两个共阴数码管分别接在P1(秒十位)和P2(秒个位)口,它们的共阴 ...
- 单片机c语言数码管显示子程序,单片机C语言之两位数码管动态显示
<单片机C语言之两位数码管动态显示>由会员分享,可在线阅读,更多相关<单片机C语言之两位数码管动态显示(1页珍藏版)>请在人人文库网上搜索. 1.include #define ...
- 51单片机数码管小数点c语言,求助一个51单片机控制的数码管计算器带小数点功能的...
#include #define FOSC 12000000 //--- 宏定义时钟频率 --- //=================== ...
- 秒表的数码管小数点的显示C语言,4位7段数码管秒表,一位小数,用at89c51单片机,汇编语言...
;要求:至少包括4个功能:时间清零:启动计时:暂定计时:继续计时: ; 计时最小单位0.1 秒,最大计时时间999.9秒, ; 用数码管显示时间,同时要求按下任何一个功能键必须有声 ...
- C语言八进制转十进制(包括小数点)
下午做了道c语言题目,老师只讲了整数转换,自己试着实现了一下包括小数点的进制转换. 思路是:用一个字符型数组存储八进制数,用一个for循环遍历到小数点的位置,小数点前用整数转换,之后用小数转换. // ...
- C语言长精度除法,高精度除法小数点位数
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 题目描述 a/b. a,b为integer范围内的整数. 求a/b的前n位小数商. 输入 a b n 输出 一行数字 样例输入97 61 50样例输出1. ...
- c语言计算除法一位小数点,高精度除法小数点位数
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 题目描述 a/b. a,b为integer范围内的整数. 求a/b的前n位小数商. 输入 a b n 输出 一行数字 样例输入97 61 50样例输出1. ...
- c语言除法取两位小数点,高精度除法小数点位数
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 题目描述 a/b. a,b为integer范围内的整数. 求a/b的前n位小数商. 输入 a b n 输出 一行数字 样例输入97 61 50样例输出1. ...
最新文章
- 【Network Security!】ping命令的用法(全)
- iOS: 转载CoreData数据库框架
- vc 获取月份的天数_「青少年编程」课程:输入年份与月份,得到该月有多少天...
- 记录我开发工作中遇到HTTP跨域和OPTION请求的一个坑
- java 动画_Java安全动画
- net.sf.ezmorph.Morpher问题解决
- c语言计算据标准时间多少天,C语言系列--时间处理
- 深入PHP面向对象、模式与实践读书笔记:面向对象设计和过程式编程
- Android Studio下gradle环境搭建
- Github下载代码和运行
- 使用gcc编写c语言程序,利用GCC工具编译C语言程序
- 开源项目推荐:office办公软件,绘图软件
- java 滚动字幕_Java程序 实现图形面板上的字幕滚动效果
- 面试准备—任重而道远
- 网络时钟同步系统概述
- 爬取广东工业大学新闻通知网最新通知并发送至 QQ 邮箱
- CAD转图片用什么软件?分享两种途径
- 【离散数学】二元关系中的传递关系与非传递关系
- IEEE754标准浮点数转换
- 安装Mysql时:没有可用软件包 mysql-server。