标题:
动态数码管显示数字
[打印本页]
作者:
小老弟~
时间:
2020-11-20 09:15
标题:
动态数码管显示数字
#include "reg51.h" //包含头文件
typedef unsigned char u8; //定义无符号字符型变量为u8
typedef unsigned int u16; //定义无符号整型变量为u16
sbit lsa=P2^2;
sbit lsb=P2^3;
sbit lsc=P2^4; //74HC138译码器,进行管脚定义
u16 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//定义段选数组
u8 disp[8]={9,2,1,1,8,9,9,1}; //显示数字数组
void delay(u16 i) //定义延时函数
{
while(i--);
}
void digdisplay() //数码管显示函数
{
u8 i;
for(i=0;i<8;i++)
{
switch(i) //选通位选地址
{
case(0):
lsc=0;lsb=0;lsa=0;break; //第1位
case(1):
lsc=0;lsb=0;lsa=1;break; //第2位
case(2):
lsc=0;lsb=1;lsa=0;break; //第3位
case(3):
lsc=0;lsb=1;lsa=1;break; //第4位
case(4):
lsc=1;lsb=0;lsa=0;break; //第5位
case(5):
lsc=1;lsb=0;lsa=1;break; //第6位
case(6):
lsc=1;lsb=1;lsa=0;break; //第7位
case(7):
lsc=1;lsb=1;lsa=1;break; //第8位
}
P0=smgduan[disp[i]]; //将所要传输的数字放入段选数组,确定其所对应应点亮的数码管,再将值送入P0
delay(100);
P0=0x00; //消隐
}
}
void main() //主函数
{
while(1)
{ //让程序无限循环
digdisplay(); //调用显示函数
}
}
作者:
suibianyige
时间:
2020-11-28 20:54
楼主有没有汇编语言版的呀
作者:
小老弟~
时间:
2020-12-3 11:58
suibianyige 发表于 2020-11-28 20:54
楼主有没有汇编语言版的呀
没有,不好意思,对汇编不太熟悉但你把这个放keil里进行调试,上面的调试窗口好像有对应的汇编程序
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1