微机原理A4纸资料(汇编及之后)

泪眼朦胧 分享 2022-05-06 下载文档

CPU 寄存器

累加器 (A)

索引寄存器(H:X)

堆栈指针(SP)

16位地址指针寄存器指向下一个有效的堆栈位置。堆栈可以放置在

包含RAM的 64 Kbyte地址空间的任意位置,其大小可以为任何RAM

中的有效值。堆栈用来自动保存子程序调用的返回地址、中断中CPU

寄存器和局部变量的返回地址。AIS(立即加堆栈指针,堆栈处理指令)

指令对SP加上一个8位有符号立即数。这经常用于对堆栈中的局部

变量分配和取消分配空间。

向上生长型(如51单片机)

特性:先加后压,先弹后减

向下生长型(飞思卡尔单片机)

特性:先压后减,先加后弹

程序计数器(PC)

条件代码寄存器(CCR)

寻址模式

寻址模式定义为CPU访问操作数和数据的方法。

对于BRCLR,BRSET, CBEQ和DBNZ,在指令设置表格中列出的寻址模

式是用于访问测试操作数的寻址模式,访问分支目的则需要使用相关

寻址模式。

S08的指令的寻址方式可以分为以下几类:

1.隐含寻址(Inherent)

2.立即寻址 (Immediate)

3.直接寻址 (Direct)

4.扩展寻址 (Extended)

5.变址寻址 (Indexed)

?无偏移量,8位,16位偏移量

6.相对寻址(Relative)

7.存储器到存储器寻址方式(Memory to Memory)

存储器到存储器的寻址方式

1.立即数到直接寻址

2.直接寻址到直接寻址

3.自动变址寻址到直接寻址

4.直接寻址自动变址寻址

__________________________________________________________

中断系统

微机的输入输出方式

一.无条件传送方式

二.查询传送方式(条件传送方式)

查询式传送的优点:通用性强,硬件结构简单。

缺点:查询时占用CPU,效率低。

三.中断传送方式

串行通信与并行通信

并行通信:数据的各位(bit)同时进行传送。

优点:传送速度快

缺点:需用传送线多,不适于远距离传送,

串行通信:数据的各位逐个按顺序传送。

优点:需用传送线少,适于远距离传送。

缺点:传送速度较低。

串行通信的传输制式

单工:数据只能单方向传送(发送或接收)。

半双工:数据可以双向传送,但只有一个通信回路,故不能同时发送

和接收。

全双工:数据可以同时双向传送,具有两个独立的通信回路。

异步通信与同步通信

异步通信:通信双方无统一的时钟脉冲控制。数据以“帧”(frame)

为单位传送。

帧格式:起始位、数据位、奇偶校验位、停止位。

同步通信:传送双方有统一时钟脉冲协调同步。数据以帧为单位传送。

帧格式:同步字符、(1-2个,1个一般用ASCII码SYNC-16H,

2个一般用国际通用码EB90H)数据字符、(个数不限,一般用ASCII

码)、校验字符(1-2个)

波特率:每秒钟传送的二进制代码的位数,单位为b/S,即

bps

串行通信协议(异步通信)

⑴.起始位:信号线上无数据传送时为1开始传送时发一个0信号,

即起始位。

⑵.数据位:紧接起始位之后,个数一般为7-8位。

⑶.奇偶校验位:紧接数据位之后。一般为1位。

奇校验:数据位与奇偶位中1的总个数为奇数。

偶校验:数据位与奇偶位中1的总个数为偶数。

⑷.停止位:一帧数据的结束标志,一般为“1”。

___________________________________________________________

串行外围接口SPI原理及应用

QG8的SPI特点

1、主从模式可选

2、全双工或单线模式可选

3、可编程波特率

4、收发双缓冲

5、时钟相位与极性可选

6、从机片选输出

7、高或低位在前传送模式可选。

____________________________________________________________

寄存器

键盘中断寄存器(KBI)

八位定时模块(MTIM)

该计数器为只读,写入任何数值对其没有影响,复位时为0x00。

⑷ MTIM模寄存器——MTIMMOD

该8位可读写的寄存器保存的数值是计数器计数的最大值,当计数器

计数到该最大值时会翻转到0,同时设置TOF标志。如果给该寄存器写

入数值0x00,会导致计数器成为一个没有约束的自由运行的计数器,

给MTIMMOD写入数值回导致计数器回0x00,而且溢出标志TOF也会清

零。MTIMMOD复位时为0x00。

十六位定时模块(TPM)

TPM计时寄存器高位TPMCNTH:

TPM计时寄存器低位TPMCNTL:

⑶定时器模寄存器——TPMMODH:TPMMODL

TPM模寄存器高位TPMMODH:

TPM模寄存器低位TPMMODL:

该可读/写寄存器定义了计数器的最大数值。

读取该寄存器将返回从接收数据缓冲器中读取的数据。写该寄存器将

会把数据写入发送数据缓冲器。

当 SPI 被配置为主模式时,写入数据到传输数据缓冲器发起一次 SPI

传输,即启动SPI。

一、I/O口输入输出实验

实验内容

⑴结合开发板电路图,用跳线

夹连接对应LED引脚。即LED1、

LED2分别与PTB6、PTB7相连接。

将PTB口定义为输出接口。对端

口写0即可点亮LED灯。单步运

行观察实验现象。

⑵结合开发板电路图,用跳线

夹再将开发板上的按键SW1、SW2

连到PTA2。将PTA口定义为输入

口,将PTB口定义为输出口。按

下SW1时点亮LED1、LED2。按下

SW2时熄灭LED1、LED2。

参考程序

⑴直接点亮LED灯,其参考程序

如下。

C语言程序:

#include

#include "derivative.h"

/* 头文件 */

void main(void) {

PTBDD=0xff; /*

定义PTB口为输出口 */

PTBD=0xff; /*

输出高电平,LED灯灭*/

PTBD=0x00; /*PTB口输

出低电平,即PTB6、PTB7输出低

电平 */

for(;;)

{ __RESET_WATCHDOG(); /* 清看

门狗 */

}

/* 死循环 */

}

⑵按键控制LED灯

参考C语言程序如下:

#include

#include "derivative.h"

/* 头文件*/

void main(void) {

PTADD=0x00;

/* 初始化PTA口,定义为输入口

*/

PTBDD_PTBDD6=1;

PTBDD_PTBDD7=1;

/* PTB6,PTB7定义为输出口*/

PTBD_PTBD6=1;

PTBD_PTBD7=1;

/* PTB6,PTB7均写为1,开始时

灯熄灭 */

for(;;) {

if(PTAD_PTAD2==0)

{

PTBD_PTBD6=0;

PTBD_PTBD7=0;

}

else

if(PTAD_PTAD3==0)

{

PTBD_PTBD6=1;

}

else

__RESET_WATCHDOG(); /* 清看门

狗 */

}

}

二、键盘中断实验

实验内容

使能KBIP2、KBIP3,进而对LED1、

LED2进行控制。实现当按下SW1

时,LED1亮、LED2灭,当按下SW2

时,LED1灭、LED2亮。在中断函

数入口处设置断点,单步运行观

察实验现象。

参考程序

#include /* for

EnableInterrupts macro */

#include "derivative.h" /*

include peripheral

declarations */

void main(void) {

DisableInterrupts;

/*关中断总允许 */

PTADD_PTADD2=0;

PTADD_PTADD3=0;

/*PTA2、PTA3定义为输入口*/

PTBDD_PTBDD6=1;

PTBDD_PTBDD7=1;

/*PTB6、PTB7定义为输出口*/

PTBD_PTBD6=1;

PTBD_PTBD7=1;

/*LED灯均熄灭*/

KBISC_KBIE=0;

KBIES=0x00;

/*下降沿/低电平触发*/

KBIPE=0x0C;

/*键盘中断开启即KBIP2、KBIP3

键盘中断开启*/

KBISC_KBACK=1;

/*清除任何错误中断*/

KBISC_KBIE=1;

/*键盘中断允许*/

EnableInterrupts;

/* 开中断总允许*/

for(;;) {

__RESET_WATCHDOG();

}

}

void interrupt 18 Keyboard( )

{

KBISC_KBACK=1;

KBISC_KBIE=0;

/*禁止键盘中断*/

if(PTAD_PTAD2==0){

PTBD_PTBD7=1;

}

else if(PTAD_PTAD3==0) {

PTBD_PTBD6=1;

PTBD_PTBD7=0;

}

else __RESET_WATCHDOG();

KBISC_KBIE=1;

/*开启键盘中断*/

}

三、定时器实验

实验内容

⑴按照查询法,利用8位定时模

块——MTIM进行定时,使得LED

灯实现亮3秒、灭3秒、亮3秒、

灭3秒……无限循环的现象。

⑵采用中断法,利用16位TPM模

块编程,实现LED灯出现亮2秒、

灭2秒、亮2秒、灭2秒……无

限循环的现象。

⑶利用TPM的PWM模块,在通道0

处产生边沿排列方式的方波,周

期为1ms,占空比为25%。用示波

器观察并记录波形。

⑷利用TPM的PWM模块,在通道1

处产生中心排列方式的方波,周

期为1ms,占空比为25%。用示波

器观察并记录波形。

参考程序

⑴查询法8位定时模块(MTIM)

定时的参考程序。本程序采用内

部总线时钟(4MHZ),并64分频,

定时器溢出值为0xFA,外部采用

最大值为750的一个递减循环。

750*64*250/4M=3秒。

#include

#include "derivative.h"

int a;

/*定义循环参数*/

void main(void)

{

DisableInterrupts;

/*禁止中断*/

PTBDD=0xff;

PTBD=0xff;

/*初始化B口*/

a=750;

MTIMCLK=0x06;

/*采用内部总线时钟,且64分频

*/

MTIMMOD=0x0FA;

MTIMSC=0x20;

/*启动定时器 */

while(1)

{

__RESET_WATCHDOG();

{

MTIMSC_TOF=0;

a-=1;

if(a==0)

{

a=750;

PTBD=~PTBD;

}

}

}

}

⑵中断法16位定时模块(TPM)

的参考程序。本程序采用内部总

线时钟,并128分频,定时器溢

出值为0xF424(十进制为

62500),62500*128/4M=2秒。

#include

#include "derivative.h"

void main(void) {

EnableInterrupts;

PTBDD=0xff;

PTBD=0xff;

TPMMODL=0x24;

TPMMODH=0x0f4; /*

定时2秒*/

TPMSC=0x4f; /*

开中断,采用内部总线时钟,并

128分频 */

for(;;) {

__RESET_WATCHDOG();

}

}

void interrupt 7 TPM(){

PTBD=~PTBD;

/*B口送低电平,点亮LED1和

LED2*/

TPMSC_TOF=0;

/*清中断标志 */

}

⑶利用TPM模块边沿排列方式产

生1ms方波,占空比为25%。采用

内部总线时钟,分频数为1,模寄

存器值为0x0FA0(十进制为4000),

通道0 的通道值寄存器值为

0x03E8(十进制为1000)。

#include

#include "derivative.h"

int a;

void main(void) {

EnableInterrupts;

TPMSC=0x08; /*

工作在边沿对齐PWM模式,选择

总线时钟工作,预分频因子为1*/

TPMMODH=0x0F;

TPMMODL=0x0A0; /*

向模寄存器写初值*/

TPMC0SC=0x28; /*

高为真脉冲*/

TPMC0VH=0x03; /*

向通道1定时寄存器写初值*/

TPMC0VL=0x0E8;

TPMC0SC_CH0IE=1; /*

允许通道1中断*/

for(;;)

{ __RESET_WATCHDOG(); }

}

void interrupt 5 TPM0() {

a=TPMC0SC;

TPMC0SC_CH0F=0; /*

清除中断标志位*/

TPMC0VH=0x03; /*

向通道寄存器重新装初值*/

TPMC0VL=0x0E8;

}

⑷利用TPM模块中心排列方式产

微机原理A4纸资料(汇编及之后).doc 将本文的Word文档下载到电脑

下一篇:《灯光》读书笔记范文五篇

相关推荐
相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xxxxxx QQ:xxxxxx