位运算、芯片封装方式、中断、定时器

我要成为嵌入式高手之4月3、7日51单片机第一、二天!!
————————————————————————————

裸机驱动:51 -> s3c2440 -> linux

Soc片上系统

位运算

高位:MSB        地位:LSB

按位与:指定位清零

按位或:指定位置一

按位异或:同0异1,指定位翻转

MCU:微控制单元

MPU:微处理单元(有比较复杂的运算功能)

CPU:中心处理单元

GPU:图像处理单元

IDE:集成开发环境

ARM:CPU架构

        ARM也是个公司名,负责设计架构

ram:随机访问存储器

rom:只读存储器

        flash组成的存储器:非易失性

GPIO:通用目的输入输出

        general \ purpose \ in \ out

双列直插封装方式 :

贴片封装方式:

监测按键是否按下:P1.4~P1.7是否为低电平

        0:按下

        1:未按下(按键不按为高电平)

中断

什么是中断

        当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。

中断类型

        EINT(低有效):外部中断(EINT0 \ EINT1)

中断向量表

本质是个数组,装的所有元素都是指针,指针的基类型是函数

每个成员的下标代表一个中断号

注:由于arm s3c2440没有优先级嵌套,故在此中断优先级不考虑

中断使用方法

51单片机中断可以由两种方式触发:

        1、沿触发(从高到低下降沿触发)

        2、只要是低电平就会一直产生中断

需要将IE0  EX0  EA三个开关打开

开关如何使用

IP/IPH寄存器,用来设置中断优先级,在此不用 

SCON寄存器是串口1使用的中断,在此不用

T2CON寄存器是定时器2的中断,51没有定时器2,在此不用

 需要设置的是EA和EX0这两位、使用外部中断0

TF1:用来查询的且与定时器1有关

IE0:记得要顺手清零(不清零的后果是会重复执行中断)51会自动清零,但是有些就需要手动清零

IT0:设置两种触发方式

//初始化外部中断
void EINTInit(void)
{	
	P3 |= ((1 << 2)|(1 << 3));//P3.2,P3.3设置为高电平
	IE |= ((1 << 7) | (1 << 0) | (1 << 2));//IE设置第七位和第零位
	TCON |= ((1 << 0) | (1 << 2));//TCON第0位设置为1:下降沿触发模式
}

指令周期和机器周期

指令周期:1M —结构造成每12个机器周期才能执行一条指令

机器周期:12M—晶振的频率

故counter自增一次需要1/1M s,即10^-6 s / 1微秒

———————————————————————————————————————————

定时器

51提供2个定时器:定时器0和定时器1

        T0:timer0

        T1:timer1

counter相当于 TL0 和 TL1

真正要设置的只有TCON 和 TMOD

 使用定时器0主要操作TR0

定时器0:

        操作后四位

        TMOD.3 和 TOMD.4都需要清零 

        M1 = 0; M0 = 1:16位定时器

———————————————————————————————————————————

中断处理流程

1、中断源发出中断请求

2、CPU查询是否允许中断和该终端是否被屏蔽

3、CPU查询中断优先级

4、保护现场(和栈有关)

5、执行中断函数

6、恢复现场

  • 30
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值