#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
uchar Num[]=
{
10,10,10,10,10,10,10,10,2,9,8
};
void DelayMS(uint x)
{
uchar t;
while(x--)
{
for(t=120;t>0;t--);
}
}
void main()
{
uchar i,j,k,m;
P0 = 0xff;
P2 = 0x00;
m = 0x80;
k = 0;
while(1)
{
for(i=0;i<15;i++)
{
for(j=0;j<8;j++)
{
m = _crol_(m,1);
P2 = m;
P0 = DSY_CODE[Num[(k+j)%11]];
DelayMS(2);
}
}
k = (k+1)%11;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
程序将所有待显示的数码 10,10,10,10,10,10,10,10,2,9,8存放于 Num 数组中,其中 10 表示黑屏,显示时取码过程如下: 当取前8个数显示时为全黑: 取第2个数开始的8个数时,最后一个是2; 取第3个数开始的8个数时,最后两个是2,9; 取第4个数开始的8个数时,最后三个是2,9,8; 取第5个数开始的8个数时,会发现剩下的只有7个。 为解决这个问题,本例将数组Num 看做环形队列,从任何一个元素开始取8个元素时,如果后面不足8个数,程序会自动从前面开始继续取得其余元素。代码中(k+i)%11即实现了这个功能,它表示从第k个开始取第i个元素,k+i超过最后位置时会自动从第0个元素开始继续取值。主程序中使用了双重 for 循环,内层循环用于8位数码管的扫描显示,包括黑屏部分,外层还添加了 for 循环,这是为了使每次8位数码的扫描显示重复若干遍,形成一组数字串的保持显示效果。 最后一行代码递增取值起点k,因为取值起点在双重循环后递增,也就是在同一组数字刷新显示若干遍,形成一小段延时后递增,从而产生滚动显示效果。 资料包含程序源文件和仿真源文件
资源推荐
资源详情
资源评论
收起资源包目录
10 8只数码管滚动显示数字串.rar (19个子文件)
10 8只数码管滚动显示数字串
8只数码管滚动显示数字串.DSN 105KB
Last Loaded 8只数码管滚动显示数字串.DBK 105KB
8只数码管滚动显示数字串.PWI 768B
Keil C
8只数码管滚动显示数字串 1009B
8只数码管滚动显示数字串.hex 810B
code
smg_Uv2.Bak 0B
smg.OBJ 3KB
smg.plg 292B
smg.LST 2KB
smg.M51 4KB
smg 3KB
smg.c 605B
led.Uv2 149B
smg.Opt 1KB
smg.Uv2 2KB
smg.lnp 38B
led_Uv2.Bak 0B
smg_Opt.Bak 1KB
led.Opt 314B
共 19 条
- 1
资源评论
达西西66
- 粉丝: 1193
- 资源: 536
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java多线程学习Java多线程学习Java多线程学习Java多线程学习.txt
- 算法数据结构-动态规划算法(Dynamic Programming)超详细总结加应用案例讲解.txt
- 2024最强秋招八股文(精简、纯手打)2024最强秋招八股文(精简、纯手打).txt
- 基于tensorflow多特征融合的微表情识别python源码.zip
- 基于yolov8实现人脸检测的python源码+运行说明.zip
- Micron Memory DDR3 SDRAM 全系列AD集成库(原理图库+PCB封装库).IntLib
- 基于tensorflow多特征融合的微表情识别python源码+详细使用说明.zip
- TensorRT部署DETR项目工程C++源码.zip
- Word文字处理软件练习题及答案.doc
- Word普通信纸信纸格式可打印.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功