51编程器制作及原理说明
51单片机计数器原理
51单片机计数器原理计数器是数字电路中常用的组合逻辑器件,用于实现对输入信号的计数功能。
在电子技术领域中,51单片机计数器是一种常见的计数器,广泛应用于各种电子设备中。
本文将介绍51单片机计数器的原理及其工作方式。
一、51单片机概述51单片机是一种经典的单片机型号,是应用最广泛的8位单片机之一。
它由Intel公司在20世纪80年代中期推出,采用Harvard结构,具有低功耗、高性能和丰富的外设接口等特点。
51单片机内部包含CPU核心、存储器、计时器和I/O端口等多个模块。
二、计数器的基本原理计数器用于对输入信号的频率或脉冲进行计数。
它采用二进制计数的方式,通过变换二进制数的状态来实现计数功能。
在计数器中,使用触发器来存储并改变二进制计数器的状态。
三、51单片机计数器的工作原理51单片机的计数器由功能寄存器和计数器组成。
功能寄存器用于设置计数器的工作模式、计数方向和计数初值等参数。
而计数器则用于记录已经计数的次数。
1. 时钟源选择在51单片机中,计数器可以使用外部时钟源或内部时钟源作为计数时钟。
通过设置功能寄存器中的位来选择时钟源。
2. 计数方向设置计数器可以选择向上计数还是向下计数。
通过设置功能寄存器中的位来选择计数方向。
3. 计数初值设置计数器的初始值可以通过将特定的值写入计数器寄存器来设置。
初始计数值可以是任何二进制数值。
4. 溢出和中断当计数器溢出时,会触发一个中断。
在51单片机中,可以通过设置中断控制位来选择是否启用溢出中断,并通过中断服务程序进行处理。
四、计数器的应用51单片机计数器在各种电子设备中有广泛的应用。
以下是几个常见的应用场景:1. 频率计数将计数器连接到需要测量频率的信号上,通过记录计数器溢出的次数,可以计算出输入信号的频率。
2. 脉冲计数计数器可以用于对脉冲信号的个数进行计数。
通过记录计数器溢出的次数以及最后一次溢出前的计数值,可以得到脉冲信号的总数。
3. 时钟分频计数器可以被用作时钟信号的分频器。
51单片机开发板原理图
2
3
4
5
6
7
8
U1 h 3 5 10 1 2 4 7 11 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
+5
CON1 2 4 6 8 10 ISP 1 3 5 7 9 MOSI RESET SCK MISO
g f e d c b a 1 2 3 4
RXD_RF TXD_RF
+5
R22 510 R23 510 R21 510 R17 510 R18 510 R19 510 R20 510 R24 510
单片机小系统部分 包括: 包括:晶振, 晶振,复位, 复位,P0口接上接电阻 P1 口接LED 口接LED显示 LED 显示 用STC 用STC12 STC 12C 12C5A60S 60S2 可作为AD 可作为AD输入口 AD输入口
四位级连共阳数码
A
ISP 下载接口 功能: 功能:给AT89 AT89S 89S系列 单片机下载程序
1 2 3 4 5 6 7
无无无无无口
U4 U8 GND D+ DVCC USB 4 3 2 1 TXD_USB RXD_USB 1 2 3 4 5 6 7 8 C10 20P GND VCC TXD R232 RXD RTS V3 DTR UD+ DCD UDRI XI DSR XO CTS Ch340G 16 15 14 13 12 11 10 9
C3 H4 P0口口口 1 2 3 4 5 6 7 8 H8 +5 +5 P3.4 1 2 3 Header 3 1 2 3 Header 3 +5 P2.4 1 2 3 Header 3 1 2 3 Header 3 +5 P2.5 1 2 3 HeaderS6 3 1 2 3 Header 3 20P C5 0.1uF R11 10K 20P P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 JP1 1 3 5 7 9 11 13 15 2 4 6 8 10 12 14 16 P1.0 P1.1 P1.2 P1.3 P1.4 MOSI MISO SCK P3.3 P3.2 P3.1 P3.0 1 2 3 4 5 6 7 8 13 12 11 10 RESET 9 U7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5(MOSI) P1.6(MISO) P1.7(SCK) P3.3(INT1) P3.2(INT0) (TXD)P3.1 (RXD)P3.0 RST VCC EA/VPP (AD0)P0.0 (AD1)P0.1 (AD2)P0.2 (AD3)P0.3 (AD4)P0.4 (AD5)P0.5 (AD6)P0.6 (AD7)P0.7 P3.4(T0) P3.5(T1) P3.6(WR) P3.7(RD) ALE/PROG PSEN (A8)P2.0 (A9)P2.1 (A10)P2.2 (A11)P2.3 (A12)P2.4 (A13)P2.5 (A14)P2.6 (A15)P2.7 40 31 39 38 37 36 35 34 33 32 14 15 16 17 30 29 21 22 23 24 25 26 27 28 0.1uF +5 4.7K排排 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P3.4 P3.5 P3.6 P3.7 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 1 2 3 4 5 6 7 8 9 Header 9 C
51单片机编码
51单片机编码单片机编码技术是现代电子信息技术中的重要组成部分。
作为微控制器的核心,单片机编码通过将输入的数据信息转换为特定的编码方式,实现各种功能和应用。
本文将从基本概念、编码原理和应用实例等方面,详细介绍51单片机编码相关内容。
1. 51单片机编码的基本概念51单片机编码是指使用8051系列单片机进行程序设计和编码的过程。
它采用汇编语言或高级语言编写程序代码,并将其转化为机器码,通过单片机的指令集执行相应的操作。
由于其成熟的硬件平台和丰富的软件资源,51单片机编码广泛应用于各种嵌入式系统、控制系统等领域。
2. 51单片机编码的原理51单片机编码的原理主要包括指令集、寄存器、数据存储器、输入输出端口等组成部分。
指令集是单片机内部存储的一组机器指令,通过不同的指令实现对数据的处理和控制。
寄存器用于存储临时数据和程序状态等信息,提供给CPU进行运算和控制。
数据存储器则用于存储程序代码和数据,包括内部RAM和外部ROM等。
输入输出端口是单片机与外部设备进行交互的接口,通过读取输入端口的状态和向输出端口写入数据,实现与外部环境的通信。
3. 51单片机编码的应用实例3.1 系统控制应用51单片机编码广泛应用于各种系统控制应用中,如智能家居、工业自动化、交通信号控制等。
通过编写相应的控制程序代码,将输入的传感器信号处理后,控制相关的执行机构进行动作。
例如,通过读取温度传感器的数据,控制空调的开关和温度调节,实现智能环境控制。
3.2 嵌入式系统应用嵌入式系统是指将计算能力嵌入到各种设备和系统中,实现特定功能的计算系统。
51单片机编码在嵌入式系统中有广泛的应用,如智能手机、电视、汽车电子等。
通过编写嵌入式软件程序,控制和管理功耗、资源调度、外设驱动等,实现嵌入式系统的各项功能。
3.3 通信系统应用51单片机编码在通信系统中也有着重要的应用。
例如,通过编写相应的通信协议和驱动程序,实现与外部设备的数据交换和通信。
51单片机工作原理
51单片机工作原理
51单片机是一种常用的微控制器,其工作原理主要包括以下
几个方面。
1. 总线结构:51单片机内部包含三条总线,分别是数据总线、地址总线和控制总线。
这些总线连接着各个功能模块,实现数据和地址的传输以及控制信号的传递。
2. CPU核心:51单片机采用哈佛结构,具有一个8位的CPU
核心。
CPU核心包括指令执行单元、寄存器、时钟模块等,
负责指令的解码和执行、数据的处理等操作。
3. 存储器:51单片机内部包含存储器单元,包括程序存储器(ROM)和数据存储器(RAM)。
ROM存储了程序代码和
常量数据,RAM用于存储运行时需要的变量和临时数据。
4. 外设接口:51单片机具有多个外设接口,如串口、定时器、IO口等。
这些接口可以与外部设备进行通信和控制,扩展了
单片机的功能。
5. 中断系统:51单片机内置中断系统,可以主动响应外部设
备的中断请求,实现及时的数据处理和优先级控制。
6. 时钟系统:51单片机采用晶体振荡器提供稳定的时钟信号,以驱动CPU和各个外设模块的工作。
时钟信号的频率可根据
需要进行设置。
7. 电源管理:51单片机具有电源管理功能,可以在需要时启动或关闭各个模块,以实现节能和延长电池寿命。
通过以上几个方面的工作原理,51单片机能够完成各种各样的任务,广泛应用于嵌入式系统中。
AT89C51 52 55单片机编程器(烧写器)制作
AT89C51/52/55单片机编程器(烧写器)制作--------------------------------------------------------------------------------AT89C51/52/55单片机编程器(烧写器)制作AT89C51是一款应用最为广泛的8051单片机,更重要的是他具有反复烧写(FLASH)的特性。
一般情况下可重复烧写1000次,这样为初学者试验提供了一个廉价的平台。
为了满足广大单片机爱好者动手的需要,本人利用半个月的时间,参考国外资料,实际设计制作成功一款简单的AT89C51/52/55单片机编程器。
由于单片机编程时序不同,这一款编程器仅仅支持ATMEL 公司的AT89C51, AT89C52, AT89C55芯片,不支持华邦或飞利浦兼容芯片。
下面是单片机编程器电路图.注:元器件清单见附录工作原理简述:Q2, Q4以及周围的几个元件构成了电平转换电路,这样节省了1片max 232芯片,在要求不高的场合,这个电路在单片机通信中可以取代MAX232。
Q1, R2,R4,DW2,4个元件为编程器提供烧写用12V电压,其中,R4, R2构成了分压电路;平时,*芯片89C51第13脚(P3.3)输出高电平,Q1导通,R2(1K)将DW2(12V)拉低,此时DW2电压由R4,R2 分压,大约3-5V 之间;当写程序时,*芯片第13脚(P3.3)输出低电平,Q1截止,DW2(12V)直接送到被烧芯片的31脚,从而提供烧写电压。
ATMEL官方网站提供的编程器器烧写电压是用LM317调整得到的,并且用到了两个高精度电阻,电路复杂且成本高,该电路经过本人数百台的实验证明非常稳定可靠.电源变压器要求为15V的电源,例如常见的3-12V直流可调电源,注意其空载电压不要低于13V , 滤波应好一些,否则可能出现编程不可靠的情况。
*芯片用IC座安装,另外找一个编程器烧写好*程序EZ51.HEX后插入,方便调试。
51单片机原理范文
51单片机原理范文51单片机(或8051单片机)是集成度较高,功能丰富的一种单片机。
它是由英特尔公司推出的一种基于哈佛架构的8位单片机,因为它的全称是Intel MCS-51,所以又称为MCS-51单片机。
51单片机采用了CISC的计算机指令集结构,其指令系统包括了强大的操作码集合,可以实现灵活且高效的数据处理和控制。
1.主功能模块:(1)CPU:51单片机的CPU部分主要有累加寄存器(ACC)、数据指针(DPTR)、程序计数器(PC)和栈指针(SP)等器件。
CPU通过解码指令,实现对数据的操作和控制。
它支持不同寻常的指令类型,如算术和逻辑运算、移位和旋转操作、位操作等。
(2)存储器:51单片机的存储器分为RAM和ROM两部分。
RAM是用于存储中间数据的随机访问存储器,它的容量比较小,通常只有256个字节。
ROM是用于存储程序和常量的只读存储器,其容量可以达到64KB。
ROM中包含了单片机的应用程序和常用的函数库,它们可以在需要的时候调用。
(3)I/O端口:51单片机有许多个I/O端口,用于连接外部的设备和外部存储器。
这些端口通过编程来进行输入和输出操作,可以实现与外部设备的数据交换和控制信号的传送。
(4)定时器:51单片机内置了多个定时器,可用于测量时间和产生定时中断。
定时器可以被程序配置为不同的计数模式,比如定时、计数和脉冲宽度调制等。
定时器的主要作用是提供时间基准,用于事件的精确控制和计算。
2.扩展模块:(1)串行通信接口(UART):51单片机内置了一个UART,用于实现与外部设备的串行通信。
UART可通过串行口发送和接收数据,常用于与计算机、显示器、打印机等设备的数据传输。
(2)中断系统:51单片机具有可编程的中断控制器,用于处理外部中断和软件中断。
它可以实现异步事件的响应和中断服务程序的执行,大大提高了系统的实时性和灵活性。
(3)声音和视频接口:有些型号的51单片机还支持声音和视频接口,用于实现音频和视频的录制、放映和处理。
A51(C51)编译步骤
`一、KeilC51编译环境安装1. 双击开始安装2. 打补本。
将文件复制到C:\Keil\C51\BIN目录中,并双击运行点按钮运行完成后点退出。
3、破解双击快捷方式图标启动KeilC51编译器选择File菜单下的License Management,打开License Managemen窗口然后运行破解程序:选MCU type为51, 并勾上External CID, 然后将License Managemen窗口中的CID复制过来再点Generate按钮生成注册码:将注册码复制到License Managemen窗口中点Add LIC按钮显示*** LIC Added Sucessfully ***表示已经注册成功到此,编译器安装完成。
二、新建工程及工程设置下面以SJ4000DT代码为例进行说明:1.首先建立工程目录在E盘建一个文件夹,命名为SJ4000DT,并将A51源程序复制进来:2.运行KeilC51编译器,选Project\New\uVision Project菜单在打开的窗口中选择工程目录路径,并输入工程文件名,点保存按钮:然后出现器件选择窗口,选择Intel的8032AH点确定后弹出选框,选”否”3. 将A51源文件加入到工程点左边Project Workspace中的“+”号,展开在Source Group 1上点右键,在菜单中选Add Files to Group ‘Source Group 1’选择文件类型为Asm Source file(*.s*;*.src;*.a*)框选.a51源文件点Add按钮,后再点Close.文件就已经加到新建的工程了:4. 工程设置点Options for Target图标弹出窗口:切换到Output选项页,勾选Create HEX File点确定按钮,配置完成。
三、编译源文件生成可烧写芯片的目录文件1.编译打开工程后,点击即可进行编译编译完成后,下方的信息窗口中会显示出编译情况2. 目标文件编译器编译后,生成的最终目标文件为.hex格式的文件。
EP51编程器使用说明书
EPA51编程器操作说明EPA51编程器采用特别的双卡座PCB卡匣式设计,可以烧录Atmel公司系列51单片机芯片,具有性能稳定,烧录速度快,性价比高等优点。
硬件采用自行恢复的保护措施,增加了器件运行的可靠性。
一. 支持的芯片型号支持目前最为经典和市场占有量最大的ATMEL公司生产的AT89C51、C52、C55和最新的S51、S52;AT89C1051、2051、4051等芯片。
51测试网特别改进的线路和外观,是目前最为经济,美观和方便实用的小型51单片机编程器,本站特别诚意推荐!二. 产品特点1.使用串口通讯,芯片自动判别,编程过程中的擦除、烧写、校验各种操作完全由编程器上的监控芯片89C51控制,不受PC配置及其主频的影响。
2.采用高速波特率进行数据传送,经测试,烧写一片4K ROM的AT89C51仅需要9.5S,而读取和校验仅需要3.5S。
3.体积小巧,省去笨重的外接电源适配器,直接使用USB端口5V电源, 携带方便,非常适合初学者学习51单片机的要求。
4.软件界面友好,菜单、工具栏、快捷键齐全,全中文操作,提供加密功能,可以保护您的创作产权。
可以说是麻雀虽小,五脏俱全!5.功能完善,具有编程、读取、校验、空检查、擦除、加密等系列功能;6.40pin和20pin锁紧插座,所有器件全部以第一脚对齐,无附加跳线,对于DIP封装芯片无需任何适配器。
三. 硬件连接1.将串口插头插入电脑串口。
(注意COM端口号,默认应当接在COM1, 如果是COM2,则应当以后在编程器软件设置中更改为相应的COM号。
)B电缆插入电脑任一个USB口,另外一端连接编程器,此时编程器上电源LED点亮,表明电源接通。
3.接着安装软件,软件支持Win9x/me/2000/XP,标准Window操作界面。
本软件属于绿色软件,双击光盘/驱动程序/EPA51编程器/A51.EXE,稍后按照桌面的提示一步步完成安装,最后,桌面生成 A51编程器的图标.四. 软件使用双击桌面的A51编程器图标,程序启动后,会自动检测硬件及连接,状态框中显示“就绪”字样,表示编程器连接和设置均正常。
89S51编程器制作
Easy 51Pro v2.0 制作及使用说明Easy 51Pro的第一个版本由于制作简单,操作方便一发布就受到了大家的热烈欢迎。
很多网友自制成功后已经感受到了ISP编程技术是如何的爽,看到他们这么爽我也感到无比的高兴和兴奋,这也成了我开发第2个版本的动力。
努力奋斗一个月终于设计出了第2版。
这个版本的设计目标:更好用,容易自制,容易扩充,更稳定,更灵活。
V2.0的新特性:支持hex文件了用户自己可以扩充器件重载的文件对话框,让你不必到处找文件热键支持,让你调试程序时效率更高灵活的程序设计,甚至可以让整套软件在其他编程器硬件上运行可以支持任何下载线,让你有更多选择设计了串行通讯超时程序,减少了掉线现象下载线,编程器都有相关的调试程序,让你制作时更轻松,提高了成功率开放源代码和详细的原理说明,用户可以根据自己的要求进行修改别看界面和上一个版本差不多,里面的东西可全部换了,使用还是一样。
点击“自动完成”后,就会一项一项的往下进行。
最优的设置就像上面这个图。
缓冲1会自动刷新上一次你打开的文件,所以你不必每烧一次芯片就去打开一次文件。
你也可以不点击“自动完成”,在该界面下“回车”就是的。
不在该界面下时可以用“热键”,所以每当编译完程序后,直接按热键就可以了(默认热键Ctrl+Shift+P)。
在调试中频繁烧片时这个功能显得很重要。
要把按钮设置成“自动”很简单,用“鼠标右键”点一下就可以了。
操作成功或失败会有不同的声音提示。
成功的声音提示可能会让你编程时更兴奋,效率更高。
如果你觉得声音听起来不爽,就在设置里“False”它吧。
这个下面有提示,一看就知道怎么做了吧。
有4个编程器选择。
Easy 51Pro串行编程器也是新设计的,原来的那个电路中12v/5v切换电路改成了12v/5v/0v切换电路,这样就可以烧AT89C2051了。
不过还要使用一对跳线或开关切换(详细内容在《自制Easy 51Pro串行编程器》)。
DD-51编程器程序说明
3 将单片机和实惠一网打尽
顶顶电子携助你 轻松玩转单片机
表 2 AT89S51/S52 编程真值表
方式
RST PSEN ALE/PROG
EA/VPP
P2.6 P2.7 P3.3 P3.6 P3.7
m 写代码数据
H
L
负脉冲(0.2~0.5 ms) H/12V
L
H
H
H
H
o 读代码数据
下图是 AT89C51 的编程电路,AT89C52 编程电路与 AT89C51 基本相同,二者的区别是, AT89C51 采用了 12 位地址,即 P1.0~P1.7 和 P2.0~P2.3,存储器容量为 212=4096 字节,也就 是 4k 字节;而 AT89C52 采用了 13 位地址,即 P1.0~P1.7 和 P2.0~P2.4,存储器容量为 213=8192 字节,也就是 8k 字节。
ddm 一、DD-51 编程器下位机监控程序的设计 . (一)51 单片机基本编程方法 w 要对某一种单片机芯片编程,我们须了解此种单片机的编程方法和时序,这方面的内容 w 在单片机的说明手册中都可以找到,不过,可能有些说明手册是英文版的,你需要具备一定 w 的英文功底才能搞明白,好在各种单片机芯片的编程方法都有相似或相同之处,因此,只要
m 执行此操作后,闪存中的内容全部变为 FFH。 o (5)写锁定位 c 写锁定位方法同“写代码数据”,只是 P2.6,P2.7,P3.6 和 P3.7 的组合逻辑电平不同,
见表 1 所示。
. (6)读特征码 u AT89C51/C52 内部有 3 字节签名字节,用于表示制造商的有关数据,其地址为 030H、 c 031H 和 032H,用于声明该器件的厂商、型号和编程电压,具体情况如下: m 030H:表示生产厂商,其值为 1EH,说明是 ATMEL 制造。
51仿真器原理图及制作过程
51仿真器原理图及制作过程
--------------------------------------------------------------------------------
51仿真器原理图及制作过程
此仿真器是采用SST89E564 芯片配合一些电子元器件制作的仿真器。
仿真程序代码63K,现将此仿真器的资料整理如下(部分网站上也有整理,但不够完善):
1.仿真器电路原理图:
2.根据以上原理图将以上硬件搭好,再准备一条串口延长线和电路板连好,另
外我们再下载一个制作仿真器的软件SSTEasyIAP11F.exe 将*程序写入到
芯片,写完之后我们仿真器也就做好了。
具体方法如下:
3.SSTEasyIAP11F.exe 软件的下载地址:
/products/software_utils/softice/index.xhtml
本文来自: 原文网址:/mcu/51mcu/0084927.html
/products/software_utils/softice/index.xhtml
4.解压后打开如下界面:
5.按下图操作,点击红色箭头:
6.得到如下界面,我们先选择仿真芯片为SST89E564,然后点击OK
7.得到下图后,我们点击确定,上电.
8.当出现下图红色箭头所示,表示连接成功.
9.接下来我们开始下载*程序,单击红色箭头的Download SoftICE
10.如下图所示,我们点击OK开始下载*程序
11.整个下载过程不到1分钟就完成了,就这样一个仿真器做好了
本文来自: 原文网址:/mcu/51mcu/0084927.html。
自己动手制作一个MCS-51编程器
自己动手制作一个MCS-51编程器作者:邢矫健来源:《电子世界》2003年第12期MCS-51单片机能够通过编程、烧录从而成为特定用途的芯片。
单片机的编程一般是使用编译软件把.asm或.a51文件编译成.hex或.bin文件,然后使用专门的编程器烧录到单片机或者外接的可编程ROM中。
本文介绍一种在没有编程器的情况下,烧录简单的单片机程序,进而自制一个通过计算机直接烧录多种芯片的实用编程器。
如果你想自己制作一个编程器,或者你对手工烧录芯片有兴趣的话,那就照本文介绍的方法试试吧。
1. 硬件原理图1是手工烧录器的硬件电路图。
这一电路是进行手工烧录的最简电路,同时将被作为成型后的编程器的一部分。
电路中的89C51芯片选用40脚的零阻力插座接入,当然也可以使用普通的DIP-40插座,只是这样拔插芯片会麻烦一点。
电路采用了一般编程器的电路原理,CD4040芯片是12位的二进制计数器,这里用作89C51编程状态的地址输入。
当CD4040芯片的RST端输入一高电平时,计数器清零,此时对应的89C51内的闪存地址为“0000”,之后,每向CLK端输入一个低电平,地址就增加“1”,一直可增加到“0FFF”,正好可以编完89C51内4K字节闪存空间。
数据输入端采用8位DIP微动开关进行手工输入,89C51的P0.0~P0.7为数据输入端口,当某一引脚未接地,则输入数据为“1”,接地则输入为“0”。
P2.6脚为芯片编程/擦除选择,编程时应接低电平。
P3.6、P3.7也是芯片编程/擦除选择,编程和检验时均接高电平。
P2.7脚为闪存器的读写选择,写入时(烧录)接高电平,读出时(检验)接低电平。
另外,测试用表笔可以用来检查地址、数据端口各位数据,端口为“1”即高电平时,LED发光,端口为“0”即低电平时,LED不发光。
当烧录过程中不慎写入错误数据时,则应该进行整片擦除,从头开始。
进行擦除时,要先把89C51置于擦除状态,即P2.6接高电平,P2.7、P3.6、P3.7都接低电平,然后按下“写入”按钮10ms以上,芯片即被整片擦除,片内所有地址单元均重新置为FF,可以重新置为编程状态,从头开始烧录。
自己动手做51系列单片机编程器
X^ 2 T L
RT—— 一 是编程过程 : S H _ ( ) 将 1
见 以 表。下
R 高 电 S r接
) 。
l iIl l l I l l
l
( ) R T端 电压升 至 1V编程电压。 6将 S 2
①
l模 式 R 眦 N^ E E P l27 3 盯l L l ^ 26P l P
P 3 7 5
n
地址计数器
C D
,
XTA Ll
R
—
V / V h
理 。由其 R M 的容量可知其地址线需要 l 条 , O 3 硬件连接原理 如图 1 所示。整个 P o口和 P 2口的低 5位为编 程地址输人端 . A8 I 2 T粥5 /5 P 为数 据 01 3 输 ^ 端 .
机一般的鳊程要 求, 兴趣 的读 者可以 自制。 有 对于广大单片机爱好者来说 ,学- 单g 机的最大困难就 , 3 - - 是没有 自己的一套 开发工 具 ,市场上的编程器最少也要卖三 四百元 . 虽然其功 能很多 . 但对于广大单片机初学者来说 , 许 了一套简易编程器 . 非常适台初学者制作 , 并且在制作 的过程
中 将 对5 系 单 机 更 一 的 解。 先 们 也 会 1 列 片 有 进 步 了 首 我 来了
解一下5 系列单片 编程原理。 1 机的
数 通过P 据则 1
口 ^。 输 编程时
P G= 32 P 。 D G R P3 O 1— PM 一 ^T A P3
=j 3 卜— P 4
2除Βιβλιοθήκη 度 电景 为 除 式送 L 个。宽 鐾 低凳 苎 可合 擦 模 ’ E一 。 的 平冲 : 脉即 端
51单片机的工作原理
51单片机的工作原理
51单片机是一种高性能、低功耗的微控制器。
它采用先进的CMOS工艺制造,内部集成了中央处理器(CPU)、存储器、输入输出(I/O)端口以及定时器等功能模块。
在工作时,51单片机首先通过外部晶体振荡器提供时钟信号,驱动CPU执行指令。
CPU根据程序计数器(PC)中的地址,
从存储器中读取指令,然后逐条执行。
指令可以包括数据处理、控制流程、IO操作等多种功能。
存储器分为程序存储器(ROM)和数据存储器(RAM)。
ROM存储了程序的指令和常量数据,而RAM用于存储程序
执行过程中产生的临时数据。
CPU可以通过地址总线将指令
的地址发送到ROM或RAM中,获取相应的数据。
输入输出端口用于与外部设备进行通信。
它们可以作为输入口接收外部信号,或者作为输出口发送信号给外部设备。
单片机通过向I/O端口写入或读取数据来实现与外设的交互。
定时器是单片机的另一个重要模块。
它可以生成精确的时间延迟,或者通过计数脉冲得到一段时间的长度。
定时器常用于时间测量、定时中断等应用。
在工作过程中,51单片机还会通过中断机制实现多任务处理。
当发生某种特定的事件,如外部中断、定时器中断等,单片机会暂时中断正在执行的指令,转而执行相应的中断服务程序。
中断是提高系统响应速度和处理效率的重要手段。
总之,51单片机通过CPU、存储器、输入输出端口和定时器等模块的协同工作,实现了程序的运行和与外部设备的交互。
它具有较高的性能和可编程性,广泛应用于嵌入式系统、自动控制等领域。
51单片机c语言模块化编程的步骤和方法
51单片机c语言模块化编程的步骤和方法
模块化编程是一种编程方法,它将程序划分为独立的、可重用的模块,每个模块执行特定的功能。
对于51单片机来说,C语言是常用的编程语言。
下
面是一般的步骤和方法,以实现C语言的模块化编程:
1. 明确需求和功能模块:首先,你需要明确你的程序需要完成哪些功能。
将这些功能划分为独立的模块,每个模块执行一个特定的任务。
2. 创建模块:为每个功能模块创建一个C文件。
例如,如果你有一个控制LED的模块,你可以创建一个名为``的文件。
3. 编写模块函数:在每个模块的C文件中,编写实现该模块功能的函数。
这些函数应该是模块的一部分,并且应该是模块化的。
4. 编写头文件:为每个模块创建一个头文件。
头文件应该包含该模块的函数声明和任何公共变量。
例如,``可能包含控制LED的函数的声明。
5. 主程序调用模块函数:在主程序中,你需要包含适当的头文件,并调用需要的模块函数。
主程序应该将所有模块组合在一起,以实现所需的功能。
6. 编译和链接:使用适当的编译器将所有C文件编译为目标文件。
然后,
使用链接器将这些目标文件链接在一起,生成最终的可执行文件。
7. 测试和调试:在目标硬件上测试和调试程序。
确保每个模块都按预期工作,并且所有模块都能协同工作。
这只是一个基本的步骤和方法。
具体的实现可能会根据硬件、需求和其他因素有所不同。
不过,基本的模块化编程原则应该是相同的。
51单片机工作原理
51单片机工作原理
51单片机是一种常见的微控制器,属于时钟让一直计数的微处理器。
它由一组硬件电路和一组存储器单元组成,用于实现数据和控制的处理。
工作原理如下:
1. 时钟信号:51单片机需要提供一个稳定的时钟信号来控制其内部操作。
时钟信号一般由晶振电路提供,通过晶体振荡器产生。
时钟信号会周期性地触发单片机的指令执行。
2. 存储器单元:51单片机有片内存储器,包括程序存储器(ROM)和数据存储器(RAM)。
程序存储器用于存储程序指令,数据存储器用于存储数据和变量。
3. CPU:控制处理器单元(CPU)是51单片机的核心部分,负责执行指令和控制整个系统的操作。
它包含ALU(算术逻辑单元)、寄存器组和状态寄存器等。
4. 输入输出端口:51单片机具有多个输入输出端口,用于连接外部设备,如按键、LED、显示器等。
通过读取和写入这些端口,可以与外部设备进行数据交互。
5. 指令执行:51单片机从程序存储器中取出指令,然后按照指令的操作码执行相应的操作。
指令可以是算术运算、逻辑运算、数据传输等。
执行完一条指令后,单片机会自动执行下一条指令。
6. 中断:51单片机可以支持中断功能,当发生特定事件时,可以中断当前的程序执行,转去处理中断服务程序。
中断可以是外部中断,也可以是定时器中断等。
51单片机通过时钟信号的控制和指令的执行,实现了对数据和控制信号的处理,从而完成各种任务和功能。
它被广泛应用于嵌入式系统、智能设备等领域。
51单片机DIY做PLC编程
51单片机DIY做PLC编程有朋友想定制一个净水机控制器,有一些独特的功能要增加,但是商品控制板没有这样的功能,问我能否做一个,我觉得单片机完全能满足这种简单的控制需要,上手开始编程序时候突然感到,用PLC逻辑编这种功能是非常简单轻松的,而如果用汇编或C编却感觉有点棘手,编程效率不高,所以想为何不在单片机上实现PLC的逻辑呢?上网搜索尝试看能否找到合适的程序下载来稍微改改就能用的呢?方案几年前就有了,实际上是利用三菱的低档PLC编程软件编辑好梯形图,存盘后用专用的格式转换工具转换成HEX单片机烧写文件烧进去,尝试下载三菱PLC工具软件,但是在我的WIN7-64位系统上不能正常工作,好容易换了系统装好开发工具,但是初次上手这款开发工具,界面挺复杂的,懒得研究各个按钮的使用,由于是单片机的硬件,对于程序的编制和转换有很多限制条件,否则是转换不成功的,嫌麻烦,放弃!某宝倒是有百元PLC板出售,但是为了这么个简单的东西专门买个全功能板子有点浪费,而且其编程软件仍然是三菱的盗版软件,算了,再想办法把。
由于工作中经常接触PLC程序,对其工作原理也略知一二,网上也有相关的说明介绍,其实就是三个主要步骤,第一步扫描IO输入,第二步执行逻辑,第三步输出逻辑到IO,很简单的,最早PLC也是用单片机实现的,我为何不用汇编在51上搭建一个架构,简单的逻辑编制进去就能运转呢?其中逻辑执行步骤还是有点意思的,需要把PLC逻辑翻译成单片机的汇编语言执行,这块开始也没有把握,后来搜索到一篇百度文章,介绍了一下三菱PLC逻辑是如何翻译成汇编的,我看了下估计其实是利用反汇编工具把HEX反编译成的ASM代码,并不清晰明了,而且还带着反汇编时候的行号,仅供参考了。
搜索结果中也有几篇论文,涉及到在51单片机上实现PLC逻辑的内容,但是那些论文都是充数的,仅仅几个IO逻辑,没有什么定时器,计数器功能的体现,哎!仅供参考!看来这个PLC系统还是需要自己写了!OK!既然决定自己重写,那就开工吧!利用春节休假时间,编制了如下ASM51汇编PLC代码:代码主要架构如下:1、IO定义部分:根据所使用的单片机IO口数量,任意指定多少个I多少个O,那几个脚是I,哪几个是O都可以任意指定,在这个51系统里面设计了最大32个I,32个O,占用64个位寻址区域,其实用不到那么多,也可以分配给其它需要的标志位用,因为51系统总可位寻址地址只有128位,需要仔细分配.2、位寻址变量定义(包括各类标志位,临时变量寄存器等等)目前设计了8个计时器的Timer DN, Timer EN,共16位,8个计数器的counter reset 和counter DN 标志位共16个,专用于上升沿下降沿检测的标志位4对,占用8个,剩余用于临时变量,这些地址分配在这块变量定义区域可以根据需要任意调整3、内存规划,包括堆栈区的设置,定时器,计数器的累加值和预设值地址等等,目前初步定义8个计数器的当前计数值和预设值,8个计时器的当前计数值和预设值,共占用32个内存地址,也可根据需要调整,51单片机片内总的用户可用内存地址包括堆栈区只有128个,实际去除位寻址区和堆栈区可用的估计只有80个左右,不过对于小程序应该够用的。
编程器的原理
编程器的原理编程器是一种用于对集成电路进行编程的设备,它可以将特定的程序代码加载到芯片中,从而实现芯片的功能。
在现代电子设备中,编程器扮演着至关重要的角色,它们被广泛应用于各种领域,包括通信、汽车、医疗、工业控制等。
本文将介绍编程器的原理及其工作方式。
编程器的原理主要包括以下几个方面,芯片的编程接口、编程算法、编程器的控制逻辑以及编程器与计算机的通信方式。
首先,芯片的编程接口是编程器进行编程操作的入口,它通常包括数据线、地址线、控制线等。
在进行编程时,编程器通过这些接口与芯片进行通信,将程序代码加载到芯片中。
不同类型的芯片具有不同的编程接口,因此编程器需要支持多种接口标准,以满足不同芯片的编程需求。
其次,编程算法是编程器实现编程操作的核心。
编程算法包括将程序代码转换为特定格式的数据,然后通过编程接口将这些数据传输到芯片中。
在编程过程中,编程器需要根据芯片的特性和编程规范来进行数据格式转换和传输,以确保程序代码能够正确地加载到芯片中并正常运行。
另外,编程器的控制逻辑是编程器实现编程操作的关键。
编程器通常包括控制器、存储器、时序逻辑等,它们协同工作以实现对芯片的编程操作。
控制逻辑需要能够准确地控制编程算法的执行流程,并在编程过程中对芯片的状态进行监控和反馈,以确保编程操作的正确性和稳定性。
最后,编程器与计算机的通信方式是编程器实现与计算机之间数据传输的方式。
通常情况下,编程器通过USB、JTAG、SPI等接口与计算机进行连接,通过这些接口实现对编程器的控制和数据传输。
在与计算机通信过程中,编程器需要能够准确地解析计算机发送的指令和数据,并将编程结果反馈给计算机,以实现编程操作的完整流程。
总的来说,编程器的原理涉及到芯片的编程接口、编程算法、编程器的控制逻辑以及编程器与计算机的通信方式。
了解这些原理可以帮助我们更好地理解编程器的工作方式,从而更好地应用和维护编程器,提高编程效率和质量。
51单片机AD0809电路设计程序+原理图
AD0809在51单片机中的应用我们在做一个单片机系统时,常常会遇到这样那样的数据采集,在这些被采集的数据中,大部分可以通过我们的I/O口扩展接口电路直接得到,由于51单片机大部分不带AD转换器,所以模拟量的采集就必须靠A/D或V/F实现。
下现我们就来了解一下AD0809与51单片机的接口及其程序设计。
1、AD0809的逻辑结构ADC0809是8位逐次逼近型A/D转换器。
它由一个8路模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成(见图1)。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
2、AD0809的工作原理IN0-IN7:8条模拟量输入通道ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:4条ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A, B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如下表所示。
C B A 选择的通道0 0 0 IN00 0 1 IN10 1 0 IN20 1 1 IN31 0 0 IN41 0 1 IN51 1 0 IN61 1 1 IN7数字量输出及控制线:11条ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从编程器的制作到编程器的原理解析
由于作者的水平有限,如果你发现了任何问题,欢迎指正。
我的e-mail是:ranbe_nb@
从电脑向MP4下载图片或是音乐,一般都有一条连接线,再配上专用的软件就可以让你尽享MP4的无限魅力。
单片机也一样,要从电脑上把你辛辛苦苦编写子的代码下进你的单片机,必需要有一根与电脑连接的数据线。
这里我们将要介绍的是ISP下载线,虽然这不是唯一的办法,也不是很理想的方案,但这较适合一般的单片机学习了。
ISP下载线就是一个设计有简单电路的单片机下载工具。
它就像塑造生命的天使,配上小巧的ISP下载软件就可以施与单片机灵魂。
虽然我们不是上帝,但在后文中,我们就要亲手塑造它^-^,如果我继续说下去的话,有的读者可能要恼了,这文档不是说要做编程器吗?怎么说着说着主题却摇身一变,成了做“ISP”下载线了?这里说一下,“ISP”下载线就是一个简单的编程器。
我的打算是这样的,先给读者介绍编程器的做法,让读者先体会一个“成功”的喜悦,再去探讨编程器的原理,这样更不会很空洞。
好,我们现在就来开始吧。
跟着我一步步的走下去,我一定会把你拐进神奇的单片机世界的。
一、制作自己的51编程器
为了不让心急的朋友在没看完我的文档就开始做下载线这里我想先说明一点,我在这个编程器的制作中没有制作电源部分,也就是说读者可以选择去买一
个5V的电源(如果长期的玩电子制作,那么你最好要去买一个直流稳压电源,自己制作的一般很难满足功率比较大的电路)。
读者也可以选择参照别人的电源电路制作一个5V的电源(“蓝博芯科电子工作室”就提供了一个电源制作实例)。
1、原理图的绘制
这里我给出一份protel的原理图(见附录),如果你还不懂什么是protel 的话,那么你可不画,只要焊接的时候直接按以下原理图焊接即可,因为这只是一个简单的电路。
2、元器件的购买
按照原理图上的元件购买你所需的材料。
如果你是第一次做电路板的话,那你最好是买好一份备用的(也许是两三份哦^-^)。
如果你对电子感兴趣的话,像电阻电容这种小元件,你也可以多买一些,反正也不贵,不然人家老板还真不好怎么零散的卖这种小东西给你哦。
材料清单
器件名称型号数量参考单价(元)
单片机 AT89S51 1 5
锁存器74LS373 1 1
IC座40PIN 1 0.2
IC座20PIN 1 0.2
晶振11.0592 1 0.5
万能电路板 1 1.5
微动开关5*5*6 1 0.2
排针 2.54mm 1排0.5
并口25PIN公头 1 1.5
电阻1K 1 0.01
电阻 2.2k 2 0.01
电容10uF电解
电容
1 0.1
电容33P陶瓷电
容
2 0.05
那么在你“上路”前,我得先叮嘱一下你,如果你是第一次去买电子器件的话,那么你要买的器件可不只是你在材料清单上看到的元件器哦。
这会你会纳闷儿了,难道作者还有什么秘诀没有透露给读者吗?这倒是没有,巧妇难为无米之炊,只买上面的东西,不买电烙铁、锡丝、导线甚至万用表、剪线钳、吸锡器等等,怎么能进行下一步电路的焊接呢?
3、电路的焊接
只要工夫真,钢棍磨成小屁针。
这一步是最考验读者动手能力的时候了。
我想,还在做这个编程器的读者,大多还不具有手工制板设备,所以这里我先不对“手工制板”作介绍了。
读者只须按照原理图那样按部就班即可。
4、线路的调试
刚开始接触电路板的焊接的时候,一焊接完后就能用的情况是极少出现的。
这个时候就得细心的去调试你的电路了。
拿这个简单的电路来说,初学者一般会出错的情况有焊接失误造成的短路、断路;粗心大意造成的芯片插反,电源极性插反(犯了这两项情况可就很不妙后果很严重哦);还有就焊接技术太差,干扰太强(告诉读者一个常识,在芯片的VCC脚接一个上面标有104字样的陶瓷电容,电容另一端直接接地,可以降低干扰)。
二、编程器原理
我先给出下面两个图,图1 是以AT89C51为例的flash编程真表,图2是低电压编程方式的flash编程和校验的波开时序。
图1
图2
有了这两个图,你就可以自己DIY一个AT89C51的编程器了。
说这句话你可能会丈二和尚摸不着头脑,真的有这么神奇吗?别急,听我细细说来。
这里我不想只针对我们做的这个并口编程器,而是想告诉大家单片机的一个整体的编程思想,告诉大家,单片机是如何神不知鬼不觉的把".hex"文件下进去的。
那开始吧,我们来看看图1 在做什么。
在看到这个图的时候不要害怕,我知道初学者一般在看到这一类东西的时候,往往会慌起来。
如果是这样的话,请你不用慌,女人是老虎我们尚且不怕,又何惧这小小的一幅图啊。
挑个最简单的,拿“片擦除”这一项来说,上面告诉我们,只要让被编程的单片机的复位脚(RST)、P2.6脚置高电平(5V),程序储存允许输出信号端(PSEN)、P2.7脚、P3.6脚、P3.7脚置为低电平(0V),并保持ALE/PROG 引脚10mS 的低电平脉冲宽度即可将PEROM 阵列(4k字节)和三个加密位整片擦除,代码阵列在片擦除操作中将任何非空单元写入“1”。
说到这里,你应该有点而明白片擦除的原理了吧。
哦,这里我忘了告诉读者图中的“H”表示高电平、“L”表示低电平了,有的读者可能认为我很啰嗦哈,但我却觉得,有些这种细节有时候会对初学者影响很大,所以,哪怕我的众多的啰嗦当中,仅有一句对读者起到了一丝效果,我觉得我的“阴谋”就达到了(^-^)。
接下来继续我们上面的“片擦除”一项来说事,可能有的读者在豁然开朗中又走入了窄胡同,他们会想,说是这样说,那总不是我每次要擦除flash的时候都去给这些脚接高低电平吧。
当然不是,这个工作由谁去完成呢,由PC机(简单的说就是我们的电脑啦),在PC机上烧写程序的时候都有一个特定的软件,这个软件的功能之一就是要让这让指定的这些脚达到相应的高低电平。
通俗的讲,就是当你点击PC机上的软件(如Easy 51Pro)里的擦除按钮时,这个软件就会告诉这个被编程的单片机,哪个哪个脚要是高电平或是低电平,被编程的单片机就会乖乖的照做了。
说完了上面这些,读者对整个的编程器有了一个大概的了解了吧,如果还不是很懂的话,那就不防再跟我走一趟。
拿“写代码数据”一项来讲吧。
同样的只
要让被编程的单片机的复位脚(RST)、P2.7脚、P3.6脚、P3.7脚置高电平(5V),程序储存允许输出信号端(PSEN)、P2.6脚置为低电平(0V),并保持ALE/PROG 引脚为低电平一定的脉冲宽度(如1MS),再向数据总线(当然你也可以用串行发送)写上你要写的数据(hex文件里的数据),就可以把你的数据写入单片机了。
我们同样来概述一下整体流程。
首先我们点击PC机软件上的“写数据”按钮,PC 机会发送一段指令,让这些特定的脚置成特定的电平,紧接着,通过数据总线(如P0口)把数据传达到被编程单片机,一串数据就这样被写入了单片机了。
其他的几项也是一样的,图2中的时序的意思和我上面的解释大同小异,不过这个图可是相当重要的,我们编写PC机的软件,让这个软件如我上面所说的执行任务,就是要严格的按照这个时序来写。
当然我上面说的只是一个“概述”,其实具体的工作会更复杂一些,如果要说得更清楚的话,我想你只有去看PC机软件原代码了,这个得自己看,我说上几天几夜,也不一定能让你明白,就像要知道葡萄是什么味道,必须自己去尝,再怎么听别人说,也只是一种想像。
好了,到这里,我们这道“菜”就全做完了,不知道你了解了多少。
附录:。