89C51单片机的学习
好久都没来写一些东西了
最近老是忙着玩了,都忘记认真学习了。
大概从明天开始就要开始忙了。
1,英语四级
2,单片机课程
3,安卓课程
4,PS
感觉事情好多。
但是我还是心不在焉。好奇怪。
反正就是谈恋爱有点动心吧。好了,不说恋爱问题,头疼。说说最近一些好玩的,不是很无聊的项目。
最近跟着熊旻燕老师学单片机连自己的专业课都不上。做了几个小project(这个英文咋翻译。。)感觉还行吧。
就大概的介绍一下最近的课程吧
1,点亮第一个灯
sbit LED=P1^1;
LED=1;
这就点亮了。。就是这么短的代码。。。
然后做了流水灯
源码找不到了,用一个最后流水灯的“大”project顶上吧。。这个project实现的就是几个灯的变换方式。代码的注释里写的有。。好,贴代码。
void main(void)
{
//声明变量
unsigned int nums[]={0x7E,0xBD,0xDB,0xE7};
unsigned int j;
unsigned char temp;
unsigned int i; //最大的循环
while()
{ while(i<=)
{ //1111111 碰头 部分
for(j=;j<;j++)
{
P2=nums[j];
delay();
}
i++;
}
while(i<=)
{
//2222222 流水 部分
temp=0xfe; //只亮第一个灯 fe=1111 1110
for(j=;j<;j++)
{
P2=temp;
temp=(temp<<)+;//补0
delay();
}
i++;
}
//3333333 第三部分1,2,3,4种情况亮灯
//
P2=0xFC;
delay();
//
P2=0x0f;
delay();
//
P2=0xc0;
delay();
//
P2=0x00;
delay(); //444444444 全灭
P2=0xff;
delay();
i=; //重置i 以免死循环在第3部分
}//while end
}//main end
之后就自己淘宝上买了些电子元件,(妈的说的就来火,忘记买芯片了。然后坐车去广埠屯买的)
买了烙铁,买了胶枪。然后把板子焊好了。
没圆口电源线就找了路由器的电源线,没USB线就找了个合适的分线器,没串口线就找老师借了一根。
最后亮灯的时候发现有灯脚焊反了。又倒腾了半天。最后不错还是全部弄好了。
好,点灯就到此为止了。
下一步开始学示波器。。。
因为有C#基础,点灯的小程序根本不是什么事,写的比14级的同学快,有点小骄傲,就没跟着老师走了。
讲示波器的那天听得很大概,然后自己回来也没写作业,第二天去了之后啥都听不懂,一脸懵逼。看着老师都不好意思。
最后厚着脸拍了别人的代码一点一点分析,一点一点写注释——————还是没搞好。。。妈的。
晚上回去之后自己好好写了几作业,定时器示波器算是多多少少有些理解了。
示波器的代码就不贴上来了。太尴尬了哈哈哈哈。
好,然后就到了今天,写了一个显示按键次数的程序。
两种方法在课堂上都写完了,第二种有bug然后在老师的催促下找了bug然后修复了。。。
贴代码吧。————出现吧代码君!、
这是方法一的代码
void main(void)
{ //初始化
TMOD=0x60;
TF1=0;
TH1=0xff;
TL1=0xff;
P2=0x00;
//启动
TR1=1;
while(1)
{
if(TF1==1)
{
P2=(P2+1)%10;
TF1=0;
}
}
}
这是方法二的代码
#include<reg51.h>
sbit btn=P3^;
void delay(unsigned int i)
{
unsigned char j;
for(i;i>;i--)
{
for(j=;j>;j--);
}
} void main(void)
{
unsigned char i,n;
while()
{ n=0x00;
while(i<)
{
if(btn==)
{
n=n+;
i++; delay();
}
P2 = n;
}
P2=0x00;
i=;
}
}
好了,大概就是这些。。
最后。。想祭出我的“表白杀器”
就是控制八位数码管哈哈哈哈。。。。
写了我好长时间的。。
有点长但是不复杂。
#include<reg51.h>
#define L1 P0
//power
sbit con1=P3^;
sbit con2=P3^;
sbit con3=P3^;
sbit con4=P3^;
sbit con5=P3^;
sbit con6=P3^;
sbit con7=P3^;
sbit con8=P3^;
unsigned char code SEG[]={0xc0,0xf9,0xa4,0xb0,
0x99,0x02,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xa7,0xa1,0x86,0x8e};
void delay(unsigned int k)
{
unsigned char j;
for(k;k>;k--)
{
for(j=;j>;j--);
}
} //dalay的函数
void LED_Display(unsigned char *p,unsigned char n)
{
unsigned char i;
for(i=;i<=n;i++)
{
L1=0xff;
switch(i)
{
//控制第1位
case :
con1=;
con2=;
con3=;
con4=;
con5=;
con6=;
con7=;
con8=;
break;
//控制第2位
case :
con1=;
con2=;
con3=;
con4=;
con5=;
con6=;
con7=;
con8=;
break;
//控制第3位
case :
con1=;
con2=;
con3=;
con4=;
con5=;
con6=;
con7=;
con8=;
break;
//控制第4位
case :
con1=;
con2=;
con3=;
con4=;
con5=;
con6=;
con7=;
con8=;
break;
case :
con1=;
con2=;
con3=;
con4=;
con5=;
con6=;
con7=;
con8=;
break;
case :
con1=;
con2=;
con3=;
con4=;
con5=;
con6=;
con7=;
con8=;
break;
case :
con1=;
con2=;
con3=;
con4=;
con5=;
con6=;
con7=;
con8=;
break;
case :
con1=;
con2=;
con3=;
con4=;
con5=;
con6=;
con7=;
con8=;
break;
} //switch
L1=SEG[*p];
p++;
delay();
} //for
L1=0xff;
} //display
int main(void)
{ unsigned char p[]={,,,,,,,};
while()
{ P1=0xc0;
LED_Display(p,);
}
}
最后。。。也不知道说啥。。哦!对了。。。没电路图简直就是耍流氓啊。。。。啊哈哈哈电路图没有。。。因为不喜欢new project,就总是把前面的器件删掉然后直接改掉。。
现在就只有按键跟一位数码管了哈哈哈哈。。。
另外,还有啥处分那事。咋说呐。。就是那样吧,没什么交代的。就这样。
别等下一更哈哈哈。。。我自己都不知道啥时候才会回来写一次博。。。
如果我明天来了。。。说明我真的准备搞学习了哈哈哈哈哈
89C51单片机的学习的更多相关文章
- 10-51单片机ESP8266学习-AT指令(ESP8266连接路由器,建立TCP服务器,分别和C#TCP客户端和AndroidTCP客户端通信+花生壳远程通信)
http://www.cnblogs.com/yangfengwu/p/8871464.html 先把源码和资料链接放到这里 源码链接:https://pan.baidu.com/s/1wT8KAOI ...
- 4-51单片机ESP8266学习-AT指令(测试TCP服务器--使用串口调试助手--不连接路由器)
上一篇连接 http://www.cnblogs.com/yangfengwu/p/8757513.html 源码链接:https://pan.baidu.com/s/1wT8KAOIzvkOXXN ...
- 单片机入门学习笔记6:新唐单片机N76E003
学习新唐单片机是从2018年3月开始的,之前一点也不懂这一块单片机,之后脉络变的越来越清晰. 由于N76E003档次太低,新塘科技官方的管脚配置,芯片选型……都没有这一块芯片,资料唯独只有:芯片的数据 ...
- 单片机STM32学习笔记之寄存器映射详解
我们知道,存储器本身没有地址,给存储器分配地址的过程叫存储器映射,那什么叫寄存器映射?寄存器到底是什么? 在存储器Block2 这块区域,设计的是片上外设,它们以四个字节为一个单元,共32bit,每一 ...
- 89C51单片机实现的流水灯
/*******************************************Copyright: 2014.02.09.version1.0File name: led.cDescrip ...
- 单片机IAP学习
1.IAP是什么--简介 IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可 ...
- 2-51单片机WIFI学习(开发板测试远程通信详细介绍)
前一篇链接(最后有APP安装包下载地址) http://www.cnblogs.com/yangfengwu/p/8720148.html 由于自己别的贴片的板子还没到,所以用自己的8266最小系统板 ...
- 1-51单片机WIFI学习(开发板介绍)
源码链接都在后面 前面的都是介绍单独的WIFI,没有和单片机结合起来,因为做项目很少会只用WIFI模块.大多数都是WIFI模块作为中转数据的桥梁,单片机负责 数据采集,控制等等,所以自己准备出一套51 ...
- 4-51单片机WIFI学习(开发板51单片机自动冷启动下载原理)
上一篇链接 http://www.cnblogs.com/yangfengwu/p/8743936.html 这一篇说一下自己板子的51单片机自动冷启动下载原理,我挥舞着键盘和鼠标,发誓要把世界写个明 ...
随机推荐
- Struts2 Servelet重构
这是利用action模仿请求Servelet(单例) 作用: 1.减少web.xml代码量 2.将servelet中的代码转移到action中,只需要在action中定义业务逻辑则可. 1.定义一个过 ...
- Nginx 的信号控制
摘自:Nginx服务器初识:Nginx启动.停止与信号控制 名称 功能 说明 HUP 重启 QUIT 从容关闭 TERM 快速关闭 INT 从容关闭 USR1 切换日志文件 通常用在切 ...
- jQuery插件开发之boxScroll与marquee
BoxScroll 常见图片轮播效果的简单实现.可以数字列表控制或者左右按键控制.逻辑很简单,下面的Marquee形成环,这个到了尽头得往回跑,看看注释就知道了. 图片轮播GitHub:https:/ ...
- Nginx教程(6) 动静分离架构
一.原理 Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离.严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx 处理静态页面,To ...
- oracle 如何查看已经创建好的触发器语句-select trigger_body from user_triggers where trigger_name='XXXX';
使用trigge_body查询, select trigger_body from user_triggers where trigger_name='XXXX'; 如下图: SQL> sele ...
- oracle:ORA-00911: 无效字符 问题和解决---Eclipse中的SQL语句不能加分号
eclipse中原sql: 异常: 原因:Eclipse中的SQL语句不能加分号 去掉分号,正常执行,插入成功. 这里把id设为了主键,具有唯一性,重复插入同一id执行插入失败,ORA-00001号错 ...
- 如何去组织你的CSS代码
1.Object Oriented CSS (OOCSS) 面向对象的 CSS.OOCSS 的想法首先要明白 CSS 的 “Object” 是个毛线玩意. CSS的样式是需要应用到页面的结构上的.通俗 ...
- java 基础 --- volatile
问题 : volatile 解决的是什么问题 有什么应用场景 概述 某些共享变量的时候我们使用volatile 修饰,它会保证修改的值立即被更新到主存,或是从主存中获取最新的值.它的底层是如何实现的 ...
- 百度搜索URL参数含义
序号 参数 含义 1 tn 搜索框所属网站.比如 tn=sitehao123,就是 http://www.hao123.com/ 左上那个搜索框(指通过什么方式到达百度首页搜索界面;) 2 s?wd ...
- 十七、ThreadPoolExecutor线程池
一.简介 executor接口 executor接口在JDK的java.util.concurrent包下,它只有一个抽象方法: void execute(Runnable command); 这意味 ...