中断,打个比方,你当前正在宿舍看着单片机的书,突然,宿舍门响了,有敲门声;你就放下了看书这事,起来去开宿舍门,看是谁;最终是发小广告的,你关门回来继续看书。这就是一个完整的中断过程。你看书,是你正在做的事,敲门声,这就是中断源,中断信号;你放下书去开门,就是一个中断,开门后看书小广告,这就[详细]
一.定时器相关寄存器工作方式寄存器(TMOD)该寄存器用于设置定时/计数器的工作方式,低四位用于定时器0,高四位用于定时器1。GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚INT0/1也为高电平时,才能启动定[详细]
最近在写一个人机界面,由于硬件同事布板的问题,必须要用到串口4,先开始我还觉得没什么,就是把USART1改成4以及改下开启时钟和配置引脚。但是事实证明我的想法是多么愚蠢,调了整整2天,UART4发送很好,但是就是在接收时死活的卡在中断之前,就会进入HardFaultException B HardFaultException。真是百思不得[详细]
中断系统的使用极大的提高了CPU的利用率。中断是一种机制,这种机制实现的过程可分为请求-->响应-->服务-->返回。可编程中断控制器8259A是Intel公司专为80x86 CPU控制外部中断而设计开发的芯片。其内部结构及引脚图如下:中断申请的过程可大概描述为:中断源发生-----》(此中断未被屏蔽)中断[详细]
我对未来的规划是以功能性为主的,在功能和面积之间做以平衡是我的首要选择,而把运算放在第二位,这根我的专业有关系。里面的运算其实并不复杂,在入门阶段想尽量减少所接触的东西。不过说实话,对DSP的外设并和开发环境不满意,这是为什么STM32一出就转向的原因。下面是我自己做过的两块DSP28的全功能最小系统[详细]
什么是中断程序呢?形象的生活比喻就比如你现在这在看我的文章,突然你的朋友喊你一起去烤地瓜,这时候你就中断了看文章和朋友烤地瓜去了,烤完地瓜之后你又回来看文章。烤地瓜这件事就好比中断程序,他中断了你看文章这件事。在程序方面来说 当CPU在执行一个程序的时候,突然产生了中断事件CPU就去执行[详细]
1时钟周期=1/晶振频率M1机器周期=12(51系列12T,若1T则为1)X时钟周期 = 12(1)X(1/晶振频率M) = 1 us(1/12 us)1us机器周期脉冲数=晶振频率f/12假设12MHZ晶振工作在51单片机12T模式下,需要使用定时器进行50MS定时操作,定时器工作在方式1;12M的晶振每秒(s)可产生1M(10^6 us)个机器周期50ms就需要50&ti[详细]
一、基本概念1、 89C51有两个计数器T0和T1,89C52还有一个T2。每个计数器都是由两个8位的RAM 单元组成的,即每个计数器都是16 位的计数器,最大的计数容量是216=65536,记住是从0-65535。2、 提供给定时器的计数源又是从哪里来的呢?就是由单片机的晶振经过12 分频后获得的一个脉冲源。一个12M 的晶振[详细]
应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为2ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。请(1)计算时间常数X,应用公式X=216-t(f/12)(2)写出程序清单解:X=216-t(F/12)=216-1*10-3*6*106/12=OFEOCHORG 3000HSTART:MOV TMOD,#01HMOV TL0,#OCHMOV THO,#OFEHSETB TR0LOOP: JBC TFO,DON[详细]
#include#define uchar unsigned char#define uint unsigned intuchar i,temp;void init(){TMOD=0x01;TH0=(65536-46080)/256;TL0=(65536-46080)%256;ET0=1;EA=1;TR0=1;}void main(){i=0;temp=0x01;init();while(1);}void timer0() interrupt 1{TH0=(65536-46080)/256;TL0=(65536[详细]
应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为1ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。请(1)计算时间常数X,应用公式X=216-t(f/12)(2)写出程序清单解:解:X=216-t(F/12)=216-0.5*10-3*6*106/12=FF06HORG 3000HSTART:MOV TMOD,#01HMOV TL0,#06HMOV THO,#FFHSETB TR0LOOP: JBC TFO[详细]
从上面定时器/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1 构成。其访问地址依次为8AH-8DH。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器方式寄存器 TMOD和一个8位的定时控制寄存[详细]
一、MCS-51单片机的定时器/计数器概念单片机中的定时器和计数器其实是同一个物理的电子元件,只不过计数器记录的是单片机外部发生的事情(接受的是外部脉冲),而定时器则是由单片机自身提供的一个非常稳定的计数器,这个稳定的计数器就是单片机上连接的晶振部件;MCS-51单片机的晶振经过12分频之后提供给单片机的只[详细]
在使用定时/计数器之前需要先通过定时/计数器的方式控制字来设置其工作方式。在单片机中有两个特殊功能寄存器与定时/计数有关,这就是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[详细]

扫码关注我们
0755-82591179
邮箱:ivy@yingtexin.net
地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A09

Copyright © 2014-2025 颖特新科技有限公司 All Rights Reserved. 粤ICP备14043402号-4