导航:首页 > 编程语言 > c计算器源代码数码管

c计算器源代码数码管

发布时间:2025-08-01 00:36:01

㈠ 51单片机数码管动态显示从右往左

这是四位数码管从右从左流动显示,像滚动字幕一样的。用不着矩阵按键哪。

其实程序很简单,没那么复杂。程序如下

#include <reg51.h>

#define uchar unsigned char

#define uint unsigned int

uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//共阴段码码,0x00为灭

void delay()//延时子程序

{

uint y;

for(y=400;y>0;y--);

}

void main()

{

uchar n,x;

while(1)

{

n++;

if(n>50)//n为显示一屏显示次数,n大小可调节流动速度

{

n=0;

x++;//从下一个位置开始显示

if(x>8)x=0;

}

}

}

仿真结果

㈡ 利用矩阵式键盘,设计一个10以内数的阶乘计算器,计算结果用六位数码管显示

首先,我们需要选择一种合适的单片机进行编程。在本例中,我们可以选择AT89S52单片机作为主控芯片。

接下来,我们需要设计电路图并进行硬件搭建。按照题目要求,我们需要使用矩阵式键盘和六位数码管。可通过链接进行查看:

https://www.easyeda.com/claraliu/matrix-keyboard-and-6-digit-display

接下来,我们需要编写程序实现阶乘计算功能并将结果显示在六位数码管上。以下是具体的程序实现方式:

  1. 首先定义一个用于保存输入数字的变量,并初始化为0;另外还需要定义一个用于保存阶乘结果的变量。

2.然后通过键盘读取用户输入的数字,并进行判断是否小于等于10。如果不是,提示用户重新输入。

3.接着,通过一个循环语句计算出所输入数字的阶乘,并将结果保存到之前定义的结果变量中。

4.最后,将计算出的阶乘结果转换为六位十进制数,并通过数码管进行显示。

以下是完整程序的示例:

#include <reg52.h> // 包含AT89S52头文件

#define uchar unsigned char // 定义uchar类型

#define uint unsigned int // 定义uint类型

sbit LSA = P2^2; // 设置LSA-P2.2引脚

sbit LSB = P2^3; // 设置LSB-P2.3引脚

sbit LSC = P2^4; // 设置LSC-P2.4引脚

uchar code table[]={ // 建立表格实现数码管显示

0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,

0x80,0x90,0xbf,0xff,

0x88,0x83,0xc6,0xa1};

void delay(uint i) // 延时函数

{

while(i--);

}

void Display(uchar FirstBit,uchar Num) // 数码管显示函数

{

LSA=FirstBit; // 选择哪一位数码管

P0=table[Num]; // 显示数字

delay(100); // 延时一段时间

P0=0xff; // 关闭数码管

}

void main()

{

uchar input_num = 0; // 输入的数字

uint result = 1; // 阶乘结果

uchar i; // 循环计数器

while(1)

{

P1 = 0xf0;

if(P1 != 0xf0) // 如果有键按下

{

delay(1000); // 延时去抖

if(P1 != 0xf0) // 确认是否有键按下

{

switch(P1) // 判断按下的是哪个键

{

case 0x7f: input_num = 1;break;

case 0xbf: input_num = 2;break;

case 0xdf: input_num = 3;break;

case 0xef: input_num = 10;break;

}

break; // 跳出while循环

}

}

}

if(input_num != 0 && input_num <= 10) // 判断输入的数字是否符合要求

{

for(i = 1; i <= input_num; i++) // 计算阶乘

{

result *= i;

}

}

else

{

P1 = 0xfe;

Display(0,result/100000); // 显示结果

Display(1,(result%100000)/10000);

Display(2,(result%10000)/1000);

Display(3,(result%1000)/100);

Display(4,(result%100)/10);

Display(5,result%10);

}

}

最后,我们需要将程序下载到单片机中,并将硬件连接好。这样,当用户输入一个1-10之间的数字时,该计算器就会

阅读全文

与c计算器源代码数码管相关的资料

热点内容
网络用语粉丝阅读什么意思 浏览:333
红头文件怎么打印 浏览:94
热血江湖130刺客升级 浏览:106
jsp页面放大镜技术介绍 浏览:101
网络编程udp 浏览:148
加密压缩文件如何打开 浏览:56
微软编程软件有哪些 浏览:736
linux目录中创建文件夹权限设置密码 浏览:759
word文档正式文件模版 浏览:247
linux文件系统的类型是 浏览:111
苹果的无线传输文件找不到了 浏览:102
密件文件名能出现在通知吗 浏览:832
编写一个web应用程序 浏览:350
哪些场所网络好 浏览:171
华为手机怎么找到以前安装过的app 浏览:100
49块一单约人陪的app是什么 浏览:570
ug文件格式图片 浏览:24
兴趣班编程课是学什么 浏览:879
怎么才能加微信医药群 浏览:601
微信表情小萝莉亲吻 浏览:876

友情链接