实验七 PWM脉宽调制、SPI串行通信

2024年重庆大学通信工程大二课程:《MCU原理及应用——基于恩智浦S12X的嵌入式系统开发》实验课程记录。(错误在所难免,请多斧正!🙏)

目录


资源下载和实验环境

见下前言注意事项

实验二 并行I/O接口、IRQ中断-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_73918454/article/details/139250471?spm=1001.2014.3001.5501


一、实验目的

掌握C语言综合编程方法,掌握SPI串行通信、PWM(Paulse Width Modulation)等功能部件的使用规则和应用方法,进一步熟悉综合程序设计方法和PC软件工具。

二、实验内容

2.1 PWM脉宽调制输出

PWM4/PWM5输出波形模拟用作D/A,控制通道4的蜂鸣器音量或通道5的LED11灯亮度。

代码实现

#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */


void PWM_Init(){
  PWME=0x00;
  PWMCTL=0x00;
  PWMPOL=0xFF;
  PWMCAE=0x00;
  PWMCLK=0xFF;
  PWMPRCLK=0x33;
  PWMSCLA=50;
  PWMPER4=20;
  PWMDTY4=10;
}
  
void main(void) {
  /* put your own code here */
  //unsigned char i = 0;
  //unsigned long j = 50000;
  
  DisableInterrupts;
  
  PWM_Init();
  
  PWME=0x10;
  while(1);
  
  //EnableInterrupts;
  


  for(;;) {
     _FEED_COP(); /* feeds the dog */
    //PWMDTY0 = i;
    //PWME = 0x01;
    //while(j--);
    //j=50000;
    //if(i++>=20)i=0;
    
  } /* loop forever */
  /* please make sure that you never leave main */
}

硬件显示

实验七 2.1 PWM脉宽调制输出

2.2 SPI(Serial Peripheral Interface)串行通信

SPI0单向,主入从出(Master Input Slave Output.  主机中为输入线,从机中为输出线,作用为单项传输数据 )。

开发板上8位拨位开关S1的状态,将通过74HC165D并入串出芯片的输出Q7,输入到MCU的MISO0,将接收的8位状态送至B口8位LED显示。改变8位拨位开关状态,以观察程序运行情况。

提示

对照S12XDEV开发板电路原理图自行查找硬件连接关系;

完成一次SPI读开关状态的步骤:PE3引脚先输出一个负脉冲给74HC165D的并行读数引脚PL(与MCU的PE3引脚相通的),再SPI0发送一个字节以送出时钟脉冲给CP并驱动数据移位,然后才SPI0读一个字节。

2.3 在2.2上改进:加入PC机串行通信

在实验2 的基础上,加入PC机串行通信。SCI0中断方式接收,波特率19200bps。如果接收到PC主机下发的十六进制数88,则将拨位开关的状态发回传给PC机,否则不回传数据。


总结

没时间做了....前面的题目花了很多时间。

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qiming_Peng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值