




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
说明:在Proteus仿真通过,在实际硬件电路中。程序可能需要做适当的调整。C程序#include #include macros.h#define uchar unsigned char #define uint unsigned intuint m,n,TEMP,QIAN,BAI,SHI,GE,dang; uchar ledCode=0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf;/*共阳数码管*/uchar FLAGE;void delay_1ms(void) /1ms延时函数 uint i; for (i=0;i1140;i+); void delay_nms(uint n) /N ms延时函数 uint i=0; for (i=0;in;i+) delay_1ms(); void AD_set(void) if(dang=0) ADMUX |= (1 REFS0); /ADC参考电压为AVcc,ADC结果右对齐,选择通道ADC0 ADMUX&=(1MUX1); ADMUX&=(1MUX0); if(dang=1) ADMUX |= (1 REFS0); ADMUX&=(1MUX1); ADMUX|=(1MUX0); if(dang=2) ADMUX |= (1 REFS0); ADMUX|=(1MUX1); ADMUX&=(1MUX0); if(dang=3) ADMUX |= (1 REFS0); ADMUX|=(1MUX1); ADMUX|=(1MUX0); ADCSRA |= (1 ADEN) | (1 ADPS2) | (1 ADPS1); /使能AD转换,ADC时钟64分频 uint AD(void)ADCSRA |= (1 ADSC); /开始AD转换while(!(ADCSRA & (1 ADIF); /等待转换完成ADCSRA |= (1 ADIF); /清零ADC中断标志位return ADC; /返回ADC值void yichangxianshi(void)/超量程显示函数 PORTB=0X01; PORTD=ledCode16; delay_nms(10); PORTB=0X02; PORTD=ledCode16; delay_nms(10); PORTB=0X04; PORTD=ledCode16; delay_nms(10); PORTB=0X08; PORTD=ledCode16; delay_nms(10);void chuli(void)TEMP=0x3ff&m;if(dang=0) n=(int)(long)TEMP*5005*5/(1024*4);/(数据类型)重点难题要注意啊!QIAN=(uchar)(n/1000);BAI=(uchar)(n%1000)/100);SHI=(uchar)(n%100)/10);GE=(uchar)(n%100)%10); if(QIAN=6)&(BAI=2)&(SHI=5)&(GE=0)/判断是否超量程 FLAGE=1; yichangxianshi(); else FLAGE=0; if(dang=1)n=(int)(long)TEMP*5005*5/(1024*3);/(数据类型)重点难题要注意啊! QIAN=(uchar)(n/1000);BAI=(uchar)(n%1000)/100);SHI=(uchar)(n%100)/10);GE=(uchar)(n%100)%10); if(QIAN=8)&(BAI=3)&(SHI=3)&(GE=3)/判断是否超量程 FLAGE=1; yichangxianshi(); else FLAGE=0; if(dang=2)n=(int)(long)TEMP*500*5/(1023*2);/(数据类型)重点难题要注意啊! QIAN=(uchar)(n/1000); BAI=(uchar)(n%1000)/100); SHI=(uchar)(n%100)/10); GE=(uchar)(n%100)%10); if(QIAN=1)&(BAI=2)&(SHI=5)&(GE=0)/判断是否超量程 FLAGE=1; yichangxianshi(); else FLAGE=0; if(dang=3)n=(int)(long)TEMP*500*5/1023);/(数据类型)重点难题要注意啊! QIAN=(uchar)(n/1000); BAI=(uchar)(n%1000)/100); SHI=(uchar)(n%100)/10); GE=(uchar)(n%100)%10); if(QIAN=2)&(BAI=5)&(SHI=0)&(GE=0)/判断是否超量程 FLAGE=1; yichangxianshi(); else FLAGE=0; void xianshi(void) PORTB=0X01; PORTD=ledCodeQIAN; if(dang=0)|(dang=1)/根据量程判断是否个位后显示小数点儿 PORTD&=(17); delay_nms(10); PORTB=0X02; PORTD=ledCodeBAI; if(dang=2)|(dang=3)/根据量程判断是否十位后显示小数点儿 PORTD&=(17); delay_nms(10); PORTB=0X04; PORTD=ledCodeSHI; delay_nms(10); PORTB=0X08; PORTD=ledCodeGE; delay_nms(10); void init(void)DDRB=0X0F;PORTB=0XFF;/数据码DDRD=0XFF;PORTD=0XFF;PORTA =0X80; DDRA = 0x00; /ADC通道设置为输入口,高阻态DDRC=0XFF;PORTC=0XFF;/用于档位的指示dang=0;FLAGE=0;/超量程标志位 void tiaodang(void)/判断按键进行调档 if(PINA & (1 PA7) = 0) delay_nms(30);if(PINA & (1 PA7) = 0) while(PINA & (1 PA7) = 0); dang+; if(dang=4) dang=0; void zhishi(void)/档位指示 switch(dang) case 0:PORTC=0XFE;break; case 1: PORTC=0XFD;break; case 2:PORTC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 麦当劳点餐课件
- 品鉴智慧人生课件
- 直销领袖魅力课件
- 滑雪培训机构介绍
- 孕妇学校知识课件
- 质量意识培训课程
- 暑假班绘画课件
- 恐龙手工课课件
- 课件最后一页祝福语
- 练字课程考试题及答案
- 建筑垃圾处理技术标准(CJJT 134-2019)
- 五年级美术素养测评模拟测试
- 木工课堂安全管理制度
- 《AIGC应用实战:写作、绘图、视频制作、直播》-课件 第七章 即梦的使用方法;第八章 AI直播
- 运动康复项目介绍
- 2025中国地中海贫血祛铁治疗指南解读
- 产品标签管理制度
- 妊娠期女性的护理
- 2025-2030中国自闭症治疗行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国除尘设备行业市场发展分析及前景趋势与投资研究报告
- 开学第一课校园防骗课件(小学生)
评论
0/150
提交评论