当前位置:文档之家› PIC单片机CCP模块技术笔记

PIC单片机CCP模块技术笔记

PIC单片机CCP模块技术笔记
PIC单片机CCP模块技术笔记

与输入捕捉模式\比较器相关的寄存器

作用:1)用于测量输入引脚的周期信号的周期,频率和占空比等

2)测量输入的非周期性矩形脉冲信号的宽度,到达时刻和消失时刻等

特点: 1)时钟源来自TMR1

2)应先设好TMR1,且RC2/CCP1脚设为输入状态

3)捕捉开启后,TMR1自动累加,CCP1一直检测引脚状态,与设定事件相

同符时,TMR1的值被捕捉到CCPR1中,并产生中断.

工作原理:捕捉条件,1)每个脉冲下降沿; 2)每个脉冲上升沿; 3) 每4个脉冲上升沿;

4) 每16个脉冲下降沿; 发生后,CCPR1马上记下TMR1的值

注意点:1) CCP1中断后,应用软件将其清0; 2)当CCPR1中的值还没取出时有新的捕捉发生,

则原有的值被覆盖;

3) 如果修改预分频器的值,可能会产生一次错误中断,并且预分频器不会清0.因此第

一次捕捉可能是从预分频器的一个非0的起始值开始计数的.

4)TMR1要设为定时器或同步工作方式;

使用输入捕捉模式的步骤:

1 设置RC2/CCP1为引脚输入;(TRISC寄存器)

2 设置TIMER1的参数:

T1CON=--000001:内部时钟,计数器频率FOSC/4,工作允许(进一步可设置PIE1中的TMR1IE中断允许,PIR1中的TMR1IF)

3 设置CCP1CON的参数:

CCP1CON=----0100;每个下降沿捕捉;(进一步可设置PIE1中的CCP1IE中断允许,

PIR1中的CCP1IF)

4 等待捕捉成功(中断或者查询)

5 从CCPR1L和CCPR1H取值,该值代表捕捉发生的时刻;

6 和上次的捕捉值相减,得到两次捕捉之间的时间;

7 保留本次捕捉值,为下次作准备;

8 重复等待捕捉成功(跳到第4步);

输出比较模式

作用:从引脚上输出不同宽度的矩形脉冲,延时驱动信息,晶闸管驱动信号,步进电机驱动信号等

特点:由TMR1作为时钟源,选好TMR1工作方式,如果比较符合的事件发生后,改变RC2的状态

工作原理:比较模式时,CCPR1和TMR1的值会一直作比较,当值相同时,产生中断,驱动事件发生:1)RC2/CCP1输出高电平; 2)输出低电平; 3)电平不变,内部产生软件中断; 4)引脚电平不变,内部触发特殊事件./////由CCP1CON中的D3---D0选择///////

使用输出比较模式的步骤:

1)RC2/CCP1设为输出, CCP1CON清0 迫使RC2/CCP1比较输出引脚对低电平锁存.

2)TMR1设为定时器(时钟由内部产生) 或同步计数方式(时钟来自外引脚或自带振荡器)

3)设定产生软件中断方式,当CCP1M3-CCP1M0=1010时,则为软件中断方式,当输出比较

匹配时,RC2不受影响,而CCP1IF置1,可产生中断

4)当CCP1M3-CCP1M0=1011时,为特殊事件触发方式,匹配时内部硬件产生一个触发信号,

启动一些操作,同时TMR1复位清0但TMR1F不会置1

PWM工作模式

作用:在RC2中输出频率与脉宽随时可调的方波信号,时钟来自TMR2

说明: 1) 脉宽寄存器用来调整PWM信号的脉冲宽度.

2) 10位从属脉宽寄存器,CCPR1H+内部2位专用锁存器,只读,减少干扰

3) 当脉宽寄存器=TMR2时,输出高电平

4) 当对CCP1CON清0时,RC2输出一个低电平.并非是正确的PWM输出结果

5) PWM的周期由8位的TMR2确定,宽度由TMR2的8位+其低端扩展两位

工作原理: 周期确定由PR2的值确定,公式:T=(PR2+1)x4TOSCxTMR2预分频器

TOSC为系统的时钟周期,4TOSC为指令周期, 预分频器可为1/4/16

*****TMR2后分频不影响周期设定,但可利用其产生的中断来对PR2和CCLR1L换新值,调节脉宽.**********

脉冲确定: 由CCPR1L+CCP1CON的D5和D4位确定, 公式:

脉宽=DC1xTOSCxTMR2预分频器

当PR2=TMR2时,脉宽值补装到从属脉宽寄存器中

编程步骤: 1) 向PR2写入周期

2) 写入脉宽值

3) 将RC2/CCP1设为输出

4) 通过T2CON设定TMR2,启用TMR2

5) 设定CCP1CON低4位为11XX,为PWM模式

51单片机学习笔记(六)_串口中断通信+定时器2串口中断

51单片机学习笔记(六)_串口中断通信+定时器2串口中 断 51 单片机默认使用定时器1 作为串口通信的波特率发生器、定时器1 中断 通信,串口与定时器1 冲突,在遇到定时器不够用的时候可以用定时器2 #include void DelayMs(unsigned int i);void SerialInit();void SendByte(unsigned char sbyte);void SendString(unsigned char *pstr);void main(void){SerialInit();while(1); //注:必需要无限循环}/*//单片机时钟周期: 11.0592MHz 以时钟1 作为波特率发生器void SerialInit(){TMOD=0x20; // 设置T1 工作方式为方式2TH1=0xfd; //给定时器高位装初值TL1=0xfd; //给定时 器低位装初值TR1=1; //开定时器//以上是设置波特率SM0=0; //设置串口通 讯方式为方式1SM1=1; REN=1; //串口是否接收数据的开关EA=1; //总中断 打开,采用查询法时不用打开中断ES=1; //串口中断开关,采用查询法时不用打开 中断}*///单片机时钟周期:11.0592MHz 以时钟T2 作为波特率发生器void SerialInit(){PCON &= 0x7F; //波特率不倍速SMOD=0SCON = 0x50; //方式1,8 位数据,可变波特率,接收允许T2CON = 0x34; RCAP2H = 0xFF; RCAP2L = 0xDC; TH2 = 0xFF; TL2 = 0xDC;EA=1; //总中断打开,采 用查询法时不用打开中断ES = 1; //串口中断开关,采用查询法时不用 打开中断}//串口中断函数:void SerialPortInte(void) interrupt 4 //采用串口中断法 收发数据{unsigned char rbyte;if(RI){ //RI=1,判定为串口接收到了数据,RI 要清零,RI=0;rbyte=SBUF; if(rbyte==0x0A){ SendString(“换行”);}else if(rbyte==0x0D){SendString(“回车”);}else{SendByte(rbyte);}}}//串口发送一个字节:void SendByte(unsigned char sbyte){ SBUF=sbyte; //发送数据while(!TI); //等待发送完成TI=0; //清零发送标志位}//串口发送一个字符串:void

双机间的串口双向通信2.0

单片机应用课程设计任务书

单片机应用课程设计说明书 学院名称:计算机与信息工程学院 班级名称:网工124 学生姓名:卞可虎 学号:2012211369 题目:双机间的串口双向通信设计指导教师:于红利 起止日期:2014.12.29至2015.1.4

目录 一、绪论 (1) 二、相关知识 (6) 2.1 双机通信介绍 (6) 2.2单片机AT89C51介绍 (6) 2.3 串行通信简介 (8) 2.3.1串行通信的特点 (8) 2.3.2串行通信技术标准 (9) 三、总体设计 (10) 3.1 设计需求 (10) 四、硬件设计 (10) 4.1 系统硬件电路设计 (10) 4.1.1整体电路设计 (10) 4.1.2 控制电路设计 (11) 4.1.3 复位电路 (11) 4.1.4 显示电路 (12) 五、软件设计 (12) 5.1发送端程序流程 (12) 5.2接收端程序流程 (13) 5.3按键程序 (14) 5.4串口通信程序 (15) 5.5数码管显示程序 (16)

六、Proteus软件仿真 (16) 七、结束语 (19) 参考文献 (20) 指导教师评语 (21) 成绩评定 (21) 附录:源程序 (22) 一、绪论 电子技术的飞速发展,单片机也步如一个新的时代,越来越多的功能各异的单片机为我们的设计提供了许多新的方法与思路。单片机之间的通信可以分为两大类:并行通信和串行通信。串行通信传输线少,长距离传输时成本低,且可以利用数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。所以本系统采用串行通信来实现单片机之间可靠的,有效的数据交换。 对于一些类似复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。如果合理使用多种不同类型的单片机组合设计,可以得到极高灵活性与性能价格比,因此,多种异型单片机系统设计渐渐成为一种新的思路,单片机技术作为计算机技术的一个重要分支,由于单片机体积小,系统运行可靠,数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。但在一些相对复杂的单片机应用系统中,仅仅一个单片机资源是不够的,往往需要两个或多个单片机系统协同工作。这就对单片机通

第3课 HJ-2G AVR单片机学习笔记 程序编写编译环境

第3课ICC程序编写编译环境 基于HJ-2G AVR学习板 学习AVR单片机必需要安装的第二个软件:程序编写编译环境ICC AVR 1、下面说一说安装方法,在配套资料(网上下载)找到ICC AVR直接点击按装,装好后输入正版注册码,这样就可以正常使用ICCAVR软件编写编译。 2、在桌面上打开ICCAVR软件,出现如下图片:请点开工程,并新建一个工程。 3、下图为新建一个工程,请保存在C盘目录下,输入工程名称(只能是中文),点击保存。

4、新建立一个C文件,在下图空白处输入你的C源码,输完后请保存C文件。 5、加入刚才建好的C文件到工程当中,方法如下图。

6、设置一下编译器,如下图。 7、芯片用ATmega16

8、最后一步了,只要你按上面的一步一步做,最后点一下编译键,就可以正常编译成功,如果不成功,请查一查你的C源码是否正确,还有工程是不是在中文目录下。 9、总结:本课主要学习了程序编写编译环境ICC AVR的安装,设置,还有编译方法,开始学单片机时,新手不会写C源码,可以复制慧净写好的C源码到项目中,练习多次,ICCAVR 软件你就会使用了,以后学习中,每一课都会用到本软件,只要你认真跟着《慧净1天入门AVR单片机学习笔记》学习,多多练习,相信你很快速学会AVR单片机。 慧净AVR单片机免费共享学习笔记目录(配有视频教程,请在慧净空间下载) 第一部1天入门AVR单片机学习笔记 第1课:AVR单片机学习基本流程 第2课:AVR单片机程序烧写方法 第3课:程序编写编译环境 第4课:简单C语言基础知识 第二部10天学会AVR单片机学习笔记 第1课:IO端口操作 第2课:流水灯 第3课:单个数码管显示 第4课:多个数码管同时显示 第5课:独立按键 第6课:定时器 第7课:外部中断

单片机读书笔记

单片机的分类 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。 众多的单片机可以从不同角度进行分类。 Ⅰ按生产厂家分 1.INTEL公司的单片机(MCS-48系列单片机:MCS-48单片机是美国INTEL公司于1976年推出,它是现代单片机的雏形,包含了数字处理的全部功能,外接一定的附加外围芯片即构成完整的微型计算机;MCS-51系列:MCS-51单片机是美国INTE公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品) 2.ATMEL公司的单片机(AT89系列单片机:AT89系列单片机是ATMEL 公司的8位Flash单片机系列。这个系列单片机的最大特点是在片内含有Flash存储器。因此,在应用中有着十分广泛的前途特别是在便携式、省电及特殊信息保存的仪器和系统中显得更为有用;A VR单片机:A VR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片

机。A VR的单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。) 3.Motorola公司的单片机(MC68300系列单片机:MC68300系列微控制器采用模块化设计,可以根据用户的要求,选择不同的模块,以适应不同的应用场合) 4. MicroChip单片机的单片机(PIC12CXXX系列单片机、PIC16CXXX系列单片机) 5.PHILIPS公司的单片机(通用型单片机:PHILIPS公司的P80C31基于80C51内核采用高密度CMOS技术设计制造,包含中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、3个16位定时/计数器和6个中断源,4层优先级中断嵌套结构,可用于多机通信的串行I/O口,I/O扩展或全双工UART,片内时钟振荡电路;Flash 单片机、低功耗OTP单片机) 6.TI公司的单片机(TI单片机MSP430:德州仪器(TI)超低功率16位RISC混合信号处理器的MSP430产品系列为电池供电测量应用提供了最终解决方案。德州仪器作为混合信号和数字技术的领导者,TI 创新生产的MSP430,使系统设计人员能够在保持独一无二的低功率的同时同步连接至模拟信号、传感器和数字组件。) 7.其他公司的单片机(美国SST公司的SST89系列、美国CYGNAL公司的C8051FXXX系列单片机、东芝TLCS-870系列单片机) Ⅱ按单片机数据总线的位数,可将单片机分为4位、8位、16位、32位

史上最通俗易懂的单片机自学有笔记1

单片机关键知识点一览: 系列一 1:单片机简叙 2:单片机引脚介绍 3:单片机存储器结构 4:第一个单片机小程序 5:单片机延时程序分析 6:单片机并行口结构 7:单片机的特殊功能寄存器 系列二 8:单片机寻址方式与指令系统 9:单片机数据传递类指令 10:单片机数据传送类指令 11:单片机算术运算指令 12:单片机逻辑运算类指令 13:单片机逻辑与或异或指令祥解 14:单片机条件转移指令 系列三 15:单片机位操作指令 16:单片机定时器与计数器 17:单片机定时器/计数器的方式

18:单片机的中断系统 19:单片机定时器、中断试验 20:单片机定时/计数器实验 21:单片机串行口介绍 系列四 22:单片机串行口通信程序设计 23:LED数码管静态显示接口与编 24:动态扫描显示接口电路及程序 25:单片机键盘接口程序设计 26:单片机矩阵式键盘接口技术及 27:关于单片机的一些基本概念 28:实际案例实践——单片机音乐程序设计 1:单片机简叙 什么是单片机一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如A/D,D/A等。 单片机是一种控制芯片,一个微型的计算机,而加上晶振,存储器,地址锁存器,逻辑门,七段译码器(显示器),按钮(类似键盘),扩展芯片,接口等那是单片机系统。 2:单片机引脚介绍

单片机学习笔记

MC51单片机学习笔记 一准备知识: 1.内部结构:4K Rom 程序存储器(硬件)128节Ram随机存储器(软件) 8位cpu,4个8位并口,1个全双串行口,2个16位定时器/计数器; 寻址范围64k 布尔处理器 CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器; RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据; ROM:用以存放程序、一些原始数据和表格; I/O口:四个8位并行I/O口,既可用作输入,也可用作输出; T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式 五个中断源的中断控制系统; 一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信; 片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率取决于单片机型号及性能。 2.分类:arm(快)凌阳(处理声音较好) 3.型号说明:STC (公司名) 89(系列)C(CMOS;CAD:自带

AD转换;S:串行下载无需专门的编程器;lv:工作电压为3v)51(1*4=4K) RC 40(晶振最高频率) C(商业级:温度0--85,I工业级温度-40--125)----PDIP (双列直插式)0721(07年第21周)......... 4.电平:TTL:高:+5v--低0v; RS232:计算机串口:+12v--低-12v,故计算机和单片机通信需要电平转换芯片 5.二进制与十六进制之间的转换:每4位转变一次 6.二进制转换逻辑符号:&与,//或,---非,异或 7. P3第二功能各引脚功能定义: P3.0:RXD串行口输入 P3.1:TXD串行口输出 P3.2:INT0外部中断0输入 P3.3:INT1外部中断1输入 P3.4:T0定时器0外部输入 P3.5:T1定时器1外部输入 P3.6:WR外部写控制(计数) P3.7:RD外部读控制 RST :复位管脚,高电平有效,时间大于两个机器周期 VPD:备用电源 注:机器周期和指令周期 (1)振荡周期: 也称时钟周期, 是指为单片机提供时钟脉

MSP430时钟配置及ad模块等学习笔记

MSP430收集资料笔记 问: 个刚从51转到msp430这块的学生,我想知道,分频其实到底可以干什么,具体什么时候才会需要我们去分频? 能举些详细的例子告诉我分频什么时候改用,什么时候不该用吗?不需要代码,例子就好 答: 51也要分频啊,一个系统CPU(中央处理单元)的频率最高的,其他的外设都是低速的,都要通过主时钟分频产生低速的时钟来工作;比如8Mhz的单片机是说CPU的时钟是工作在8mhz,但gpio、串口,定时器等它们的工作频率很低的,这个时钟就需要分频来产生;当你想要改变一个外设的工作频率时就需要重新设置分频系数,比如串口波特率,定时时间,IIC时钟,spi时钟等等; 问: MSP430单片机的定时器,看门狗等东西的时钟来源于于各个时钟 (SMCLK,ACLK,MCLK,DCO等)有什么区别呢?还有这些问什么要分频呢,不分频好像程序也可以写啊! 有这三种时钟我也知道,我只是想知道。我是想知道这些时钟给外设使用的时候到底到底选择哪个,为什么要选择这个? 答: 不知道楼主用的是那个型号!我用的149,就用这个给你说吧!msp430F149 不分频具体的根据系统需要决定,楼主应该是初学吧!有些问题你不必深究,慢慢的在学习和使用中你就明白了,刚开始你知道怎么用就可以了! CTRL_C+CTRL_V,就算是抄别人的,也自己敲一遍,加深理解,加深印象!

话有说回来,学编程本来就是这么个过程,一看二抄三写四调试!我就是这么过来的,网上资源很多,多看看别人是怎么学的,怎么做的! || || 信号源---分频输出---------》时钟----------------》输出信号源----------外围模块|| (DCO)//************不设置即被MCLK默认***********************// || (LFXTI)→MCLK==→信号源分频输出=→信号源供给外围模块,CPU || (LFXT2) 1)MCLK系统主时钟。除了CPU运算使用此时钟以外,外围模块也可以使用。MCLK可以选择任何一个振荡器所产生的时钟信号并进行1、2、4、8分频作为其信号源。 (2)SMCLK系统子时钟。供外围模块使用。并在使用前可以通过各模块的寄存器实现分频。SMCLK可以选择任何一个振荡器所产生的时钟信号并进行1、2、4、8分频作为其信号源。 ||(DCO)//************不设置即被MCLK默认***********************// ||(LFXTI)→信号源分频输出=→SMCLK==→信号源供给外围模块 ||(LFXT2) (3)ACLK辅助时钟。供外围模块使用。并在使用前可以通过各模块的寄存器实现分频。但ACLK只能由LFXT1进行1、2、4、8分频作为信号源。 PUC复位后,MCLK和SMCLK的信号源为DCO,DCO的振荡频率默认为800KHZ。ACLK的信号源为LFXT1。 || ||LFXI1=→信号源分频====》ACLK========→外围模块 MCLK,SMCLK ||PUC复位===|=======》 DCO=800KHZ |ACLK | |LFXTI

单片机学习笔记--KILL软件应用

单片机学习笔记1 建立工程、添加文件、生成烧写文件之学习一、建立一个空的工程文件: 打开KILL软件——project——New Project——保存目录(选一个合适目录保存我们的工程实例:E、D、F盘自定,若在该文件夹下放多个项目,可在此在建一个子文件夹)——双击进入该文件夹或该子文件夹——(进入后我们在这里建文件)命名为你为这个工程所起的名字(当然也可以随便起)——点保存——选择你所用芯片的公司,并在该公司目录下选择你所用的芯片——确定——在弹出对话框中选否(用C语言编程)OR是(用汇编编程)。 下面用图讲解: 1、打开KILL软件——project——New Project

2、保存目录(选一个合适目录保存我们的工程实例:E、D、F盘自定,若在该文件夹下放多个项目,可在此在建一个子文件夹) 选择要保存的地方(那个盘下): 保存在该磁盘下自己新建的文件夹下:

建立子文件夹(若要在上面确定的文件夹下建立不只一个工程时,建立子文件夹来分别存放不同的工程实例) 3、双击进入该文件夹或该子文件夹——(进入后我们在这里建文件)命名为你为这个工程所起的名字(当然也可以随便起)——点保存 4、选择你所用芯片的公司,并在该公司目录下选择你所用的芯片——确定

这里AT89S52的FLASH Memory是8K的,其算法是最后一个数字2乘以4得出的,又如AT89S51的FLASH Memory是4K 5、在弹出对话框中选否(用C语言编程)OR是(用汇编编程)。

二、向空的工程文件里添加一个程序文件: 新建一个空的程序文件:File——New File——保存一下(File——Save 或直接点击保存图标)——填写文件名:程序文件名.C 或文件名.ASM——保存。 把程序文件添加到工程文件里: 方法一,在Source Group1上点击右键——Add Files to Group ’Source Group1’——选中要添加的那个程序文件——Add——Close。 方法二,直接双击Source Group1进行添加。 下面用图进行讲解: 1、File——New File 2、保存一下(File——Save或直接点击保存图标) 3、填写文件名:程序文件名.C 或文件名.ASM——保存。 创建为C语言程序文件:

01-基于HJ-2GAVR单片机学习笔记1- HJ-2G概述

第一章HJ-2G概述 1.1学习笔记说明(本学习笔记跟据慧净会员akuei2第一版修改而成,感谢akuei2对单片机事业的支持)下面引用原作者开始学习HJ-2G AVR单片机。 在还没有开始故事之前,听我的几个故事。在这个地球上,很遗憾打从我一出生我并不是好孩子而且还浪费了很多时间在少年时期,当我醒悟的时候自己已经是18岁了,原本我想一切都是太迟了,在那个年龄的阶段我的思想慢慢的步入黑暗,很多次我都尝试挣扎可是我却失败了(就像我在全国高中大考SPM上失败了)。中学毕业了,自己的成绩却不理想所以无法进入大学,可能是我的语言科失败,还是我国-马来西亚的土著政权的问题。在那一天我领着自己的临时成绩表面对自己的失败,我...我鼻子酸了起来...某个夜里,我向着自己承诺自己要努力,从此我踏上单片机的道路。 1.2HJ-2G概述(V 2.0版-主要功能简介) HJ-2G开发板实物图v0.01 老实说HJ-2G上的资源也是挺丰富的,作为入门,提高到开拓真的已经很足够了。如果你问本人,它有什么好处?我会斩钉铁齿的回答~便宜(事实上,我加上邮费从中国飞来马来西亚,也不能算实际的便宜)。

1.2HJ-2G 板上资源介绍 1.2.1ATMEGA16 这个就是HJ-2G 的核心处理器了,全部的IO 口都引出了,尤其是VCC 和GND,这样在后期自己开发模块的时候真的很方便呀。我记得郭老师的开发板仅引出PA~PD 的IO 口而已?不清楚就...算了。这里就不详细介绍了,因为以后会慢慢认识的。 1.2.2锁存器,8位LED 作为所有学习单片机的入门,流水灯,跑马灯,8位LED 再也熟悉不过了。继承郭老师的TX-1C 开发板的传统,锁存器一是用来控制LED 二是用来扩展IO 口。 实物图 原理图 实物图原理图

51单片机RAM 数据存储区学习笔记

51单片机RAM 数据存储区学习笔记 目录 51单片机RAM 数据存储区学习笔记 (1) 1.RAM keil C语言编程 (2) 2.片内数据存储区 (2) (1) 工作寄存器区 (3) (2)位寻址区 (3) (3)数据缓冲区 (4) (4)堆栈 (4) (5)专用寄存器区 (4) 3.片外数据存储区 (4)

1.RAM keil C语言编程 RAM是程序运行中存放随机变量的数据空间。在keil中编写程序,如果当前模式为small 模式,如果总的变量大小未超过128B,则未初始化的变量的初值默认为0.如果所有的变量超过单片机small模式下的128B大小,则必须对变量进行初始化,否则超过RAM大小变量的值是不确定的,在small模式下超过128B大小的变量也必须在编译器中重新设定存储器的存储模式。 在keil中,可选择small,compact,large三种方式存储数据变量: 在keil中可以用“TargetOptions”来配置这一项: 图1 选择数据存储模式 2.片内数据存储区

(1) 工作寄存器区 工作寄存器区位于片内数据存储器中的00H~1FH单元,共32字节( 如此说来每个单元是一个字节了),分成四组。每组8个字节,分别记为R0~R7. 程序默认在0区工作寄存器组存放中间运算数据。等待中断来时,中断数据工作寄存器组由0区切换到其它区域。 选择四组工作寄存器区的哪一组作为R0~R7由位于PSW寄存器的两位RS1,RS0来确定. RS1,RS0称为区开关或组开关,两位就可决定四种状态. (2)位寻址区 用户存储区位于片内数据存储器中的020H~02FH单元,共16个字节,共128位,每个字节单元的位都有一个单独的地址,分别为00H-07H,如020H.1表示020H单元的bit[1]位。020H~02FH单元可作为位寻址区。这个范围内的存储单元最大的用处就是能进行位操作,在C语言中,只能用位操作运算符(&、|、^、~、<<、>>)来对字节数据进行位操作运算。如果用汇编指令就可以直接对此片存储单片进行位操作。 如SETB, 020H.1 就将020H的bit[1]置为了1. 除了RAM此片能进行位寻址的用户存储区以外,还有一些特殊的功能寄存器( SFR )也能进行位寻址。

51单片机C语言学习笔记1

查看文章 标题:51单片机C语言学习笔记8:单片机C51编程规范 2009-04-11 09:29:11 51单片机C语言学习笔记8:单片机C51编程规范在网上找到这份单片机C51编程规范,觉得很有用,决定在以后自己编C51程序的时候用上。 1单片机C51编程规范-前言 为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范。 2 单片机C51编程规范-范围 本标准规定了程序设计人员进行程序设计时必须遵循的规范。本规范主要针对C51编程语言和keil编译器而言,包括排版、注释、命名、变量使用、代码可测性、程序效率、质量保证等内容。 3 单片机C51编程规范-总则 l 格式清晰 l 注释简明扼要 l 命名规范易懂 l 函数模块化 l 程序易读易维护 l 功能准确实现 l 代码空间效率和时间效率高 l 适度的可扩展性 4 单片机C51编程规范-数据类型定义 编程时统一采用下述新类型名的方式定义数据类型。 建立一个datatype.h文件,在该文件中进行如下定义: typedef bit bool; // 位变量// typedef unsigned char uint8; // 无符号8位整型变量// typedef signed char int8; // 有符号8位整型变量// typedef unsigned int uint16; // 无符号16位整型变量// typedef signed int int16; // 有符号16位整型变量// typedef unsigned long uint32; // 无符号32位整型变量// typedef signed long int32; // 有符号32位整型变量// typedef float fp32; // 单精度浮点数(32位长度) // typedef double fp64; // 双精度浮点数(64位长度) // 5 单片机C51编程规范-标识符命名 5.1 命名基本原则 l 命名要清晰明了,有明确含义,使用完整单词或约定俗成的缩写。通常,较短的单词可通过去掉元音字母形成缩写;较长的单词可取单词的头几个字母形成缩写。即"见名知意"。

单片机读书笔记

单片机读书笔记 【篇一:51单片机读书笔记】 单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能 力(如算术运算、逻辑运算、数据传送、中断处理)的微处理器(cpu),随机存取数据存储器(ram),只读程序存储器(rom),输入输出电路 (i/o口),可能还包括定时/计数器,串行通信口(sci),显示驱动电路(lcd 或led 驱动电路),脉宽调制电路(pwm),模拟多路转换器及 a/d转换器等电路集成到一个单块芯片上,构成一个最小然而完善的计算机系统。 软件特征是指指令系统特性和开 发支持环境,指令特性即单片机的寻址方式、数据处理方式、逻辑 处理方式、输入输出特性及对电源的要求等等 现在常规的单片机普遍都是将中央处理器(cpu)、随机存取数据存储(ram)、只读程序存储器(rom)、并行和串行通信接口,中断系统、 定时电路、时钟电路集成在一个单一的芯片上,增强型的单片机集 成了如a/d 转换器、pmw(脉宽调制电路)、wdt(看门狗),有些单片 机将lcd(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的 单元电路就更多,功能就越强大 单片机按内部数据通道的宽度,可分为4位、8 位、16 位及32位 单片机。 单片机的特点可归纳为以下几个方面: 1) 集成度高 2) 存储容量大 3) 外部扩展能力强 4) 控制功能强 5) 低电压、低功耗 6) 低电压、低功耗 7) 可靠性高 mcs-51 系列单片机还有颇具特色的21 个特殊功能寄存器sfr 利用sfr 可完成对定时 器、串行口、中断逻辑的控制,这就使得单片机可以把定时/计数器、串行口、中断逻辑等集成在一个芯片上。 。mcs-51 单片机组成结构中包含

超详细的STM32单片机学习笔记汇总

超详细的STM32单片机学习笔记汇总 1、AHB系统总线分为APB1(36MHz)和APB2(72MHz),其中2>1,意思是APB2接高速设备 2、Stm32f10x.h相当于reg52.h(里面有基本的位操作定义),另一个为stm32f10x_conf.h 专门控制外围器件的配置,也就是开关头文件的作用 3、HSE Osc(High Speed External Oscillator)高速外部晶振,一般为8MHz,HSI RC(High Speed InternalRC)高速内部RC,8MHz 4、LSE Osc(Low Speed External Oscillator)低速外部晶振,一般为32.768KHz,LSI RC (Low Speed InternalRC)低速内部晶振,大概为40KHz左右,提供看门狗时钟和自动唤醒单元时钟源 5、SYSCLK时钟源有三个来源:HSI RC、HSE OSC、PLL 6、MCO[2:0]可以提供4源不同的时钟同步信号,PA8 7、GPIO口貌似有两个反向串联的二极管用作钳位二极管。 8、总线矩阵采用轮换算法对系统总线和DMA进行仲裁 9、ICode总线,DCode总线、系统总线、DMA总线、总线矩阵、AHB/APB桥 10、在使用一个外设之前,必须设置寄存器RCC_AHBENR来打开该外设的时钟 11、数据字节以小端存储形式保存在存储器中 12、内存映射区分为8个大块,每个块为512MB 13、 FLASH的一页为1K(小容量和中容量),大容量是2K。 14、系统存储区(SystemMemory)为ST公司出厂配置锁死,用户无法编辑,用于对FLASH 区域进行重新编程。所以我们烧写程序务必选择BOOT1 = 0,这样通过内嵌的自举程序对FLASH进行烧写,比如中断向量表和代码 15、STM32核心电压为1.8V

单片机中断及串口通信学习笔记

中断52单片机中断级别 INT0:由P3^2端口线引入,低电平或下降沿引起。INT1:由P3^3端口线引入,低电平或下降沿引起。T0:由T0计数器计满回零引起。 T1:由T1计数器计满回零引起。 T2:由T2计数器计满回零引起。 TI/RI:串行口发送完成一帧字符发送/接收后引起。 与中断相关的寄存器的介绍 中断允许寄存器IE 中断优先级寄存器IP

定时器/计数器工作方式寄存器TMOD GATE=0,定时器/计数器启动与停止仅受TCON中TRX(X=0,1)来控制。 GATE=1,定时器/计数器启动与停止由TCON中的TRX(X=0,1)和INTX(X=0,1)上的电平状态来共同控制。 C/T?=0,为定时器模式;C/T?=1,为计数器模式。 M1M0-工作方式选择位 定时器/计数器控制寄存器TCON 硬件自动清零。 TRX:由软件清零关闭定时器X。当GATE=1,INTX=1时,TRX置1启动定时器X;当GATE=0时,TRX置1启动定时器X。 IEX:INTX请求标志。当ITX=0时,INTX为电平触发方式,每个机器周期的S5P2采样INTX,若INTX脚为低电平,则将IEX置1,否则IEX清零;当ITX=1时,INTX为跳变沿触发方式,当第一个机器周期采样到INTX为低电平时,则将IEX置1。IEX=1,表示INTX正在向CPU申请中断。当CPU响应中断,转向中断服务程序时,该位由硬件清零。 ITX:INTX触发方式选择位。 ITX=0,INTX为电平触发方式,引脚INTX上低电平有效。 ITX=1,INTX为跳变沿触发方式,引脚INTX上的电平从高跳到低的负跳变有效。

TI6638单片机学习笔记

0705 求code composer studio arm开发资料 按你说的顺序,给你个目录:(视频教程) 1.看天翔电子的ARM7教程,看完后你会掌握ARM7硬件的相关和启动代码的分析,UC-OS2操作系统,uCLinux操作系统的源代码分析及在ARM7开发板上的移植(也可先看王华斌的ARM视频教程,不过里面没有uCLINUX部分而已) 2.而后学习内核和驱动程序的编写,看看内核完全注释和LINUX驱动开发第三版之前最好有个板子,这样入手较快! 祝你好运! 0706 嵌入式处理器大体可分为以下几类: 1 嵌入式微处理器 嵌入式微处理器可谓是通用计算机中CPU的微缩版。相对于通用CPU,嵌入式微处理器具有体积小、功耗少、成本低的优点,当然在速度上也慢一些嵌入式微处理器在软件配置上常常可以运行嵌入式操作系统,应用于比较高档的领域。典型的如32位的ARM、64位的MIPS。 2 嵌入式微控制器 嵌入式微控制器的最大特点是单片化,常称为单片机。顾名思义,单片机就是将众多的外围设备(简称外设,如A/D,IO等)集成到一块芯片中,从而大幅度降低了成本。单片机非常适合控制领域,典型的如大名鼎鼎的51系列。 3 专用微处理器 相对于上述比较通用的类型,专用微处理器是专门针对某一特定领域的微处理器。如昂贵的视频游戏机微处理器等。DSP本质上也属于专用微处理器 DSP对系统结构和指令进行了优化设计,使其更适合于执行数字信号处理算法(如FFT,FIR等)。DSP运行速度非常快,在数字信号处理的方方面面大显身手。由于越来越广泛的领域需要高速数字信号处理,DSP也有越来越通用化的倾向,常常可以把DSP单独列成一类。 ARM,DSP,FPGA区别 ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉

AVR单片机学习笔记–LCD1602模块

AVR 单片机学习笔记–LCD1602模块 学完51单片机再来学AVR,感觉很容易上手,LCD1602在学51的时候学过,所以可以直接修改相关的IO口操作即可。现在顺便也复习一下。1602可以显示两行字符,每行可以显示16个字符,可惜的是不能显示中文,在我调试的时候它帮我不少的忙。 一、主要技术参数: 显示容量: 16X2个字符(两行,每行16个字符) 模块工作电源: 4.5~ 5.5V 模块工作电流: 2.0mA (5.0V) 模块最佳工作电源: 5.0V 字符尺寸: 2.95X4.35(WXH)mm

二、IO引脚功能 LCD1602A模块引脚功能编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地(模块供电) 9 D2 Data I/O 2 VDD 电源正极(模块供电) 10 D3 Data I/O

VL 接在滑动电阻可以调节对比度 11 D4 Data I/O 4 RS 数据/命令选择端 (H/L) 12 D5 Data I/O 5 R/W 读/写选择端 (H/L) 13 D6 Data I/O 6 E 使能信号(通知芯片读取数据) 14

Data I/O 7 D0 Data I/O 15 BLA 模块背光灯正极 8 D1 Data I/O 16 BLK 模块背光灯负极 三、基本操作时序: 读状态:输入:RS=L、RW=H、E=H 模块输出:状态字=D0~D7 写指令:输入:RS=L、RW=L、D0~D7=指令码、E=H 模块输出:无

读数据:输入:RS=H、RW=H、E=H 模块输出:数据=D0~D7 写数据:输入:RS=H、RW=L、D0~D7=数据、E=H 模块输出:无 状态字说明(因为单片机的速度可能快过1602,所以需要判断当1602是否在忙,或者延时。) STA7 STA6 STA5 STA4 STA3 STA2 STA1 STA0 D7 D6 D5 D4 D3

51单片机读书笔记

单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算、逻 辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时/计数器,串行通信口(SCI),显示驱动电路(LCD 或LED 驱动电路),脉宽调制电路(PWM),模拟多路转换器及A/D转换器等电路集成到一个单块芯片上,构成一个最小然而完善的计算机系统。 软件特征是指指令系统特性和开 发支持环境,指令特性即单片机的寻址方式、数据处理方式、逻辑处理方式、输入输出特性及对电源的要求等等 现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序 存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一个单一的芯片上,增强型的单片机集成了如A/D 转换器、PMW(脉宽调制电路)、WDT(看门狗),有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大 单片机按内部数据通道的宽度,可分为4位、8 位、16 位及32位单片机。 单片机的特点可归纳为以下几个方面: 1)集成度高 2)存储容量大 3)外部扩展能力强 4)控制功能强 5)低电压、低功耗 6)低电压、低功耗 7)可靠性高 MCS-51 系列单片机还有颇具特色的21 个特殊功能寄存器SFR 利用SFR 可完成对定时 器、串行口、中断逻辑的控制,这就使得单片机可以把定时/计数器、串行口、中断逻辑等集成在一个芯片上。 。MCS-51 单片机组成结构中包含 运算器、控制器、片内存储器、并行I/O 口、串行I/O 口、定时/计数器、中断系统、振荡器等功能部件 SP 是堆栈指针寄存器,PC 是程序计数器,PSW 是程序状态字寄存器, DPTR是数据指针寄存器。

单片机STM32学习笔记

推挽输出与开漏输出的区别 推挽输出:可以输出高,低电平,连接数字器件; 开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内). 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止. 要实现“线与”需要用OC(open collector)门电路.是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小,效率高。输出既可以向负载灌电流,也可以从负载抽取电流。 问题: 很多芯片的供电电压不一样,有3.3v和5.0v,需要把几种IC的不同口连接在一起,是不是直接连接就可以了?实际上系统是应用在I2C上面。 简答: 1、部分3.3V器件有5V兼容性,可以利用这种容性直接连接 2、应用电压转换器件,如TPS76733就是5V输入,转换成3.3V、1A输出。 开漏电路特点及应用 在电路设计时我们常常遇到开漏(open drain)和开集(open collector)的概念。所谓开漏电路概念中提到的“漏”就是指MOSFET的漏极。同理,开集电路中的“集”就是指三极管的集电极。开漏电路就是指以MOSFET的漏极为输出的电路。一般的用法是会在漏极外部的电路添加上拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。如图1所示:

组成开漏形式的电路有以下几个特点: 1. 利用外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。IC内部仅需很下的栅极驱动电流。如图1。 2. 可以将多个开漏输出的Pin,连接到一条线上。形成“与逻辑” 关系。如图1,当PIN_A、PIN_B、PIN_C任意一个变低后,开漏线上的逻辑就为0了。这也是I2C,SMBus等总线判断总线占用状态的原理。 3. 可以利用改变上拉电源的电压,改变传输电平。如图2, IC的逻辑电平由电源Vcc1决定,而输出高电平则由Vcc2决定。这样我们就可以用低电平逻辑控制输出高电平逻辑了。 4. 开漏Pin不连接外部的上拉电阻,则只能输出低电平(因此对于经典的51单片机的P0口而言,要想做输入输出功能必须加外部上拉电阻,否则无法输出高电平逻辑)。 5. 标准的开漏脚一般只有输出的能力。添加其它的判断电路,才能具备双向输入、输出的能力。 应用中需注意: 1. 开漏和开集的原理类似,在许多应用中我们利用开集电路代替开漏电路。例如,某输入Pin要求由开漏电路驱动。则我们常见的驱动方式是利用一个三极管组成开集电路来驱动它,即方便又节省成本。如图3。 2. 上拉电阻R pull-up的阻值决定了逻辑电平转换的沿的速度。阻值越大,速度越低功耗越小。反之亦然。 Push-Pull输出就是一般所说的推挽输出,在CMOS电路里面应该较CMOS输出更合适,应为在CMOS里面的push-pull输出能力不可能做得双极那么大。输出能力看IC内部输出极N 管P管的面积。和开漏输出相比,push-pull的高低电平由IC的电源低定,不能简单的做逻辑操作等。push-pull是现在CMOS电路里面用得最多的输出级设计方式。 at91rm9200 GPIO 模拟I2C接口时注意!!

HJ-1G开发板学习笔记2

HJ-1G开发板学习笔记二 (单片机常用驱动与K软件的安装使用方法) 一:驱动的安装 在HJ-1G光碟中找到USB-COM串口驱动,直接点击安装,如何安装可以参考专用的安装视频,视频中会一步一步指导你如何做的,USB转串口线如下图。 插入USB转串口下载线后找到新硬件,自动安装完成,用STC下载程序时注意COM 接口要同安装的下载线COM口一样,可以在我的电脑上,设备管理器上查看到慧净电子USB下载线的COM口是多少。 1、串口线驱动安装方法: A:找到光碟中的HJ-USB驱动,点击打开下面驱动安装包。 B:出现以下图片。

C:点击INSTALL安装,自动完成后出现如下图片,按确定关掉后,插入HJ-USB(兰色线)会找到新硬件,按上面的说明安装驱动后就可以使用啦。 。 2、STC下载软件的安装 A:在HJ-1G光碟中找到STC下载软件,直接点击安装,如何安装可以参考专用的安装视频,视频中会一步一步指导你如何做的,下面说说安装方法,击《STC-ISP下载编程烧录软件》,会自动解压到一个目录中, 要

记住目录位置,并在解压的位置上找到如果想下载程序时直接点开 就可以用来下载程序了。 2、STC下载软件的使用方法(注意,如果你的系统是WIN7第一次用下地软件时请用管理员权限打一次软件,以后可以不用,直接点开就可以了,请一定要这样做,否测下载软件是用不了的,在没有最新版软件之前,这个方法最实用。 如上图,左边的COM口是用来接到电脑上的,另一头接到电脑COM口,也 可以用USB转串口线,别一头接到电脑USB口上。 A、打开下载软件,出现如下图片注意:在点击之前,一定要关掉单片机电源开关,点击后2至5秒后打开电源开关。

51单片机自学笔记(基础部分)

一、51单片机的硬件结构 1. 硬件结构框图 说明:○1微处理器(CPU):51单片机含一个8位CPU,与通用的CPU功能基本相同,含运算器和控制器,不仅可以字节处理,还可以位处理。例如:未处理、查表、状态检测、中断处理等。 ○2数据存储器(RAM):51为128B,52为256B;片外最大可扩展到64K。 ○3程序存储器(ROM/EPROM):8031没有,8051有4K的ROM,8751有4K的EPROM;片外可扩展至64K。 ○4中断系统:5个中断源,2级优先权。 ○5定时器/计数器:2个16位定时/计数器,四种工作方式。 ○6串行口:1个全双工串行口,四种工作方式。可进行串口通信,扩展并行I/O口,多机通信 等。 ○7P1、P2、P3、P0口:四个8位并行I/O口。 ○8特殊功能寄存器(SFR):共21个,对片内部件进行管理、控制、监视;实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。 2. 引脚排列 (1)电源及时钟引脚 ○1电源引脚:Vcc(40脚)解5V电源、Vss(20脚)接地。 ○2时钟引脚:两个始终引脚XTAL1、XTAL2外接晶振,或接晶体与片内反相放大器构成振荡器。 XTAL1(19脚):内部反相放大器的输入端。若接晶振则应接地;XTAL2(18脚):内部反相放大器 的输出端。若采用外部时钟振荡器,该引脚接收时钟振荡信号。 (2)控制引脚 ○1RST/Vpd(9脚):复位信号输入,高电平有效。单片机运行时,此脚持续2个机器周期(24个时钟振荡周期)的高电平,就可复位。平时应为0.5V低电平;Vpd为第二功能,备用电源 输入端。 ○2:ALE为地址锁存允许,正常

相关主题
文本预览
相关文档 最新文档