51单片机数码管小数点c语言,求助一个51单片机控制的数码管计算器带小数点功能的...

这篇博客介绍了如何使用C语言在51单片机上实现一个带有小数点功能的数码管计算器。通过定义数码管显示代码和位选通段代码,结合定时器和中断服务程序实现动态扫描显示,同时处理按键输入进行加减乘除运算,并在适当位置显示小数点。
摘要由CSDN通过智能技术生成

#include #define FOSC    12000000                            //--- 宏定义时钟频率 ---

//=================================================================================================

//--- 数码管显示定义与函数声明区 ---

sfr P0M1    = 0x93;

sfr P0M0    = 0x94;

sfr P2M1    = 0x95;

sfr P2M0    = 0x96;

#define TIMER1MS    1000                            //--- 宏定义定时1ms,1000us ---

unsigned char code SEGLED[] =                       //--- 显示0~9,A~F笔段代码表 ---

{

0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x00,0x40,

};

unsigned char code DIGLED[] =                       //--- 数码管显示的位选通段代码表 ---

{

0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,

};

unsigned char LEDBuffer[8] = {0,16,16,16,16,16,16,16};  //--- 定义的显示缓冲区 ---

unsigned char LEDPointer;                               //--- 定义的扫描计数变量 ---

unsigned char GetKeyCount=0;

unsigned char GetKeyMaxFlag=0;

unsigned long NumberA;

unsigned long NumberB;

long Result;

unsigned char NagFlag=0;

unsigned char DotPosition=0;

unsigned char CurrentFunction=0;

unsigned char Signal;

unsigned char code KEYCODE[] =                      //--- 矩阵按键代码表 --

{

0x7e,0xbe,0xde,0xee,//0 1 2 3

0x7d,0xbd,0xdd,0xed,//4 5 6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值