八段数码管的控制显示
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sbit A=P1^0;
void Delay(unchar delaytime);
unchar DispCode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unchar DispDigit[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
#define OUTDigit XBYTE[0xfffd]
void Delay(unchar delaytime);
unchar DispCode[8]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};//采用数组设置显示缓冲区变量
unchar DispDigit[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//位选数组
{
i=0;
for(i=0;i<=7;i++)
{
OUTDigit=0x00;//熄灭各个数码管
OUTDigit=DispDigit[i];//2、选通第i个数码管,同时禁止其他数码管
OUTSEG=DispCode[i];//3、选第i个数码管要显示的字符的代码段
Delay(2);//4、延时5毫秒
}
}//循环执行
while(1)
for(i=0;j!=A;i++)
{OUTDigit=0x00;
OUTDigit=DispDigit[0];
OUTSEG=DispCode[i%10];
Delay(200);//4、延时5毫秒
if(i/10>0)
{OUTDigit=0x00;
OUTDigit=DispDigit[1];
Delay(200);
}
}
}
j=A;
}
3.使用两位数码管,实现数码管显示的数值从0开始每隔0.2s加1,加到100回0并重新开始。
while(1)
{
i=0;
for(j=0;j<=9;j++)
{
for(i=0;i<=9;i++)
{
OUTDigit=0x00;//熄灭各个数码管
OUTDigit=DispDigit[0];
OUTSEG=DispCode[i];
Delay(200);
}
OUTDigit=0x00;
OUTDigit=DispDigit[1];
OUTSEG=DispCode[j+1];
Delay(2000);//
}
}//循环执行
j=A;
}
4.在3的基础上,用P1^0接到开关K1,实现上下拨动一次开关,数码管的值加1,加到100回0.
三.实验内容及程序
1.在8位八段数码管LED显示电路上动态显示12345678
#include <AT89X51.h>
#include <absacc.h>
#define unchar unsigned char
#define OUTCON XBYTE[0xffff]
#define OUTSEG XBYTE[0xfffC]
2.修改程序,使用其中的1位数码管,实现数码管显示的数值从0开始每隔0.2s加1,加到10回0并重新开始。
while(1)
{ห้องสมุดไป่ตู้
i=0;
for(j=0;j<=9;j++)
{
for(i=0;i<=9;i++)
{
OUTDigit=0x00;
OUTDigit=DispDigit[0];
OUTSEG=DispCode[i]
#include <AT89X51.h>
#include <absacc.h>
#define unchar unsigned char
#define OUTCON XBYTE[0xffff]
#define OUTSEG XBYTE[0xfffC]
#define OUTDigit XBYTE[0xfffd]
OUTSEG=DispCode[i/10];
Delay(200);
}
j=A;
}
}
八段数码管显示实验八段共阳极数码管八段数码管引脚图数码管显示数码管显示原理八段数码管四位八段数码管数码管显示vhdl数码管显示流程图数码管显示小数
实验二八段数码管的控制显示
一.实验目的
利用试验系统提供的显示设备,动态显示一行数据。
二.实验内容
1.了解数码管动态显示的原理
2.了解用总线方式控制数码管显示
void Delay(unchar delaytime)//延时函数
{
unchar i=0;
unchar j=0;
for(i=0;i<delaytime;i++)
for(j=0;j<120;j++)
;
}
void main(void)
{
unchar i=0;
unchar j=0;
OUTCON=0x88
void Delay(unchar delaytime)//延时函数
{
unchar i=0;
unchar j=0;
for(i=0;i<delaytime;i++)
for(j=0;j<120;j++)
;
}
void main(void)
{
unchar i=0;
OUTCON=0x88;//8255控制字
while(1)//系统主循环
void Delay(unchar delaytime);
unchar DispCode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unchar DispDigit[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
#define OUTDigit XBYTE[0xfffd]
void Delay(unchar delaytime);
unchar DispCode[8]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};//采用数组设置显示缓冲区变量
unchar DispDigit[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//位选数组
{
i=0;
for(i=0;i<=7;i++)
{
OUTDigit=0x00;//熄灭各个数码管
OUTDigit=DispDigit[i];//2、选通第i个数码管,同时禁止其他数码管
OUTSEG=DispCode[i];//3、选第i个数码管要显示的字符的代码段
Delay(2);//4、延时5毫秒
}
}//循环执行
while(1)
for(i=0;j!=A;i++)
{OUTDigit=0x00;
OUTDigit=DispDigit[0];
OUTSEG=DispCode[i%10];
Delay(200);//4、延时5毫秒
if(i/10>0)
{OUTDigit=0x00;
OUTDigit=DispDigit[1];
Delay(200);
}
}
}
j=A;
}
3.使用两位数码管,实现数码管显示的数值从0开始每隔0.2s加1,加到100回0并重新开始。
while(1)
{
i=0;
for(j=0;j<=9;j++)
{
for(i=0;i<=9;i++)
{
OUTDigit=0x00;//熄灭各个数码管
OUTDigit=DispDigit[0];
OUTSEG=DispCode[i];
Delay(200);
}
OUTDigit=0x00;
OUTDigit=DispDigit[1];
OUTSEG=DispCode[j+1];
Delay(2000);//
}
}//循环执行
j=A;
}
4.在3的基础上,用P1^0接到开关K1,实现上下拨动一次开关,数码管的值加1,加到100回0.
三.实验内容及程序
1.在8位八段数码管LED显示电路上动态显示12345678
#include <AT89X51.h>
#include <absacc.h>
#define unchar unsigned char
#define OUTCON XBYTE[0xffff]
#define OUTSEG XBYTE[0xfffC]
2.修改程序,使用其中的1位数码管,实现数码管显示的数值从0开始每隔0.2s加1,加到10回0并重新开始。
while(1)
{ห้องสมุดไป่ตู้
i=0;
for(j=0;j<=9;j++)
{
for(i=0;i<=9;i++)
{
OUTDigit=0x00;
OUTDigit=DispDigit[0];
OUTSEG=DispCode[i]
#include <AT89X51.h>
#include <absacc.h>
#define unchar unsigned char
#define OUTCON XBYTE[0xffff]
#define OUTSEG XBYTE[0xfffC]
#define OUTDigit XBYTE[0xfffd]
OUTSEG=DispCode[i/10];
Delay(200);
}
j=A;
}
}
八段数码管显示实验八段共阳极数码管八段数码管引脚图数码管显示数码管显示原理八段数码管四位八段数码管数码管显示vhdl数码管显示流程图数码管显示小数
实验二八段数码管的控制显示
一.实验目的
利用试验系统提供的显示设备,动态显示一行数据。
二.实验内容
1.了解数码管动态显示的原理
2.了解用总线方式控制数码管显示
void Delay(unchar delaytime)//延时函数
{
unchar i=0;
unchar j=0;
for(i=0;i<delaytime;i++)
for(j=0;j<120;j++)
;
}
void main(void)
{
unchar i=0;
unchar j=0;
OUTCON=0x88
void Delay(unchar delaytime)//延时函数
{
unchar i=0;
unchar j=0;
for(i=0;i<delaytime;i++)
for(j=0;j<120;j++)
;
}
void main(void)
{
unchar i=0;
OUTCON=0x88;//8255控制字
while(1)//系统主循环