推荐阅读最新更新时间:2024-11-02 13:49
单片机课程设计-ATMEL51系列单片机编程器
用单片设计过很多东西,可以说把AT单片机(包括AVR单片机)的所有外设资源都使用过了,所以在寻思着要设计一个什么样的东东?? 有次去面试,我对面试官说我设计过一块开发板,然后那面试官直接问了个核心问题:这个编程器的固件是你自己写的吗?一下子就问到了痛处。是的,编程器固件不是自己写的,那为什么不自己设计一个呢? 我说的自己设计是包括硬件电路、单片机程序以及电脑端界面等等所有东西全部自己DIY。当一个真正的DIYer。所以我动手了,用了几天几夜时间弄了一个可以支持两种芯片(AT89S51 AT89S52) 的基于ISP下载的编程器 首先要说的是,要设计个编程器, 这方面的资料在网上基本是找不到的,估计是大家不想开源(open sou
[单片机]
C8051F单片机使用注意事项
每个I/O 拉电流50mA 灌电流100mA 总电流800mA 一、电源和地线方面的处理 1、模拟电源和数字电源要分别供电,可以使用两个稳压源分别供电,但是两个电源之间的电压差必须满足数据手册中的规定( 0.5V,小于0.3V是比较理想的)。实际应用中模拟电源和数字电源可以来自同一个稳压器的输出,只在AV+与VDD之间接简单的滤波器也是很有效的。这里要加一个小电感,也可以用低阻值的电阻(通常2欧姆,电阻要有足够的寄生电感。) 这种方式既能降低成本又能减少体积。(关于这一点可以参考C8051F各种目标板的原理图的电源部分)。 2、在地线方面,模拟地和数字地要分开布线,然后在一点通过磁珠连接,在实际应用中也可以使用0欧姆绕线电阻连接的
[单片机]
基于51单片机的数控直流稳压电源的设计与实现
1 引言 直流稳压电源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。传统的多 功能直流稳压电源功能简单、难控制、可靠性低、干扰大、精度低且体积大、复杂度高。普 通直流稳压电源品种很多.但均存在以下问题:输出电压是通过粗调(波段开关)及细调(电 位器)来调节。这样,当输出电压需要精确输出,或需要在一个小范围内改变时(如 1.02~1.03V),困难就较大。另外,随着使用时间的增加,波段开关及电位器难免接触不良, 对输出会有影响。常常通过硬件对过载进行限流或截流型保护,电路构成复杂,稳压精度也 不高。本文设计了一种以单片机为核心的智能化高精度简易直流电源,克服了传统直流电压 源的缺点,具有很高的应用价值。 2 系统硬件设
[单片机]
基于MSP430单片机的单相正弦波逆变电源设计
本系统实现输入直流电压15V,输出交流电压有效值10V,额定功率10W,交流电压频率在20至100Hz可步进调整。以MSP430单片机为控制核心,产生SPWM波控制全桥电路,然后经过LC滤波电路得到失真度小于0.5%的正弦波。采用PID算法反馈控制使输出交流电压负载调整率低于1%,采用 开关电源 作为辅助电源、合理选用MOSFET等使系统效率达到90%,采用输入电流前馈法来估计输出电流以实现过流保护以及自恢复功能。 引言 要求实现单项正弦波 逆变电源 ,输入直流15V,输出交流电压有效值10V,功率10W,且频率20至100Hz步进可调,要求波形无明显失真,负载调整率小于1%,效率尽可能高,系统要具备过流保护以及
[电源管理]
单片机学习之十九:串行通讯程序-单片机接收
一、实验现象: 当电脑向单片机发送一个数据后,P0口发生灯光变换。 二、实验任务分析: 这个试验我们仍然采用方式1来完成。在上一个试验的通讯理论介绍中,我们知道,当单片机接受到一帧信号后,会置位串行口接受中断标志RI,从而向单片机申请中断。如果单片机开放中断,就会进入中断服务程序,我们就把灯光变化的任务放到中断程序中来完成即可。 当然,这个试验功能的实现不只是这么一种方法。我们还可以采用在主程序中查询RI的方式来实现。这个试验我们就分别用这两种方式来现它。同样,在这个试验中,我们也利用串口调试助手来完成向单片机发送数据的过程。具体设置方法可见下图: 三、实验程序 1、 中断方式实现 org 00
[单片机]
单片机C环境下位操作的实现方法
C语言既有高级语言的各种特点,又可对硬件进行操作,并对进行结构化程序设计,用C语言编写的程序较容易移植,它们可生成简洁可靠的目标代码,在代码效率和代码执行速度上完全可以和汇编媲美。采用C语言进行单片机编程是嵌入式程序设计的发展趋势。但是,在嵌入式控制等领域,经常需要控制某一个二进制位,然而除了Keil C51等C环境外,很多单片机C环境都没有扩充对位变量定义的关键字,甚至单片机本身的硬件上也没有对单个位操作的汇编指令,这使得已习惯MCS-51内核单片机Keil C51编程的用户都为其C环境不能对位变量进行位操作而烦恼。 1 用“读-修改-写”方法实现对单个位的位操作 ANSIC中,一般采用“读-修改-写”的方法实现单个
[单片机]
stm32f030c8t6 MCU进入低功耗模式
1. sleep 模式 2. stop 模式,在这个模式下,IO管脚保持run状态下的电平,RAM保持不变,所以在进入这个状态之前,先先将IO口配置好,,否则可能会有漏电流 3,standby模式下,RAM不保持,IO管脚进入高阻态,,,激活就于系统reset RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE); //时钟必须要开启,在这个陷阱中折腾了好几天 PWR_BackupAccessCmd(ENABLE); PWR_WakeUpPinCmd(PWR_WakeUpPin_1,ENABLE); PWR_ClearFlag(PWR_FLAG_WU);
[单片机]
51单片机如何扩展外部端口
我们知道 51单片机本身是没有pwm接口的,这个程序是通过软件模拟pwm.在一定的频率的方波中,调整高电平和低电平的占空比,即可实现LED灯亮度控制。 要用51产生PWM去控制LED,首先要确定PWM的周期T和占空比D,确定了这些以后,可以用定时器产生一个时间基准t,比如定时器溢出n次的时间是PWM的高电平的时间,则D*T=n*t,类似的可以求出PWM低电平时间需要多少个时间基准n'。 那么就可以编写程序,根据定的时间基准t给定时器赋值初始化,然后开启定时器,定义一个标志位flag,根据flag的状态决定输出高平还是低电平,假设定义flag=1的时候输出高电平,用一个变量去记录定时器中断的次数,每次中断就让记
[单片机]