当前位置:文档之家› 微处理器原理与系统设计实验

微处理器原理与系统设计实验

微处理器原理与系统设计实验
微处理器原理与系统设计实验

微处理器原理与系统设计实验手册

1 实验平台概述

自从TI推出超低功耗MSP430单片机以来,MSP430凭借其优越的性能,丰富的外设,易于上手的特性备受业内工程师的欢迎。单片机MSP430G2553集成的片内外设相当丰富,包括ADC、Timer、Comparator、Touch Key、SPI、I2C、UART等,MSP-EXP430G2 LaunchPad 是TI公司推出的1款MSP430开发板,它提供了具有集成仿真功能14/20引脚DIP插座目标板,可通过Spy Bi-Wire(2线JTAG)协议对系统内置的MSP430超值系列(G系列)进行快速编程和调试。实验平台包含MSP-EXP430G2中配套的MSP430G2553单片机片内外设实验以及2个综合性实验。

2 实验平台硬件

口袋实验平台硬件原理框图如图1所示,主要有以下部分:

图1 口袋实验平台硬件原理框图

(1)显示和输入单元:口袋实验平台利用I2C接口的TCA6416A扩展出16个低速双向IO(IO00~IO07,IO10~IO17)。4个扩展IO用于控制LCD驱动器HT1621,4个用于机械按键输入,8个用于LED灯柱。

(2)触摸按键单元:两个触摸按键占用P2.0和P2.5两个GPIO,MSP430G2系列单片机的P1口和P2口全部具备振荡功能。

(3)模拟输出单元:外部扩展了12位串行数模转换器DAC7311,使用P1.0/P1.3/P2.2三个普通GPIO控制。这三个IO同时被其他单元复用,但是由于DAC7311都是高阻输入口,所以无需跳线复用。音频功放TPA301可以将DAC输出进行电流放大,以便驱动喇叭/蜂鸣器

负载。

(4)扩展存储部分:由SPI协议控制TF卡,使用P1.1/SPI SOMI、P1.2/SPI SIMO、P1.4/SPI CLK三个USCI功能IO和1个普通P2.4控制。

(5)SLOPE ADC单元:使用拨盘电位器作为待测电阻。P1.5/Comarator_A+、P1.3、P2.2三个IO进行控制。P1.3、P2.2复用,但同样无需跳线。

(6)PWM单元:P2.1/TA1.1负责输出SPWM;轨至轨运放TLV2372负责将SPWM滤波为双极性模拟信号;TPS60400提供运放所需负电源;三电阻网络负责将双极性信号转变为单极性信号;P1.0/ADC10负责将单极性信号采样,P1.0功能复用,同样无需跳线。

表1 口袋实验平台硬件功能单元

实验首次开设时间:2015年4月28日

3 实验内容

实验一系统时钟的使用

实验目的:

学会MSP430单片机时钟系统的使用。掌握并熟练使用单片机时钟系统。

实验内容:

设定DCO频率并观察DCO频率变化。

图2 观测DCO频率变化实验原理图

实验仪器:

计算机、信号源、示波器等。

实验原理:

(1)MSP430G2553单片机的CPU时钟来源于数控振荡器DCO。

(2)CPU通过长延时控制P1.6的LED闪烁亮灭。

(3)单片机识别P1.3机械按键以后,改变DCO参数,一次设置为1M,8M,12M和16MHz,可观察到闪烁频率增加。

注意事项:不使用扩展板进行试验,图2所示跳线帽需插上实验。

工程名:4_KEY_LED_Change_DCO.

本例程主要学习单片机时钟的配置方法和前后台的编程思想:

1)主函数main()中,只调用初始化函数GPIO_Init()和执行后台程序,本例中后台程序

就是长延时改变LED(P1.6)的亮灭。

2)前后台程序结构中,前台程序就是各种中断中执行的程序。中断服务程序子函数PORT1_ISR()中不要去写“实质性”代码,只调用事件检测函数,这样能提高程序可读性。

3)事件检测函数P1_IODect(),在GPIO中断服务子函数中调用,检测按键是否“一定”被按下,然后调用事件处理函数。

4)事件处理函数P13_Onclick(),一旦被调用,就循环改写DCOCTL和BCSCTL1寄存器,从而改变DCO(也就是CPU)频率。

5)前后台程序中,前台程序的编写是难点。但只要坚持用“事件检测”“事件处理”的方法处理,就能变得井井有条。

实验结果:

对应的LED灯闪烁

作业:

ACLK,SMCLK通过设置输出到I/O口,编程实现不同频率(自选3个频率点)的输出,并且用示波器观测波形是否满足程序的要求。

实验二 MSP430单片机定时器的使用

实验目的:

学会MSP430单片机定时器的使用。

实验内容:

基于PWM的LED调光控制,即通过按键控制LED亮度。

图3 LED调光控制实验原理图

实验仪器:

计算机、信号源、示波器等。

实验原理:

1)TA(Timer_A定时器)可用于自动输出PWM而无需CPU干预。

2)编写PWM初始化、设定频率、改写占空比的库函数文件TA_PWM.c。

3)主函数调用库函数TA0_PWM_Init()完成TA_PWM初始化,然后休眠。

4)P1.3事件处理函数中,循环递增静态局部变量Bright的值,并调用库函数TA0_PWM_SetPeriod()改写占空比参数。

注意事项:不使用扩展板进行实验,图3所示跳线帽需插上实验。

工程名:6_PWM_LED.

本实验主要学习TA自动生成PWM的原理,外部库函数文件的使用,静态局部变量的使用。TA生成PWM波形的本质就是通过改写定时器的TACCR0寄存器改变PWM频率,改写TACCR1/2寄存器改变占空比。编写库函数文件方便在各种程序中都能调用。

作业:

1.在MSP430G2553单片机中,P1.0口和P1.6口通过晶体管控制两只灯泡的亮度。要求从P1.0引脚输出占空比75%的PWM调制波形,从P1.6引脚输出占空比50%的PWM调制波形。频率约为100Hz。要求编写调试,并在LaunchPad实验板上调试通过。

2.用MSP430G2553单片机设计一个可编程的分频器,要求分频过程无需CPU干预,且可通过软件随时更改分频比。从P1.0引脚(TACLK引脚)输入,从P2.0(TA1.0)输出。要求在LaunchPad实验板上调试通过。

实验三定时扫描非阻塞按键

实验目的:

学会MSP430单片机定时器的使用,掌握消除阻塞的编程方法。

实验内容:

通过WDT定时周期性读取IO状态,准确识别按键按下和弹起。

图4 定时扫描按键实验原理图

实验仪器:

计算机等。

实验原理:

1)WDT定时器设置为16ms中断。

2)在WDT中断中,记录下最近两次的IO状态存在KEY_Now和KEY_Past中。根据前高后低可判断按键按下,前低后高可判断按键松开。

3)事件处理函数P13_Onclick()根据按键状态切换LED亮灭。

注意事项:不使用扩展板进行实验,图4所示跳线帽需插上实验。

工程名:7_2_Timer_Key_LED

本实验主要学习定时扫描在消除CPU阻塞中的作用,以及消抖的原理。

CPU“无遗漏”地查询时间发生是产生阻塞代码的重要原因。

定时扫描消抖原理如图5所示。定时扫描的精髓在于扫描的间隔足够短,保证不会遗漏“事件”。

图5 定时扫描消抖原理图

作业:

编写一个按键检测函数,自行决定P1.3按键按下和按键松开手,两个LED做出何反应。

实验四长短键识别

图6 长短按键实验原理图

实验目的:

掌握状态机建模的设计方法。

实验内容:

通过WDT定时周期性读取IO状态,识别按键按下和弹起,以及按下的时间。判断为短按键则切换LED1亮灭,判断为长按键则切换LED2亮灭。

实验仪器:

计算机、示波器、万能板、按键3只、导线等。

实验原理:

1)WDT定时器设置为16ms中断。在WDT中断中,记录下最近两次的IO状态存在KEY_Now 和KEY_Past中。根据前高后低可判断按键按下,前低后高可判断按键松开,存入标志位Key_Dect中。

2)Key_Dect作为输入量,利用状态机函数Key_SM(),判断出短按键事件。分别调用各自事件处理函数进行处理。

注意事项:不使用扩展板进行实验,图6 所示跳线帽需插上实验。

工程名:7_3_Key_Long_Short_Mealy;7_4_Key_Long_Short_Moore

本实验主要学习状态机建模的方法。

1)当事件检测函数不能仅根据当前发生的事就做出最终事件判断,就需要启用状态机建模的方法了。

图7 长短按键的状态机

2)状态机的核心,状态转移图如图7所示。只有当前“状态”加上当前“事件”(输入)才能决定下一步要干什么(下一状态和当前事件处理)。

3)任何状态机都有两种“公式化”无需动脑的代码描述方法。米利状态机是先switch

(状态),然后再看发生了什么事件。摩尔状态机是先if(事件),然后switch(状态);两者没有本质区别。本实验的两个工程分别用米利状态机和摩尔状态机编写,它们之间只有Key_SM()函数不一样。图7 所示状态转换图适用于任何类型的长短键识别,只要“告诉”状态机按键按下和按键松开两个事件就可以。

作业:

1.编写一个长短按键检测函数,自行决定长短按键后,两个LED做出何反应。

2.通过万能板扩展3个按键(S1、S2、S3),按下为低电平。编写一个键盘程序。要求能够识别长、短按键并返回不同键值,而且通过LED发光二极管以及蜂鸣器来反应出不同的按键。当按键时间小于2s时,认为是一次短按键,按键时间大于2s时,认为是一次短按键,按键时间大于2s后返回一次长键(0Xc0+键值),之后每隔0.25s返回一次连续长按键(0x80+键值),发光二极管LED和蜂鸣器的动作自行决定。且要求键盘程序不阻塞CPU运行。

3.某电子表具有两个按键A和B用于操作和设置,按键功能和操作方法如下。为该电子表的按键操作程序画出状态转移图,并写出代码进行调试。

在显示时间时按A键,屏幕显示编程日期

在显示日期时按A键,屏幕显示变成秒钟

在显示秒钟时按A键,屏幕显示变成时间

在显示秒钟时按B键,秒钟归0

在时间或日期显示时按B键,屏幕“时”闪烁

在“时”闪烁时按A键,屏幕“时”加1,超过23回0

在“时”闪烁时按B键,屏幕“分”闪烁

在“分”闪烁时按A键,屏幕“分”加1,超过59回0

在“分”闪烁是按B键,屏幕“月”闪烁

在“月”闪烁时按A键,屏幕“月”加1,超过12回0

在“月”闪烁时按B键,屏幕“日”闪烁

在“日”闪烁时按A键,屏幕“日”加1,超过31回0

在“日”闪烁时按B键,屏幕回到时间显示

实验五电容触摸按键

图8 电容触摸按键实验原理图

实验目的:

掌握电容触摸按键的工作原理、设计方法和使用。

实验内容:

振荡测频法识别触摸按键,根据键值改写P1.0口LED亮灭。

实验仪器:

计算机、示波器等。

实验原理:

1)初始化GPIO的振荡功能,并将振荡信号作为TA的时钟源。

2)设置WDT中断16ms,16ms中TA定时器的TAR计数值即是电容触摸振荡的“频率”,这就是测频原理。频率高于门限,则判断手指接近,记为1;低于门限,手指离开,记为0。

3)测频结果存入二维数组Key_Buffer[Key_Num][0/1/2/3]中。Key_Num用于区分多个触摸按键的序号,0-3则是最近4次的测量结果(FIFO思想)。

4)调用判据函数Key_Judge(),只有连续4次测频结果为1,才算“电容触摸”按键真按下,只有连续4次测频结果均为0,才算按键松开。

5)将最终按键的判断结果存入全局变量TouchIN中。

6)按需查询TouchIN,即可作相应事件处理。

注意事项:

测频的“家伙”只有一套,所以多个触摸按键需要轮流测频,通过静态局部变量Key_Num 区分触摸按键编号。中间的“home”按键相当于手指同时触摸到两块铜皮,TouchIN中2位为1的情况。

工程名:8_1_TouchPad_LED.

本实验主要学习振荡IO的测频方法,FIFO原理,全局变量的作用。对于带振荡功能的IO,电容触摸按键识别本质就是测频。测频的方法也很简单,就是在16ms的WDT中断中数TA的计数值。难点在于多个触摸按键怎么处理,触摸判别的可靠性,以及如何“方便”地使用触摸按键,不能总是把它当特别麻烦的特殊案件来看待。

1)所有的工作都在16ms的WDT中断中进行,用TouchIN_Dect()函数完成触摸按键的识别,并将结果更新在局部变量TouchIN中。也就是说,只要每16ms调用一次

TouchIN_Dect(),就能保证全局变量TouchIN中存的是按键键值。

2)无论多少个触摸按键,轮流测频,并记录数据。

3)引入FIFO的概念,依靠最近4次的测频结果,判断按键是否按下。

4)TouchIN这个全局变量的地位等同于单片机IO状态寄存器PxIN。

作业:

写一个按键检测函数,自行决定触摸按键按下和松开后,两个LED做出何反应。

实验六电容触摸长短键

图9 电容触摸长短按键实验原理图

实验目的:

掌握电容触摸按键的工作原理、设计方法和使用。

实验内容:

调用电容触摸库函数,使用状态机识别出长短触摸按键,短按键控制P1.0口LED亮灭,长按键控制P1.6口LED亮灭。

实验仪器:

计算机、示波器等。

实验原理:

1)在16ms的WDT中断中,调用TouchIN_Dect()库函数,即时保持TouchIN数据准确。

2)把TouchIN当作机械按键消抖后的按键结果“Key_Dect”来使用,套入Key_SM()状态机函数,实现长短按键识别。

3)根据长短按键,调用事件处理函数。

注意事项:

按键按下和按键松开的判据为TouchIN前0后1和前1后0,这与机械按键的电平正好是相反的。

工程名:8_2_TouchPad_Long_Short_Mealy

本实验主要学习状态机代码的移植,和硬件无关的编程思想。

WDT定时调用TouchIN.c中的外部函数TouchIN_Dect()库函数就可以保证全局变量TouchIN存的就是最新的触摸按键键值,该键值是无需再消抖处理的。

机械按键的长短键状态与触摸按键的状态机没有任何区别。参考前面的图8 ,状态都是3个,按键按下和按键松开的判据替换成判断TouchIN前0后1和前1后0即可。

作业:

通过触摸按键来控制发光二极管的亮灭以及发光的亮度。

实验七超级终端人机交互

图10 超级终端实验原理图

实验目的:

学习使用UART串口通信。

实验内容:

利用计算机超级终端控制G2板上的两个LED亮灭。

实验仪器:

计算机、信号源、示波器等。

实验原理:

1)G2 LaunchPad支持直接通过USB下载口以UART方式连接计算机。

2)UART设为波特率9600,8位数据,无校验,1位停止位,可使用Grace配置后再移植。

3)引入软件FIFO,分别实现Tx和Rx数据无阻塞收发。

4)CPU对Rx数据进行各种判别,控制相应LED亮灭,并Tx数据回计算机以实现回显和提示。

注意事项:要实现UART连接,必须将图10中的RXD/TXD两个跳线横着插。

工程名:10_UART_KeyBoard.

本实验主要学习UART的配置软件FIFO的使用,文件管理。

1)UART的初始化较为复杂,可以使用Grace帮助配置寄存器,并单独建一个初始化文件。

2)由于CPU读写UART缓存的速度极快,而UART与计算机通信的速度极慢,所以CPU 等待过程中容易发生阻塞。

3)FIFO专为解决高低速设备兼容而生。后台程序中CPU读写FIFO,而不是直接读写UART缓存。UART收发中断中,再完成FIFO与UART缓存间的数据交换。

4)特别注意只要缓存中有数据,UART是可以“自动连发”的,但是一旦缓存中无数据,下次再要发送是需要手动触发的。

图11 UART工程的文件系统

作业:

设计上位机和单片机的通信协议,完成单片机和上位机的交互式通信,结合实验4,通过按键控制单片机向上位机发送控制命令,接收上位机的控制命令,同时作出相应的动作。

实验八 I2C扩展I/O口

图12 I2C扩展IO实验原理图

实验目的:

掌握学习I2C总线,掌握扩展的IO口的使用。

实验内容:

通过I2C协议扩展出的I/O口识别机械按键和控制LED。

实验仪器:

计算机、信号源、示波器等。

实验原理:

1)配置DCO频率→调用库函数TCA6416A_Init()实现TCA6416A初始化,在TCA6416A_Init()中包含了调用I2C的初始化函数I2C_Init()。

2)调用控制I2C_IO输出的函数PinOUT(),将8个LED设置为间隔亮灭。

3)看门狗定时器设为16ms唤醒CPU一次,然后执行1次PinIN(),在事件检测函数中,包含有按键事件处理函数。

4)事件处理函数的最终效果是1个按键切换2个LED的亮灭。

注意事项:

G2单片机的I2C口是P1.6和P1.7,一定要把G2板上P1.6的LED跳线拔掉,否则I2C 将无法通信。两个工程的区别在于有无软件I2C条件编译。

工程名:10_UART_KeyBoard.

本实验主要学习USCI_I2C通信模块的配置和使用、软件I2C原理、TCA6416A操作时序。

1)IC协议收发有关的库函数位于I2C.c中,如果是初次学习I2C协议,建议在I2C中条件编译,实用软件I2C,这样比较清楚的知道协议内容。

2)TCA6416A有关的操作函数位于TCA6416A.c文件中,最核心的内容可以看TCA6416A.h 中所列出的3个库函数PinIN()、PinOUT()、TCA6416A_Init()和一个全局变量TCA6316A_InputBuffer。

3)调用一次PinIN()函数,就意味着将TCA6416A的输入IO值写入全局变量TCA6416_InputBuffer中。

4)调用负责PinOUT()函数则可控制任意扩展IO的输出。

作业:

通过扩展的IO口控制发光二极管LED和蜂鸣器的鸣响,具体格式自定。

实验九 LCD显示自检

图13 LCD自检实验原理图

图14 HT1621驱动器芯片

实验目的:

掌握学习USCI_I2C的工作原理和应用,掌握学习LCD的工作原理。

实验内容:

通过I2C协议扩展出的IO控制HT1621驱动LCD做自检显示。

实验仪器:

计算机、信号源、示波器等。

实验原理:

1)配置DCO频率→调用库函数TCA6416A_Init()实现TCA6416A初始化,在TCA6416A_Init()中包含了调用I2C的初始化函数I2C_Init()。

2)分别调用LCD_DisplaySeg()、LCD_DisplayDigit()、LCD_DisplayNum()三种改写LCD 显示缓存LCD_Buffer[]的程序,改写想要实现的显示效果。

3)调用HT1621_Reflash()函数更新显存至HT1621中,LCD显示做相应变化。

4)LCD先逐段显示,再逐段消隐,然后8字段显示0-9数字,最后显示PASS。图15为LCD显示自检的效果图。

注意事项:

G2单片机的I2C口是P1.6和P1.7,一定要把G2板上P1.6的LED跳线拔掉,否则I2C 将无法通信。

图15 LCD自检实验效果图

工程名:14_LCD_SelfScan_Hard_or_Soft_I2C.

本实验主要学习HT1621驱动器的控制方法、显存隔离以及利用宏定义进行硬件隔离的编程思想。

(1)要想使用MSP-EXP430G2扩展板上这块128段式液晶很难。如图所示,单片机必须用I2C协议去控制TCA6416A输出4个控制信号CS、WR、RD、DATA,哪怕只是改变一次CS 的电平,实际工作量就是完整的I2C通信了一次。

图16 LCD控制的信号控制图

(2)如图16所示,将HT1621的控制信号线宏定义之后,无论用的是何种IO,HT1621的库函数都是一样的。这就是利用宏定义进行硬件隔离的思想。

图17 利用宏定义进行硬件隔离

(3)对于显示类的应用,显存隔离也是一种常用的编程思想。在RAM中建立显存数组LCD_Buffer[],CPU想显示什么内容就调用函数改写显存数组,这是顶层程序要干的事情。

(4)至于显存数组中的数据怎么写到HT1621硬件中,则是HT1621_Relash()函数要实现的事,这属于硬件相关的底层程序。

作业:

编写程序,完成LCD的自检,自检完成之后,显示自己的姓名(拼音)以及学号,显示格式自定。

实验十温度传感器采样及显示

图18 温度传感器采样及显示例程原理图

实验目的:

掌握学习A/D转换器的工作原理和应用,继续掌握USCI_I2C的使用。

实验内容:

通过移植CCS Example中的测温代码,将温度值显示到LCD屏幕上。

实验仪器:

计算机、信号源、示波器、万能板、10kΩ可调电阻、10kΩ电阻等。

实验原理:

CCS的Example有一个ADC10 TempSens Convert的例程,将测温代码进行移植,ADC10采样值存入long型全局变量temp,并换算为摄氏度,存入long型全局变量IntDeg。

对IntDeg进行数字拆分,并显示在LCD屏幕上。

注意事项:

G2单片机的I2C口是P1.6和P1.7,一定要把G2板上的P1.6的LED跳线拔掉,否则I2C将无法通信。

工程名:19_ADC10_Temperature.

本实验主要学习如何借助CCS的Example加快程序开发进程。

1)对于大多数外设,CCS的Example中都给出了参考例程,如图18 所示,移植例程中的代码可以显著加快学习和使用该外设的速度。

2)ADC10 TempSens Convert例程功能是对G2单片机片内温度传感器进行采样。我们直接读取采样结果,然后显示在LCD上。

3)不要忘记添加与LCD显示相关的4个C文件及其头文件。

作业:

通过通用版设计一个可调电阻器,并接入到ADC10的输入端口,利用ADC10对可调电阻进行测量,并且在LCD显示阻值,显示格式自定。

微处理器原理及其系统设计 第一章答案

第1章 1.将下列十进制数转换成二进制数: (1)58;(2)67.625; (3)5721; 解:(1)58D = 0011 1010B (2)67.625D = 0100 0011.1010B (3)5721D = 0001 0110 0101 1001B 2.将二进制数变换成十六进制数: (1)1001 0101B;(2)11 0100 1011B;(3)1111 1111 1111 1101B;(4)0100 0000 10101B;(5)0111 1111B;(6)0100 0000 0001B 解:(1)1001 0101B = 95H (2)11 0100 1011B = 34BH (3)1111 1111 1111 1101B = FFFDH (4)0 1000 0001 0101B = 815H (5)0111 1111B = 7FH (6)0100 0000 0001B = 401H 3.将十六进制数变换成二进制数和十进制数: (1)78H;(2)0A6H;(3)1000H;(4)0FFFFH 解:(1)78H = 120D = 0111 1000B (2)0A6H = 166D = 1010 0110B (3)1000H = 4096D = 0001 0000 0000 0000H (4)0FFFFH = 65535D = 1111 1111 1111 1111B 4.将下列十进制数转换成十六进制数: (1)39;(2)299.34375;(3)54.5625 解:(1)39D = 27H (2)299.34375D = 12B.58H (3)54.5625D = 36.9H 5.将下列二进制数转换成十进制数: (1)10110.101B;(2)10010010.001B;(3)11010.1101B 解:(1)10110.101B = 22.625D

《嵌入式系统原理与应用》课程教学大纲.

《嵌入式系统原理与应用》课程教学大纲 一、课程基本信息 课程代码:230449 课程名称:嵌入式系统原理与应用 英文名称:Principle and Application of Embedded System 课程类别:专业课 学时:72(其中实验32学时) 学分:3.5 适用对象: 计算机科学与技术业 考核方式:考试(平时成绩占总评成绩的30%,期末考试成绩占70%) 先修课程:计算机组成原理、操作系统、编译原理 二、课程简介 嵌入式系统原理与应用是计算机科学技术专业的一门专业课,讲述嵌入式系统的基本理论、原理。本课程是一门既与硬件关系紧密,又与嵌入式操作系统、嵌入式软件关系十分紧密课程。它围绕目前流行的32位ARM处理器和源码开放的Linux操作系统,讲述嵌入式系统的概念,软、硬件组成,开发过程以及嵌入式应用程序开发设计方法。本课程的知识将为学生今后从事嵌入式系统研究与开发打下坚实的基础。The principle of embedded system is an important course of computer science and technology, which introduce the principles and the theory of embedded system.T his curriculum is tied closely with not only hardware but also embedded operating system and embedded software. It introduce the conception of embedded system, components of software and hardware, developing progresses and designing methods of embedded programming which based on the 32bit arm processor and operating system of opened linux.The knowledge of this course would be solid foundation for the student who would be engaged in researching or developing about embedded system. 三、课程性质与教学目的 嵌入式系统原理与应用课程的性质:该课程是计算机科学与技术专业的专业课。 嵌入式系统原理与应用课程的教学目的:通过对基于ARM嵌入式芯片的系统的基本组织结构与工作原理的学习,使学生对计算机系统的硬件部分有一个全面的了解,对嵌入式软件的开发过程有一个清楚的认识,通过对嵌入式操作系统的工作原理的学习,使学生对嵌入式操作系统有一个清晰的认识,提高学生在嵌入式软件设计设计能力及解决实际问题的动手能力,为后续专业课程的学习打下坚实的基础。 四、教学内容及要求 第一章嵌入式系统导论 (一)目的与要求

微处理器系统结构与嵌入式系统设计(第2版) 第3章答案

“微处理器系统原理与嵌入式系统设计”第三章习题解答 3.1处理器有哪些功能?说明实现这些功能各需要哪些部件,并画出处理器的基本结构图。 处理器的基本功能包括数据的存储、数据的运算和控制等功能。其有5个主要功能:①指令控制②操作控制③时间控制④数据加工⑤中断处理。其中,数据加工由ALU 、移位器和寄存器等数据通路部件完成,其他功能由控制器实现。处理器的基本结构图如下: 寄存器组 控制器 整数单元 浮点单元 数据通路 处理器数据传送 到内存数据来自内存数据传送到内存指令来自内存 3.2处理器内部有哪些基本操作?这些基本操作各包含哪些微操作? 处理器基本操作有:取指令、分析指令、执行指令。 取指令:当程序已在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址及控制信号。 分析指令:对当前取得的指令进行分析,指出它要求什么操作,并产生相应的操作控制命令。 执行指令:根据分析指令时产生的“操作命令”形成相应的操作控制信号序列,通过运算器、存储器及输入/输出设备的执行,实现每条指令的功能,其中包括对运算结果的处理以及下条指令地址的形成。 3.3什么是冯·诺伊曼计算机结构的主要技术瓶颈?如何克服? 冯·诺伊曼计算机结构的主要技术瓶颈是数据传输和指令串行执行。可以通过以下方案克服:采用哈佛体系结构、存储器分层结构、高速缓存和虚拟存储器、指令流水线、超标量等方法。

3.5指令系统的设计会影响计算机系统的哪些性能? 指令系统是指一台计算机所能执行的全部指令的集合,其决定了一台计算机硬件主要性能和基本功能。指令系统一般都包括以下几大类指令。:1)数据传送类指令。(2)运算类指令 包括算术运算指令和逻辑运算指令。(3)程序控制类指令 主要用于控制程序的流向。 (4)输入/输出类指令 简称I/O 指令,这类指令用于主机与外设之间交换信息。 因而,其设计会影响到计算机系统如下性能: 数据传送、算术运算和逻辑运算、程序控制、输入/输出。另外,其还会影响到运算速度以及兼容等。 3.9某时钟速率为2.5GHz 的流水式处理器执行一个有150万条指令的程序。流水线有5段,并以每时钟周期1条的速率发射指令。不考虑分支指令和乱序执行带来的性能损失。 a)同样执行这个程序,该处理器比非流水式处理器可能加速多少? b)此流水式处理器是吞吐量是多少(以MIPS 为单位)? a.=51p T nm S T m n =≈+-串流水 速度几乎是非流水线结构的5倍。 b.2500M IPS p n T T =≈流水 3.10一个时钟频率为2.5 GHz 的非流水式处理器,其平均CPI 是4。此处理器的升级版本引入了5级流水。然而,由于如锁存延迟这样的流水线内部延迟,使新版处理器的时钟频率必须降低到2 GHz 。 (1) 对一典型程序,新版所实现的加速比是多少? (2) 新、旧两版处理器的MIPS 各是多少? (1)对于一个有N 条指令的程序来说: 非流水式处理器的总执行时间s N N T 990 106.1)105.2/()4(-?=??= 5级流水处理器的总执行时间s N N T 991 10)4(2)102/()15(-?+=?-+= 加速比=42.310 +=N N T T ,N 很大时加速比≈3.2 (2)非流水式处理器CPI=4,则其执行速度=2500MHz/4=625MIPS 。 5级流水处理器CPI=1,则其执行速度=2000 MHz /1=2000 MIPS 。 3.11随机逻辑体系结构的处理器的特点是什么?详细说明各部件的作用。 随机逻辑的特点是指令集设计与硬件的逻辑设计紧密相关,通过针对特定指令集进行

嵌入式系统原理与应用实验

嵌入式系统原理与应用实验—KL25部分 FRDM-KL25实验板连接 1、如图所示,将Micro USB线缆连接到FRDM-KL25实验板的SDA口,另一头接入PC的任意USB口。一般会自动安装驱动,如果没有,请运行C:\Freescale\KDS_v3\pemicro 目录底下PEDrivers_install文件。 2、打开PC的设备管理器(计算机上右键—属性,弹出窗口左侧,设备管理器),连接正常的话能看到下图的两个红框里的信息。

实验一、KL25入门实验 一、实验目的 1、熟悉FRDM-KL25开发板的硬件环境,掌握其使用方法及调试方式 2、掌握Kinetis Design Studio (以下简称KDS)开发环境的使用 3、以GPIO为例,理解底层驱动的含义与编程方法 二、实验设备 微型计算机,FRDM-KL25开发板,Micro USB线 三、实验内容 1、按附录1的内容导入第一个样例工程,运行程序,掌握FRDM-KL25的硬件构成和 使用方法,KDS的使用和调试方法 2、观察小灯闪烁,调整延时的长短,观察小灯的变化。 3、根据电路图,修改程序,加入另外两个小灯的控制程序,使RGB小灯交替闪烁。

四、思考题及实验报告要求 1、FRDM-KL25开发板有哪些主要元器件? 2、叙述KDS中断点调试和单步调试的步骤。其中包括:如何查看寄存值的变化和关 键变量的变化。 附录1 Kinetis Design Studio 3 IDE开发环境的使用下面以实验一为例介绍Kinetis Design Studio 3的使用方法。双击桌面或开始菜单里上的Kinetis Design Studio 3 IDE ,打开KDS开发环境。 1、导入工程 在Project Explorer上单击右键,选择Import...(或者在点击File菜单下拉选择) 弹出的对话框中展开General,选择Existing Projects into Workspace,点击Next

《微处理器系统原理与嵌入式系统设计》第四章习题答案

《微处理器系统原理与嵌入式系统设计》第四章习题解答 4.1地址映像方法有哪几种?它们各有什么优缺点? (1)内存地址映射指内存虚拟地址空间到物理地址空间的转换。 分页技术:特点是页的大小固定;优点是程序不必连续存放,因此没有外碎片(每个内碎片不超过页大小);缺点是增加了硬件成本(如需要地址变换机构)和系统开销(如需要好的调页算法)。 分段技术:特点是段的大小可变;优点是每个段按内容独立,因此可以分别编写和编译,可以针对不同类型的段采取不同的保护,可以按段为单位来进行共享(包括通过动态链接进行代码共享);缺点是会导致碎片。 (2)I/O地址映射指系统中I/O端口的编址方式。 独立编址技术:优点是系统中存储单元和I/O端口的数量可达到最大;缺点是需专门信号来指示系统地址线上出现的是存储单元地址还是端口地址,I/O指令的功能比较弱。 存储器映像编址技术:优点是对端口操作和存储器单元操作完全一样,因此系统简单,并且对端口操作的指令比较多;缺点是CPU对存储单元和I/O单口的实际寻址空间都小于其最大寻址空间。 4.2 EPROM存储器芯片在没有写入信息时,各个单元的内容是什么?某SRAM单元中存放有一个数据(如5AH),CPU将它读取后,该单元的内容是什么? EPROM存储器芯片在没有写入信息时,所有存储单元的内容均为全“1”。 SRAM为非破坏性读出,因此该单元的内容在读取后保持不变。 4.4下列ROM芯片各需要多少个地址输入端?多少个数据输出端? (1) 16×4位(2) 32×8位(3) 256×4位(4) 512×8位 (1)16×4位=24*4bit,因此有4个地址输入端和4个数据输出端。 (2)32×8位=25*4bit,因此有5个地址输入端,8个数据输出端。 (3)256×4=28*4bit,因此有8个地址输入端,4个数据输出端。 (4)512×8=29*4bit,因此有9个地址输入端,8个数据输出端。 4.7某计算机系统中ROM为6K,最后一个单元的地址为9BFFH,RAM为3K。已知其地址为连续的,且ROM在前,RAM在后,求该存储器的首地址和末地址。 该存储器的首地址(第一个ROM单元地址)为:9BFFH-6K+1=9C00H-1800H=8400H

嵌入式系统原理实验四蜂鸣器

实验四蜂鸣器实验 实验目的: 控制ALIENTEK 战舰STM32 开发板上的蜂鸣器发出:“嘀”…“ 嘀”… 的间隔声,进一步熟悉STM32 IO 口的使用 内容要点: 1.硬件介绍 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 战舰STM32 开发板板载的蜂鸣器是电磁式的有源蜂鸣器 这里的有源不是指电源的“源”,而是指有没有自带震荡电路, 有源蜂鸣器自带了震荡电路,一通电就会发声 STM32的单个IO 最大可以提供25mA 电流(来自数据手 册),而蜂鸣器的驱动电流是30mA 左右,两者十分相近,但是全盘考虑,STM32 整个芯片的电流,最大也就150mA,如果用IO 口直接驱动蜂鸣器,其他地方用电就得省着点了…所以,我们不用STM32 的IO 直接驱动蜂鸣器,而是通过三极管扩流后再驱动蜂鸣器,这样STM32 的IO 只需要提供不到1mA 的电流就足够了。IO 口使用虽然简单,但是和外部电路的匹配设计,还是要十分讲究的,考虑越多,设计就越可靠,可能出现的问题也就越少。 蜂鸣器在硬件上也是直接连接好了的,不需要经过任何设置,直接编写代码就可以了。蜂鸣器的驱动信号连接在STM32 的PB8 上。 图1 蜂鸣器与STM32 连接原理图 当PB.8 输出高电平的时候,蜂鸣器将发声,当PB.8 输出低电平的时候,蜂鸣器停止发声 2.软件设计 可以直接打开本实验工程,也可以按下面的步骤在实验 1 的基础上新建蜂鸣器实验工程。复制上一章的LED 实验工程,然后打开USER 目录,把目录下面工程LED.uvprojx 重命名为BEEP.uvprojx。,然后在HARDWARE 文件夹下新建一个BEEP 文件夹,用来存放与蜂鸣器相关的代码

简单微处理器的设计

简单微处理器的设计 摘要:本课程设计采用EDA技术设计简单微处理器。系统设计采用自顶向下的设计方法。它由数的输入,数的比较,数的交换和结果输出四部分组成。系统实现采用硬件描述语言VHDL把系统电路按模块化方式进行设计,然后进行编程、时序仿真并分析。系统结构简单,使用方便,功能齐全,精度高,具有一定的应用价值。 关键词:处理器;输入;比较;交换

目录 1 引言 (1) 1.1课题设计的背景、目的 (1) 1.2 课程设计的内容 (1) 2 EDA、VHDL简介 (2) 2.1 EDA简介 (2) 2.2 VHDL简介 (2) VHDL语言的特点 (2) VHDL的设计流程 (3) 3 简单微处理器的设计过程 (4) 3.1设计规划 (4) 3.2 各模块设计及相应程序 (4) 4 系统仿真 (8) 1.数的输入. (8) 2 数的比较。 (8) 3 交换两个数。 (9) 4 结果输出(从小到大). (9) 结束语 (11) 致谢 (12) 参考文献 (13) 附录 (14)

1 引言 随着社会的发展,科学技术也在不断的进步。特别是计算机产业,可以说是日新月异,而处理器,作为计算机中的一个重要部分,其性能从很大程度上决定了计算机的性能。本设计介绍的简单微处理器,要求具有以下验证程序所要求的功能:输入包含10个整数(无符号数)的数组M,按从小到大的顺序输出这10个数。 1.1课题设计的背景、目的 微处理器技术的发展是与微电子技术即大规模集成电路技术的发展分不开的。微电子技术以每18个月集成度提高一倍的速度迅速发展。20世纪80年代初,主要是16位微处理器8086/8088。1985年推出了80386微处理器,完成了16位体系结构向32位体系结构的转变。1989年80486出现了。80486的设计目标是提高指令执行速度和支持多处理器系统。80486在芯片内部增加一个8KB的高速缓冲存储器(cache),还增加了相当于80387的浮点部件(FPU),在基本指令的实现上,采用硬布线逻辑而不是微程序技术。1993年3月,Intel公司推出了第一代“奔腾”微处理器(Pentium),微处理器技术发展进入了一个新的阶段。到目前为止,“奔腾”已有四代产品。“奔腾”的设计思想是把如何提高微处理器内部指令执行的并行性作为主导。指令执行的并行性越好,微处理器的性能就越高。 本次设计的目的就是了解并掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过对实用电子称的设计,巩固和综合运用所学课程,理论联系实际,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。通过课程设计深入理解VHDL语言的精髓,达到课程设计的目标。 1.2 课程设计的内容 本设计主要介绍的设计一台简单微处理器,要求具有以下验证程序所要求的功能:输入包含10个整数(无符号数)的数组M,按从小到大的顺序输出这10个数。 ( 1 )程序开始及输入10个数据。 ( 2 )数的比较。

嵌入式系统原理与设计实验报告

嵌入式系统实验报告 指导教师: 学科专业: 班级: 学号: 姓名: 2014年6月

前言 从20世纪七十年代单片机的出现到各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史,并在全世界各行业得到广泛应用。嵌入式系统产品的研制与应用已经成为我国信息化带动工业化、工业化促进信息化发展的新的国民经济增长点。经过几十年的发展,嵌入式系统已经在很大程度改变了人们的生活、工作与娱乐方式,而且这些改变还在加速。嵌入式系统具有无数的种类,每类都具有自己独特的个性。例如,MP3、数码相机与打印机就有很大的不同。汽车中更就是具有多个嵌入式系统,使汽车更轻快、更干净、更容易驾驶,机顶盒、高清电视、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等,都就是典型的嵌入式系统。事实上,几乎所有带有一点“智能”的家电(全自动洗衣机、电脑电饭煲…)都就是嵌入式系统。嵌入式系统广泛的适应能力与多样性,使得视听、工作场所甚至健身设备中到处都有嵌入式系统。 高端的嵌入式系统与工业软件的发展, 实际上与我们对该行业最先进的科学技术前沿的掌握有关,换言之,与我国该行业的科学技术水平有关。学习与研究嵌入式系统,具有重大意义。 这学期的嵌入式系统的学习过程中我们在2410RP这一实验开发平台上进行了诸多嵌入式的基础实验。在本报告中,将把其中两个具有代表性的实验的原理、内容、结果以及驱动与测试程序写出来。

目录 实验一数码管显示 (1) 1、1 实验目的 (1) 1、2 实验内容 (1) 1、3 实验原理 (1) 1、3、1 LED的发光原理 (1) 1、3、2 八段LED显示器 (1) 1、3、3 芯片zlg7289A的介绍 (2) 1、3、4 数码管的连接电路 (3) 1、4 实验步骤 (3) 1、5 实验源代码解释与说明 (3) 1、6 总结 (10) 实验二LED点阵驱动实验 (11) 2、1 实验目的 (11) 2、2 实验内容 (11) 2、3 实验原理 (11) 2、3、1 8X8点阵数码管发光原理 (11) 2、3、2 数码管的连接电路 (11) 2、3、3 I/O接口 (12) 2、4 实验步骤 (12) 2、5 实验源代码解释与说明 (13) 2、6 实验结果 (17) 2、7 总结 (17)

简单微处理器的设计与实现

实验五简单微处理器的设计与实现 一、设计任务和技术指标 运用在“数字电路与逻辑设计”课程中学过的基本理论知识,设计并用可编程逻辑器件实现一个简单的八位操作数的微处理器。完成微处理器硬件系统设计和指令系统设计两方面的任务,使微处理器能够实现两个不带符号位的八位二进制数原码相乘等功能。 二、简单微处理器介绍 1.微处理器硬件系统及原理 微处理器硬件系统包括运算器、控制器、存储器以及其它必要的逻辑部件。图4-1是一个微处理器的参考原理框图,具体说明如下: (1)程序计数器PC:存放将要执行指令的地址。 (2)指令存储器IROM,存放程序指令,每条指令的长度为W,指令的个数为L。 (3)指令寄存器IR:存放被执行指令的操作码,直接供运算控制器。 (4)控制器CON:产生一系列时序逻辑信号,控制微处理器各个部件协调一致地完成每条指令相应的操作,实现两个操作数的运算。 (5)通用寄存器堆R0-R7:用来临时存放运算过程中读出和写入的数据。 (6)缓冲寄存器RS和RD:用于存放ALU的两个输入操作数。 (7)运算器ALU和进位寄存器C:运算器ALU对两个操作数RS和RD进行加、减或逻辑运算处理,在进行加减运算时还接受控制器的进位输入信号CI,ALU的运算结果送给通用寄存 器或特殊寄存器。ALU还根据运算结果设置进位标志C和零标志Z。 (8)运算结果显示送七段数码管显示,用十六进制显示。 输入 输出 图4-1 简单微处理器框图 2.处理器指令系统及功能 处理器的基本指令字长为W位,指令的每一位从高到低用D W、D W-1、…D1、D0表示,有些微处理器的一条指令包括多个指令字长,即每条指令的长度不一样,例如Intel的80386等。本实验为了简化设计,规定所有的指令都是单指令字的指令,即所有指令的长度都是W。基本的指令系统一般包括

嵌入式系统原理实验总结报告

嵌入式系统原理实验总结报告车辆座椅控制系统实验 2014/5/23

嵌入式系统原理实验总结报告 一、技术性总结报告 (一)题目:车辆座椅控制系统实验 (二)项目概述: 1.为了实现车辆座椅控制的自动化与智能化。 2.方便用户通过智能手机与车载传感器之间的联动。 3.使车辆作为当今物联网中重要的一个节点发挥作用。 4.通过车辆座椅控制系统实验实现对嵌入式系统原理课程的熟练掌握与对嵌入式系统原理知识的深化记忆。 5. 加强本组学生对嵌入式系统原理的更深层次的理解与运用。 (三)技术方案及原理 本次试验分为软件、硬件两个部分。 1.软件部分。 A.智能手机部分,包括通过智能手机对座椅的控制部分、手机所携带的身份信息部分。 本部分软件使用Java编写,其程序部分为: 主程序: package com.example.seat; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.os.Bundle; import android.os.Handler; import android.os.Message; import https://www.doczj.com/doc/5613323951.html,youtInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.os.Build; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import https://www.doczj.com/doc/5613323951.html,.InetAddress;

嵌入式微处理器结构与应用课程设计报告

《嵌入式微处理器结构与应用》 课程设计报告 题目:电子菜单 一、课程设计的目的和主要内容: 目的:《嵌入式微处理器结构与应用》课程设计是软件工程本科专业的专业实践课程,结合在课程中学到的嵌入式系统的开发和调试方法,对学生在嵌入式系统设计和应用开发的基本技能方面进行综合的检验和实践。是学生在学习完《嵌入式微处理器结构与应用》课程之后的一个重要的实践环节。要求学生在教师的指导下,综合运用已学过的嵌入式微处理器相关的各种知识和技能,以小组协作的方式完成一项较为完整、并具有一定难度的课程设计任务。使学生总结本课程的主要知识点,提高学生的实际动手能力,为学生今后进一步学习和从事嵌入式系统相关的研究与开发打下坚实的基础。 内容:基于实时操作系统,学会复杂应用程序的基本开发方法,结合课程实验学到的知识,编写一个能综合应用液晶屏、触摸屏、键盘并结合简单文件系统API函数的界面应用。要求具备基本的三个界面:初始界面、点菜界面、结束界面,基本实现点菜的全过程。 二、基本的设计思路或程序流程图描述: 基于MVC勺设计模式,将程序分成三大独立的部分:模型(逻辑)部分、视图部分、控制部分。这三大部分的关系如下:

程序总流程图:

百度文库-让每个人平等地提升自我 初始化程序, 打开启动画面线程 关闭线程 点菜结束按钮 判断消息 类型 判断操 作类型 判断单 击内容 判断控 件类型 判断该菜单条目 的 状态,进行相应的逻 辑和视图更新 本人负责: 打开线程 界面控件 翻页按钮 加载菜单数据 显示启动动 画 键盘消息 显示点菜结束 画面和总价 程序 菜单条目 进行菜单的上下 滚动 关闭按钮 单击 拉动 重置逻辑数 据,显示最初 的点菜界面 关闭启动画面线程, 显示点菜画面 显示程序结束画 面 进行菜单的翻页 等待系统消息 触摸屏消息 、视图部分:

微处理器原理与系统设计实验

微处理器原理与系统设计实验手册 1 实验平台概述 自从TI推出超低功耗MSP430单片机以来,MSP430凭借其优越的性能,丰富的外设,易于上手的特性备受业内工程师的欢迎。单片机MSP430G2553集成的片内外设相当丰富,包括ADC、Timer、Comparator、Touch Key、SPI、I2C、UART等,MSP-EXP430G2 LaunchPad 是TI公司推出的1款MSP430开发板,它提供了具有集成仿真功能14/20引脚DIP插座目标板,可通过Spy Bi-Wire(2线JTAG)协议对系统内置的MSP430超值系列(G系列)进行快速编程和调试。实验平台包含MSP-EXP430G2中配套的MSP430G2553单片机片内外设实验以及2个综合性实验。 2 实验平台硬件 口袋实验平台硬件原理框图如图1所示,主要有以下部分: 图1 口袋实验平台硬件原理框图 (1)显示和输入单元:口袋实验平台利用I2C接口的TCA6416A扩展出16个低速双向IO(IO00~IO07,IO10~IO17)。4个扩展IO用于控制LCD驱动器HT1621,4个用于机械按键输入,8个用于LED灯柱。 (2)触摸按键单元:两个触摸按键占用P2.0和P2.5两个GPIO,MSP430G2系列单片机的P1口和P2口全部具备振荡功能。 (3)模拟输出单元:外部扩展了12位串行数模转换器DAC7311,使用P1.0/P1.3/P2.2三个普通GPIO控制。这三个IO同时被其他单元复用,但是由于DAC7311都是高阻输入口,所以无需跳线复用。音频功放TPA301可以将DAC输出进行电流放大,以便驱动喇叭/蜂鸣器

基于stm32的嵌入式系统原理与设计实验报告 学位论文

XXXX学院 XX级嵌入式系统设计实验报告 班级: 指导老师: 学期: 小组成员: 姓名学号 组长 成员 成员

实验一我的第一个工程实验 一.实验简介 我的第一个工程,流水灯实验 二.实验目的 掌握STM32开发环境,掌握从无到有的构建工程。 三.实验内容 熟悉MDK KEIL开发环境,构建基于固件库的工程,编写代码实现流水灯工程。通过ISP下载代码到实验板,查看运行结果。使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。 四.实验设备 硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。 软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。 五.实验步骤 1.熟悉MDK KEIL开发环境 2.熟悉串口编程软件ISP 3.查看固件库结构和文件 4.建立工程目录,复制库文件 5.建立和配置工程 6.编写代码 7.编译代码 8.使用ISP下载到实验板 9.测试运行结果 10.使用JLINK下载到实验板 11.单步调试 12.记录实验过程,撰写实验报告

六.实验结果及测试七.实验总结

实验二带按键控制的流水灯实验 一.实验简介 在实验一的基础上,使用按键控制流水灯速度,及使用按键控制流水灯流水方向。二.实验目的 熟练使用库函数操作GPIO,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在中断服务程序和主程序间通信的方法。 三.实验内容 实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯速度及方向。 使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。四.实验设备 硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。 软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。 五.实验步骤 1在实验1代码的基础上,编写中断初始化代码 2在主程序中声明全局变量,用于和中断服务程序通信,编写完成主程序 3编写中断服务程序 4编译代码,使用JLINK下载到实验板 5.单步调试 6记录实验过程,撰写实验报告

微处理器系统结构与嵌入式系统设计(第2版) 第5章答案

5.10 用16K×1位的DRAM芯片组成64K×8位存储器,要求: (1) 画出该存储器的组成逻辑框图。 (2) 设存储器读/写周期为0.5μS, CPU在1μS内至少要访问一次。试问采用哪种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一遍所需的实际刷新时间是多少? (1)组建存储器共需DRAM芯片数N=(64K*8)/(16K*1)=4*8(片)。 每8片组成16K×8位的存储区,A13~A0作为片内地址,用A15、A14经2:4译码器产生片选信号,逻辑框图如下(图有误:应该每组8片,每片数据线为1根) (2)设16K×8位存储芯片的阵列结构为128行×128列,刷新周期为2ms。因为刷新每行需0.5μS,则两次(行)刷新的最大时间间隔应小于: 为保证在每个1μS内都留出0.5μS给CPU访问内存,因此该DRAM适合采用分散式或异步式刷新方式,而不能采用集中式刷新方式。 ●若采用分散刷新方式,则每个存储器读/写周期可视为1μS,前0.5μS用于读写,后 0.5μS用于刷新。相当于每1μS刷新一行,刷完一遍需要128×1μS=128μS,满足刷新周期小于2ms的要求; ●若采用异步刷新方式,则应保证两次刷新的时间间隔小于15.5μS。如每隔14个读写周期刷新一行,相当于每15μS刷新一行,刷完一遍需要128×15μS=1920μS,满足刷新周期小于2ms的要求; 需要补充的知识: 刷新周期:从上一次对整个存储器刷新结束到下一次对整个存储器全部刷新一遍为止的时间间隔。刷新周期通常可以是2ms,4ms或8ms。 DRAM一般是按行刷新,常用的刷新方式包括: ●集中式:正常读/写操作与刷新操作分开进行,刷新集中完成。

大工计算机原理第3章8086微处理器的指令系统(1)资料

第3章 8086微处理器的指令系统(1) 3.1 指令系统概述 ● 指令系统是一台计算机所能(识别和执行)的全部指令的集合。它与(微处理器)有着密切的关系,不同的微处理器有不同的指令系统。8086CPU 包含133条指令 ● 指令是使计算机执行某种(特定操作)的二进制编码。 指令一般包括两个部分:(操作码域)和(地址域)。填空 操作码域:存放指令的操作码,即指明该指令应由计算机完成何种操作。 地址域:确定操作数的值或地址、操作结果的地址,有的指令的地址域还指出下一条指令的地址。 ● 机器指令:计算机能(直接识别)的二进制代码。 ● 汇编语言:汇编语言是一种符号语言,用助记符表示操作码,用符号或符号地址表示操作数或操作数地址,它与 机器指令是一一对应的 ● 汇编程序:将汇编语言源程序翻译成 机器语言(就是一条一条的机器指令),即目标程序。 3.2寻址方式 ● 根据(指令内容)确定(操作数地址)的过程,称为寻址。 ● 根据寻址方式计算所得到的地址叫做(有效地址EA ),也就是(段内偏移地址)。有效地址还需要与相应的(段基地址)组合才是20位的(物理地址PA) ,该工作由微处理器来完成。 牢记什么是EA ?什么是PA ?怎么计算? 后面有关于EA 和PA 的解释及计算方法! ● 寻址方式在两种方式下被涉及:(操作数)的寻址方式和(指令)的寻址方式。 如果没有特别说明,寻址方式是指源操作数的寻址方式。 1、隐含寻址(隐含了规定的操作数) 例:DAA 指令,只有操作码,无操作数。规定对AL 中的内容进行压缩BCD 码转换。 2、立即寻址(操作数(立即数)直接放在指令中,不需访问存储器) 例:MOV AX ,1234H (若CS=1000H ,IP=100H ) 3、寄存器寻址(操作数就放在内部寄存器中,不需访问存储器) 例:INC CX ;(CX)←(CX)+1 MOV AX ,BX ;执行后BX 内容不变 4、直接寻址(指令中直接给出操作数的存放地址) 例1:MOV AX ,[4000H] (DS =3000H ) ?操作数寻址 可以进行寄存器寻址的寄存器: (16位)AX 、BX 、CX 、DX 、SI 、DI 、SP 、BP (8位) AH 、AL 、BH 、BL 、CH 、CL 、DH 、DL

《微处理器系统与嵌入式系统》习题解答

第一章习题解答 1.1 什么是程序存储式计算机? 程序存储式计算机指采用存储程序原理工作的计算机。 存储程序原理又称“冯·诺依曼原理”,其核心思想包括: 程序由指令组成,并和数据一起存放在存储器中; 计算机启动后,能自动地按照程序指令的逻辑顺序逐条把指令从存储器中读出来,自动完成由程序所描述的处理工作。 1.2 通用计算机几个主要部件是什么? 主机(CPU、主板、内存); 外设(硬盘/光驱、显示器/显卡、键盘/鼠标、声卡/音箱); 1.3 以集成电路级别而言,计算机系统的三个主要组成部分是什么? 中央处理器、存储器芯片、总线接口芯片 1.4 阐述摩尔定律。 每18个月,芯片晶体管密度提高一倍,运算性能提高一倍,而价格下降一半。 1.5 讨论:摩尔定律有什么限制,可以使用哪些方式克服这些限制?摩尔定律还会持续多久?在摩尔定律之后电路将如何演化? 摩尔定律不能逾越的四个鸿沟:基本大小的限制、散热、电流泄露、热噪。具体问题如:晶体管体积继续缩小的物理极限,高主频导致的高温…… 解决办法:采用纳米材料、变相材料等取代硅、光学互联、3D、加速器技术、多内核…… (为了降低功耗与制造成本,深度集成仍是目前半导体行业努力的方向,但这不可能永无止,因为工艺再先进也不可能将半导体做的比原子更小。用作绝缘材料的二氧化硅,已逼近极限,如继续缩小将导致漏电、散热等物理瓶颈,数量集成趋势终有终结的一天。一旦芯片上线条宽度达到纳米数量级时,相当于只有几个分子的大小,这种情况下材料的物理、化学性能将发生质的变化,致使采用现行工艺的半导体器件不能正常工作,摩尔定律也就要走到它的尽头了。业界专家预计,芯片性能的增长速度将在今后几年趋缓,一般认为摩尔定律能再适用10年左右,其制约的因素一是技术,二是经济。) 1.6 试以实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系与相互影响。 计算机系统结构主要是指程序员关心的计算机概念结构与功能特性,而计算机组成原理则偏重从硬件角度关注物理机器的组织,更底层的器件技术和微组装技术则称为计算机实现。例如:确定指令集中是否有乘法指令属于计算机体系结构的内容,而乘法指令是由专门的乘法器实现还是用加法器实现则属于计算机组成原理的内容,乘法/加法器底层的物理器件类型及微组装技术则属于计算机实现的内容。

AVR单片机嵌入式系统原理与应用实践——学习笔记讲解学习

A V R单片机嵌入式系统原理与应用实践——学习笔记

AVR单片机嵌入式系统原理与应用实践 学习笔记 1.AVR单片机的基本结构 1.1.单片机的基本组成 1.1.1.单片机的基本组成结构 单片机的基本组成单元 ?CPU ?程序存储器?数据存储器?I/O接口 CPU与各基本单元通过芯片内的内部总线连接。 一般情况下,内部总线中的数据总线宽度(或指CPU字长)也是单片机等级的一个重要指标。 内部总线:数据总线、地址总线、控制总线。 1.1. 2.单片机的基本单元与作用 1)MCU单元 MCU单元部分包括CPU、时钟系统、复位、总线控制逻辑等电路。 ?CPU: ?时钟和复位电路: ?总线控制电路: 2)片内存储器 单片机的存储器一般分为程序存储器和数据存储器,它们往往构成互不相同的两个存储空间,分别寻址,互不干扰。 单片机的内部结构通常使用哈佛体系结构,在这种体系中采用分开的指令和数据总线以及分开的指令和数据空间,分别采用专用的总线与CPU交换,可以实现对程序和数据的同时访问,提高了CPU的执行速度和数据的吞吐量。 3)程序存储器 程序存储器用于存放嵌入式系统的应用程序。 4)数据存储器 单片机在片内集成的数据存储器一般有两类:随机存储器RAM、电可擦除存储器EEPROM。 ?随机存储器RAM: ?电可擦除存储器EEPROM

5)输入输出端口 ?并行总线I/O端口: ?通用数字I/O端口: ?片内功能单元的I/O端口: ?串行I/O通信口: ?其他专用接口: 6)操作管理寄存器 管理、协调、控制、操作单片机芯片中各功能单元的使用和运行。 1.2.ATmega16单片机的组成 1.2.1.AVR单片机的内核结构 “快速访问”意味着在一个周期内执行一个完整的ALU操作。 AVR的算术逻辑单元ALU支持寄存器之间、立即数与寄存器之间的算术与逻辑运算功能,以及单一寄存器操作。每一次运算操作的结果将影响和改变状态寄存器(SREG)的值。 ALU操作 ?从寄存器组中读取两个操作数 ?将执行结果写回目的寄存器?操作数被执行 1.2.2.ATmega16的外部引脚与封装 I/O引脚共32只,分成PA、PB、PC、PD4个8位端口,它们全部是可编程控制的多功能复用的I/O引脚。 4个端口的第一功能是通用双向数字输入输出口,其中每一位都可以由指令设置为独立的输入或者输出口。 当I/O口设置为输入方式时,引脚内部还配置有上拉电阻,这个内部的上拉电阻可通过编程设置上拉有效或者上拉无效。 当I/O口设置为输出方式时,则当其输出高电平时,能够输出20mA的电流,当其输出低电平时,可以吸收40mA的电流。 芯片RESET复位后,所有的I/O口默认状态为输入方式,上拉电阻无效,即I/O为输入高电阻的三态状态。

微处理器系统结构与嵌入式系统设计(第二版)答案全

微处理器系统结构与嵌入式系统设计(第二版)答案全

一 1.2 以集成电路级别而言,计算机系统的三个主要组成部分是什么? 中央处理器、存储器芯片、总线接口芯片 1.3 阐述摩尔定律。 每18个月,芯片的晶体管密度提高一倍,运算性能提高一倍,而价格下降一半。 1.5 什么是SoC?什么是IP核,它有哪几种实现形式? SoC:系统级芯片、片上系统、系统芯片、系统集成芯片或系统芯片集等,从应用开发角度出发,其主要含义是指单芯片上集成微电子应用产品所需的所有功能系统。 IP核:满足特定的规范和要求,并且能够在设计中反复进行复用的功能模块。它有软核、硬核和固核三种实现形式。 1.8 什么是嵌入式系统?嵌入式系统的主要特点有哪些? 概念:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗的严格要求的专用计算机系统,即“嵌入到应用对象体系中的专用计算机系统”。 特点:1、嵌入式系统通常是面向特定应用的。 2、嵌入式系统式将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合的产物。 3、嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能。

4、嵌入式处理器的应用软件是实现嵌入式系统功能的关键,对嵌入式处理器系统软件和应用软件的要求也和通用计算机有以下不同点。 ①软件要求固体化,大多数嵌入式系统的软件固化在只读存储器中; ②要求高质量、高可靠性的软件代码; ③许多应用中要求系统软件具有实时处理能力。 5、嵌入式系统和具体应用有机的结合在一起,它的升级换代也是和具体产品同步进行的,因此嵌入式系统产品一旦进入市场,就具有较长的生命周期。 6、嵌入式系统本身不具备自开发能力,设计完成以后用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。 二 2.2 完成下列逻辑运算 (1)101+1.01 = 110.01 (2)1010.001-10.1 = 111.101 (3)-1011.0110 1-1.1001 = -1100.1111 1 (4)10.1101-1.1001 = 1.01 (5)110011/11 = 10001 (6)(-101.01)/(-0.1) = 1010.1 2.3 完成下列逻辑运算 (1)1011 0101∨1111 0000 = 1111 0101 (2)1101 0001∧1010 1011 = 1000 0001 (3)1010 1011⊕0001 1100 = 1011 0111

微处理器系统及嵌入式系统1—7章最全答案合集

“微处理器系统原理与嵌入式系统设计”第一章习题解答 1.1 什么是程序存储式计算机? 程序存储式计算机指采用存储程序原理工作的计算机。 存储程序原理又称“冯·诺依曼原理”,其核心思想包括: ●程序由指令组成,并和数据一起存放在存储器中; ●计算机启动后,能自动地按照程序指令的逻辑顺序逐条把指令从存储器中 读出来,自动完成由程序所描述的处理工作。 1.2 通用计算机的几个主要部件是什么? ●主机(CPU、主板、内存); ●外设(硬盘/光驱、显示器/显卡、键盘/鼠标、声卡/音箱); 1.3 以集成电路级别而言,计算机系统的三个主要组成部分是什么? 中央处理器、存储器芯片、总线接口芯片 1.4 阐述摩尔定律。 每18个月,芯片的晶体管密度提高一倍,运算性能提高一倍,而价格下降一半。 1.5 讨论:摩尔定律有什么限制,可以使用哪些方式克服这些限制?摩尔定律还会持续多久?在摩尔定律之后电路将如何演化? 摩尔定律不能逾越的四个鸿沟:基本大小的限制、散热、电流泄露、热噪。具体问题如:晶体管体积继续缩小的物理极限,高主频导致的高温…… 解决办法:采用纳米材料、变相材料等取代硅、光学互联、3D、加速器技术、多内核…… (为了降低功耗与制造成本,深度集成仍是目前半导体行业努力的方向,但这不可能永无止,因为工艺再先进也不可能将半导体做的比原子更小。用作绝缘材料的二氧化硅,已逼近极限,如继续缩小将导致漏电、散热等物理瓶颈,数量集成趋势终有终结的一天。一旦芯片上线条宽度达到纳米数量级时,相当于只有几个分子的大小,这种情况下材料的物理、化学性能将发生质的变化,致使采用现行工艺的半导体器件不能正常工作,摩尔定律也就要走到它的尽头了。业界专家预计,芯片性能的增长速度将在今后几年趋缓,一般认为摩尔定律能再适用10年左右,其制约的因素一是技术,二是经济。)

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