博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开天辟地第一章
阅读量:5947 次
发布时间:2019-06-19

本文共 1669 字,大约阅读时间需要 5 分钟。

hot3.png

硬件DIY一直是技术宅的另外一个标杆,如果说真正能够将软件和硬件玩到一块的话,那么就说明他已经宅到一定的境界了!!本人目前写JAVA,Python,主要是在WEB应用开发方面,不过最近有点乏了,先把这些放一边,玩玩以前的老本行,硬件驱动编写,用C语言直接操作电路板的芯片,貌似在OSC上还从来没有过吧!!闲言碎语不要讲,讲讲今天要玩的东西,理论上来说,玩硬件DIY首先要设计意见的电路原理图,然后自己用三氯化贴和覆铜板来制作印刷电路板,苦于自己已经离开电子设计行业有两年多了,好多材料不好买了,只能从网上搞个现成的PCB版玩玩。不过一般的模拟电子电路么什么玩的,为什么,因为么法写程序,就装配电气元件不符合我的兴趣方向,今天我们来个高智商的东西。单片机开发版。这种很便宜 淘宝网上一百多一个,随便都能买到。为了不去话电路板,我就花钱偷了个懒了!!今天玩什么?今天主要玩玩LED小灯泡,这个最好玩,也最容易玩,而且还能够玩出很多花样出来。先说说我们的这个原理:第一,电源的供电方式,我们使用5V的USB供电,这个最容易找到,也最安全,当前有些不怕死的回自己做电源,不过这个不建议去做,因为“不做就不会死”。曾经被220V的电电过,有些阴影。第二,电气原理图设计,其实点亮小LED灯不算什么难事,高中的物理只要没有睡觉的,基本都能搞得出来。现在把这个电路过程中的几个难点说说:第一,LED正常工作的情况下,两端压降是1.5V,正常工作的电流都是15-25mA不等,当然,根据欧姆定义来计算的话,假如我在这个位置加上5V的电压,LED铁铁的要被烧坏,所以,我们需要电阻的支持,需要多大的电阻?R=U/I,R=(5-1.5)/0.025,大概最小也得这么个数吧,不过这个都是个概数。只要不超过最大的LED工作电流,基本都能算OK。第二,点亮LED的原理,我们假设LED正常工作,我的芯片要给LED的一端输出低电平,也就是说,LED的正极接5V电压,LED负极由我的芯片输出低电平,这样LED正向偏执,导通条件成立,所以就能亮了。现在假设我有8个LED灯,假设硬件都是OK的,只要程序OK,那么我们的LED灯就能够正常启动。先将条件说明如下:P1.0-P1.7分别是从低到高的编号 对应D0-D7八个LED灯。P1.0输入低电平(0)为D0灯亮,那么对应等的亮灭就能够得出来了。

管脚排列说明:(左→右 P1.7-P1.6-P.15-....-P1.0)

D0对应的输入编码是:0xfe(1111 1110)D0 亮D1对应的输入编码是:0xfd(1111 1101)D1 亮D2对应的输入编码是:0xfb(1111 1011)D2 亮D3对应的输入编码是:0xf7(1111 0111)D3 亮D4对应的输入编码是:0xef(1110 1111)D4 亮D5对应的输入编码是:0xdf(1101 1111)D5 亮D6对应的输入编码是:0xbf(1011 1111)D6 亮D7对应的输入编码是:0x7f(0111 1111)D7 亮

反正以上的规律就是,只要某一个上等于0.则对应的LED灯就亮了.所以点灯的程序就是这样的:

#include
void main(void){P1 = 0xFE;//D0灯亮while(1){}

}

上面这是最简单的一个灯亮。想要其他灯亮 对应的更改输出编码就对了。下面附赠一个演示程序。可以让灯闪起来。

void delay(unsigned int ms){while(ms--);

}

这是个简单的延时程序,不过你要精确的话,需要根据晶振的频率和指令周期等参数综合使用,先不管咋样,闪起来再说。LED灯点亮的原理就是这样,有兴趣可以自己使用Protel99画个PCB版子玩玩,编程IDE用Keil uVision2。

OSC的编辑器又开始扯淡了,版式死都调不好!!!

转载于:https://my.oschina.net/u/257950/blog/266691

你可能感兴趣的文章
Ubuntu 14.04 Web服务器,Apache的安装和配置
查看>>
MaxCompute 图计算用户手册(上)
查看>>
自带科技基因,打造纯原创IP,“燃烧小宇宙”获数千万A轮融资
查看>>
未能加载文件或程序集"Newtonsoft.Json, Version=4.5.0.0
查看>>
C#多线程编程系列(二)- 线程基础
查看>>
Jenkins 内置变量(学习笔记二十四)
查看>>
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 13 章 并发控制_13.2. 事务隔离
查看>>
虚拟机概念
查看>>
【云周刊】第195期:全球首家!阿里云获GNTC2018 网络创新大奖 成唯一获奖云服务商...
查看>>
【VS】使用vs2017自带的诊断工具(Diagnostic Tools)诊断程序的内存问题
查看>>
AutoScaling 支持从实例启动模板创建实例
查看>>
Mysql 查看视图、存储过程、函数、触发器
查看>>
Java提高篇(二):IO字节流、字符流和处理流
查看>>
云HBase集群的规划
查看>>
hello dato--graphlab create
查看>>
一个优质男朋友的标准
查看>>
浩鲸科技和京东加入 OpenMessaging 开源标准社区
查看>>
spring 注入方式
查看>>
FileZilla Client 3.42.0 beta1 发布,流行的 FTP 解决方案
查看>>
深度学习之迁移学习介绍与使用
查看>>