介绍
单片机数码管显示是单片机学习中较为基础的内容之一。在单片机中,通过控制管脚输出高低电平实现不同数字在数码管中的显示。接下来将介绍如何使用C语言编写0-9数字的数码管显示。
程序实现
首先要定义数码管的引脚,比如P1口。P1口共7个引脚,分别对应数码管的a-g字母段,还有小数点dp。用二进制数的方法为这些引脚编号,其中a-g引脚编号为1-7,dp引脚编号为0。定义变量digit[]数组来存放数字0-9的二进制编码,按顺序放入数组中,便于后面的调用。
在主函数中,首先要定义延迟函数delay(),为了让数码管中的数据在可见范围内闪烁。然后通过for循环使数码管每隔一段时间显示0-9并清空。具体操作是将digit[i]的值赋给P1口,经过一段时间后再清空P1口。i的循环范围是0到9,表示显示0-9这十个数字,循环次数为10次。
代码实现
下面是具体的代码实现示例:
#include
#define uchar unsigned char
//定义数码管引脚,a-g为P1口第1-7个引脚,dp为P1口第0个引脚
sbit Led = P1^7;
sbit spa = P1^6;
sbit spb = P1^5;
sbit spc = P1^4;
sbit spd = P1^3;
sbit spe = P1^2;
sbit spf = P1^1;
sbit spg = P1^0;
//定义0-9数字的二进制编码
uchar digit[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
//延迟函数
void delay(uchar xms){
uchar i,j;
for(i=xms;i>0;i--){
for(j=110;j>0;j--);
}
}
void main(){
uchar i;
while(1){
for(i=0;i<10;i++){
Led = 1;
P1 = digit[i];
delay(80);
P1 = 0x00;
Led = 0;
delay(80);
}
}
}
通过以上的代码实现,就可以在数码管中显示0到9这十个数字了。
本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/mculp6zu.html
郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
我们不承担任何技术及版权问题,且不对任何资源负法律责任。
如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。
如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!