自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (34)
  • 收藏
  • 关注

原创 CSR1010 CSR1011 CSR1012 CSR1013 BLE 蓝牙4.0 CSR MESH组网 RGB调光灯

蓝牙mesh组网,相对zigbee、RF等其他常见方式组网的很大优势:不需要网关,尤其适合面对普通个人用户,家庭用户;比如用户购买3个采用zigbee组网方案的灯泡,智能手机是不支持zigbee的,因此用户还需要购买一个网关设备,该设备起到TCPIP网络转zigbee信号的作用,用户通过android 或者IOS app 走TCPIP网络来连接网关设备,进而控制这3个灯泡。因此该方案,

2016-09-17 18:21:29 3594

原创 CSR1010 蓝牙模块原理图、PCB(天线三)

2016-08-18 23:04:48 7311 1

原创 CSR1010 蓝牙模块原理图、PCB(天线二)

2016-08-18 22:59:58 3111

原创 CSR1010 蓝牙模块原理图、PCB

2016-05-11 23:18:09 8973 8

原创 Arm Cortex-M0新唐m052外部中断

#include "register.h"int main(void){ rREGWRPROT = 0x59; //解锁 rREGWRPROT = 0x16; rREGWRPROT = 0x88; rPWRCON |= (0x1<<0); //使能晶振 while( (rCLKSTATUS & (0x1<<0)) == 0); //等待时钟稳定 rP1_PMD = 0x55

2014-02-28 21:11:15 1893

原创 51单片机启动代码:STARTUP.A51

通过Keil编译器建立工程时,Keil会提示是否添加STARTUP.A51文件到工程,该文件即为51单片机启动代码。51单片机复位后马上执行STARTUP.A51文件中的启动代码,根据启动代码中的设置依次执行以下操作:内部RAM清零外部RAM清零清零分页的外部RAM初始化SMALL内存模型的可重入模拟堆栈及其堆栈指针初始化LARGE内存模型的可重入模拟堆栈及其堆栈指针初始化COMP

2014-01-18 23:40:06 9272 1

原创 Keil C51 之LST文件

Keil C51编译器在编译程序时,会生成一个扩展名为LST的列表文件,也被称为listing file。     这个文件包含了有关编译过程的丰富信息,该文件由多个段组成,其中Symbol Listing 和 Module Information两个段对于用户分析调试程序尤其有用,下面按照各个段在             listing file中出现的先后顺序加以说明:   

2014-01-11 12:30:21 9769

原创 Keil C51对C语言的关键词扩展之十八:using

在8051系列单片机中,内部ram的前32个字节被分为4组,每组8个寄存器。每组的8个寄存器名字都为R0-R7。通过设置PSW寄存器的两个位,可以选择使用4组寄存器中的哪一组。寄存器组在处理中断或者使用实时操作系统时非常有用,可以在进入中断或者切换任务时使用不同寄存器组,而不用把8个寄存器的内容保存到堆栈。在退出中断或返回原任务时,只需切换回原来的寄存器组即可。指定一个函数使用的寄存器组:

2013-12-02 22:16:34 2940

原创 Keil C51对C语言的关键词扩展之十七: sbit

sbit用来定义一个特殊功能寄存器的某一位。sbit name = sfr-name ^ bit-position;sbit name = sfr-address ^ bit-position;sbit name = sbit-address;    name   特殊功能寄存器某一位的名称    sfr-name 已定义的特殊功能寄存器名称

2013-12-02 21:54:35 4058

原创 Keil C51对C语言的关键词扩展之十六:sfr16

sfr16定义一个16位的特殊功能寄存器:sfr16 name = address;    name    16位特殊功能寄存器名称    address    16位特殊功能寄存器地址一些8051系列产品拥有16位的特殊功能寄存器,比如8052使用地址0XCC、0XCD表示定时/计数器2的低字节、高字节。C51编译器提供sfr16数据

2013-12-02 21:23:44 3216

原创 Keil C51对C语言的关键词扩展之十五: reentrant

reentrant声明的函数为可重入函数。可重入的函数能够被多个进程同时调用。可重入函数在执行时,另外的进程可以中断当前执行的函数,并且调用同一个函数。正常情况下,C51程序中的函数不能被递归地调用,这是由于函数的参数和局部变量都被保存在固定的地址,在递归调用时操作了相同存储位置,导致数据被覆盖。使用reentrant声明函数为可递归调用的可重入函数:int calc (char i,

2013-12-02 20:56:06 5473

原创 Keil C51对C语言的关键词扩展之十四: interrupt

8051/8052系列单片机标准向量表:中断号      描述   地址             0外部中断0 0003h1定时/计数器0 000Bh2外部中断1 0013h3定时计数器1 001Bh4串口 0023h5定时计数器2(8052)  

2013-12-01 21:21:47 3855

原创 Keil C51对C语言的关键词扩展之十三: sfr

sfr用来定义特殊功能寄存器。用法如下:sfr name = address;name 为寄存器名字address 为寄存器的地址示例:sfr P0 = 0x80; /* P0口,地址为0x80 */sfr P1 = 0x90; /* P1口,地址为0x90 */sfr P2 = 0xA0;       /* P2口,地址为0xa0 */sfr P3 =

2013-11-29 22:10:26 3738

原创 Keil C51对C语言的关键词扩展之十二: _priority_ 以及 _task_

Keil 51编译器支持 RTX51 Full 和 RTX51 Tiny 实时多任务操作系统,并为其提供了_task_关键词以及_priority_关键词。_task_关键词指示一个函数为实时任务。_priority_关键词指示任务优先级。示例:void func (void) _task_ num _priority_ prinum为任务ID,在RTX51 Full中取

2013-11-29 21:44:05 1969

原创 Keil C51对C语言的关键词扩展之十一: xdata

xdata声明的变量位于外部ram 64KB地址范围内某一位置。程序示例:unsigned int xdata m=0; /* 声明一个全局变量,可位于外部ram 64KB地址范围内任意位置,由编译器决定 */int main(void){......}

2013-11-29 21:33:57 2338

原创 Keil C51对C语言的关键词扩展之十: pdata

外部ram通过一个地址指针寄存器来间接访问,读写效率要低于内部ram。外部ram容量最大可位64KB。Keil C51提供两种外部数据存储方式,pdata和xdata。1)xdata存储类型,指示变量可存储在外部ram 64KB地址范围内任意位置。large内存模型下,变量即为此种默认存储类型。2)pdata存储类型,指示变量可存储在外部ram 256字节页范围内任意位置。comp

2013-11-29 21:26:03 2379

原创 Keil C51对C语言的关键词扩展之九: idata

idata声明的变量存储在内部ram 256字节范围内。data声明的变量存储在内部ram低128字节范围内。

2013-11-29 21:15:07 2027

原创 Keil C51对C语言的关键词扩展之八: far

far的出现,是Keil 编译器为了支持新出现的8051家族增强型MCU,这些增强型MCU可能拥有大于64KB的存储器。使用far可访问扩展的RAM,使用const far可访问扩展的ROM。NXP 51MX架构51单片机提供通过通用指针访问多大8MB的code和xdata存储空间。Dallas 390架构的51单片机通过24位的DPTR寄存器结合传统MOVX 、MOVC指令来访问扩展的RAM

2013-11-29 21:11:14 3095

原创 Keil C51对C语言的关键词扩展之七: data

8051单片机内部256字节RAM,低128字节既可直接寻址,又可间接寻址,高128字节RAM只能间接寻址(直接寻址方式下,高128字节被映射到SFR特殊功能寄存器)。内部RAM中包含16字节可位寻址区域,该区域起始地址为20H。内部RAM存储区被分为三种不同的存储区类型:data,idata,bdata。1)data指低128字节,以直接寻址方式访问存在该区域的变量。2)idata指

2013-11-29 20:54:07 1869

原创 Keil C51内存模型

Keil C51编译器提供三种类型的内存模型:small,compact,large。内存模型决定了函数参数、自动变量以及未显式声明存储类型情况下的默认存储类型。三种内存模型的默认存储区域:内存模型参数 &自动变量全局变量常量指针定义指针所占内存SMALLdatadatadata*3 字节COM

2013-11-29 19:40:55 1759

原创 Keil C51对C语言的关键词扩展之六: compact

函数的参数和局部变量存储在内存模型指定的默认区域内。我们可以通过small,compact 或large 指定一个函数使用何种内存模型。#pragma small /* 默认内存模型为small*/extern int calc (char i, int b) large reentrant;extern int func (int i, float f) lar

2013-11-29 19:23:40 1996

原创 Keil C51对C语言的关键词扩展之五: code

code 指定存储位置位于程序存储器。程序存储器只读,因此code类型的变量,是无法再次赋值的。unsigned char code ary[ ] = :"Read only"; /* 数组ary位于程序存储器 */ary[0]='a'; /* 错误,不可修改*/

2013-11-29 19:12:23 2217

原创 Keil C51对C语言的关键词扩展之四: bit

bit关键词可定义位变量,可用于函数参数、返回值类型。static bit done_flag = 0; /* 位变量*/bit testfunc ( /* 返回值类型为位变量 */ bit flag1, /* 参数类型为位变量 */ bit flag2){...return (0);

2013-11-29 18:54:46 4262

原创 Keil C51对C语言的关键词扩展之三: bdata

使用bdata定义的变量即可字寻址,也可比特位寻址。Keil C51编译器把使用bdata定义的变量放置在8051内部RAM可位寻址区。bdata定义的变量必须为全局变量,不能在任一函数内部定义bdata类型的变量。bdata关键词使用方法:int bdata x1; /* */char bdata bary [4]; /* Bit-addressab

2013-11-28 23:09:51 7029 1

原创 Keil C51对C语言的关键词扩展之二: alien

alien关键词主要是为了C51编译器与PL/M-51编译器兼容。在C51编译器中调用PL/M-51函数,须使用alien声明该函数,如下:extern alien char plm_func (int, char);char c_func (void) { int i; char c; for (i = 0; i < 100; i++) { c = plm

2013-11-28 22:35:32 2633 1

原创 Keil C51对C语言的关键词扩展之一: _at_

_at_关键词用于在定义变量时指定变量所在地址。_at_关键词使用示例如下:struct link { struct link idata *next; char code *test; };struct link list idata _at_ 0x40; /* 定义位于内部RAM低128字节区0x40地址处的 结构体 */char xdata text

2013-11-28 22:17:46 10606

原创 Keil C51对C语言的关键词扩展

为了支持8051系列单片机特性,Keil Cx51编译器为C语言扩展了众多关键词:_at_ far sbitalien idata sfrbdata interrupt sfr16bit large smallcode pdata taskcompact priority usingdata reentrant xdata用户可以使用NO

2013-11-28 22:02:04 1968

原创 2月份画的PCB Arm Cortex M0 新唐M052

2013-11-27 21:43:59 1121

原创 51单片机STC89C52 红外解码

/**********************************For:Car mp3 IrControler**Author:YWZ**Date:2013/10/16********************************/#include "reg52.h"typedef unsigned char U8; typedef unsigned int

2013-11-12 22:20:15 2495

原创 51单片机STC89C52 iic

SCL BIT P2.1 SDA BIT P2.0ORG 0000HLJMP MAINORG 0050HMAIN:MOV SP,#30HMOV P1,#0FFH ;灭LEDMOV R6,#2 ;R6保存AT24C02内部待写地址,用于传递参数MOV R7,#55H ;R7保存待写数据,用于传递参数LCALL iic_Write ;调用写函数,将R7的数据写入

2013-11-11 23:01:38 3145

原创 51单片机STC89C52 矩阵键盘数码管显示

WELA BIT P2.7DULA BIT P2.6DIOLA BIT P2.5FM BIT P2.3ORG 0000HSETB DIOLAMOV SP,#0E0HLOOP0:LCALL key_ScanJZ LOOP0LCALL DELAY20MSLCALL key_ScanJZ LOOP0MOV P1,ALCALL SmgHERE

2013-11-11 23:00:14 4999 2

原创 51单片机STC89C52 AD模数转换

CSDA BIT P3.2WRR BIT P3.6RDD BIT P3.7WELA BIT P2.7DULA BIT P2.6CSAD BIT P0.7DIOLA BIT P2.5ORG 0000HLOOP0:MOV P0,#0FFH ;关数码管显示SETB WELASETB RDDSETB WRRSTARTAD: ;开始转换CLR CS

2013-11-11 22:59:20 13922

原创 51单片机STC89C52 DA数模转换

CSDA BIT P3.2WRR BIT P3.6WELA BIT P2.7DULA BIT P2.6ORG 0000HLOOP0:MOV P0,#0FFH ;关数码管显示SETB WELACLR WELACLR DULASETB CSDASETB WRMOV A,#0LOOP1:MOV P0,ACLR CSDA CLR WRR

2013-11-11 22:59:02 5921 1

原创 51单片机STC89C52 继电器

RELAY BIT P1.0ORG 0000HLOOP0:SETB RELAYLCALL DELAYCLR RELAYLCALL DELAYSJMP LOOP0DELAY: ;延时1SSETB RS1MOV R2,#04HDELAY2:MOV R1,#150DELAY1:MOV R0,#250DELAY0:NOPNOP

2013-11-11 22:58:13 2311

原创 51单片机STC89C52 数码管动态

DULA BIT P2.6WELA BIT P2.7ORG 0000HMOV P0,#0 ;关显示SETB DULACLR DULALOOP0:MOV R0,#0LOOP1:MOV DPTR,#TABLEWMOV P0,#0 ;关显示SETB DULACLR DULAMOV A,R0MOVC A,@A+DPTRMOV P0,A ;送

2013-11-11 22:57:29 2960

原创 51单片机STC89C52 数码管静态

DULA BIT P2.6WELA BIT P2.7ORG 0000HCLR DULACLR WELAMOV P0,#0SETB DULACLR DULAMOV P0,#0SETB WELACLR WELALOOP0:MOV R0,#0MOV DPTR,#TABLEKLOOP1:MOV P0,#0SETB DULACLR DU

2013-11-11 22:56:42 1693

原创 51单片机STC89C52 串口接收(中断)

ORG 0000HLJMP MAINORG 0023HLJMP UARTISR ;串口中断服务函数 MAIN:MOV TMOD,#20H ;定时器1工作方式2MOV TH1,#0FDH ;9600BPSMOV TL1,#0FDHMOV SCON,#50H ;8位数据,波特率可变,允许接收ANL PCON,#7FH ;SMOD=0SETB TR1CLR R

2013-11-11 22:55:52 5251

原创 51单片机STC89C52 串口接收(查询)

ORG 0000HLJMP MAIN MAIN:MOV SCON,#50HANL PCON,#7FH ;SMOD=0MOV TMOD,#20HMOV TH1,#0FDH ;9600BPSMOV TL1,#0FDHSETB TR1HERE1:JNB RI,HERE1MOV A,SBUFCLR RIMOV SBUF,ASJMP HERE1EN

2013-11-11 22:55:05 3223 1

原创 51单片机STC89C52 串口发送字符串

BEEP BIT P2.3LCDEN BIT P3.4LED BIT P1.0ORG 0000HLJMP MAIN MAIN:MOV TMOD,#20HMOV TH1,#0FDHMOV TL1,#0FDHSETB TR1MOV SCON,#40HANL PCON,#7FHMOV DPTR,#TABLEHERE1:MOV R1,#00H

2013-11-11 22:54:19 5397

原创 51单片机STC89C52 串口发送字符

BEEP BIT P2.3LCDEN BIT P3.4LED BIT P1.0ORG 0000HLJMP MAIN MAIN:MOV TMOD,#20HMOV TH1,#0FDHMOV TL1,#0FDHSETB TR1MOV SCON,#40HANL PCON,#7FHHERE:CPL BEEPCPL LEDMOV SBUF,#32

2013-11-11 22:53:35 2537

新唐m052外部中断

新唐m052外部中断程序 单片机

2014-02-28

AVR单片机ATmega16L驱动一个数码管Proteus仿真

AVR单片机ATmega16L驱动一个数码管Proteus仿真

2013-09-24

AVR单片机ATmega16L外部中断Proteus仿真

AVR单片机ATmega16L外部中断Proteus仿真

2013-09-24

AVR单片机ATmega16L定时器Proteus仿真

AVR单片机ATmega16L定时器Proteus仿真

2013-09-24

AVR单片机ATmega16L继电器Proteus仿真

AVR单片机ATmega16L继电器Proteus仿真

2013-09-24

AVR单片机ATmega16L蜂鸣器Proteus仿真

AVR单片机ATmega16L蜂鸣器Proteus仿真

2013-09-24

AVR单片机ATmega16L流水灯proteus仿真

AVR单片机ATmega16L流水灯proteus仿真

2013-09-24

51单片机AT89C52一键多功能(长按、短按)

51单片机AT89C52一键多功能(长按、短按)proteus仿真

2013-09-19

51单片机AT89C52时钟芯片ds1302的proteus仿真

LCD1602液晶显示年、月、日、时、分、秒、星期

2013-09-19

51单片机AT89C52模数转换proteus仿真

51单片机AT89C52模数转换proteus仿真

2013-09-19

51单片机AT89C52数模转换DAproteus仿真

数模转换芯片DA0832直通方式驱动一个发光二极管,由暗到亮循环

2013-09-19

51单片机AT89C52数字温度传感器DS18B20 proteus仿真

51单片机AT89C52数字温度传感器DS18B20 proteus仿真 读取DS18B20温度,显示在LCD1602液晶屏上,测温范围-55--+128,一位小数

2013-09-19

51单片机AT89C52串行通信

51单片机AT89C52串行通信.上位机通过串口向单片机发数据,单片机接收后发回给上位机。

2013-09-19

51单片机AT89C52基于状态机思想的矩阵键盘扫描proteus仿真

51单片机AT89C52基于状态机思想的矩阵键盘扫描proteus仿真

2013-09-19

51单片机AT89C52控制八个数码管计秒/次

51单片机AT89C52控制八个数码管计秒/次

2013-09-19

基于状态机的51单片机AT89C52独立按键的检测proteus仿真

51单片机AT89C52基于状态机思想的独立按键的检测,每按下一次,8个数码管显示加一。proteus仿真实验。

2013-09-19

51单片机AT89C52数码管电子钟proteus仿真实验

51单片机AT89C52数码管电子钟proteus仿真实验。用延时函数实现的电子钟,没有使用定时器,用延时的方法实现计秒。

2013-09-19

51单片机AT89C52控制一个数码管显示实验Proteus仿真

51单片机AT89C52控制一个数码管显示实验Proteus仿真

2013-09-19

51单片机AT89C52的中断实验proteus仿真

51单片机AT89C52的中断实验proteus仿真

2013-09-19

51单片机AT89C52的定时器使用。proteus仿真

51单片机AT89C52的定时器使用。proteus仿真

2013-09-19

51单片机AT89C52控制蜂鸣器proteus仿真

51单片机AT89C52控制蜂鸣器proteus仿真

2013-09-19

51单片机流水灯proteus仿真

51单片机AT89C52流水灯proteus仿真

2013-09-19

PIC单片机驱动DS18B20温度传感器proteus仿真

PIC单片机PIC16F877A驱动DS18B20温度传感器proteus仿真,全范围测温,一位小数。

2013-05-15

通信原理实验指导 通信原理实验指导

通信原理实验指导 通信原理实验指导 通信原理实验指导

2010-05-07

对拉氏变换、傅里叶变换等不同变换的联系的总结

不同的变换实际上就是不同的变换域 拉氏变换: ,其中 ,所以当s变化即 , 变化时,可以得到不同的X(s),并且从s的表示式我们可以知道它应该是直角坐标系。 傅立叶变换:如果仅关注s直角坐标系的虚轴,即s= ,则拉氏变换

2010-01-11

微波技术与天线习题答案

1-1 解: f=9375MHz, 此传输线为长线 1-2解: f=150kHz, 此传输线为短线 1-3答: 当频率很高,传输线的长度与所传电磁波的波长相当时,低频时忽略的各种现象与效应,通过沿导体线分布在每一点的损耗电阻,电感,电容和漏电导表现出来,影响传输线上每一点的电磁波传播,故称其为分布参数。用 表示,分别称其为传输线单位长度的分布电阻,分布电感,分布电容和分布电导。 1-4 解: 特性阻抗 f=50Hz X1=ωL1=2π×50×16.65×10-9Ω/cm=5.23×10-6Ω/cm B1=ωC1=2π×50×0.666×10×10-12=2.09×10-9S/cm

2010-01-11

希尔伯特变换的性质、窄带信号模拟

实验报告文档 希尔伯特变换的性质、窄带信号模拟 及其MATLAB程序

2010-01-05

俄罗斯方块具体设计jaba设计方案及源码

俄罗斯方块具体设计jaba设计方案及源码 俄罗斯方块具体设计jaba设计方案及源码 俄罗斯方块具体设计jaba设计方案及源码

2009-06-09

高频电子线路-石油大学01

高频电子线路-中国石油大学信息工程学院 高频电子线路-中国石油大学信息工程学院 高频电子线路-中国石油大学信息工程学院

2009-04-23

英语电子专业词典-词汇量大,文字清晰,理工科学生必备

词汇分门别类,按首字母索引,词汇量大,新手必备,全书一共92页,每页平均在85个单词或词组。涉及普通大学物理术语,电子信息类,网络类,通信类词汇,7000以上的词汇,让人不得不感激此书作者的劳动。

2009-04-18

通信工程专业介绍及其课程设置

通信工程专业介绍及其课程设置,非常详细的哦

2008-11-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除