资源简介
51单片机 8位数码管动态扫描显示
代码片段和文件信息
/*-----------------------------------------------
名称:8位数码管动态扫描显示
论坛:www.doflye.net
编写:shifang
日期:2009.5
修改:无
内容:8位数码管分别显示不同数字,这种扫描显示方式成为动态扫描
------------------------------------------------*/
#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换
sbit LATCH1=P2^2;//定义锁存使能端口 段锁存
sbit LATCH2=P2^3;// 位锁存
unsigned char code dofly_DuanMa[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
// 显示段码值01234567
unsigned char code dofly_WeiMa[]={0xfe0xfd0xfb0xf70xef0xdf0xbf0x7f};
//分别对应相应的数码管点亮即位码
void Delay(unsigned int t); //函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
main()
{
unsigned char i=0;
while(1)
{
DataPort=dofly_WeiMa[i]; //取位码
LATCH2=1; //位锁存
LATCH2=0;
DataPort=dofly_DuanMa[i]; //取显示数据,段码
LATCH1=1; //段锁存
LATCH1=0;
Delay(200); //扫描间隙延时,时间太长会闪烁,太短会造成重影
i++;
if(8==i) //检测8位扫描完全结束?如扫描完成则从第一个开始再次扫描8位
i=0;
}
}
/*------------------------------------------------
延时函数,含有输入参数 unsigned int t,无返回值
unsigned int 是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-03-24 21:19 23-8位数码管动态扫描显示\
文件 1593 2010-07-03 10:41 23-8位数码管动态扫描显示\8位数码管动态扫描显示.c
文件 1263 2011-12-03 14:29 23-8位数码管动态扫描显示\8位数码管动态扫描显示.Opt
文件 196 2010-05-14 14:34 23-8位数码管动态扫描显示\8位数码管动态扫描显示.plg
文件 2049 2010-05-14 14:44 23-8位数码管动态扫描显示\8位数码管动态扫描显示.Uv2
文件 1254 2010-12-10 11:45 23-8位数码管动态扫描显示\8位数码管动态扫描显示_Opt.Bak
目录 0 2012-03-24 21:19 23-8位数码管动态扫描显示\obj\
文件 2157 2010-06-15 17:57 23-8位数码管动态扫描显示\obj\8位数码管动态扫描显示
文件 295 2010-06-15 17:57 23-8位数码管动态扫描显示\obj\8位数码管动态扫描显示.hex
文件 3351 2010-06-15 17:57 23-8位数码管动态扫描显示\obj\8位数码管动态扫描显示.lst
文件 4053 2010-06-15 17:57 23-8位数码管动态扫描显示\obj\8位数码管动态扫描显示.m51
文件 2357 2010-06-15 17:57 23-8位数码管动态扫描显示\obj\8位数码管动态扫描显示.obj
文件 248 2011-12-03 14:27 23-8位数码管动态扫描显示\obj\8位数码管动态扫描显示.plg
- 上一篇:CListCtrl控件实现Item项拖拽效果
- 下一篇:智能电饭煲
评论
共有 条评论