单片机学习
小強EE
单片机 --> X86 EE
展开
-
STC12C5A60S2单片机IO口工作…
原文地址:STC12C5A60S2单片机IO口工作模式设定作者:saraSTC12C5A60S2单片机IO口工作模式设定 STC12C5A60S2 系列单片机其所有I/O口均可由软件配置成4种工作类型之一。4种类型分别为:准双向口(标准8051输出模式)、推挽输出、仅为输入(高阻)或开漏输出功能。 每个口由2个控制寄存器中的相应位控制每个引脚工作类型。 STC12C5A6转载 2017-07-04 19:53:23 · 2428 阅读 · 0 评论 -
学习笔记:12864液晶模块的…
原文地址:学习笔记:12864液晶模块的详细使用作者:痴痴不倦追梦人备注:这篇文章是对12864操作的具体介绍,仅限刚接触12864的新手,大神请拍砖,文章写的较散,建议先参考12864手册及控制驱动器ST7920英文手册有个初步理解之后再阅读该篇文章,将会有更深的认识。强烈建议阅读ST7920英文手册,细节内容里面有详细介绍,中文的12864也是从中译过来的。本文分三个步骤介绍12864的内转载 2017-07-04 19:59:43 · 3720 阅读 · 2 评论 -
HR202程序,基本按照数据手册写的
最近用到了HR202网上的资料实在是太少了,按照数据手册上写的程序更少,没办法,自己一点一点的敲吧!! 首先你得确定普通的51单片机不能按照数据手册上的方法,没有方向寄存器的双向IO口充电时间很难确定。本实验使用的是LCD1602,HR202,STC12LE60S2J15,J16,J17分别和P1.3,P1.4,P1.5相连实验代码如下,1602的驱动找度娘吧,贴上来有点乱原创 2017-07-04 19:56:23 · 3095 阅读 · 1 评论 -
51系列中data,idata,xdata,pdata的…
dATa: 固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。idATa:固定指前面0x00-0xff的256个RAM,其中前128和dATa的128完全相同,只是因为访问的方式不同。idATa是用类似C中的指针方式访问的。汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idATa做指针式的访问效果很好)xdATa: 外部扩展RA原创 2017-07-04 19:56:20 · 293 阅读 · 0 评论 -
char,int,long混合计算问题
unsigned int val_d0 = 1260;unsigned int val_d = 75;unsigned long val_di;val_di = val_d0*100 + val_d*100;126000 + 7500 = 133500 = 0x2097c变量先提升为位数最多的那个变量类型,在计算上面计算量都是int型 计算过程也是int的原创 2017-07-04 19:56:02 · 397 阅读 · 0 评论 -
W5100测试注意事项
SPI模式下紧需要4根导线,SCLK /SCS MOSIMISO,先上电一段时间,让电脑识别W5100,后复位CPU,进而CPU控制W5100原创 2017-07-04 19:55:59 · 502 阅读 · 0 评论 -
小型单片机系统延时关机程序及电路
设计思路很简单.就是先按轻触开关给系统供电,系统上电正常工作后通过一个引脚控制一个电子开关,代替轻触开关为系统供电,在单片机程序设计时定义一个变量,每次使用系统时清零该变量.没有使用系统时利用单片机的定时器自动累加此变量。到达一定值后该引脚输出翻转,控制电子开关关闭,系统自动断电。 相关电路如附图所示。系统采用 9V 电池供电。所以要先用 7805 稳压。 Q1 为电子开关, Q2 及其周原创 2017-07-04 19:55:50 · 1792 阅读 · 0 评论 -
C51中关键字volatile的用法
volatile的本意是“易变的”由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化。比如:static int i=0;int main(void){...while (1){if (i) dosomething();}}void ISR_2(void){i=1;}程序的本意是希望ISR_2中断产生时,在main当中调用dos原创 2017-07-04 19:55:48 · 2468 阅读 · 0 评论 -
AtmegaX-16PU AtmegaX-16PI 区别
1. 型号紧跟的字母,表示电压工作范围。带“L”:2.7-5.5V;若缺省,不带“L”:4.5-5.5V。 例:ATmegaX-16PU,不带“L”表示工作电压为4.5-5.5V。2. 后缀的数字部分,表示支持的最高系统时钟。 例:ATmegaX-16PU,“16”表示可支持最高为16MHZ的系统时钟。3. 后缀第一(第二)个字母,表示封装。“P”:DIP封装,“A”:TQFP封装,“原创 2017-07-04 19:54:55 · 278 阅读 · 0 评论 -
开发环境CodeVisionAVR应用指南
CodeVisionAVR软件的使用(1)创建新项目使用File|New 菜单命令 或点击工具栏中的Createnew file 按钮可创建新项目。一个对话框出现,在这个对话框中,必须选择File Type|Project 并点击 OK按钮。一个对话框打开,提示确认是否使用CodeWizardAVR 来创建新项目。原创 2017-07-04 19:54:52 · 5154 阅读 · 0 评论 -
Arduino简介
Arduino,是一个开放源代码的单芯片微电脑,它使用了Atmel AVR单片机,采用了基于开放源代码的软硬件平台,构建于开放源代码 simple I/O接口板,并且具有使用类似Java,C 语言的Processing/Wiring开发环境。Arduino Fio—Arduino的无线版本arduino开发环境关于ArduinoArduino可以使用 Ar原创 2017-07-04 19:54:49 · 1204 阅读 · 0 评论 -
单片机I/O口推挽输出与开漏输出的…
推挽输出:可以输出高,低电平,连接数字器件;开漏输出:输出端相当于三极管的集电极.要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极原创 2017-07-04 19:54:10 · 574 阅读 · 0 评论 -
AVR简单通用的串口配置方法
#defineF_CPU 4000000 //晶振频率#define BAUD 9600 //波特率void uart_init(void){ UBRRH=(F_CPU/BAUD/16-1)/256; //设置波特率 UBRRL=(F_CPU/BAUD/16-1)%6;原创 2017-07-04 19:54:04 · 1417 阅读 · 0 评论 -
ATMEGA16定时器0
原文地址:ATMEGA16定时器0作者:dizhuwaMEGA16定时器0 T/C0 是一个八位定时器,主要有定时、外部事件计数、产生PWM波形这几个功能,我们在使用这些功能之前,首先要设置T/C0 工作在合适的工作模式下。T/C0 有四种工作模式,分别是普通模式、CTC模式、快速PWM、相位可调的PWM 模式四种。模式设置通过T/C0 的控制寄存器TCCR0 来完成。1.普通模式在此转载 2017-07-04 19:53:58 · 2138 阅读 · 0 评论 -
ATmega16 定时器总结【转】
每次重新需要用AVR调试个东西的时候觉得好多东西原来搞得似是而非的又忘记了,软件还好,以前每个独立的模块都保存了一份程序,但硬件就没笔记了,很不爽的感觉,我不需要准确地记得上面的ADC精度有多少,我要达到的目的是看到下面的引脚图时就知道每个口干什么用的有什么特点。还有三个定时器各自有什么特点。定时器总结【转】" TITLE="ATmega16 定时器总结【转】" />首先ADC,TDI原创 2017-07-04 19:53:52 · 1494 阅读 · 0 评论 -
关于AVR锁死的解决办法
昨天临下班了,想把avr改成使用外部晶振。眼拙,结果熔丝位选的外部RC振荡器。程序烧不进去了。在网上各种找。网上有说引出另一个51板子晶振,结果不行,原理上也行不通。下面是我的方法了:从XTAL1晶振插脚插上一个2k的直插电阻,直插电阻的另一端用杜邦线接5V。然后程序尽然烧进去了,赶紧把熔丝位改回去。1/(3RC)=RC振荡频率。2k的电阻大约5.5M。有问题留言原创 2017-07-04 19:53:29 · 941 阅读 · 0 评论 -
AVR笔记8:mega16再次锁死
原文地址:AVR笔记8:mega16再次锁死作者:乐行者 今天尝试使用11.0592MHz外部晶振来设置USART的波特率,没想到理解错误,把熔丝位设置为外部RC振荡CKSEL=1000,下载完成后就知道出问题了,有了上次芯片锁死的经历,这次就也不慌了,知道问题出在哪儿,借来函数信号发射器,给13引脚的XTAL1加入1MHz的脉冲,成功的解锁了。然后再次上网查这方面的资料,发现因这样出错的还转载 2017-07-04 19:53:26 · 730 阅读 · 0 评论 -
ulink2 firmware upgrade is required
KEIL5中的ULINK驱动太新,将附件中的文件下载后替换原文件即可原创 2017-07-06 14:44:40 · 1840 阅读 · 0 评论