#include <reg52.h>
#include <intrins.h> #define uchar unsigned char
#define uint unsigned int /**tatle_du数组数据为0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,H,L**/
uchar code tatle_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,
0x76,0x79,0x38,}; uchar code tatle_we[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; sbit dula=P2^;
sbit wela=P2^; uchar tt,t0,numwe,numdu,temp,bai,shi,ge,flag,flag1;
uint shu; void display(uchar aa,uchar bb,uchar cc,uchar bai,uchar shi,uchar ge);
void delay(uchar z);
void inter_init(); void main()
{
inter_init();
while()
{
if(flag1 != )
{
display(,,,bai,shi,ge);
}
else
{
display(,,,,,);
}
} } /*定时器0流水灯与闪烁*/
void inter0() interrupt
{
TH0=(-)/;
TL0=(-)%;
tt++;
/*如果减数不到398,流水灯与减数同时运行,如果到了398开启闪烁*/
if(flag != )
{
/*流水灯*/
if(tt==)
{
tt=;
delay();
temp=_crol_(temp,);
P1=temp;
}
}
else
{
/*使灯闪烁4秒*/
if(tt%==)
{
P1=~P1;
}
if(tt==)
{
TR0=;
P1=0xff;
flag1=;
}
}
}
/*定时器1数码管显示*/
void inter1() interrupt
{
TH1=(-)/;
TL1=(-)%;
t0++; if(t0==)
{
t0=;
shu--;
bai=shu/;
shi=shu%/;
ge=shu%;
if(shu==)
{
TR0=; //关闭定时器0,关闭流水灯
P1=0xff;
TH0=(-)/;
TL0=(-)%;
tt=;
TR0=; //开启定时器0,并填充数据。使灯闪烁
flag=;
TR1=; //关闭定时器1保持数据显示
}
}
} void delay(uchar z)
{
uchar x,y;
for(x=z;x>;x--)
{
for(y=;y>;y--);
}
} void inter_init()
{
tt=;
t0=;
flag=;
flag1=;
shu=;
temp=0xfe;
P1=temp;
TMOD=0x11;
TH0=(-)/;
TL0=(-)%;
TH1=(-)/;
TL1=(-)%;
EA=;
ET0=;
ET1=;
TR0=;
TR1=;
} void display(uchar aa,uchar bb,uchar cc,uchar bai,uchar shi,uchar ge)
{
dula=;
P0=tatle_du[aa];
dula=;
P0=0xff;
wela=;
P0=0xfe;
wela=;
delay(); dula=;
P0=tatle_du[bb];
dula=;
P0=0xff;
wela=;
P0=0xfd;
wela=;
delay(); dula=;
P0=tatle_du[cc];
dula=;
P0=0xff;
wela=;
P0=0xfb;
wela=;
delay(); dula=;
P0=tatle_du[bai];
dula=;
P0=0xff;
wela=;
P0=0xf7;
wela=;
delay(); dula=;
P0=tatle_du[shi];
dula=;
P0=0xff;
wela=;
P0=0xef;
wela=;
delay(); dula=;
P0=tatle_du[ge];
dula=;
P0=0xff;
wela=;
P0=0xdf;
wela=;
delay();
}
  

利用动态扫描和定时器1在数码管上显示出从765432开始以1/10秒的速度往下递减 直至765398并保持此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动 ,当数码管上数减到停止时,实验板上流水灯出停止然后全部开始闪烁,3秒后(用 T0定时)流水灯全部关闭,数码管上显示出“HELLO”,到此保持住的更多相关文章

  1. nexys4ddr数码管动态扫描Verilog例程

    题目:实现数码管动态扫描功能,将十六个开关的值以十六进制的方式在4个数码管上同时显示出来. `timescale 1ns / 1ps module top( clk, sw, seg, an ); / ...

  2. 利用动态图层实现数据的实时显示(arcEngine IDynamiclayer)

    marine 原文利用动态图层实现数据的实时显示(arcEngine IDynamiclayer) 说明:最近一个项目用到这方面知识,文章主要来至网络,后期会加入自己的开发心得.(以下的代码实例中,地 ...

  3. 为QNetworkAccessManager添加超时提醒(自己记录一段时间里的下载字节数,用定时器去定期检测,从而判断是否超时)

    在做更新,在测试异常的时候,在下载过程中,发现如果直接系统禁用了网络,会报错误,可以捕获.但是如果是第三方软件限制程序联网,问题来了. 程序会一直在那里等待,没有异常,也不发送QNetworkAcce ...

  4. [ASP.NET MVC] 利用动态注入HTML的方式来设计复杂页面

    原文:[ASP.NET MVC] 利用动态注入HTML的方式来设计复杂页面 随着最终用户对用户体验需求的不断提高,实际上我们很多情况下已经在按照桌面应用的标准来设计Web应用,甚至很多Web页面本身就 ...

  5. 20145335郝昊《网络攻防》Exp 4 利用nmap扫描

    20145335郝昊<网络攻防>Exp 4 利用nmap扫描 实验原理 使用msf辅助模块,nmap来扫描发现局域网中的主机ip 实验步骤 首先使用命令创建一个msf所需的数据库 serv ...

  6. C++利用动态数组实现顺序表(不限数据类型)

    通过类模板实现顺序表时,若进行比较和遍历操作,模板元素可以通过STL中的equal_to仿函数实现,或者通过回调函数实现.若进行复制操作,可以采用STL的算法函数,也可以通过操作地址实现.关于回调函数 ...

  7. 利用AWVS扫描Web漏洞

    实验目的 利用AWVS扫描Web漏洞. 实验原理 AWVS是一款知名的网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞. 实验内容 AWVS是一个自动化的web应用程序安全测试工具, ...

  8. c# 利用动态库DllImport("kernel32")读写ini文件(提供Dmo下载)

    c# 利用动态库DllImport("kernel32")读写ini文件 自从读了设计模式,真的会改变一个程序员的习惯.我觉得嘛,经验也可以从一个人的习惯看得出来,看他的代码编写习 ...

  9. 关于利用动态代理手写数据库连接池的异常 java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to java.sql.Connection

    代码如下: final Connection conn=pool.remove(0); //利用动态代理改造close方法 Connection proxy= (Connection) Proxy.n ...

随机推荐

  1. FTP操作类的使用

    FTP(文件传输协议) FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序 ...

  2. 【APUE】fork函数

    #include <unisth.h> pid_t fork(void) fork函数被调用一次,返回两次.子进程的返回值是0,父进程的返回值是子进程的进程id. fork函数调用一次却返 ...

  3. linux 下的特殊文件 /dev/null 和 /de/zero

    生成一个100Mb的文件 : time dd of=2Gb.file if=/dev/zero  bs=1024 count=100000 ubuntu 下测试磁盘的读写性能: 测试写: time d ...

  4. Android自己定义之TextView跑马灯的监听

    TextView都有跑马灯的效果,假设说让你去监听跑马灯效果的运行.我认为这个需求有点二了.可是也要实现. 思路: 1.自己定义View  继承TextView   这样的方法过于麻烦,仅仅是监听一个 ...

  5. JS 省市区三级联动

    JS 省市区三级联动: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  6. Redis Server分布式缓存编程

    这篇文章我将介绍如果用最简洁的方式配置Redis Server, 以及如何使用C#和它交互编程 一. 背景介绍 Redis是最快的key-value分布式缓存之一 缺点: 没有本地数据缓冲, 目前还没 ...

  7. 多媒体开发之wis-stream

    在live555的mediaServer中,已经实现RTSP-over-HTTP,但默认没有开启.如果要实现这个功能,需要调用RTSPServer::setUpTunnelingOverHTTP(), ...

  8. [IT练习册]Python练习项目 思路

    1.爬虫:爬取如下网站一年的内容. http://www.calvarymoravian.org/dailytext 2.蛇形棋: 开发一个类似蛇形棋的游戏.最好基于Web. 3.爬虫+通讯录: 从公 ...

  9. NHibernate不支持复杂的linq,就一定要用DataTable这么低级吗

    有些linq,好不容易写出来,正想扬眉吐屁一番,不料用NHibernate一执行,却报错,说是不支持,我靠. 只好捏着鼻子写一大段sql,交给它.这种直接执行SQL的情况,我看我同事写的,全部都是返回 ...

  10. 2016/2/26 jQuery的技术 1,安装 2,语法选择器$ 事件触发 3,常用jQuery函数

    在<网页制作Dreamweaver(悬浮动态分层导航)>中,运用到了jQuery的技术,轻松实现了菜单的下拉.显示.隐藏的效果,不必再用样式表一点点地修改,省去了很多麻烦,那么jQuery ...