JL51单片机开发板原理图.
手把手教你STC51的ISP下载线

手把手教你STC51的ISP下载线说起我从认识学习使用C51单片机到现在有两年多,时间不长,菜鸟一只。
从用TOP151烧写AT89C51,到用easy51pro在线编程AT89S51,再到用STC-ISP 软件在线编程STC89C51,最后现在变得越来越懒,干脆用protues仿真单片机外围电路。
现在简单的总结一下,入门级的C51学习在没有昂贵的单片机仿真器情况下,怎样算是方便调试又花费少吧。
先说说AT89C51,噢,差点忘了,这型号的单片机不知何年被停产了,现在就靠它的库存仍在这个历史的舞台上挣扎。
缺点:对入土为安的芯片没什么好说了。
那就说AT89S51,这可是一个令人振奋的产物,最大的特点莫过于它的ISP(在线编程)功能,就是使用者每编译好程序,就可以立即通过ISP下载线写到单片机上去。
而且ISP下载线的制作简单令单片机和我们的距离更加接近了。
它的ISP原理图如下:其中ISP下载程序可以用easy 51pro v2.0。
相比昂贵的仿真器,做上图的元器件总共也就十块钱左右吧。
缺点:一、并口连接电脑,1.可能占用打印机口;2.是笔记本是没有并口的。
二、下载线制作一次成功率不大,不是漏接了这个脚就是那个口,对于新手而言尤其这样。
三、下载线寿命不长,一两次不知明的原因(通常静电),就可以把里面的那块芯片(74LS244)烧坏。
并且,实际你都不知道到底哪里出毛病了。
也许,世界上真的没有最好,只要更好,自从好友张JL和陈Y介绍了STC的51系列单片机给我之后,发现竟然有这么方便好用功能强大的单片机。
STC51单片机的型号跟ATMEL的大致一样,有STC89C51,C52等,对应于AT89C51,C52等对应它们的内部RAM内部ROM中断口等,是完全一样的。
当然,STC系列单片机是改进型的单片机,它的热重启,串口ISP等功能确实为我准备介绍给大家提供了理由。
先说说ISP功能,它跟电脑连接就只有三根线,就是通过RS-232传输。
单片机原理及应用——C51编程+Proteus仿真(第3版)课件第5章 开关键盘显示器接口设计

在【例5-1】基础上,编写控制发光二极管反复循环点亮的流水灯。 【例5-2】电路仍采用图5-2,制作由上至下再由下至上反复循环点亮显
示的流水灯,3种方法实现。
(1)数组的字节操作实现 建立1个字符型数组,将控制8个LED显示的8位数据作为数组元素,依
次送P1口。参考程序:
#include <reg51.h> #define uchar unsigned char uchar tab[ ]={ 0xfe , 0xfd , 0xfb , 0xf7 , 0xef , 0xdf , 0xbf , 0x7f , 0x7f ,
// 读入P1口的状态,送入state // 屏蔽P1口的高6位 // 判P1口低2位开关状态
{
case 0: P2=0x01; break; case 1: P2=0x02; break; case 2: P2=0x04; break; case 3: P2=0x08; break;
// 点亮P2.0脚LED //点亮P2.1脚LED // 点亮P2.2脚LED //点亮P2.3脚LED
} }
//左移初值赋给temp
// temp中的数据取反后送P1口 // 延时 // temp 中数据左移一位 // 赋右移初值给temp
// temp中的数据取反后送P1口 // 延时 // temp 中数据右移一位
15
程序说明: 注意使用移位运算符“>>”、“<<”与使用循环左移函数 “_crol_”和循环右移函数“_cror_” 区别。左移移位运算“<<”是将高位 丢弃,低位补0 ;右移移位运算、“>>”是将低位丢弃,高位补0。而循环 左移函数“_crol_” 是将移出的高位再补到低位,即循环移位;同理循环 右移函数“_cror_” 是将移出的低位再补到高位。
51单片机的idata,xdata,pdata,data的详解

data: 固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。
bit :是指0x20-0x2f的可位寻址区idata:固定指前面0x00-0xff的256个RAM,其中前128和dATa的128完全相同,只是因为访问的方式不同。
idata是用类似C中的指针方式访问的。
汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idATa做指针式的访问效果很好) xdATa: 外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。
pdATa: 外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@ Rx读写。
这个比较特殊,而且C51好象有对此BUG, 建议少用。
但也有他的优点,具体用法属于中级问题,这里不提。
startup.a51的作用,和汇编一样,在C中定义的那些变量和数组的初始化就在startup.a51中进行,如果你在定义全局变量时带有数值,如unsigned char dATa xxx="100";,那startup.a 51中就会有相关的赋值。
如果没有=100,startup.a51就会把他清0。
(startup.a51==变量的初始化)。
这些初始化完毕后,还会设置SP指针。
对非变量区域,如堆栈区,将不会有赋值或清零动作。
有人喜欢改startup.a51,为了满足自己一些想当然的爱好,这是不必要的,有可能错误的。
比如掉电保护的时候想保存一些变量, 但改startup.a51来实现是很笨的方法,实际只要利用非变量区域的特性,定义一个指针变量指向堆栈低部:0xff处就可实现。
, 为什么还要去改? 可以这么说:任何时候都可以不需要改startup.a51,如果你明白它的特性。
bit是在内部数据存储空间中 20H .. 2FH 区域中一个位的地址,这在DATA的20H以后以字节形式出现,可互相参照。
德飞莱开发板LY-51S V2.33电路图

S10
S13
S16
J26 1 2 3 4 5 6 7 8
SW-PB K6 SW-PB K7 SW-PB K8 SW-PB
LED LED9 R26 10K SCL SDA
RED
VCC R27 10K R28 390
J56 1 2 3 4 5 6 CON5 DTR TXD RXD VCCIN
C32 104
S6
S9
S12
S15 J24 1 2 3 4 5 6 7 8 CON8 J25 1 CON1
母口
J18 TXD 1 3 5 2 4 6 RXD
CON3X2
DB9 J21
D1 IN4148
D2 IN4148
D3 IN4148
D4 IN4148
CON8
ADJ
串口通讯
1 6 2 7 3 8 4 9 5
S7
U12A 1 U12B 3 U12C 5 6 U12D 9 U12E 11 U12F 13 CD4069 12 10 8 4 J6 1 2 3 4 5 6 7 8 CON8 3 VCC 8 C29 104 R1-R8 510 DS3 DPY_7-SEG_DP_2 DPY a a b c f b g d e e c d f dp g dp C C 2
8位共阴数码管
LG3641 DS1 DPY DPY a a a a b b c f c f b b g g d d e e c d f dp g dp com 12 e e c d f dp g dp com DPY a a b c f b g d e e c d f dp g dp com DPY a a b c f b g d e e c d f dp g dp com PDS1 11 PDS2 7 PDS3 4 PDS4 2 PDS5 1 PDS6 10 PDS7 5 PDS8 3 LG3641 DS2 DPY DPY a a a a b b c f c f b b g g d d e e c d f dp g dp com 12 e e c d f dp g dp com DPY a a b c f b g d e e c d f dp g dp com DPY a a b c f b g d e e c d f dp g dp com
AltiumDesigner绘制STC89C51单片机原理图的操作说明(精)

AltiumDesigner绘制STC89C51单片机原理图的操作说明在学习AltiumDesigner或者51单片机的过程中,当我们要绘制一个带有STC单片机的电路图或者要制作带有STC单片机的PCB(印制电路板)时,我们会发现在AltiumDesigner 自带的所有库中都没有找到STC的单片机原理图。
所以,在这里呢,小编将结合自己的经历向大家介绍如何用AltiumDesigner软件来绘制自己的原理图库,并绘制STC89C51单片机的原理图,希望能对大家有所帮助。
大家相互学习,共同进步。
一、创建原理图库1.1新建原理图库选择菜单栏上的【文件】即可看到,具体操作如下图所示:1.2新建元器件做完上面的操作后,即可看到新建的原理图库,在新建的原理图库中有一个空的元器件,如下图所示:1.3 按【Ctrl+S】保存原理图库自定义命名并保存到我们的自定义文件夹,以便今后查找。
如下图所示:二、绘制元器件原理图在工具栏上的三角板图标下,选择【放置矩形】图标,从坐标原点开始绘制矩形(STC89C51单片机外形)。
具体操作如下图所示:打开STC89C51资料手册,观察手册中的管脚图,以便接下来的绘制工作,具体情况如图:单击右键,选择【放置】栏下的【引脚】,然后开始严格按照资料手册中的管脚图绘制各个引脚。
具体情况如图:按照资料手册对各个引脚进行相应设置。
如管脚的输入输出属性以及管脚名称,具体操作情况如下图:保存绘制好的原理图,并对其进行重命名为“STC89C51”,具体操作情况如下图:三、在原理图文件中调用自己绘制的元器件打开或者新建一个原理图。
如图所示:在库路径中搜索“STC89C51”,找到并放置芯片。
如图所示:如何用AltiumDesigner绘制STC89C51单片机的原理图,这里已经介绍完了,你学会了吗?是不是很简单啊,学习记得要记笔记哦!。
单片机最小系统制作与程序下载详细图示

单片机最小系统制作单片机入门首先是要会制作单片机最小系统:最小系统元件清单:单片机与底座:STC89C52 (或者AT89S52)1个,40管脚DIP座1个(用紧锁座更方便插拔)晶振部分:晶振11.0592MHz、(或12MH0 1个;瓷片电容30pF 2 个复位电路:电解电容10uF 1个;电阻10K Q 1个;复位按键1个底板:万用板1个,铜柱+帽4对;排针不限(用于拓展引脚)电源:5V 电源+电源插座额外:330 Q电阻、发光LED各1个工具:USB转串口下载线一条(配STC单片机的),或AT下载线一条(配AT单片机用)万用表+电烙铁+松香、焊锡等,下图为照片。
手机拍軽人QQ : 154401855/ L5440185B万用表P1.0 Pl」PI.2 PI 3 PlAPLS Pl.6Pl.7RS17VPDP3 (VRXDP3 1/TXDVCCLED灯不属于最小系统,但加上它,方便观察最小系统是否制作成功。
P3 2ANT0P3.34NTTP3.4ZT0P3 vriP3 6^P37励XTALJXT AL]GND注:上图中右边的发光EA/VPPALEMOG0Q 15^101855 伽7 6^ 5 4 3 2IO,22怙22怙22J !■_j丿!■_j .丿*"•.C.0I..23 4.S.6.7g po.'po.po.po.po/于单片机站<1、系筑」怛晟好兼焊接图如下:焊接实例一一(晶振在外)焊接实例二(看左边):晶振等放在插座中间最小系统摆放(晶振放外面)焊接背面图如下:(用网线剥光后连接的,布线尽量不交叉,布线还要比较美观,将来可参考此图设计PCB板送厂加工)ORG0000HLJMP MAINORG0100HMAIN:CPL P2.0 ;晶振LCALL DELAYSJMP MAIN;************** 晶振12MHz 贝9延时DELAY :MOV R2, #020HD1:MOV R3, #64H D2:MOV R4, #0F8HDJNZ R4, $DJNZ R3, D2DJNZ R2, D1RET然后编写程序(以汇编为例):・***************1 ^秒***************12MHz,亮1秒、灭1秒,周期为2秒^延时程序纟结^束******************END用编译系统如keilC 编译出.hex文件,如还不清楚,可以百度上搜keilC教程视频。
51单片机常用芯片引脚图
常用芯片引脚图一、 单片机类1、MCS-51芯片介绍:MCS-51系列单片机是美国Intel 公司开发的8位单片机,又可以分为多个子系列。
MCS-51系列单片机共有40条引脚,包括32条I/O 接口引脚、4条控制引脚、2条电源引脚、2条时钟引脚。
引脚说明: P0.0~P0.7:P0口8位口线,第一功能作为通用I/O 接口,第二功能作为存储器扩展时的地址/数据复用口。
P1.0~P1.7:P1口8位口线,通用I/O 接口无第二功能。
P2.0~P2.7:P2口8位口线,第一功能作为通用I/O 接口,第二功能作为存储器扩展时传送高8位地址。
P3.0~P3.7:P3口8位口线,第一功能作为通用I/O 接口,第二功能作为为单片机的控制信号。
ALE/ PROG :地址锁存允许/编程脉冲输入信号线(输出信号)PSEN :片外程序存储器开发信号引脚(输出信号)EA/Vpp :片外程序存储器使用信号引脚/编程电源输入引脚RST/VPD :复位/备用电源引脚2、MCS-96芯片介绍:MCS-96系列单片机是美国Intel 公司继MCS-51系列单片机之后推出的16位单片机系列。
它含有比较丰富的软、硬件资源,适用于要求较高的实时控制场合。
它分为48引脚和68引脚两种,以48引脚居多。
引脚说明:RXD/P2.1 TXD/P2.0:串行数据传出分发送和接受引脚,同时也作为P2口的两条口线HS1.0~HS1.3:高速输入器的输入端HS0.0~HS0.5:高速输出器的输出端(有两个和HS1共用)Vcc :主电源引脚(+5V )Vss :数字电路地引脚(0V )Vpd :内部RAM 备用电源引脚(+5V )V REF :A/D 转换器基准电源引脚(+5V )AGND :A/D 转换器参考地引脚12345678910111213141516171819204039383736353433323130292827262524232221P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST RXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1V SS V CC P0.0/AD 0P0.1/AD 1P0.2/AD 2P0.3/AD 3P0.4/AD 4P0.5/AD 5P0.6/AD 6P0.7/AD 7EA/V PP ALE/PROG PSENP2.7/A 15P2.6/A 14P2.5/A 13P2.4/A 12P2.3/A 11P2.2/A 10P2.1/A 9P2.0/A 8803180518751XTAL1、XTAL2:内部振荡器反相器输入、输出端,常外接晶振。
stcc单片机开发板电路原理图
4
模拟量采集ADC
AD/DA转换 VCC
AD按键
AIN0
SW21
VCC
C5 10uF C6 0.1uF U6
AIN0
1
16
D3 LED
R37
SW SPST
R38 100_1%
AIN1 AIN2 AIN3
2 AIN0 3 AIN1 4 AIN2
VDD 15 AOUT 14 VREF 13
R34 2K VCC
10K
SW22
5 AIN3 AGND 12
6 A0
EXT 11
7 A1
OSC 10
SCL
8 A2
SCL 9
SDA
D
SW SPST
R40
GND SDA
100_1%
PCF8591 宽体,封装:SO16WB
SW23
VT SW24 SW SPST
R46 100_1%
R48 100_1%
R21 100
P33 C1 10uF
IR GND VCC
红外发送38KHz
VCC R49 1.25K
R52 2K P34
8 VCC
4 MR
U10
A
7
DIS
VCC
R50 1.25K
6 TH
3 R51 100 VO
D6 LED_IR
C16 0.01uF
1 GND
5 CO
2 TR
NE555
封装:SO8NB
R28 2K R29 2K R32 2K R33 2K
GND
B
电源输入
VCC
IN
C14 0.1uF
+ CE1 100uF/16v
STC89C51原理图
U4 P10/T P11/T P12 P13 P14 P15 P16 P17 INT1 INT0 T1 T0
1 2 3 4
D15 R14
R13
IIC总线AT24C02
VCC VCC C13 C XTAL2 晶振 1 2 3 4 VCC U11 8 7 6 5
时钟3V备用电池 V1 1 +
eg
STC89C52RC
VCC U14 CS WR1 WR2 ILE XFER DA0 DA1 DA2 DA3 DA4 DA5 DA6 DA7
R31
D07 D06 D05 D04 D03 D02
GND VCC
一体化红外接收头SM0038
VCC
D01 8 D00 7 6 5 4 3 2 1
1 2
8 7 6 5 4 3 2 1
按扭开关1
按扭开关1
按扭开关1
D37
电源开关
K6
K11
K16
K21
P3.7
CON8
CON8
按扭开关1
按扭开关1
按扭开关1
按扭开关1
数码管Y为段选端,X为位选端 数模转换ADC0804 距阵键盘和4位独立键盘连接在P3口上 可进行单片机计时器和外部中断的操作
4位8段阴数码管
4位8段阴数码管
B
AD调节
VIN+ 6 VIN- 7 A GND8 V REF 9 D GND10
按扭开关1
CON8
电源输出接口扩展
1 2 3 4 5 6 7 8 D10 D11 D12 D13 D14 D15 D16 D17
K4
K9
K14
K19
P3.5
P0口扩展
C51单片机和电脑串口通信电路图
C51单片机和电脑串口通信电路图与源码51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。
进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。
我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。
这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接.串口通讯的硬件电路如上图所示在制作电路前我们先来看看要用的MAX232,这里我们不去具体讨论它,只要知道它是TTL和RS232电平相互转换的芯片和基本的引脚接线功能就行了。
通常我会用两个小功率晶体管加少量的电路去替换MAX232,可以省一点,效果也不错,下图就是MAX232的基本接线图。
按图7-3加上MAX232就可以了。
这大热天的拿烙铁焊焊,还真的是热气迫人来呀:P串口座用DB9的母头,这样就可以用买来的PC串口延长线进行和电脑相连接,也可以直接接到电脑com口上。
为了能够在电脑端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察,这里我们利用一个免费的电脑串口调试软件。
本串口软件在本网站可以找到软件界面如上图,我们先要设置一下串口通讯的参数,将波特率调整为4800,勾选十六进制显示。
串口选择为COM1,当然将网站提供的51单片机实验板的串口也要和电脑的COM1连接,将烧写有以下程序的单片机插入单片机实验板的万能插座中,并接通51单片机实验板的电源。
#include <reg51。
h〉#define BUFFERLEGTH 10//-—---———-—-——————--——-----—--——--——------—-—--—-—--—--——-———-—--—void UART_init();//串口初始化函数void COM_send(void);//串口发送函数char str[20];char j;//——-----————---——-—--—--—-—-—-———-———-—-——-—--—-—-——————--———-—--———void main(void){unsigned char i;UART_init();j=0; //初始化串口for(i = 0;i < 10 ;i++){COM_send(); //首先发送一次数据作为测试用};while(1);}//-——-——-——---------———-——-—-—-——--—---—---—--—-—--——---—---—--//——-——--——--—-—-—--———————---—-——-——-———-—-----——--—---——————-—-—-—-—————-—--—-—---—--———-——---——-- // 函数名称:UART_init()串口初始化函数// 函数功能: 在系统时钟为11.059MHZ时,设定串口波特率为9600bit/s// 串口接收中断允许,发送中断禁止//—-——--—-----———---—-——-—-——————-————-—-————---——-———————--———-———----—-—--—---——-—---—-————-———---void UART_init(){//初始化串行口和波特率发生器SCON =0x50; //选择串口工作方式1,打开接收允许TMOD =0x20; //定时器1工作在方式2,定时器0工作在方式1TH1 =0xfA; //实现波特率9600(系统时钟11。