80c51开发学习
赤战约风
这个作者很懒,什么都没留下…
展开
-
(七)c52学习之旅-中断
中断,顾名思义,在系统执行任务时遇到特定事件会打断当前任务并保留当前任务而去执行其他任务。 中断在单片机开发中是不可或缺的一项,做好准备,搞定它。 (一)、中断结构 下面是对这几个中断源的介绍: 1、INT0(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1) 置1,向CPU申请中断。2原创 2016-08-28 12:34:43 · 1964 阅读 · 0 评论 -
(五)c52学习之旅-静态数码管
数码管的可显示内容:数字、小数点和部分英文字符、符号。 特点: 1、自发光、亮度高,特别适合环境亮度低的场合使用。 2、牢固,不怕冲击。 数码管是一种半导体发光器件,其基本单元是发光二极管。 数码管分共阴和共阳,在开发过程要区分好。 从图里很快可以发现,共阴和共阳,无非就是一个一端接地,另一个一端接电源。这里我采用的是共阴数码管,所以是高电平点亮,低电平熄灭。共阳数码管,则反之。原创 2016-08-26 12:52:09 · 852 阅读 · 0 评论 -
(四)c52学习之旅-流水LED灯
先做个简单的流水灯,这个简单的流水灯学会了,后面做花样流水灯就简单很多了。这里并没有复杂的对每个小灯进行位控制,而是直接对寄存器赋值,这样可以快速对小灯实现复杂的流水。 这里原理图就不再贴了,详见第三篇。#include<reg51.h>void Delay(){ int i,j; for(i=0;i<1000;i++) for(j=0;j<100;j++);}原创 2016-08-26 12:08:56 · 453 阅读 · 1 评论 -
(一)80c52学习之旅-起始篇
大学毕业了,现在即将上研究生了。7月份导师给了一份活,是有关蓝牙开发的,刚开始接到时候,很犯怵,因为我的c51基础并不好,里面还包含了我都没学过的i2c总线,可想而知,我花了一个月时间,边学边玩(额),总算搞成了。在这之间,我还特意跑回了一趟学校,请我原来的老师,帮我补了一上午的c51的课。别看时间短,因为我还是有点基础的,虽然老师只简单地串了串,但是老师讲的那些东西,就像一个火苗,瞬间照亮了我c原创 2016-08-19 16:58:44 · 627 阅读 · 0 评论 -
(二)c52学习之旅-简单了解单片机
在学习编代码之前,先了解一下c52。 下面的介绍摘抄某个文档。 1.8 位 的 CPU , 片 内 有 振 荡 器 和 时 钟 电 路 , 工 作 频 率 为 1 ~12MHz 2.片内有 128/256字节 RAM 3.片内有 0K/4K/8K字节 程序存储器ROM 4.可寻址片外 64K字节 数据存储器RAM 5.可寻址片外 64K字节 程序存储器ROM 6.片内 21/26个 特原创 2016-08-26 10:14:54 · 1529 阅读 · 0 评论 -
(十一)c52学习之旅-动态数码管
一、动态数码管显示原理 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于原创 2016-09-17 13:08:59 · 1281 阅读 · 0 评论 -
(十)c52学习之旅-定时器实验
本次实验实现精确的1秒延迟,在后面会用到毫秒延时来实现动态数码管。#include <reg52.h>static int i=0;sbit LED=P1^0;void init_t0(){ TMOD=0X01 ;//0000 0001 定时器T0方式1 /*设定初始数值,16位*/ // FFFF H - 3CB0 H =C34F H= 49999 约等于50000原创 2016-09-17 12:05:10 · 327 阅读 · 0 评论 -
(九)c52学习之旅-定时器
定时器可以解决软件延时的不精确性和系统效率的降低。一、定时/计数器的工作原理 加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模原创 2016-09-15 20:32:12 · 944 阅读 · 0 评论 -
(八)c52学习之旅-中断实验
做个简单的中断实验,结合上次的静态数码管。 当检测到P3.2为低电平时,数码管数字+1,加到9再从0开始。#include <reg52.h>#define uint8 unsigned char //段选锁存控制位p2.6 位选锁存控制位p2.7sbit DU=P2^6;sbit WE=P2^7;//数码管0-9的16进制uint8 num[]={0x3f,0x06,0x5b,0x原创 2016-08-30 11:33:58 · 466 阅读 · 1 评论 -
(三)c52学习之旅-点亮LED灯
想要点亮一个LED灯,从开发板的原理图中找到对应LED小灯的IO口,对IO口进行简单的配置即可。 可发现共有8个小灯,分别对应P1.0-P1.7,给予对应的IO口低电平即可点亮LED灯。LED灯左端接着VCC电源,所以IO口给予低电平,即可导通电路,点亮发光二极管。#include<reg51.h>sbit LED0=P1^0;sbit LED1=P1^1;sbit LED2=P1^2;s原创 2016-08-26 11:37:24 · 833 阅读 · 0 评论 -
(六)c52学习之旅-独立按键
独立按键,按下时为0,松开时为1。 下面结合数码管,编写一段程序。按键按下时,数码管加1显示,显示到9时,从0再开始计数。#include <reg52.h>#define uint8 unsigned char //段选锁存控制位p2.6 位选锁存控制位p2.7sbit DU=P2^6;sbit WE=P2^7;//数码管0-9的16进制uint8 num[]={0x3f,0x原创 2016-08-26 19:11:38 · 1054 阅读 · 0 评论