51学习之旅

寒假之前学过一些51单片机的基础内容,可是中间暂停了好久;没有继续深入学习,最近重拾51,感觉很长一段时间内的不良习惯加上自己未进入最佳状态,大脑好像锈住了,从今天起每天开博,不为别人,记录自己的生活,记录自 己的进步。

实践才是王道,加油吧骚年!!!!

一、用矩阵控制数码关源代码:

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

#define dula P0  //段选

#define wela P2

#define jz P1

uchar  key_num;

uchar code table[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

void delayms(uint x)

{

uint y;

for(;x>0;x--)

for(y=110;y>0;y--);

}

void display(uchar num)

{

if (num==0)

{

wela=0xfe;

dula=table[num];

delayms(5);}

else if(num==1)

{

wela=0xfd;

dula=table[num];

delayms(5);

}

else if(num==2)

{

wela=0xfb;

dula=table[num];

delayms(5);

}

else if(num==3)

{

wela=0xf7;

dula=table[num];

delayms(5);

}

else if(num==4)

{

wela=0xfb;

dula=table[num];

delayms(5);

}

}

void keyscan()

{

uchar a;

jz=0x0f;

if(jz!=0x0f)

{

delayms(5) ;

if(jz!=0x0f)

{

switch(jz)  //扫描列

{

case  0x07:

key_num=0;break;

case  0x0b:

key_num=1;break;

case  0x0d:

key_num=2;break;

case  0x0e:

key_num=3;break;

}

jz=0xf0;

switch(jz)//扫描行

{

case 0x70:

key_num=key_num;break;

case  0xb0:

key_num=key_num+4;break;

case   0xd0:

key_num=key_num+8;break;

case   0xe0:

key_num=key_num+12;break;

}

while((a<50)&&(jz!=0xf0))

{

delayms(5);

a++;

}

}

}

}

void main()

{

while(1)

{

keyscan();

display(key_num);

}

}

--------------------------------------------------------------------------------------------------------------------------------------------------------

MOVED FROM LOFTER

时间: 2024-12-28 15:42:23

51学习之旅的相关文章

我的大学【我的计算机学习之旅&amp;我的计算机考研之旅】

freemarker定义一个连续的序列 1.简易说明 定义一个连续的序列,并打印出序列中的元素 2.实现源码 <#--freemarker定义了一个连续的序列--> <#assign nums=1..100/> <#list nums as num> ${num} </#list> 3.实现结果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3

【Microsoft Azure学习之旅】消息服务Service Bus的学习笔记及Demo示例

今年项目组做的是Cloud产品,有幸接触到了云计算的知识,也了解并使用了当今流行的云计算平台Amazon AWS与Microsoft Azure.我们的产品最初只部署在AWS平台上,现在产品决定同时支持Azure,所以有幸学习下Azure,并在查看文档资料以及写Demo过程中发现了其中的一些不同.虽然AWS与Azure是两款旗鼓相当的竞争产品,但是还是有很多区别. 本文主要是自己学习Service Bus中的学习笔记,自己有些结论也都跟微软技术支持确认过.个人观点,抛砖引玉:-) 消息服务对于云

基于 Android NDK 的学习之旅----- C调用Java

http://www.cnblogs.com/luxiaofeng54/archive/2011/08/17/2142000.html 基于 Android NDK 的学习之旅----- C调用Java许多成熟的C引擎要移植到Android 平台上使用 , 一般都会 提供 一些接口, 让Android sdk 和 jdk 实现. 下文将会介绍 C 如何 通过 JNI 层调用 Java 的静态和非静态方法. 1.主要流程 1.  新建一个测试类TestProvider.java a)       

SSIS 学习之旅 序章 和 简介

SSIS 学习之旅目录: 第一章: SSIS 学习之旅 第一个SSIS 示例(一) 第二章: SSIS 学习之旅 第一个SSIS 示例(二) 第三章: SSIS 学习之旅 数据同步 第四章: SSIS 学习之旅 FTP文件传输-FTP任务 第五章: SSIS 学习之旅 FTP文件传输-脚本任务 第六章: SSIS 学习之旅 FTP访问类 SSIS是Microsoft SQL Server Integration Services的简称,是生成高性能数据集成解决方案,是Microsoft BI 解

【转】基于 Android NDK 的学习之旅-----数据传输(引用数据类型)

原文网址:http://www.cnblogs.com/luxiaofeng54/archive/2011/08/20/2147086.html 基于 Android NDK 的学习之旅-----数据传输二(引用数据类型)(附源码) 基于 Android NDK 的学习之旅-----数据传输(引用数据类型) 接着上篇文章继续讲.主要关于引用类型的数据传输,本文将介绍字符串传输和自定义对象的传输. 1.主要流程 1.  String 字符串传输 a)         上层定义一个native的方法

Git命令学习之旅——日志和穿梭版本号

在总结了git命令的基础之后,接下来我们看一下基础的一些进阶内容:删除撤销命令.日志查看命令等 既然有加入文件的功能,那么相相应的肯定有移除文件的功能,命令例如以下:git rm [文件名称] 在输入命令之后,例如以下图所看到的: 提示已经删除了"c.txt"文件.这个时候再用git status查看一下状态,例如以下图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JB

Android热修复学习之旅——HotFix完全解析

在上一篇博客Android热修复学习之旅开篇--热修复概述中,简单介绍了各个热修复框架的原理,本篇博客我将详细分析QQ空间热修复方案. Android dex分包原理介绍 QQ空间热修复方案基于Android dex分包基础之上,简单概述android dex分包的原理就是:就是把多个dex文件塞入到app的classloader之中,但是android dex拆包方案中的类是没有重复的,如果classes.dex和classes1.dex中有重复的类,当classes.dex和classes1

菜鸟的Android学习之旅(一)

最近在拜读郭霖老师的经典<第一行代码>,作为一名菜鸟级的新手来说这本书确实对新手很友好,讲的很详细.如果你也像我一样作为一只小菜鸟想学习Android,还不了解这本书的,还没有想好入手哪一本书作为自己新手启蒙书的同学,个人觉得你就不要徘徊了,加入购物车吧! 因为我才是刚开始学习不久,第二章才学习了很少一部分,所以我没办法说点有营养的东西,我就先记录一下我学习过程中经历的错误吧. 第二章开始,郭老师教我们如何手动创建活动.边看书边敲代码,但是你会发现当你完全按照书上所说敲完所有需要的代码之后代码

iOS学习之旅10 ATS(App Transport Security)对HTTPS协议要求引起的问题

问题描述 编写以下代码获取网络某个资源的MIMEType 1 -(void)getMIMEType 2 { 3 //路径 4 NSURL *url = [NSURL URLWithString:@"https://www.baidu.com/img/bd_logo1.png"]; 5 //请求对象 6 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 7 NSOperationQueue *