利用动态扫描和定时器1在数码管上显示出从765432开始以1/10秒的速度往下递减 直至765398并保持此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动 ,当数码管上数减到停止时,实验板上流水灯出停止然后全部开始闪烁,3秒后(用 T0定时)流水灯全部关闭,数码管上显示出“HELLO”,到此保持住
#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”,到此保持住的更多相关文章
- nexys4ddr数码管动态扫描Verilog例程
题目:实现数码管动态扫描功能,将十六个开关的值以十六进制的方式在4个数码管上同时显示出来. `timescale 1ns / 1ps module top( clk, sw, seg, an ); / ...
- 利用动态图层实现数据的实时显示(arcEngine IDynamiclayer)
marine 原文利用动态图层实现数据的实时显示(arcEngine IDynamiclayer) 说明:最近一个项目用到这方面知识,文章主要来至网络,后期会加入自己的开发心得.(以下的代码实例中,地 ...
- 为QNetworkAccessManager添加超时提醒(自己记录一段时间里的下载字节数,用定时器去定期检测,从而判断是否超时)
在做更新,在测试异常的时候,在下载过程中,发现如果直接系统禁用了网络,会报错误,可以捕获.但是如果是第三方软件限制程序联网,问题来了. 程序会一直在那里等待,没有异常,也不发送QNetworkAcce ...
- [ASP.NET MVC] 利用动态注入HTML的方式来设计复杂页面
原文:[ASP.NET MVC] 利用动态注入HTML的方式来设计复杂页面 随着最终用户对用户体验需求的不断提高,实际上我们很多情况下已经在按照桌面应用的标准来设计Web应用,甚至很多Web页面本身就 ...
- 20145335郝昊《网络攻防》Exp 4 利用nmap扫描
20145335郝昊<网络攻防>Exp 4 利用nmap扫描 实验原理 使用msf辅助模块,nmap来扫描发现局域网中的主机ip 实验步骤 首先使用命令创建一个msf所需的数据库 serv ...
- C++利用动态数组实现顺序表(不限数据类型)
通过类模板实现顺序表时,若进行比较和遍历操作,模板元素可以通过STL中的equal_to仿函数实现,或者通过回调函数实现.若进行复制操作,可以采用STL的算法函数,也可以通过操作地址实现.关于回调函数 ...
- 利用AWVS扫描Web漏洞
实验目的 利用AWVS扫描Web漏洞. 实验原理 AWVS是一款知名的网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞. 实验内容 AWVS是一个自动化的web应用程序安全测试工具, ...
- c# 利用动态库DllImport("kernel32")读写ini文件(提供Dmo下载)
c# 利用动态库DllImport("kernel32")读写ini文件 自从读了设计模式,真的会改变一个程序员的习惯.我觉得嘛,经验也可以从一个人的习惯看得出来,看他的代码编写习 ...
- 关于利用动态代理手写数据库连接池的异常 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 ...
随机推荐
- 中间件序列TDATASET为BUFFER演示代码
procedure SendStream(const AStream: TStream);var Buffer: array[0..4095] of Byte; // 每包最大4K StartPos, ...
- Md5扩展攻击的原理和应用
*本文原创作者:Guilty and Innocent,本文属FreeBuf原创奖励计划,未经许可禁止转载 做CTF题目的过程中遇到了md5扩展攻击,参考了几篇文章,感觉写的都有些小缺陷,再发一篇文章 ...
- 主成分分析(principal components analysis)
http://www.cnblogs.com/jerrylead/tag/Machine%20Learning/ PCA的思想是将n维特征映射到k维上(k<n),这k维是全新的正交特征.这k维特 ...
- 【APUE】进程基础
进程标识符:非负整数 ID为0的进程通常是是调度进程,常被称为交换进程.该进程是内核的一部分,它并不执行任何磁盘上的程序,因此也被称为系统进程 ID为1的进程是init进程,在自举过程结束时由内核调用 ...
- #include<> 和 #include""的区别
#include< file >编译程序会先到标准函数库中找文件 #include”file” 编译程序会先从当前目录中找文件 参考原文 转: 在C程序中包含文件有以下两种方法: (1)用 ...
- 使用literal语法格式化字符串
支持arm64之后,格式化字符串的时候会遇到一些问题,主要与NSInteger的定义有关: #if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET ...
- 【SICP练习】149 练习4.5
练习4-5 原文 Exercise 4.5. Scheme allows an additional syntax for cond clauses, ( => ). If evaluates ...
- HDU 1176-免费馅饼(DP_逆推)
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 【bzoj1015】【JSOI2008】【星球大战】【并查集+离线】
Description 非常久曾经.在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器.并攻下了星系中差点儿全部的星球.这些星球 ...
- flask的路由配置,特殊装饰器
1,flask中的路由 endpoint-url_for反向地址 endpoint默认是视图函数名endpoint="雪雪" methods 指定视图函数的请求方式,默认GET d ...