- 36
- 0
- 约1.81千字
- 约 6页
- 2016-02-24 发布于江苏
- 举报
ADC数据采集显示实验.doc
预习报告
实验目的:
掌握ADC的工作原理和操作过程
掌握ADC的接口方法
了解数据处理的实现方法
主要实验仪器:
硬件: 个人电脑 一台
软件: ICCAVR软件、 protuse仿真软件 实验原理及主要工作:
1、实验原理
将连续变化的模拟信号转换为数字信号,显示在1602液晶显示上。
2、主要工作
使用ICCAVR软件编写C程序并编译
使用protuse仿真,找到相应的软件符号并连接线路
仿真结果
实验报告
请按以下几个部分完成实验报告。
一、实验步骤
二、实验原理图(proteus)
三、程序流程图
四、C程序代码全部
五、调试结果截图
六、实验总结及心得体会
七、附件(原理图及程序压缩包)
二、实验原理图
三、实验流程图
四、C程序代码
#include iom16v.h#include macros.h#include math.h#define uchar unsigned char#define uint unsigned int #define RS_CLR PORTB=~BIT(2) #define RS_SET PORTB|=BIT(2) #define RW_CLR PORTB=~BIT(1) #define RW_SET PORTB|=BIT(1) #define E_CLR PORTB=~BIT(0) #define E_SET PORTB|=BIT(0) const uchar disp[]={ADC TXT }; uint value=0; void delay_ms (t){uchar x,y; for(;t0;t--) {for(x=0;x114;x++) for(y=0;y1;y++); } } void WR_DAT(uchar dat) { E_CLR; RS_SET; RW_CLR; PORTC=dat; E_SET; delay_ms(5); E_CLR; } void WR_COM(uchar dat) { E_CLR; RS_CLR; RW_CLR; PORTC=dat; E_SET; delay_ms(5); E_CLR; } void init_1602(void) { DDRB=0XFF; DDRC=0XFF; delay_ms(20); WR_COM(0X38); delay_ms(5); WR_COM(0X38); delay_ms(5); WR_COM(0X38); delay_ms(5); WR_COM(0X08); WR_COM(0X0C); WR_COM(0X01); delay_ms(10); WR_COM(0X06); WR_COM(0X85); } void ADC_init(void) { DDRA=0X00;PORTA=0X00; ADMUX=0X00; ADCSRA=0XE7; SFIOR=0X00; } void main(void) { uchar i,ADC_L,ADC_H; DDRA=0X00;DDRB=0XFF;DDRC=0XFF; ADC_init(); init_1602(); WR_COM(0X80); for(i=0;i15;i++) { WR_DAT(disp[i]); } while(1) { ADC_L=ADCL; ADC_H=ADCH; WR_COM(0Xc0); value=(ADC_H*256+ADC_L)*5/10.24; ADC_init(); WR_DAT(0+value/100); WR_DAT(.); WR_DAT(0+value%100/10); WR_DAT(0+value%100%10); WR_DAT(v); } }
五、实验结果
原创力文档

文档评论(0)