#include"reg51.h"
#include"intrins.h"
#define seg1 P0
#define seg2 P2
typedef unsigned int u16;
typedef unsigned char u8;
u16 code smg[10]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极数码管编码
sbit key1=P3^2; //位定义
sbit key2=P3^3; //位定义
sbit buzzer=P1^0; //位定义
u16 num=0;
u16 i=0;
void delay(u16 i) //延时函数(约10微秒)
{
while(i--);
}
void int_init() //中断初始化函数
{
EA=1; //中断总允许位
EX0=1; //外部中断0允许位
IT0=1; //下降沿触发
EX1=1; //外部中断1允许位
IT1=1; //下降沿触发
}
void tim0_init() //定时计数器初始化函数
{
ET0=1; //定时计数器允许位
TMOD=0X01; //定时器0方式一
TH0=0XFC; //高八位初始值
TL0=0X18; //低八位初始值
TR0=0; //关闭定时(需要按k1才将TR0置为1)
}
void display() //数码管显示函数
{
seg1=~smg[num/10%10]; //十位
delay(10); //消影
seg2=~smg[num%10]; //个位
delay(10); //消影
}
void main() //主函数
{
int_init();
tim0_init();
while(1)
{
display();
}
}
void int0() interrupt 0 //外部中断0服务函数
{
if(key1==0) //判断是否按下
{
delay(1000); //消抖
if(key1==0)
{
TR0=1; //开启计时
}
}
}
void int1() interrupt 2 //外部中断1服务韩素
{
if(key2==0) //判断k2是否按下
{
delay(1000); //消抖
if(key2==0)
{
TR0=0; //关闭计时
}
}
}
void tim0() interrupt 1 //定时计数器服务函数
{
TH0=0XFC; //需要重新赋值高低8位
TL0=0X18;
if(i==1000) //循环多少次与初值有关
{
i=0;
num++;
}
i++;
if(num==61) //判断是否加到60
{
buzzer=0; //蜂鸣器
delay(100000);
buzzer=1;
num=0;
}
}
AT89C51(AT89C52)
BUTTON(按钮)
BUZZER(蜂鸣器)
RES(电阻)
PNP(三极管)
GROUND(地)
POWER(电源)
SEG CA(共阳极数码管)
1.因为是 共阴极编码,而数码管是共阳极,所以需要取反
2.定时器初始化时将TR0设置为0是为了显示题目中的按k1开始计数
题目:写一段代码,从服务器返回的图片给浏览器// imagePath 图片的路径// response HttpServletResponsepublic void downImage(String imagePath,HttpServletResponse response){}答案:public void downImage(String imagePath,HttpServletResponse response){ resp.setContentType("text/ht
WindowManager是Android应用中用来控制界面的_windowmanager使用教程
思路:1、首先需要两个DIV,一个是和视口一样大的drag-mask,绑定mouseMove事件和mouseUp事件,用来作为拖拽参照;另一个是和Modal一样大的drag-target,绑定mouseDown事件。2、已知Modal的样式.ant-modal{position:relative;top:100px;left:0px;},可见通过更改top、left我们将可以改变Modal位置。3..._antd modal 拖动
根据尚硅谷视频做的硅谷直聘,因为这个项目比较老,许多依赖都是老版本的,很多下载的新的依赖会有冲突,以及做项目时,遇到的问题和解决的方法都会记录下来,以供参考
老规矩,效果图如下所示: 刚开始我看这个动画的时候真的被震撼到了,无论用什么来实现都觉得非常非常得难,用粒子发射器,动力框架,感觉都做不出来.只觉得其中的算法肯定及其复杂又复杂, 然而,越是高级的程序员越是能用"懒惰的方法"实现复杂的功能,没错,对于这个动画处理方式,我只是封装了一个imageView的子类而已,并没有想象当中的那么复杂,我把动画实现的渲染图放到下面,你看了...
大列表中的小列表代表移动,第一个坐标是被移动的棋子的位置,第二个则是被跳过(取走)的棋子的位置。当然如果,跳过后的空位被占了的话,也是无法跳的。棋子越多自由度就越高,每一步的选择就更多,失败的走法总体上比成功地走法多得多,所以成功不算太容易。一颗棋子可以跳过邻近一颗棋子(只包含上下左右,而没有斜向),被跳过的棋子就被拿开。所以为了,为了获得一种解法,或者理论上的所有解法,我决定写这样的一个程序。简单来讲,是一种规则简单,但是过程并不见得容易,可以一个人玩的棋。为了提高速度,只返回了一种可能的解决方案。_孔明棋 csdn
按照txt中的顺序将文件夹中的文件批量重命名:import osdef re_name(path): for file in os.listdir(path): file_path = os.path.join(path, file) #print(file) if ".dic" in file.lower(): # 判断文件是否为dic文件 for i in range(len(LstFilesDIC)): _if in file: python
平台环境:skyeye1.2.8+u-boot1.2.0+smdk2410现象描述:在运行的时候会出现大量的“bus read error”错误,或者u-boot跑飞出现乱码信息。 1.2.8相对1.2.6最大的改变就是将存储管理这一块做成相对独立的模块,我想这样做的目的应该是能够把更多的精力放在新平台新架构的研发。出现问题我初步想法可能就是在这个改变上。通过与1.2.6上跑u-_bus read 错误
视觉导航技术综述医2007 江苏省自动化学会学术年会论文集视觉导航技术综述唐超颖,杨忠,沈春林(南京航空航天大学自动化学院,江苏 南京 210016)摘要:概述了视觉导航技术。视觉导航依据视觉图像,利用图像处理、计算机视觉、模型识别等相关技术获取运动体的运动信息和空间位置信息,实现导航。首先,简单比较了各种常用的导航方式,分析了视觉导航的研究意义;其次,总结了目前视觉导航的应用领域及应用概况;接着..._杨忠 博导 南京航空航天大学自动化学院
看到这二十条启示第一反应是:游戏出真知啊!凡事都有对立面,多看看积极的一面不挺好啊?吸引我玩这个游戏是因为有朋友说到游戏里的一名话:做人不能贪得无厌每个人的内心或多或少都会有点小恶,个人觉得于人无害便不算恶吧!恶作剧是生活的调剂.个人觉得还是挺好玩的,植物画得很好,很形像,尤其看到作物枝繁叶茂果实累累的时候,最是开心!不过,小孩子慎玩.括...
对于一个Android开发来说,不管你有多不喜欢自定义控件,你都得和她谈一场恋爱。所以我主动谈了这场很费脑子的恋爱,因为阅读源码的能力不好,在寻根抛底的找线索的过程中,搞得反胃,不过最后还是把来龙去脉都捋了一遍。当然今天的角不是常用且高效的组合型自定义控件,而是纯粹绘制出来的View或者重新定义规则的一个ViewGroup。 简述1:启动Activity的时候会创建..._onmeasure onlayout ondraw
ConcurrentHashMap分析1. HashMap 5 个线程 put 数据会发生什么? (阿里面试第一面)2. Java 多线程的内存模型3. synchronized 的底层实现原理4. ConcurrentHashMap 源码分析1. HashMap 5 个线程 put 数据会发生什么? (阿里面试第一面)数据丢失,死循环 (扩容)解决方案:hashTableCollections.synchronizedMap()ConcurrentHashMap前两种是锁着整个方法,分_concurrenthashmap h >>> 16