版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Proteus实例教程实例教程清华大学出版社清华大学出版社第第6章章基于基于ARM和和AVR单片机单片机的控制系统设计实例的控制系统设计实例6.1 LPC 2124微处理器入门知识微处理器入门知识6.2 基于基于LPC 2124的流水灯设计的流水灯设计 6.3 LPC 2124的串口通信的串口通信 6.4 基于基于LPC 2124的的A/D设计设计 6.5 基于基于AVR单片机的数码管静态显示单片机的数码管静态显示 6.6 AVR单片机的单片机的SPI接口扩展并行输出接口扩展并行输出 6.7 基于基于AVR单片机的数字电压表单片机的数字电压表 6.8 基于基于AVR的频率计设计的频率计设计
2、ARM处理器是Acorn计算机有限公司面向低预算市场设计的一款RISC微处理器,更早被称作Acorn RISC Machine。ARM处理器本身是32位设计,但也配备16位指令集。一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。微软公司2011年宣布,下一版Windows将正式支持ARM处理器。这是计算机工业ARM处理器发展历史上的一件大事,标志着x86处理器的主导地位发生动摇。ARM成为主流,将指日可待,作为当代电子研发工程师,掌握ARM的使用是必然趋势。AVR单片机是由Atmel公司挪威设计中心利用Atmel公司的Flash新技术,共同研发出具有RISC精简指令集的高速
3、单片机,简称AVR。相对于出现较早也较为成熟的51系列单片机,AVR系列单片机片内资源更为丰富,接口也更为强大,同时由于其价格低等优势,在很多场合可以替代51系列单片机。6.1 LPC 2124微处理器入门知识微处理器入门知识6.1.1 LPC 2124的特点的特点lLPC 2114/2124是一个基于32位ARM7 TDMI-S的CPU,它具有实时仿真和嵌入式跟踪支持功能,配置128/256 KB的嵌入高速Flash存储器,128位宽度的存储器接口和独特的加速结构,使32位代码能够工作在最大时钟频率上。对代码规模有严格要求的应用程序,可使用16位Thumb模式在最小的性能损失情况下将代码规模
4、降低30%以上。6.1 LPC 2124微处理器入门知识lLPC 2124拥有紧凑的64引脚封装,低功耗,多个32位定时器,4路10位ADC,6路PWM通道和46个快速GPIO线,多达9个外部中断引脚,这些特点使其特别适用于工业控制、医疗系统、销售点的访问和控制。由于内置了宽范围的串行通信接口,它们也非常适合通信网关、协议转换器、嵌入式软件调制解调器,以及许多其他一般用途的应用。lLPC 2124与原来的设备相比拥有快速GPIO端口,不管要读的端口引脚是什么状态,在任何时候,均可支持端口引脚切换到3.5倍的速度。 lUART 0/1包括波特率发生器、自适应波特率能力和握手同步可完全在硬件中实现
5、流量控制。缓冲SSP串行控制器,支持4线SSI、SPI和Microwire格式。6.1 LPC 2124微处理器入门知识l32位ARM7 TDMI-S微控制器,超小LQFP64封装。l16 KB片内静态RAM,128/256 KB片上闪存程序存储器。l128位宽度接口/加速器,可实现高达60 MHz工作频率。lFlash编程时间为1ms,每行512 B,单扇区或整片擦除时间为400 ms。lEmbedded ICE-RT接口支持断点和观察点。片内Real Monitor软件对前台任务进行调试时,中断服务程序可以继续执行。l嵌入式跟踪宏单元(ETM)支持非侵入式的高速实时跟踪指令的执行。l四通道
6、10位ADC,转换时间低至2.44s。6.1 LPC 2124微处理器入门知识l2个32位定时器(带4路捕获和4路比较通道),PWM单元(6路输出),实时时钟(RTC)和看门狗。l多个串行接口,包括2个UART(16C550),高速I2C线(400KB/s)和2个SPI接口。最大为60MHz的CPU时钟,可编程片上锁相环,循环与沉淀时间为100s;向量中断控制器,可配置优先级和向量地址。l5V宽容的通用I/O引脚,多达9个边沿或电平触发的外部中断引脚。l片上的晶振为1MHz30MHz晶体振荡器。l两种低功耗模式:空闲模式和掉电模式。通过外部中断,将处理器从掉电模式唤醒,单独使能/禁止外设功能来
7、优化功耗。6.1.2 LPC 2124的功能配置的功能配置LPC 2124的引脚如图6-1所示,为了节省空间和提高效率,很多引脚拥有一个以上的功能,而为了使用某引脚的某一项功能,则可通过软件设置寄存器的方法来实现。 XTAL162XTAL261P0.0/TxD0/PWM119P0.1/RxD0/PWM321P0.2/SCL/CAP0.022P0.3/SDA/MAT0.0/EINT126P0.4/SCK0/CAP0.127P0.5/MISO0/MAT0.129P0.6/MOSI0/CAP0.230P0.7/SSEL0/PWM2/EINT231P0.8/TxD1/PWM433P0.9/RxD1/P
8、WM6/EINT334P0.10/RTS1/CAP1.035P0.11/CTS1/CAP1.137P0.12/DSR1/MAT1.038P0.13/DTR1/MAT1.139P0.14/DCD1/EINT141P0.15/RI1/EINT245P0.16/EINT0/MAT0.2/CAP0.246P0.17/CAP1.2/SCK1/MAT1.247P0.18/CAP1.3/MISO153P0.19/MAT1.2/MOSI154P0.20/MAT1.3/SSEL1/EINT355P0.21/PWM5/CAP1.31P0.22/CAP0.0/MAT0.02P0.233P0.245P0.259P0.
9、27/AIN0/CAP0.1/MAT0.111P0.28/AIN1/CAP0.2/MAT0.213P0.29/AIN2/CAP0.3/MAT0.314P0.30/AIN3/EINT3/CAP0.015V323RST57V3A7V1817V18A63VSS6VSSA59VSSA_PLL58P1.16/TRACEPKT016P1.17/TRACEPKT112P1.18/TRACEPKT28P1.19/TRACEPKT34P1.20/TRACESYNC48P1.21/PIPESTAT044P1.22/PIPESTAT140P1.23/PIPESTAT236P1.24/TRACECLK32P1.25/
10、EXTIN028P1.26/RTCK24P1.27/TDO64P1.28/TDI60P1.29/TCK56P1.30/TMS52P1.31/TRST20V343V351VSS18VSS25VSS42VSS50V1849U1LPC21246.1 LPC 2124微处理器入门知识图6-1 LPC2124的引脚图1. LPC 2124 GPIO配置 LPC 2124具有多达48个通用I/O口(GPIO),当管脚选择GPIO功能时,有3个寄存器(IOSET、IOCLR和IOPIN)用于控制 GPIO的使用。IOSET用于将GPIO口置1,而IOCLR则用于将GPIO口清0,IOPIN则反映当前I/O口
11、的状态,读回IOSET则反映当前I/O口的设定状态。 特性:l单个位的方向控制; l单独控制输出的置位和清零; l所有I/O口在复位后默认为输入。6.1 LPC 2124微处理器入门知识6.1 LPC 2124微处理器入门知识图6-2 LPC2124的物理连接示意图 物理连接:l GPIO驱动LED,如图6-2(a)所示,R为限流电阻;l GPIO用于按键输入,如图6-2(b)所示,R为上拉电阻。 (a) GPIO驱动LED (b) GPIO用于按键输入 如果把P0口设置为输出,则可以使用如下语句:IO0DIR = 0 xFF; 寄存器IO0DIR用来定义P0口的方向是输出还是输入,如:IO0
12、DIR = 0 xFF(1111 1111)指定P0.0P0.7为输出,IO0DIR =0 x0F(0000 1111)指定P0.0P0.3为输出,而P0.4P0.7为输入。然后设置GPIO状态:IO0CLR = 0 xFF;IO0SET = 0 xFF;IO0CLR寄存器负责将P0口置零,IO0CLR = 0 xFF (11111111),设定P0.0到P0.7全部是低电平;IO0SET寄存器负责将P0口置1,IO0SET = 0 xFF,设定P0口为全部高电平。 6.1 LPC 2124微处理器入门知识2. LPC 2124 串口配置 LPC 2124具有两个符合工业标准的异步串行口UAR
13、T0和UART1。两者除了外设及地址以外,其他都相同,因而在这里统一进行描述。它们具有以下特性:l单个位的方向控制16字节收发FIFO ; l接收器FIFO触发点可为1、4、8和14字节; l内置波特率发生器。6.1 LPC 2124微处理器入门知识6.1 LPC 2124微处理器入门知识当进行如下设置时,对P0.0、P0.1选择UART0功能: lPINSEL0 = 0 x00000005; / 可能影响其它管脚连接 lPINSEL0 = (PINSEL0 & (0 x0F) | 0 x05; / 不影响其它管脚连接 管 脚 名 称UART管脚功 能 描 述说 明P0.0TxD0串行
14、输出串行发送数据P0.1RxD0串行输入串行接收数据P0.8TxD1串行输出串行发送数据P0.9RxD1串行输入串行接收数据表6-1 UART管脚描述6.1 LPC 2124微处理器入门知识当进行如下设置时,对P0.8、P0.9选择UART0功能: lPINSEL0 = 0 x05 16; / 可能影响其它管脚连接 lPINSEL0 = ( PINSEL0 & (0 x0F 16) ) | (0 x05 16); / 不影响其他管脚连接管 脚 名 称UART管脚功 能 描 述说 明P0.0TxD0串行输出串行发送数据P0.1RxD0串行输入串行接收数据P0.8TxD1串行输出串行发送数
15、据P0.9RxD1串行输入串行接收数据表6-1 UART管脚描述6.1 LPC 2124微处理器入门知识基本操作:LPC 2124的两个串口具有完全相同的寄存器,只是物理地址不一样,其中,寄存器UxRBR与UxTHR是同一地址,但物理上是分开的,读操作时为UxRBR,而写操作时为UxTHR;寄存器UxDLL与UxRBR/UxTHR、UxDLM与UxTER具有相同的地址。如果要访问UxDLM、UxDLL,除数据访问位DLAB必须为1;若要访问UxRBR/UxTHR、UxTER,则除数据访问位DLAB必须为0。UxDLM和UxDLL寄存器是波特率发生器的除数据锁存寄存器,用于设置合适的串口波特率;
16、 6.1 LPC 2124微处理器入门知识UxRBR为数据接收缓冲,用于读取接收到的数据。若FIFO使能,串口接收到的数据会压入FIFO缓冲;UxTHR为发送保存,向此寄存器写入数据时,将会引起串口数据发送,若FIFO使能,数据将会压入FIFO缓冲。通过线控制寄存器LCR设置串口的工作模式,而FCR则用于FIFO的使能或者复位操作;当接收或者发送数据的时候,会产生相应的状态标志位(LSR);通过对IER进行设置,可实现串口的发送、接收、出错中断等。6.1 LPC 2124微处理器入门知识 注意:注意: IER中的位0为接收中断使能,位1为发送中断使能,位2为线状态中断使能(通讯出错中断使能)。
17、若不使能相应的中断,对应的中断不会产生,此时可以通过LSR读取串口的状态,判断串口操作是否完成或是否成功。 UART的基本操作方法如下: l 设置I/O连接到UARTx; l 设置串口波特率(UxDLM、UxDLL); l 设置串口工作模式(UxLCR、UxFCR); l 发送或接收数据(UxTHR、UxRBR); l 检查串口状态字(UxLSR)或者等待串口中断(UxIIR)。6.1 LPC 2124微处理器入门知识使用示例:(1) 串口初始化。 #define UART_BPS 115200 / 串口通信波特率 U0LCR = 0 x83; / DLAB=1,允许设置波特率 Fdiv =
18、(Fpclk / 16) / UART_BPS; /设置波特率 U0DLM = Fdiv / 256; U0DLL = Fdiv % 256; U0LCR = 0 x03; / DLAB=0,禁止访问除数锁存器 6.1 LPC 2124微处理器入门知识(2) 向串口发送数据。 U0THR = data; / data为要发送的数据 while (U0LSR & 0 x40) = 0); / 等待数据发送完毕 (3) 从串口接收数据(查询方式)。while (U0LSR & 0 x01) = 0); / 等待有效数据 rcv_dat = U0RBR; / 读取数据6.1 LPC
19、2124微处理器入门知识图6-3 UART与其它控制器进行数据交换的物理连接示意图物理连接:l 使用UART与其它控制器进行数据交换时,其连接如图6-3(a)所示;l 使用UART与PC机通讯,由于PC机串口是RS232电平,所以连接时需要使用RS232转换器,如图6-3(b)所示。 (a) GPIO驱动LED (b) GPIO用于按键输入 6.1.3 LPC 2124 A/D转换配置转换配置A/D转换器(ADC,A/D Converters)的基本时钟由VPB时钟提供。每个转换器包含一个可编程分频器,可将时钟调整至逐步逼近转换所需的4.5MHz(最大)。完全满足精度要求的转换需要11个转换时
20、钟。LPC2124 具有1个10位8路A/D转换器。启动A/D转换的方式非常灵活,既可以单路软件启动,也可以设置为 Burst模式对某几路信号逐个循环采样。与其它LPC2000 系列微控制器相比,LPC2124增加了独立的基准电压源引脚,这对提高转换精度很有利。 6.1 LPC 2124微处理器入门知识LPC2124 具有1个10位8路A/D转换器。 A/D转换器具有以下特性:l 1个10位逐次逼近式模数转换器; l 8个管脚复用为输入脚; l 掉电模式; l 测量范围:03V; l 10位转换时间2.44s; l 一个或多个输入的Burst转换模式; l 可选择由输入跳变或定时器匹配信号触发
21、转换。6.1 LPC 2124微处理器入门知识ADC管脚描述如表6-2所示。6.1 LPC 2124微处理器入门知识表6-2 ADC 管脚描述管 脚 名 称类 型管 脚 描 述Ain7:0AD0.0-P0.27AD0.1-P0.28AD0.2-P0.29AD0.3-P0.30AD0.4-P0.25AD0.5-P0.26AD0.6-P0.4AD0.7-P0.5输入 模拟输入,A/D转换器单元测量输入信号的电压。注意,这些模拟输入通常连接到管脚上,即使管脚复用寄存器将它们设定为端口管脚。通过将这些管脚驱动成端口输出来实现A/D转换器的简单自测。 注:当使用A/D转换器时,模拟输入管脚的信号电平在任
22、何时候都不能大于V3A,否则,读出的A/D值无效。如果在应用中未使用A/D转换器,则A/D输入管脚用作可承受5V电压的数字I/O口Vref参考电压 参考电压。该管脚连接到A/D转换器的Vref信号V3A,VSSA电源 模拟电源和地。它们分别与标称为V3和VSSD的电压相同,但为了降低噪声和出错几率,两者应当隔离管脚连接设置: 若需要使用A/D转换功能,需要进行正确的管脚连接设置。例如,当进行如下设置时,对P0.30选择AD0.3功能: l PINSEL1 = 0 x01 28; / 可能影响其它管脚功能 l PINSEL1 = (PINSEL1 & (0 x03 28) | (0 x0
23、1 28); / 不会影响其它管脚功能6.1 LPC 2124微处理器入门知识基本操作: (1) 硬件触发转换。 如果ADCR的Burst位为0且START字段的值包含在010111之内,当所选管脚(P0.16或 P0.22)或定时器匹配信号(MAT0.1、MAT0.3、MAT1.0 或者 MAT1.1)发生跳变时,A/D转换器启动一次转换。也可选择在4个匹配信号中任何一个的指定边沿转换,或者在两个捕获/匹配管脚中任何一个的指定边沿转换。将所选端口的管脚状态或所选的匹配信号与ADCR位27相异或所得的结果用作边沿检测逻辑。 6.1 LPC 2124微处理器入门知识(2) 时钟产生。 时钟分频器
24、(通过它可以得到4.5MHz的转换时钟)在A/D转换器空闲时保持复位状态,在ADCR的START字段被写入01(立即启动转换)或所选边沿出现在选择的信号上时可立刻启动采样时钟。这个特性可以节省功率,尤其适用于A/D转换器很少使用的场合。(3) 中断。 当 DONE 位为1时,AD转换模块向向量中断控制器(VIC)发出中断请求,如果VIC中VICIntEnable的Bit8(A/D转换中断使能位)使能,则会产生中断。读取ADDR将清零DONE位。6.1 LPC 2124微处理器入门知识6.1.4 LPC 2124 的软件编写的软件编写选择使用Keil C软件对LPC 2124进行软件开发。CPU
25、从main()函数开始执行程序,例如:写几行代码来命令LPC 2124的GPIO,代码如下: main (void) IO0DIR = 0 x0000FF; /寄存器配置/P0.0P0.7定义为输出while(1); 6.1 LPC 2124微处理器入门知识理论上这样就可以了,但是注意Keil C是C编译器,不是Keil ARM,它能够认识void、unsigned这样的关键词,但不认识IO0DIR,怎么办呢?这样来理解,IO0DIR是寄存器名,实际上CPU是按地址来寻找数据的,每个寄存器也都有自己的地址,这是一定的。那么IO0DIR的地址是什么呢?是0 xE0028008。只是个32位的二进
26、制数,地址在生产时决定了。代码是为了方便阅读,人为给某些特殊的地址起个名字,如IO0DIR = 0 x0000FF,事实上是执行向地址为0 xE0028008的位置写入数据0 x0000FF。为了实现这种方便,人们定义了一种头文件。6.1 LPC 2124微处理器入门知识在C文件开始处加上该头文件:#include 这是LPC21xx系列都可以使用的头文件。其实也可以加入一句:#define IO0DIR (*(volatile unsigned long *) 0 xE0028008) 和头文件里的一样,这样Keil C就认识IO0DIR了,写代码时就可以使用IO0DIR来代替长长的地址。6
27、.1 LPC 2124微处理器入门知识但是代码还是不完美,并没有告诉Keil C当执行完最后一句“IO0DIR = 0 x0000FF”时,要通知CPU做什么。为防止CPU乱来,一般再加一句:while(1);或者while(1);就是让CPU什么也不干。6.1 LPC 2124微处理器入门知识最终的代码如下: #include main (void) IO0DIR = 0 x0000FF; /寄存器配置/P0.0P0.7定义为输出while(1); 6.1 LPC 2124微处理器入门知识6.2 基于基于LPC 2124的流水灯设计的流水灯设计 内容:内容:使用LPC 2124的P0口控制8
28、个LED灯轮流点亮显示。训练目的:训练目的:学会LPC 2124 GPIO的使用方法。6.2.1 Proteus电路设计电路设计 1. 元件清单列表打开Proteus ISIS编辑环境,按表6-3所列的清单添加元件。 表6-3 元件清单 6.2 基于LPC2124的流水灯设计元 件 名 称所 属 类所 属 子 类LPC2124Microprocessor ICsARM FamilyLED-BARGRAPH-GRNOptoelectronicsBargraph DisplaysRESPACK-8ResistorsResistors Packs2. 电路原理图元件全部添加后,在Proteus IS
29、IS的编辑区域中按图6-4所示的原理图连接硬件电路。 6.2 基于LPC2124的流水灯设计图6-4 Proteus中的电路原理图3.3V1.8V3.3VXTAL162XTAL261P0.0/TxD0/PWM119P0.1/RxD0/PWM321P0.2/SCL/CAP0.022P0.3/SDA/MAT0.0/EINT126P0.4/SCK0/CAP0.127P0.5/MISO0/MAT0.129P0.6/MOSI0/CAP0.230P0.7/SSEL0/PWM2/EINT231P0.8/TxD1/PWM433P0.9/RxD1/PWM6/EINT334P0.10/RTS1/CAP1.035P
30、0.11/CTS1/CAP1.137P0.12/DSR1/MAT1.038P0.13/DTR1/MAT1.139P0.14/DCD1/EINT141P0.15/RI1/EINT245P0.16/EINT0/MAT0.2/CAP0.246P0.17/CAP1.2/SCK1/MAT1.247P0.18/CAP1.3/MISO153P0.19/MAT1.2/MOSI154P0.20/MAT1.3/SSEL1/EINT355P0.21/PWM5/CAP1.31P0.22/CAP0.0/MAT0.02P0.233P0.245P0.259P0.27/AIN0/CAP0.1/MAT0.111P0.28/AI
31、N1/CAP0.2/MAT0.213P0.29/AIN2/CAP0.3/MAT0.314P0.30/AIN3/EINT3/CAP0.015V323RST57V3A7V1817V18A63VSS6VSSA59VSSA_PLL58P1.16/TRACEPKT016P1.17/TRACEPKT112P1.18/TRACEPKT28P1.19/TRACEPKT34P1.20/TRACESYNC48P1.21/PIPESTAT044P1.22/PIPESTAT140P1.23/PIPESTAT236P1.24/TRACECLK32P1.25/EXTIN028P1.26/RTCK24P1.27/TDO64
32、P1.28/TDI60P1.29/TCK56P1.30/TMS52P1.31/TRST20V343V351VSS18VSS25VSS42VSS50V1849U1LPC21241234567820191817161514139101211U212345678161514131211109RN12203.3V6.2.2 程序设计程序设计本例的程序流程如图6-5所示。6.2 基于LPC2124的流水灯设计图6-5 程序流程图 6.2.3 Proteus调试与仿真调试与仿真在Proteus中双击LPC 2124,把编译好的程序虚拟下载到单片机中去,按仿真运行,观察效果,可以看到条形LED的显示情况,如
33、图6-4所示。6.2 基于LPC2124的流水灯设计图6-4 Proteus中的电路原理图3.3V1.8V3.3VXTAL162XTAL261P0.0/TxD0/PWM119P0.1/RxD0/PWM321P0.2/SCL/CAP0.022P0.3/SDA/MAT0.0/EINT126P0.4/SCK0/CAP0.127P0.5/MISO0/MAT0.129P0.6/MOSI0/CAP0.230P0.7/SSEL0/PWM2/EINT231P0.8/TxD1/PWM433P0.9/RxD1/PWM6/EINT334P0.10/RTS1/CAP1.035P0.11/CTS1/CAP1.137P0
34、.12/DSR1/MAT1.038P0.13/DTR1/MAT1.139P0.14/DCD1/EINT141P0.15/RI1/EINT245P0.16/EINT0/MAT0.2/CAP0.246P0.17/CAP1.2/SCK1/MAT1.247P0.18/CAP1.3/MISO153P0.19/MAT1.2/MOSI154P0.20/MAT1.3/SSEL1/EINT355P0.21/PWM5/CAP1.31P0.22/CAP0.0/MAT0.02P0.233P0.245P0.259P0.27/AIN0/CAP0.1/MAT0.111P0.28/AIN1/CAP0.2/MAT0.213P0
35、.29/AIN2/CAP0.3/MAT0.314P0.30/AIN3/EINT3/CAP0.015V323RST57V3A7V1817V18A63VSS6VSSA59VSSA_PLL58P1.16/TRACEPKT016P1.17/TRACEPKT112P1.18/TRACEPKT28P1.19/TRACEPKT34P1.20/TRACESYNC48P1.21/PIPESTAT044P1.22/PIPESTAT140P1.23/PIPESTAT236P1.24/TRACECLK32P1.25/EXTIN028P1.26/RTCK24P1.27/TDO64P1.28/TDI60P1.29/TCK
36、56P1.30/TMS52P1.31/TRST20V343V351VSS18VSS25VSS42VSS50V1849U1LPC21241234567820191817161514139101211U212345678161514131211109RN12203.3V6.3 LPC 2124的串口通信的串口通信 内容:内容:学习LPC 2124的串口使用,单片机通过串口向Proteus 虚拟终端发送“Hello World”,并通过虚拟终端进行显示。训练目的:训练目的:串口是通信的一种接口,同时对嵌入式开发过程中的调试有帮助,通过本例实践,为后续的学习打下基础。 6.3.1 Proteus电路设
37、计电路设计 1. 元件清单列表打开Proteus ISIS编辑环境,按表6-3所列的清单添加元件。 表6-3 元件清单 6.3 LPC2124 的串口通信元 件 名 称所 属 类所 属 子 类LPC2124Microprocessor ICsARM FamilyLED-BARGRAPH-GRNOptoelectronicsBargraph DisplaysRESPACK-8ResistorsResistors Packs然后在Proteus ISIS编辑环境中,单击仪器选择图标 ,在左侧对象拾取器中显示所有可用仪器名称,选择“VERTUAL TERMINAL”虚拟终端,相当于一个模拟的上位机,
38、它可以与CPU进行串行通讯,能够像显示屏一样显示数据和信息。6.3 LPC2124 的串口通信2. 电路原理图元件全部添加后,在Proteus ISIS的编辑区域中按图6-6所示的原理图连接硬件电路。本例为简化硬件,使用Proteus软件的虚拟串口进行调试。如果单片机与RS232接口连接,应当注意电平的转换。 6.3 LPC2124 的串口通信图6-6 Proteus中的电路原理图 3.3VXTAL162XTAL261P0.0/TxD0/PWM119P0.1/RxD0/PWM321P0.2/SCL/CAP0.022P0.3/SDA/MAT0.0/EINT126P0.4/SCK0/CAP0.12
39、7P0.5/MISO0/MAT0.129P0.6/MOSI0/CAP0.230P0.7/SSEL0/PWM2/EINT231P0.8/TxD1/PWM433P0.9/RxD1/PWM6/EINT334P0.10/RTS1/CAP1.035P0.11/CTS1/CAP1.137P0.12/DSR1/MAT1.038P0.13/DTR1/MAT1.139P0.14/DCD1/EINT141P0.15/RI1/EINT245P0.16/EINT0/MAT0.2/CAP0.246P0.17/CAP1.2/SCK1/MAT1.247P0.18/CAP1.3/MISO153P0.19/MAT1.2/MOS
40、I154P0.20/MAT1.3/SSEL1/EINT355P0.21/PWM5/CAP1.31P0.22/CAP0.0/MAT0.02P0.233P0.245P0.259P0.27/AIN0/CAP0.1/MAT0.111P0.28/AIN1/CAP0.2/MAT0.213P0.29/AIN2/CAP0.3/MAT0.314RST57V1849U1LPC2124RXDRTSTXDCTS6.3.2 程序设计程序设计本例的程序流程如图6-7所示。6.3 LPC2124 的串口通信图6-7 程序流程图 6.3.3 Proteus调试与仿真调试与仿真在Proteus中双击LPC 2124,编辑属性,
41、载入Keil编译生成的.hex文件,运行仿真,自动弹出虚拟终端仿真画面,显示出了“Hello World”字样,如图6-8所示。 6.3 LPC2124 的串口通信图6-8 程序仿真结果 6.4 基于基于LPC 2124的的A/D设计设计内容:内容:学习LPC 2124的A/D转换功能 。训练目的:训练目的:LPC 2124的模数(A/D)转换将模拟信号转换成数字信息,主要用于模拟信号的数字化采集,最常见的就是数码相机,另外也会常常用到数字化信号的测量,如电压、电流、速度的测量等。掌握LPC 2124自带的模数转换功能,会给产品的开发带来很大的方便。 6.4.1 Proteus电路设计电路设计
42、 1. 元件清单列表打开Proteus ISIS编辑环境,按表6-4所列的清单添加元件。 表6-4 元件清单 6.4 基于LPC2124的A/D设计元 件 名 称所 属 类所 属 子 类LPC2124Microprocessor ICsARM FamilyLED-BARGRAPH-GRNOptoelectronicsBargraph DisplaysRESPACK-8ResistorsResistors PacksPOT-HGResistorsVariable 2. 电路原理图 在Proteus ISIS的编辑区域中按图6-9所示的原理图连接硬件电路。本例中滑动变阻器上的电压作为模拟输入量,可
43、以用LED轮流点亮的速度和串口的输出显示来观察模数转换的结果。 6.4 基于LPC2124的A/D设计图6-9 Proteus中的A/D转换电路原理图3.3V1.8V3.3VXTAL162XTAL261P0.0/TxD0/PWM119P0.1/RxD0/PWM321P0.2/SCL/CAP0.022P0.3/SDA/MAT0.0/EINT126P0.4/SCK0/CAP0.127P0.5/MISO0/MAT0.129P0.6/MOSI0/CAP0.230P0.7/SSEL0/PWM2/EINT231P0.8/TxD1/PWM433P0.9/RxD1/PWM6/EINT334P0.10/RTS1
44、/CAP1.035P0.11/CTS1/CAP1.137P0.12/DSR1/MAT1.038P0.13/DTR1/MAT1.139P0.14/DCD1/EINT141P0.15/RI1/EINT245P0.16/EINT0/MAT0.2/CAP0.246P0.17/CAP1.2/SCK1/MAT1.247P0.18/CAP1.3/MISO153P0.19/MAT1.2/MOSI154P0.20/MAT1.3/SSEL1/EINT355P0.21/PWM5/CAP1.31P0.22/CAP0.0/MAT0.02P0.233P0.245P0.259P0.27/AIN0/CAP0.1/MAT0.1
45、11P0.28/AIN1/CAP0.2/MAT0.213P0.29/AIN2/CAP0.3/MAT0.314P0.30/AIN3/EINT3/CAP0.015V323RST57V3A7V1817V18A63VSS6VSSA59VSSA_PLL58P1.16/TRACEPKT016P1.17/TRACEPKT112P1.18/TRACEPKT28P1.19/TRACEPKT34P1.20/TRACESYNC48P1.21/PIPESTAT044P1.22/PIPESTAT140P1.23/PIPESTAT236P1.24/TRACECLK32P1.25/EXTIN028P1.26/RTCK24P
46、1.27/TDO64P1.28/TDI60P1.29/TCK56P1.30/TMS52P1.31/TRST20V343V351VSS18VSS25VSS42VSS50V1849U1LPC21241234567820191817161514139101211U212345678161514131211109RN12203.3VRV110k3.3VRXDRTSTXDCTS6.4.2 程序设计程序设计本例的程序流程如图6-10所示。图6-10(a)为主程序流程图,图6-10(b)为延时并执行数据转换流程图。6.4 基于LPC2124的A/D设计 (a) 主程序流程图 (b)延时并执行数据转换流程图
47、图6-10 程序流程图 6.4.3 Proteus调试与调试与仿真仿真在Proteus中双击LPC 2124,打开属性设置对话框,载入.hex文件,运行交互仿真,结果如图6-11所示。调节滑动变阻器,使输入的模拟电压改变,从而改变LED轮流点亮的速度快慢,可看到模数转换的效果。6.4 基于LPC2124的A/D设计图6-11 程序仿真结果 6.5 基于基于AVR单片机的数码管静态单片机的数码管静态显示显示 内容:内容:AVR单片机ATMEGA16外接一位LED数码管轮流显示数字09,间隔1秒。单片机晶振为4MHz。 训练目的:训练目的:l掌握AVR单片机驱动LED数码管显示的编程方法 ;掌握A
48、VR单片机定时器中断的编程方法 。6.5.1 Proteus电路设计电路设计 1. 元件清单列表打开Proteus ISIS编辑环境,按表6-5所列的清单添加元件。 表6-5 元件清单 6.5 基于AVR单片机的数码管静态显示元 件 名 称所 属 类所 属 子 类ATMEGA16Microprocessor ICsAVR Family7SEG-COM-CAT-GRNOptoelectronics7-Segment DisplaysRESResistorsGeneric 2. 电路原理图 在Proteus ISIS的编辑区域中按图6-12所示的原理图连接硬件电路。6.5 基于AVR单片机的数码管
49、静态显示图6-12 Proteus中电路原理图 6.5.2 程序设计程序设计1. 程序流程图本例的程序流程图如图6-13所示,其中图6-13(a)为主程序,图6-13(b)为定时器1中断服务程序。6.5 基于AVR单片机的数码管静态显示(a) 主程序 (b) 中断服务程序图6-13 程序流程图 2. AVR单片机程序编译、调试环境AVR单片机程序编译和调试主要用到两个软件:CVAVR和AVR studio。1) AVR studio集成开发环境(IDE)AVR studio集成开发环境是美国Atmel公司推出的专门用于开发本公司AVR单片机的汇编语言软件开发平台。它包含AVR汇编编译器、AVR
50、 studio软件模拟调试器、AVR PROG和JTAG串行下载功能,以及JTAG ICE在线仿真调试功能等。AVR studio集成开发环境本身不具备语言编译功能,常借用CVAVR、ICCAVR等编译器编译生成可调试代码。若使用JTAG ICE在线仿真调试功能,还需要购置或自制JTAG ICE仿真器。学习AVR单片机,将选用CVAVR C编译器和Proteus虚拟仿真调试器,或自制JTAG ICE仿真器,自制AVR目标开发板配合AVR studio集成开发环境(IDE)来工作。6.5 基于AVR单片机的数码管静态显示 2) CVAVRCVAVR是一款低成本的C语言编译器,同时也是一个开发AV
51、R的IDE(集成开发环境)开发平台。其特点是代码生成效率高、突出支持位变量访问、直接支持多种外部标准接口器件应用,适合一般初学者使用。用户可以在http:/www.hpinfotech.ro网站下载2KB代码限制CVAVR_Setup.exe安装软件,或从有关光盘中拷贝试用版安装软件进行安装。使用CVAVR编译器编译C语言程序后生成.COF文件,可在AVR studio中运行,或在Proteus ISIS中进行虚拟调试,即Proteus ISIS中AVR单片机允许载入的编译程序格式为“*.cof”文件。6.5 基于AVR单片机的数码管静态显示 CVAVR的使用步骤与Keil非常接近。(1) 建
52、立新工程。 打开CVAVR,选择FILE,单击NEW,出现GREATE NEW窗口。 选择文件类型:可直接选择SOURCE(源文件),也可以选择Project(文件工程),我们选择后者,单击“OK”按钮确定。(2) 选择程序或工程自动生成向导,配置工程。 在自动出现的程序或工程自动生成向导询问窗口中,选“是”。 选择芯片和时钟:如ATMEGA16,4MHZ。 选择端口输入/输出配置。 选择其它相关项目等。6.5 基于AVR单片机的数码管静态显示 (3) 编辑编译源文件。 设置源文件:选择自动向导窗口中的FILE,分三次填写:注意,先选择工程存放路径:如D:ZHU之下,接着是源文件名:XXX.C
53、,工程文件名:XXX.PRJ和(初始化)配置文件名:XXX.CWP,如均采用TEST1(尽量不用中文名称),按NEXT进入下一步。 编辑源文件:在生成的源程序框架中,分别在预处理函数、主函数、子函数等部分编辑自己的源程序,并认真审查各项是否正确;编译源文件或编译工程:选择Project菜单的COMPILE FILE或MAKE FILE命令;通过信息窗口检查错误,修改错误,直至无任何错误信息。检查自设文件夹,应在其中生成“.cof”文件。6.5 基于AVR单片机的数码管静态显示 (4) 在AVR studio中调试运行(.cof或.hex格式的C程序目标代码)。(5) 在Proteus ISIS
54、中调试(虚拟)运行(.cof格式的C程序目标代码):在Proteus ISIS中绘制ATMEGA16原理图,经电气性能检查没有错误;将CVAVR生成的.cof格式文件按正确路径装入ATMEGA16芯片;在 Proteus ISIS中调试并观察程序运行情况。6.5 基于AVR单片机的数码管静态显示6.5.3 Proteus调试与仿真调试与仿真在Proteus中双击单片机ATMEGA 16,在打开的对话框中按图6-14导入程序文件,运行交互仿真。 6.5 基于AVR单片机的数码管静态显示图6-14 单片机程序的虚拟下载仿真片段如图6-15所示。 6.5 基于AVR单片机的数码管静态显示图6-15
55、Proteus交互仿真结果 6.6 AVR单片机的单片机的SPI接口扩展并行接口扩展并行输出输出内容:内容:利用AVR单片机ATMEGA 16的SPI接口和串入并出寄存器74HC164扩展并行输出,外接一位LED数码管,轮流显示数字09。单片机晶振为4MHz。训练目的:训练目的:掌握AVR单片机SPI接口的使用方法 ;掌握SPI接口扩展并行输出的设计方法 。6.6.1 Proteus电路设计电路设计 1. 元件清单列表打开Proteus ISIS编辑环境,按表6-6所列的清单添加元件。 表6-6 元件清单 6.6 AVR单片机的SPI接口扩展并行输出元 件 名 称所 属 类所 属 子 类ATM
56、EGA16Microprocessor ICsAVR Family7SEG-COM-CAT-GRNOptoelectronics7-Segment DisplaysRESResistorsGeneric74HC164.IECTTL 74HC SeriesRegisters 2. 电路原理图 在Proteus ISIS的编辑区域中按图6-16所示的原理图连接硬件电路。6.6 AVR单片机的SPI接口扩展并行输出图6-16 Proteus中电路原理图 6.6.2 程序设计程序设计本例的程序流程图如图6-17所示。6.6 AVR单片机的SPI接口扩展并行输出图6-17 程序流程图6.6.3 Prot
57、eus调试与仿真调试与仿真进入调试环境,双击单片机模块,在打开的对话框中按图6-18载入编译程序“HC74164.cof”。6.6 AVR单片机的SPI接口扩展并行输出图6-18 Proteus中单片机程序的虚拟下载程序运行片段如图6-19(a)所示。6.6 AVR单片机的SPI接口扩展并行输出图6-19(a) 仿真片段1打开示波器观察窗,可以观察MOSI和SCK两条线上的信号变化,如图6-19(b)所示。6.6 AVR单片机的SPI接口扩展并行输出图6-19(b) 仿真片段26.7 基于基于AVR单片机的数字电压表单片机的数字电压表 内容:内容:利用AVR单片机ATMEGA16和4位LED数
58、码管设计一数字电压表。输入到单片机的模拟电压经过单片机内部的A/D转换器转换为数字量,并经过数据处理得到实际的电压值。该电压值通过单片机的SPI接口输出给LED数码管进行显示。训练目的:训练目的:掌握AVR单片机内部A/D转换器的使用方法 ;掌握数字电压表的编程方法 。6.7.1 Proteus电路设计电路设计 1. 元件清单列表打开Proteus ISIS编辑环境,按表6-7所列的清单添加元件。 表6-7 元件清单 6.7基于AVR单片机的数字电压表元 件 名 称所 属 类所 属 子 类ATMEGA16Microprocessor ICsAVR Family7SEG-MPX4-CAOptoe
59、lectronics7-Segment Displays74LS595TTL 74LS SeriesRegistersPOT-HGResistorsVariableNOTSimulator PrimitivesGatesREALCAPCapacitorsGenericRESResistorsGeneric 2. 电路原理图元件全部添加后,在Proteus ISIS的编辑区域中按图6-20所示的原理图连接硬件电路。6.7基于AVR单片机的数字电压表图6-20 Proteus中电路原理图 PB0/T0/XCK1PB1/T12PB2/AIN0/INT23PB3/AIN1/OC04PB4/SS5PB5
60、/MOSI6PB6/MISO7PB7/SCK8RESET9XTAL212XTAL113PD0/RXD14PD1/TXD15PD2/INT016PD3/INT117PD4/OC1B18PD5/OC1A19PD6/ICP120PD7/OC221PC0/SCL22PC1/SDA23PC2/TCK24PC3/TMS25PC4/TDO26PC5/TDI27PC6/TOSC128PC7/TOSC229PA7/ADC733PA6/ADC634PA5/ADC535PA4/ADC436PA3/ADC337PA2/ADC238PA1/ADC139PA0/ADC040AREF32AVCC30U1ATMEGA16Q015Q11Q22Q33Q44Q55Q66Q7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年海上物流服务协议样本
- 2024年工程承包协议登记总册
- 产品分批次订购详细协议范本2024
- 2024建筑工程招标操作代理协议
- 肥料供应商2024年度采购协议范本
- 2024专业路沿石销售协议样本
- 服装批发业务协议模板(2024年)
- 乡村教育数字治理的实施框架
- 车辆土方搬运服务项目2024协议范本
- 2024年铸件采购与销售协议
- 2024-2025学年新教材高中政治 第二单元 世界多极化 4.1 时代的主题教案 新人教版选择性必修1
- 5 新走近我们的老师 第一课时(教学设计)-部编版道德与法治三年级上册
- 国画课程设计报告
- 2024年四川省专利审查协作中心招聘笔高频考题难、易错点模拟试题(共500题)附带答案详解
- 罗汉果基本知识培训
- 肌肉注射操作并发症的预防及处理
- 起重机械使用单位安全总监-特种设备考试题库
- 江苏省徐州市六县2024-2025学年高一数学上学期期中考试试卷
- JTG-T-F20-2015公路路面基层施工技术细则
- 2024山东能源集团中级人才库选拔【重点基础提升】模拟试题(共500题)附带答案详解
- 国家开放大学电大《11662会计信息系统(本)》期末终考题库及标准参考答案
评论
0/150
提交评论