




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子与控制系统设计实验报告实验项目名称:05v数字式直流电压表设计指导老师: 元泽怀 完成时间: 2015年11月3日 姓名: 刘文开 班级: 12电气1班 学号: 201224122116 成绩: 电子信息与机电工程学院 编制实验项目010v数字式直流电压表设计实验项目类型验证演示综合设计其他*一、实验目的1. 掌握 a/d转换程序的设计;2. 掌握数据采集与显示的应用;3掌握数据处理的方法;二、实验内容1. 编一程序,实现05v 数字式直流电压表功能,用电位器rv1 作模拟量的输入,右边4位数码管显示输入电压值,使用 pa7 进行模拟量输入。其仿真电路见下图5-1所示。图5-1 05v 数字式直流电压表仿真电路图2. 实现输入信号的幅值为 010v,重新设计实现电路和算法程序,电路图如5-2所示。图5-2 010v数字式直流电压表仿真电路图三、使用仪器设备及材料1、安装windows xp操作系统的微型计算机1台2、avr单片机c语言集成开发环境iccavr6.31a3、单片机仿真平台proteus7.54、avr单片机下载软件progisp5、avr单片机实验板1套(含下载器)四、实验过程原始记录1、主程序流程图2.显示函数流程图:2、软件主要程序及注解驱动程序:/*lcd1602液晶驱动程序*/ #include #include #define xtal 8 #define pb0 0 #define pb1 1 #define pb2 2 /- #define uchar unsigned char #define uint unsigned int #define set_bit(x,y) (x|=(1y) #define clr_bit(x,y) (x&=(1y) #define get_bit(x,y) (x&=(131)l+; for(i=0;il;i+) displayonechar(x+,y,ptri); if(x=16) x=0;y=1; /*演示第二行移动字符串子函数* void displayline2(uchar dd) uchar i; for(i=0;i16;i+) displayonechar(i,1,dd+); dd&=0x7f; if(dd32)dd=32; /*显示光标定位子函数* void locatexy(char posx,char posy) uchar temp=0; temp&=0x7f; temp=posx&0x0f; posy&=0x01; if(posy)temp|=0x40; temp|=0x80; lcdwritecommand(temp); /*显示光标定位的一个字符子函数* void displayonechar(uchar x,uchar y,uchar wdata) locatexy(x,y); lcdwritedata(wdata); /*lcd初始化子函数* void initlcd(void) lcdwritecommand(0x38);/显示模式设置(固定),8位数据接口 delay_nms(5); lcdwritecommand(0x01);/清屏 delay_nms(5); lcdwritecommand(0x0c);/开显示,不显示光标 delay_nms(5); /*写命令到lcm子函数* void lcdwritecommand(uchar cmd) lcm_rs_0;lcm_rw_0; dataport=cmd; lcm_en_1;delay_nms(1);lcm_en_0; /*写数据到lcm子函数* void lcdwritedata(uchar dataw) lcm_rs_1;lcm_rw_0; dataport=dataw; lcm_en_1;delay_nms(1);lcm_en_0; /*1ms延时子函数* void delay_1ms(void) uint i; for(i=1;i(uint)(xtal*143-2);i+) ; /=n*1ms延时子函数= void delay_nms(uint n) uint i=0; while(in) delay_1ms(); i+; 05v 数字式直流电压表程序:#include #define uchar unsigned char #define uint unsigned int uchar const seg710=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f;/单个数码管19显示 uchar const act4=0xfe,0xfd,0xfb,0xf7;/选通数码管 uint adc_val,dis_val; uchar i,cnt; /*/ void port_init(void) porta = 0x7f; ddra = 0x7f; portb = 0xff; ddrb = 0xff; portc = 0xff; ddrc = 0xff; portd = 0xff; ddrd = 0xff; /*/ void adc_init(void) adcsra = 0xe3; admux = 0x47; /* void timer0_init(void) tcnt0 = 0x83; tccr0 = 0x03; timsk = 0x01; /*/ void init_devices(void) port_init(); timer0_init(); adc_init(); sreg =0x80; /* #pragma interrupt_handler timer0_ovf_isr:10 void timer0_ovf_isr(void) tcnt0 = 0x83; cnt+; /= uint adc_convert(void) uint temp1,temp2; adc_init(); temp1=(uint)adcl; temp2=(uint)adch; temp2=(temp28)+temp1; return(temp2); /*/ uint conv(uint i) long x; uint y; x=(5000*(long)i)/1023; y=(uint)x; return y; void delay(uint k) uint i,j; for(i=0;ik;i+) for(j=0;j100) adc_val=adc_convert(); dis_val=conv(adc_val); cnt=0; delay(10);for(i=0;i100;i+) portc=act0; portb=seg7dis_val%10; delay(1); portc=act1; portb=seg7dis_val/10%10; delay(1); portc=act2; portb=seg7dis_val/100%10; delay(1); portc=act3; portb=0x80|seg7dis_val/1000; delay(1); 输入信号的幅值为 010v程序:#include #include lcd1602_8bit.c uchar const title=0-10v d_voltager; #define uchar unsigned char #define uint unsigned int uint adc_val,dis_val; uchar i,cnt; /*/ void port_init(void) porta = 0x7f; ddra = 0x7f; portb = 0xff; ddrb = 0xff; portc = 0xff; ddrc = 0xff; portd = 0xff; ddrd = 0xff; /*/ void adc_init(void) adcsra = 0xe3; admux = 0x47; /* void timer0_init(void) tcnt0 = 0x83; tccr0 = 0x03; timsk = 0x01; /*/ void init_devices(void) port_init(); timer0_init(); adc_init(); sreg =0x80; /* #pragma interrupt_handler timer0_ovf_isr:10 void timer0_ovf_isr(void) tcnt0 = 0x83; cnt+; /= uint adc_convert(void) uint temp1,temp2; adc_init(); temp1=(uint)adcl; temp2=(uint)adch; temp2=(temp28)+temp1; return(temp2); /*/ uint conv(uint i) long x; uint y; x=(10000*(long)i)/1023; y=(uint)x; return y; void delay(uint k) uint i,j; for(i=0;ik;i+) for(j=0;j100) adc_val=adc_convert(); dis_val=conv(adc_val); cnt=0; delay(10); displayonechar(5,1,(adc_val/1000)+0x30); displayonechar(6,1,(adc_val/100)%10+0x30); displayonechar(7,1,(adc_val/10)%10+0x30); displayonechar(8,1,(adc_val%10)+0x30); displayonechar(10,1,(dis_val/10000)+0x30); displayonechar(11,1,(dis_val/1000)%10+0x30); displayonechar(13,1,(dis_val/100)%10+0x30); disp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 张鹏一轮A课件
- 2025年湖南益阳市交通投资运营集团有限公司下属子公司公开招聘(第一批)模拟试卷及1套完整答案详解
- 2025年宿州市人才集团有限公司招募就业见习人员7人模拟试卷及答案详解(全优)
- 张老师简介课件
- 2025湖南怀化国际陆港辰溪港区发展有限责任公司招聘工作人员拟聘用人员考前自测高频考点模拟试题及答案详解(新)
- 2025广东大塘街招聘辅助人员1人考前自测高频考点模拟试题含答案详解
- 北京市初三生物期中考试试题解析
- 高考易错成语归类与教学辅导
- 三峡相关中小学比较阅读教学案例
- 2025河北保定幼儿师范高等专科学校选聘教师模拟试卷附答案详解(突破训练)
- 2025版小学语文新课程标准
- 2025年 无锡市工会社会工作者招聘考试笔试试题附答案
- 小学保护洱海教学课件
- 地铁车站装修安全文明施工专项方案及措施
- 金属冶炼安全培训课件
- 3D打印车间粉尘防爆管理体系
- 剪映入门培训课件
- 新能源汽车充电桩工程物资供应措施
- 基于大数据的国际广播媒体发展模式比较分析-洞察阐释
- DB32-T 5108-2025 科技服务机构星级评定规范
- JG/T 441-2014额定电压450/750 V及以下双层共挤绝缘辐照交联无卤低烟阻燃电线
评论
0/150
提交评论