




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 1欢迎下载 电电子子设设计计综综合合实实验验项项目目报报告告 项目名称 项目名称 MCU 交流电压参数测量 小组成员小组成员 林伊 武正浩 学学 号 号 20111112 20111201 精品文档 2欢迎下载 目录 项目要求 3 题目 3 要求 3 基本要求 3 发挥部分 3 实现思路 4 放大 4 频率 4 A D 6 显示 6 代码 7 主程序 7 lcd 头文件 10 精品文档 3欢迎下载 精品文档 4欢迎下载 项目要求项目要求 题目题目 交流电压参数的测量 要求要求 用给定的 MCU msp430g2553 制作交流电压参数测试设备 图表 1 基本要求基本要求 一 用给定运放 LM324 制作一放大器 a 增益大于 20dB b 带宽大于 100KHz 二 用指定 MCU 和已制作的放大器制作频率计 a 测量范围 10Hz 100KHz b 显示 3 位以上 发挥部分发挥部分 一 用 A D 测量已给电压的幅度 信号由已制作的放大器输入 a 测量范围 输入信号越小越好 精品文档 5欢迎下载 实现思路实现思路 放大放大 首先分析题目要求 要实现放大 20dB 频率 1 100KHz 的信号 通过公式 20lg Ad 得出 Ad 10 即放大 10 倍 必须使用运放 lm324 实现 则需要知道该芯片的器件参数 即增益带宽积 通过数据 手册得知其增益带宽积为 6 4MHz 除去放大倍数得知能够实现该信号的放大 通过设计放 大电路并焊接即可 放大电路为反向比例放大电路 见 Figure 1 Figure 1 频率频率 实现频率的测量 这一块需使用到 MCU 测量频率的方法有很多种 通过捕捉上升沿 下降沿产生中断 也可以不产生中断 还可通过时钟计数 其中通过捕捉上升沿下降沿的 思路又分两种 1 检测上升沿后再检测下一个上升沿 检测下降沿后再检测下一个下降沿 2 检测上升沿后再检测下降沿 检测下降沿后再检测上升沿 这些思路对应不同的采集 方法又可以细分 其中方案 1 对于测量高频信号有着较好的效果 方案 2 对于测低频的信 号较好 前提是占空比为 50 若不为则变为测脉宽 这次的题目我采用的是用时钟计数的方式 msp430g2553 中含有 2 个时钟 timer0 和 timer1 每个时钟都有如下功能 选择时钟来源 1 外部时钟 即外部输入的方波信号 精品文档 6欢迎下载 2 ACLK 3 smclk 等 其中 ACLK 为外部所焊晶振 频率为 32768Hz 由上述条件我使用 timer0 和 timer1 同时工作来进行频率的测量 首先外部晶振属于 手表晶振 极易产生 1s 中断 我首先用 timer1 产生 1s 中断 再用 timer0 选择使用外部 时钟源计数 也就是需要被我们计数的信号输入 这样每一次上升沿 timer0 计数器就会 加一 这样每秒中断读取 timer0 中寄存器的值就可以得出精确度极高的频率 甚至都不需 要换算 此种方案简便易于实现 故选用 流程图 Figure 2 方案选择完毕 考虑如何把正弦信号转换成方波信号输入 MCU 此部分在考虑信号发 生器只输出正电的时候 即正弦信号在 0 电位之上 我们可以完全不用设计任何外部电路 因为 MCU 内部有施密特触发器 可以将正弦输入变成方波 但是如果有负电压输入则会损 坏 MCU 实际中由于 LM324 我们只允许单电源供电 且放大电路为反向比例放大电路 所以只 放大了输入信号的负半周 并且将其搬到正半轴 所以输入到单片机的是只有正的电压 如图 Figure 3 所以不需要外部焊接电路实现波形转换 但是由于本课程是为北京电设做准备 本着 此原则我组成员决定还是设计并焊接一个外部电路来实现波形转换 波形转换有两种方法 1 使用过零比较器 2 使用施密特触发器 由于本题目对输入 信号的频率有要求 过零比较器涉及到运放 所以在频率上有限制 为保证频率不影响实 现 我们选用数字的电路即施密特触发器 数字电路一般频率可以达到几十兆 所以肯定 能够符合要求 见下图 精品文档 7欢迎下载 Figure 4 A DA D 本题发挥部分要求采集正弦信号的峰值 所以涉及 A D 转换部分 由于输入信号频率 在 10Hz 100KHz 由于采样定理 采样频率必须为被采样信号的两倍 虽然实际中最好为 十倍 我们最后还是采用了两倍 Msp430g2553 此款芯片 A D 采集过程若要稳定起码需要 30 个时钟 我的 A D 模块选用 时钟源 smclk 其频率为 8MHz 则 8MHz 除去 30 约为 267KHz 其大于 100KHz 的两倍 基 本满足要求 在之前采集频率的过程中我们有产生一个 1s 中断 A D 平常每采集一次便把 采集的值与最大值比较 把最大值留下 1s 选取一次最大值显示 并把之前最大值清除 显示 显示 显示我们采用 LCD1602 采用四条数据线 三条控制线 在保证 MCU 引脚够用的前提 下进行显示 精品文档 8欢迎下载 代码代码 主程序 主程序 include include LCD1602 Driver h include unsigned int FRE 0 unsigned char flag1 0 unsigned char flag2 0 unsigned int adc sample 0 unsigned int adc max 0 unsigned int temp 0 uchar LCDBuf1 6 uchar LCDBuf2 5 uchar LCDBuf2 HZ uchar LCDBuf3 MV void main 精品文档 9欢迎下载 WDTCTL WDTPW WDTHOLD DCOCTL DCO0 DCO1 DCOCTL MOD4 MOD3 MOD2 MOD1 MOD0 微调 DCOCLK BCSCTL1 RSEL0 RSEL2 RSEL3 14 8M SMCLK IO Init LCD Init 测频初始 TA0CTL TASSEL 0 MC 1 TA0CCR0 0 xffff TA1CTL TASSEL 1 MC 1 TAIE TA1CCR0 32767 TA1CCTL0 CCIE P1DIR P1SEL BIT0 bis SR register GIE while 1 if 0 flag1 else flag1 0 TA0CTL TACLR 精品文档 10欢迎下载 TA0CTL TASSEL 0 MC 1 TA1CTL TASSEL 1 MC 1 TAIE while 0 flag1 flag1 0 显示频率 for int i 0 i 5 i temp FRE 10000 unsigned int pow 10 i LCDBuf1 i temp 0 FRE FRE 10000 unsigned int pow 10 i LCDBuf1 5 0 LCD Disp string 0 0 LCDBuf1 LCD Disp string 5 0 LCDBuf2 测幅初始 flag2 1 TA1CTL TASSEL 1 MC 1 TAIE TA1CCR0 32767 打开时钟 ADC10CTL0 SREF 0 ADC10SHT 2 MSC ADC10ON ADC10IE ADC10CTL1 INCH 1 ADC10SSEL 3 CONSEQ 2 ADC10AE0 0 x02 ADC10DTC0 ADC10B1 ADC10DTC1 0 xC8 精品文档 11欢迎下载 ADC10CTL0 先关闭 adc 待到 BUSY 位清零 每次都必须等待 while ADC10CTL1 Wait if ADC10 core is active ADC10SA unsigned int adc sample Data buffer start ADC10CTL0 ENC ADC10SC ADC10CTL0 SREF 0 ADC10SHT 2 MSC ADC10ON ADC10CTL1 INCH 1 ADC10SSEL 3 CONSEQ 0 ADC10AE0 0 x02 ADC10CTL0 ADC10ON do ADC10CTL0 ENC ADC10SC while ADC10CTL0 adc sample ADC10MEM if adc max adc sample adc max adc sample while 0 flag1 adc max adc max 3300 1023 while 0 flag1 flag2 0 筛选 精品文档 12欢迎下载 for int i 0 iadc max adc max adc sample i 显示幅值 for int i 0 i 5 i temp adc max 10000 unsigned int pow 10 i LCDBuf1 i temp 0 adc max adc max 10000 unsigned int pow 10 i LCDBuf1 5 0 LCD Disp string 0 1 LCDBuf1 LCD Disp string 5 1 LCDBuf3 adc max 0 Timer A1 interrupt service routine pragma vector TIMER1 A0 VECTOR 精品文档 13欢迎下载 interrupt void Timer1 A void if 0 flag2 TA0CTL 0 TA1CTL 0 TA1CTL TACLR FRE TA0R flag1 1 TA0CTL TASSEL 0 MC 0 TA1CTL TASSEL 1 MC 0 TA0CTL TACLR TA0CTL TASSEL 0 MC 1 TA1CTL TASSEL 1 MC 1 TAIE 测了一次还没开 else TA1CTL TASSEL 1 MC 0 flag1 1 ADC10 interrupt service routine pragma vector ADC10 VECTOR 精品文档 14欢迎下载 interrupt void ADC10 ISR void flag1 1 ADC10CTL0 lcdlcd 头文件头文件 include msp430g2553 h define SET LCD 1602 E P2OUT 0 x04 P2 2 define CLR LCD 1602 E P2OUT void LCD Init void void LCD Check busy void 检测 LCD 是否在忙 即能否接收数据和指令 void LCD Write Command uchar command void LCD Write Data uchar dat void LCD Set xy uchar x uchar y uchar LCD Read Sta void uchar LCD Read Data uchar x uchar y void User def char uchar n uchar s 输入用户自定义字符 5 8 点阵字符 0 7 共 8 个字符 void LCD Disp char uchar x uchar y uchar dat void LCD Disp string uchar x uchar y uchar s uchar large 0 当 large 为 1 时 为 5 8 点阵 为 0 时 为 5 10 点阵 void IO Init void LCD IO SEL LCD IO DIR 0 x07 P2DIR 0 x07 P2SEL void LCD Init void 精品文档 16欢迎下载 LCD Write Command 0 x28 LCD Write Command 0 x0F LCD Write Command 0 x06 LCD Write Command 0 x01 void LCD Check busy void uchar flag 0 x80 flag while flag 0 x80 delay cycles 100 flag void LCD Write Command uchar command LCD Check busy CLR LCD 1602 RS CLR LCD 1602 RW CLR LCD 1602 E uchar temp temp command 精品文档 17欢迎下载 if temp 0 x26 temp 0 x2C temp 0 x36 temp 0 x3C large 0 为 5 10 点阵 else large 1 LCD IO DIR 0 xF0 LCD IO OUT command SET LCD 1602 E CLR LCD 1602 E command 4 LCD IO OUT command SET LCD 1602 E CLR LCD 1602 E void LCD Write Data uchar dat LCD Check busy SET LCD 1602 RS CLR LCD 1602 RW CLR LCD 1602 E LCD IO DIR 0 xF0 LCD IO OUT dat SET LCD 1602 E CLR LCD 1602 E 精品文档 18欢迎下载 dat 4 temp sta sta temp return sta uchar LCD Read Data uchar x uchar y uchar dat LCD Set xy x y 确定读取数据坐标 SET LCD 160
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国热塑性塑料球阀项目创业计划书
- 中国二氯一氟乙烷项目商业计划书
- 大专入职考试题及答案
- 冠峰鞋业厂年生产100万双安全鞋项目环评报告表
- 中国沥青混合料项目创业投资方案
- 实物出资协议书
- 基层工会考试试题及答案
- 2025年网筐项目可行性研究报告(可编辑)
- 借用铺面协议书
- 出国打工人考试题及答案
- 雨水收集利用灌溉技术方案
- 2025成考专升本政治试题及答案
- 2025年惠州市龙门县平陵街道招聘村“两委”干部储备人选考试笔试试题(含答案)
- 2023年度海尔集团ESG社会责任报告:家电行业的可持续发展蓝图
- 国外军事思想课件简述
- 足球传球游戏课件
- 医疗计量知识培训内容课件
- 药品采购与管理法规制度指南
- 全面分数运算教学资源包
- 护理学案例模板
- 2025财信证券面试题及答案
评论
0/150
提交评论