数码管右移
来源:互联网 发布:ubuntu 存储空间 编辑:程序博客网 时间:2024/05/16 05:31
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换sbit LATCH1=P2^2;//定义锁存使能端口 段锁存sbit LATCH2=P2^3;// 位锁存unsigned char code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码unsigned char TempData[10]; //存储显示值的全局变量void Delay(unsigned int t); //函数声明void Display(unsigned char FirstBit,unsigned char Num);main(){ unsigned int i,k,j; unsigned char s; while(1) { j++; if(j==20) { j=0; if(0==k) { for(s=0;s<10;s++) //完全循环完成后清零所有缓冲区TempData[s]=0; } TempData[8-i]=dofly_DuanMa[k]; //把需要显示的字符依次送缓冲区 TempData[9-i]=0; //不需要显示的区域清零 if(i==(8-k)) { i=0; k++;if(k==8) k=0;} i++; } Display(0,8);//从第一位显示,共显示8位 }}void Delay(unsigned int t){ while(--t);}void Display(unsigned char FirstBit,unsigned char Num){ unsigned char i; for(i=0;i<Num;i++) { DataPort=0; //清空数据,防止有交替重影 LATCH1=1; //段锁存 LATCH1=0; DataPort=dofly_WeiMa[i+FirstBit]; //取位码 LATCH2=1; //位锁存 LATCH2=0; DataPort=TempData[7-i]; //取显示数据,段码 这里只需要 把扫描方向更换一下即可 LATCH1=1; //段锁存 LATCH1=0; Delay(200); // 扫描间隙延时,时间太长会闪烁,太短会造成重影 }}
0 0
- 数码管右移
- 数码管循环右移
- 数码管左移
- 数码管左移
- 数码管循环左移
- 数码管循环左移
- 数码管
- 数码管
- 数码管
- 数码管
- 数码管
- 数码管
- 数码管
- 数码管
- 数码管
- 数码管
- 数码管
- 数码管
- 安卓数据存储
- Ny106背包问题
- servlet过滤器的xml配置和注解方式对比
- 在linux上安装nginx
- 开始我的视频学习之旅----前言
- 数码管右移
- Android 知识点锦集
- 阿里test--view绘制,Activity启动,等深刻解答
- CString的坑
- .Net事件使用
- Android Studio导入项目的gradle与studio不匹配
- struts 2 流程
- PyOdps DataFrame来临,数据分析从未如此简单!
- Python