在使用定时/计数器之前需要先通过定时/计数器的方式控制字来设置其工作方式。在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。顺便说一下,TMOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软[详细]
首先来手册里的一段话。三种不同的时钟源可被用来驱动系统时钟 (SYSCLK)· HSI振荡器时钟· HSE振荡器时钟· PLL时钟一般用的是PLL时钟,后面有证据。我们可以通过库函数获取各时钟值void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)在我的系统里,把时钟值[详细]
什么时钟?首先我们先讲讲什么是时钟。时钟就是单片机的心脏。每跳动一下。整个单片机的各个电路就同步的动作一下。就好像我们做广播体操的时候 广播上喊的节拍1234 2234 3234。。。。然后我们全部的同学就按照这个节奏进行一个个动作。节拍越快我们动作越快。节拍越慢我们动作的越慢。内部时钟和外部时[详细]
STM32有多个时钟源,分别是 HSI:上电默认启动,因精度不高所以先不采用,以后如果需要再使用HSE:外部高速时钟,系统时钟一般采用它,经过PLL倍频作为系统同时钟LSE:外部低速时钟,一般专门用于RTC,等到RTC模块时再使用LSI:内部低速时钟,精度不高,一般用于IWDGCLK 时钟系统框图如下: &nbs[详细]
今天,公司丢了一个新的STM32控制板让我调试,一想还是很好调试。结果傻眼了,晶振是12MHZ啊。网上找了一些资料,现在整理一下,供大家参考使用。具体步骤如下:第一步,全局搜索HSE_VALUE#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */修改为:#defin[详细]
定时器T2的功能比T1、T0都强大,但描述它的资料不多,可能是使用得比较少的缘故吧。它是一个16位的具有自动重装和捕获能力的定时/计数器,它的计数时钟源可以是内部的机器周期,也可以是P1.0输入的外部时钟脉冲。T2的控制寄存器的功能描述如下:TCON2(T2的控制寄存器),字节地址0C8H:位地址 0CFH 0CEH 0CDH 0[详细]
void TIM3_GPIOB5_Config(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE);GPIO_AFIODeInit(); //将重映射恢复为初始值 //在程序中只可以调用一次,不然之前的设置就取消了GPIO_PinRemapC[详细]
单片机定时器的使用可以说非常简单,只要掌握原理,有一点的C语言基础就行了。要点有以下几个:1. 一定要知道英文缩写的原形,这样寄存器的名字就不用记了。理解是最好的记忆方法。好的教材一定会给出所有英文缩写的原形。2. 尽量用形像的方法记忆。比如TCON和TMOD两个寄存器各位上的功能,教程一般有[详细]
STM32的PA.8引脚具有复用功能——时钟输出(MCO), 该功能能将STM32内部的时钟通过PA.8输出.操作流程:1)、设置PA.8为复用Push-Pull模式。GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;G[详细]
数据位传送指令MOV C, bit ;bit 可直接寻址位 C←(bit)MOV bit,C ;C 进位位 (bit) ← C 位变量修改指令CLR&nbs[详细]
PIC单片机的每四个时钟周期为一个内部指令周期例如:8MHz的晶振,则内部指令周期为1/(8/4)= 0.5 uS实例一:35us, 8MHz的晶振, 8位定时器, 分频比1/2 , 初值 E4实例二:156.25us , 32768Hz的晶振, 8位定时器, 分频比1/32 , 初值 FC计算方法一: 35 = =(256-初值)*分频*4/晶振 + 14/分频 =(256-初值)+14/2计[详细]
MCS-51单片机指令系统按功能来分有五种.数据传送指令:MOV Rn,#data ;立即寻址,data→RnMOV A,@Ri ;间接寻址,((Ri))→A,i=0,1MOV direct,Rn ;寄存器寻址,(Rn)→directMOV @Ri,A ;寄存器寻址,(A)→(Ri)MOV DPTR,#data16 ;把16位立即数传送到数据指针DPTR,高8位送DPH,低八位送DPL.(例:MOV [详细]
通常情况下,在普通的汇编子程序中用RET做返回,在中断服务子程序中用RETI起中断返回作用。两条指令都能从堆栈中弹出断点地址并装入PC中,使CPU回到原来主程序的断点处继续运行。然而,RET和RETI有本质的区别:当某一中断源响应后,单片机中的标志寄存器flag H和flag L其中的一个将会自动置位,用于阻止比它低[详细]
单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。分析指令阶段的任务是:将指令寄存器中的指令操作码取出[详细]
前面那些流水灯的例程,我们已经习惯了“位”一位就是一盏灯的亮和灭,而我们学的指令却全都是用“字节”来介绍的:字节的移动、加法、减法、逻辑运算、移位等等。用字节来处理一些数学问题,比如说:控制冰箱的温度、电视的音量等等很直观,能直接用数值来表在。可是如果用它来控制一些开[详细]
指令格式 功能简述 字节数 周期一、数据传送类指令MOV A, Rn 寄存器送累加器 1 1MOV Rn,A 累加器送寄存器 1 1MOV A ,@Ri 内部RAM单元送累加器 1 1MOV @Ri ,A 累加器送内部RAM单元 1 1MOV A ,#data 立即数送累加器 2 1MOV A ,direct 直接寻址单元送累加器 2 1MOV direct ,A 累加器送直接寻址单元[详细]
1.串行口方式0应用编程 8051单片机串行口方式0为移位寄存器方式,外接一个串入并出的移位寄存器,就能扩展一个并行口。 <单片机串行口通信程序设计硬件连接图>例:用8051单片机串行口外接CD4094扩展8位并行输出口,如图所示,8位并行口的各位都接一个发光二极管,要求发光管呈流水[详细]
数据传递类指令以累加器为目的操作数的指令MOV A,RnMOV A,directMOV A,@RiMOV A,#data第一条指令中,Rn代表的是R0-R7。第二条指令中,direct就是指的直接地址,而第三条指令中,就是我们刚才讲过的。第四条指令是将立即数data送到A中。下面我们通过一些例子加以说明:MOV A,R1 ;将工作寄存器R1中的[详细]
扫码关注我们
0755-82591179
邮箱:ivy@yingtexin.net
地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A09
Copyright © 2014-2025 颖特新科技有限公司 All Rights Reserved. 粤ICP备14043402号-4