数字电压表作业

上传人:汽*** 文档编号:489740923 上传时间:2023-07-30 格式:DOC 页数:11 大小:1.01MB
返回 下载 相关 举报
数字电压表作业_第1页
第1页 / 共11页
数字电压表作业_第2页
第2页 / 共11页
数字电压表作业_第3页
第3页 / 共11页
数字电压表作业_第4页
第4页 / 共11页
数字电压表作业_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《数字电压表作业》由会员分享,可在线阅读,更多相关《数字电压表作业(11页珍藏版)》请在金锄头文库上搜索。

1、20162017学年第2学期嵌入式控制系统设计数字电压表 专业班级 姓 得分评人一、 技术要求1、约束性指标:数字显示采用8段数码管,字符高度14.2mm,红色;显示电压范围05V,显示分辨率5mV;显示位数:4位,显示结果要紧凑;显示形式:X.XXX,即小数点位于第一位之后。2、扩展性指标:数字电压表具有与PC机通讯功能;用8位晶体管显示电压数值。二、 方案设计1、 总体方案设计利用AW60开发板设计一个四位数字电压表,设计中使用到AW60MUC中的AD转化模块、串口通信模块以及PWM模块。设计实现了显示电压范围05V,显示分辨率5mV的数字电压表,实现了8为数码管的动态显示以及PC机的实时

2、通信连接功能。设计方案原理图如图1.图1 方案原理图2、四位数字电压表显示硬件连接按照如下表格对应接插点连接。表1 晶体管段选连接PORTPTE7PTE6PTE5PTE4PTE3PTE2PTA1PTA0MCU portSCKMOSIMISOSSTICH1TICH0PA1PA0DisplayDPGFEDCBA表2 晶体管位选连接PORTCPORTC3PORTC2PORTC1PORTC0MCU portPORTC3PORTC2PORTC1PORTC0DisplayL1L2L3L4表3 参考电压及AD输入接口PowerPower+Power+A/D 05VMCU portVREFHVREFLPB0原

3、理图图2 四位数码管显示原理图AD转换程序见附录。PCB图图3 PCB原理图实验结果利用编写的程序以及设计的电路,可以完成四位数字电压表的要求。实验结果如图4。图4 数字显示结果3、8段数码管显示硬件连接按照如下表格对应接插点连接。表4 8段数码管显示PORTPORTD0PORTD1PORTD2PORTD3PORTG0PORTG1PORTG2PORTG3MCUPD0PD1PD2PD3PG0PG1PG2PG3OUTL7L6L5L4L3L2L1L0原理图图4 8段晶体管显示原理图程序运行程序见附录。PCB图图5 PCB原理图显示结果显示结果如图6.图6 8段晶体管显示结果4、串口通信利用BDM仿真

4、器连接实验板和PC机,编写程序实现实验板和PC级的通讯功能。原理图图7 串口通信原理图实验结果图7 串口通信结果(3.660V)三、 显示精度测试表5 测试结果(由低到高)表6 测试结果(由高到低)四、 基于STC89C51的方案设计原理框图图8 C51方案原理框图两种方案对比 使用STC89C51单片机,需要使用外部ADC转换模块AD8040。增加了硬件电路的复杂性和成本,增加了单片机设计工作量,同时降低了系统的可靠性。ADC8040模块使用的是8位ADC转换,精度比使用AW60内ADC模块的精度低。五、附录主程序#include /* for EnableInterrupts macro

5、*/ #include derivative.h /* include peripheral declarations */ /* Def Variable*/ unsigned char LED4=0x01,0x02,0x03,0x04; unsigned char NUM=0;unsigned char LEDBuffer;unsigned char LEDBuffer1; const char LEDTable4=0xF7,0xFB,0xFD,0xFE; const char SGT10=0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,0x8

6、0, 0x90; unsigned short ADCTEMP,ADCTEMP1; unsigned char GRAPH(unsigned char LEDBuffer1); const unsigned char LEDtraD9=0xFF,0xFE,0xFC,0xF8,0xF0,0xF0,0xF0,0xF0,0xF0; const unsigned char LEDtraG9=0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF8,0xF0;unsigned char NUMtra=0;unsigned char j=0;void main(void) Disab

7、leInterrupts; /* Disable Interrupts*/ /*Initial_ICG*/ ICGC1=0x78; /*Enable the External Crystal=4MHz,Bus Frequency=4MHz*/ ICGC2=0x22; while(ICGS1&0x08)=0) _RESET_WATCHDOG(); /*Check FLL LOCK=1?*/ /*Initial_TPM2*/ TPM2SC=0x06; /*Set TPM2clock is Bus rate clock, Prescale Divisor is 64 */ TPM2MODH=0x00

8、; /*Set Time =2.5ms*/ TPM2MODL=0x9C; /*Initial_PTF*/ PTFD_PTFD4=1; PTFDD_PTFDD4=1; /*Initial_PTC*/ PTCD=0xFF; PTCDD=0xFF; /*Initial_PTE*/ PTED=0xFF; PTEDD=0xFF; /*Initial_PTD*/ PTDD=0xFF; PTDDD=0xFF; /*Initial_PTG*/ PTGD=0xFF; PTGDD=0xFF; /*Initial_PTA*/ PTAD=0xFF; PTADD=0xFF; /*Initial_ADC1*/ ADC1C

9、FG=0x18; ADC1SC2=0x00; APCTL1=0x01; APCTL2=0x00; ADC1SC1=0x60; /*Initial_SCI1*/ SCI1BDL=0X1A; SCI1C2=0X08; TPM2SC=TPM2SC|(0x48); /*Enable TPM2 Overflow Interrupt Enable TPM2*/ /TPM2SC=TPM2SC|(0x08); EnableInterrupts; /* enable interrupts */ /* include your code here */ for(;) _RESET_WATCHDOG(); /* f

10、eeds the dog */ /* loop forever */ /* please make sure that you never leave main */ /*def function*/ unsigned char GRAPH(unsigned char LEDBuffer1) return(SGTLEDBuffer1); void interrupt tpm2ovf(void) /unsigned char GRAPH(unsigned char LEDBuffer1); TPM2SC_TOF=0; PTFD_PTFD4=PTFD_PTFD4; /*Display*/ PTCD=0xFF; LEDBuffer=GRAPH(LEDNUM); if(NUM=0) LEDBuffer=LEDBuffer&0x7F; PTED=LEDBuffer; PTAD=LEDBuffer; PTCD=LEDTableNUM; NUM+=0x01; if

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号