51单片机数码管显示的程序是什么?

51单片机数码管显示的程序是什么?,第1张

#include //52系列单片机头文祥早件\x0d\x0a#define uchar unsigned char //宏定义\x0d\x0a#define uint unsigned int\x0d\x0asbit dula=P2^6//申明u1锁漏宴槐存返友器的锁存端\x0d\x0asbit wela=P2^7// u2\x0d\x0auchar num1,num2\x0d\x0auchar code table[]={ //数组定义\x0d\x0a0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,\x0d\x0a0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}\x0d\x0auchar code aable[]={ //位选数组定义\x0d\x0a0xfe,0xfd,0xfb,0xf7,0xef,0xdf}\x0d\x0avoid delays(uint)//子函数申明\x0d\x0a\x0d\x0a void main() \x0d\x0a{\x0d\x0awhile(1)\x0d\x0a{\x0d\x0a for(num1=0num1//6个数循环显示\x0d\x0a{\x0d\x0awela=1//打开u2锁存端\x0d\x0aP0=aable[num1%6]//送入位选信号\x0d\x0awela=0//关闭u2锁存端\x0d\x0a//delays(1)\x0d\x0adula=1//打开u1锁存端\x0d\x0aP0=table[num1%16]//送入段选信号\x0d\x0adula=0//关闭u1锁存端\x0d\x0adelays(1)\x0d\x0a}\x0d\x0a}\x0d\x0a}\x0d\x0a/*---------主函数-----------------------------------------------*/\x0d\x0a\x0d\x0avoid delays(uint xs)\x0d\x0a{\x0d\x0auint i,j,k\x0d\x0afor(i=xsi>0i--)\x0d\x0afor(j=1000j>0j--)\x0d\x0afor(k=110k>0k--)\x0d\x0a}\x0d\x0a/*----------------延时程序-----------------------------------------------*/

/* ch03-3-4.c - 七段LED数码管实验程序 */

//==声明区=================================================

#include<reg51.h>//定义8051寄存器的头文件,P2-17~19

#define SEG P0 //定义七段LED数码管接至Port 0

/*声明七段LED数码管驱动信号数组(共阳)*/

char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99, //数字0-4

0x92,0x83,0xf8,0x80,0x98}//数字5-9

void delay(int) //声明延迟函数

//==主程序==========================================

main() //主程序开始

{ unsigned char i//声明无符号变量i

while(1)//无穷循环,程序一直跑

for(i=0i<10i++) //显示0-9,共10次闭虚族

{ SEG=TAB[i]//显示数字

delay(500) //延迟500×1m=0.5秒

} //for循环结束

} //主程序结束

//==子程序==========================================

/* 延迟函数,延迟约x×1ms */

void delay (int x) //延迟函数誉逗开始

{int i,j //声明整形变量i,j

for (i=0i<xi++) //计数x次,延迟x×1ms

for (j=0j<160j++) //计数120次,延迟1ms

} //延迟函数结束轿弊


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12511871.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存