sfr

stc12c5a60s AD转换获取土壤的湿度

不问归期 提交于 2020-01-18 02:26:18
AD转换获取土壤的湿度 #include "reg52.h" #include "intrins.h" #define MYID 0x05 #define UPID 0x01 sfr AUXR = 0x8e ; sfr ADC_CONTR = 0xBC ; sfr ADC_RES = 0xBD ; sfr ADC_LOW2 = 0xBE ; sfr P1ASF = 0x9D ; #define ADC_POWER 0x80 #define ADC_FLAG 0x10 #define ADC_START 0x08 #define ADC_SPEEDLL 0x00 #define ADC_SPEEDL 0x20 #define ADC_SPEEDH 0x40 #define ADC_SPEEDHH 0x60 unsigned char bufsend [ 10 ] = { 0 } ; void Delay1ms ( unsigned int x ) //@11.0592MHz { unsigned char i , j ; while ( x -- ) { _nop_ ( ) ; _nop_ ( ) ; _nop_ ( ) ; i = 11 ; j = 190 ; do { while ( -- j ) ; } while ( -- i ) ; } } void UartInit (

[15单片机] STC15F104W开发入门及模拟串口程序

孤人 提交于 2020-01-15 00:27:07
STC15F104W开发入门及模拟串口程序 Saturday, 31. March 2018 09:42AM - beautifulzzzz 前言 最近找到一款51内核的SOP8封装的8脚单片机STC15F10x与大家分享! 1、基本介绍 下面是其一个 典型应用 ——红外收发器实现: 是不是觉得 麻雀虽小,五脏俱全 呀,再看一下其架构图: 下面是其部分型号的 外设列表和采购价格图 (需要特别注意的是下面几款都是不带串口、CCP、PCA、PWM、AD的!因此,如果你想要用串口,就需要采用模拟的方法实现了。不过,好在宏晶官网提供了DEMO。): 2、DEMO&烧写 STC15和之前烧写STC51单片机一样,需要用STC-ISP,通过USB转TTL(RX接芯片的P31,TX接芯片的P30),选择好芯片等信息,点击下载,之后上电... 从官网下载最新的STC-ISP工具: stc-isp-15xx-v6.86L ,务必要下载完全版!!! 在该工具的后面的范例程序中可以找到各种DEMO的C语言和汇编双版本. 3、编程 在 STC-TOOL.pdf 的第13章 编译器(汇编器)/ISP编程器(烧录)/仿真器说明中,介绍了用keil可以开发。由于STC15单片机型号较新,keil中目标单片机还没有,可以用Intel 80/87C58作为目标单片机。 此外

51单片机bit、sbin、sfr、sfr_16有什么区别?

南笙酒味 提交于 2019-12-20 23:12:42
51单片机bit、sbin、sfr、sfr_16区别分析 1.bit和sbit都是C51扩展的变量类型。 bit和int char之类的差不多,只不过char=8位, bit=1位而已。都是变量,编译器在编译过程中分配地址。除非你指定,否则这个地址是随机的。这个地址是整个可寻址空间,RAM+FLASH+扩展空间。bit只有0和1两种值,意义有点像Windows下VC中的BOOL。 sbit是对应可位寻址空间的一个位,可位寻址区:20H~2FH。一旦用了sbi xxx = REGE^6这样的定义,这个sbit量就确定地址了。sbit大部分是用在寄存器中的,方便对寄存器的某位进行操作的。 2.bit位标量 bit位标量是C51编译器的一种扩充数据类型,利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1,类似一些高级语言中的Boolean类型中的True和False。 3.sfr特殊功能寄存器 sfr也是一种扩充数据类型,点用一个内存单元,值域为0~255。利用它可以访问51单片机内部的所有特殊功能寄存器。如用sfr P1 = 0x90这一句定P1为P1端口在片内的寄存器,在后面的语句中我们用以用P1 = 255(对P1端口的所有引脚置高电平)之类的语句来操作特殊功能寄存器。 sfr P1 = 0x90; //定义P1 I/O 口,其地址90H