STC单片机
zn2016
不积跬步,无以至千里。
展开
-
STC单片机用户应用程序区和ISP监控程序区的区别
用户应用程序区(AP区): 是指用户自己编写的程序区ISP监控程序区: ISP区是指芯片出厂时就已经固化在单片机内部的一段程序,STC单片机可以进行ISP串行下载程序,这就是因为芯片在出厂时已经在单片机内部固化了ISP引导码,程序首次上电时先会从ISP区开始执行代码,体现在实际实验中时,就是我们在下载程序时,先要点击下载软件界面上的下载,然后再开启单片机电源转载 2016-10-30 15:31:15 · 3000 阅读 · 0 评论 -
STC单片机常用型号
一:STC15W204S系列有8脚、16脚,具体应用参考STC15系列单片机手册。二:STC15W401AS系列有SOP16、SOP20、SOP28,具体应用参考芯片手册。原创 2017-07-29 15:46:51 · 15761 阅读 · 0 评论 -
51定时器使用
1.设置特殊功能寄存器TMOD,配置好工作模式。2.设置计数寄存器TH0,TL0的初值。3.设置TCON,通过TR0置1,来让定时器开始计数。4.判断TCON寄存器的TF0位,检测定时器是否溢出。原创 2016-11-26 18:56:03 · 2172 阅读 · 0 评论 -
51单片机串口配置
1.配置串口工作模式为模式1。即设置SCON寄存器,SCON |= 0X50;(SM0 = 0,SM1 = 1,REN =1).2.配置定时器1为模式2,即自动重装载模式。TMOD &= 0X0F; TMOD |= 0X20.3.根据波特率计算TH1,TL1的初值,如果有需要可使用PCON进行波特率加倍。计算公式:TH1 = TL1 = 256 - 晶振值 / 12 / 2 / 16原创 2016-11-27 20:48:56 · 7182 阅读 · 0 评论 -
STC单片机知识点
1.单片机内部三大资源:FLASH(程序存储空间也叫ROM),RAM(内存),SFR(特殊功能寄存器)。我们对单片机的操作基本都是对SFR的操作。2.stc89c52 特点:8K FLASH,512B RAM,1个UART,2个定时器,8个中断源,P0口无上拉功能。3.对FLASH的写操作,一般都是按页擦除,只有先把一页数据擦除后 才能写入,相当于先把数据清理后才能写。原创 2017-02-14 15:00:25 · 964 阅读 · 0 评论 -
TCON控制字及TMOD寄存器
TCON:定时器控制寄存器寄存器地址88H,位寻址8FH~88H 位地址 8F 8E 8D 8C 8B 8A 89 88 位符号 TF1 TR1 TF0转载 2017-04-02 23:00:11 · 13983 阅读 · 0 评论 -
串口知识
1.常用串口通信一般为10位数据:1位起始位(低电平)+8位数据位+1位结束位。2.波特率是指发送一位数据的速率,比如9600,则发送一位数据的时间为1/9600秒。根据这个时间可用IO口去模拟串口。3.模拟串口的方法,常把定时器配置为相应波特率,进行相关数据发送。但用模拟串口接收数据时要注意在正常接收数据的一半时间去读取数据。原创 2016-11-30 10:19:32 · 1737 阅读 · 0 评论 -
keil 创建多文件工程
第一步:新建一个工程文件夹,再在文件夹下新建inc、user、output、listing四个文件夹。第二步:打开KEIL,新建工程并保存到上一步的新建的工程文件夹下。第三部:在KEIL的工程框内新建分组inc、user。inc存放.h文件,user存放.c文件。第四部:点击keil菜单下的魔术棒,然后把inc文件夹放在C51下include path路径下。第五部: 点击keil原创 2017-03-08 11:02:19 · 7733 阅读 · 0 评论 -
按键检测知识
1.在主程序中检测按键状态是否发生变化,如果发生变化判断按键是否弹起,如果弹起则做相应的键值处理。2.在定时器中断中获取按键状态并消抖。参考:unsigned char key_sta = 1; // 定义按键状态值为 1,抬起状态void main(void){unsigned char backup = 1;// 按键抬起为1while(1·){原创 2016-11-28 20:52:14 · 1046 阅读 · 0 评论 -
新唐单片机keil驱动问题
1:新唐单片机keil编译工具,资料都可以在新唐官网下载。keil驱动软件要安装在keil安装的目录下,今天安装了很久,一直提示不成功,就是因为驱动Nu-link driver 没有安装到keil安装目录下。 2:刚开始项目选用M0518LC2AE单片机(36K FLASH),后来因程序存储区不够,又选用M0518LD2AE单片机(68K FLASH)。但keil编译时提示选用芯片的容量不够,原创 2017-01-10 18:12:18 · 6382 阅读 · 0 评论 -
ID/IC卡相关知识
相关知识博客:ID卡和韦根协议博客:http://blog.chinaunix.net/uid-26849197-id-3302874.html1、韦根协议----http://www.cnblogs.com/shootingstars/archive/2009/12/14/1623952.html2、韦根协议----http://baike.baidu.com/l转载 2016-12-19 13:18:26 · 593 阅读 · 0 评论 -
关于C51编译器的声明标识符
data128字节的内部数据数据存储空间(00h~7Fh)。可直接或间接访问。全部或部分的堆栈可能保存在此区域中。idata间接数据。256字节的内部数据存储空间(00h~FFh。全部或部分的堆栈可能保存在此区域中。此区域包括data区和data区以上的128字节。sfr特殊功能寄存器。CPU寄存器和外围部件控制/状态寄存器,只能通过直接地址访问。xdata外部数据或片原创 2016-10-31 11:25:59 · 539 阅读 · 0 评论 -
单片机中进制转换知识
1.如何把一个四字节的十六进制数转换为十进制数,十六进制数的格式低位在前,假设第一个字节位hex_buf[0],hex_buf[1],hex_buf[2],hex_buf[3]。方法:uint64 add_sum =0;sum += hex_buf[0];sum += hex_buf[1]sum += hex_buf[2]sum += hex_buf[3]原创 2016-12-07 15:53:02 · 4426 阅读 · 0 评论 -
C51 定时器 TL0=(65536-50000)%256是怎么推导出来的?
文章1:如果你选的单片机的晶振一定,比如12MHZ来说吧,机器周期是1us,就是说每1us产生一次计数,就拿50ms来说,这是你想要的计时,意思是,对机器周期进行50000计数就可以得到我想要的,可T0是一个可以对机器周期能进行65536次计数,也就是说我想要的50MS不能让T0溢出,怎么办,那么先给这个定时器里面放些数,放多少,就是我们想要的50MS在加上一个多少就能等于65536,也就是655转载 2016-10-30 16:14:32 · 5462 阅读 · 1 评论 -
ADC使用
一:ADC测电池电压1.由于电池电压随着放电时间的增长,电压会产生较大的变化,因此需要对电池电压实时监测显示。单片机STC15W404AS。单片机的满量程为已知量2^8即256。需要设计另一路AD,用TL431可产生稳定2.5V电压,用AD获取2.5V电压对应得数字量J,则有2.5/j = VCC/256,可得到电池电压。通常需要把实际电压放大100倍。另外在获取2.5对应得数字量时需要把数字原创 2017-08-07 10:22:50 · 1426 阅读 · 0 评论