




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/*/* Name: 电子设计电源题 功能:稳压,电路保护功能 */ /* Designed by : 胡车,蒋睿,张佩小组 Date:2013/9/5 21:09 */* 开发环境: ICCAVR */* PD0确定键,PD1增加键,PD2菜单键,PD7减小键,PD5输出PWM波,PD6接继电器 */* PA0PA2液晶控制,PB口液晶数据口,PA5采样电压输入,PA6采样电流输入 */*/#include <iom16v.h>#include <macros.h>#include "1602.h"#define uchar unsigned ch
2、ar#define uint unsigned int#define Get_Bit(val, bitn) (val &(1<<(bitn) ) uint addata;uint rec=1;uchar flag=1;/进入按键中断标志uchar key_flag=0;/按键标志位uchar num_flag=0;/数字改变标志uchar err_flag=0;/出错类型标志uchar delay_flag=0;/适应电压标志uint vol_exp=368;/360理想输出电压 uint num1=1,num2=5;uint k1,k2;uchar cont1="
3、;Limited Current:"uchar cont2=" . A " uchar temp1="Voltage: . V ",temp2="Current: . A ",temp3="DUTY CYCLE: %"float temp1float=0,temp2float=0;uint temp1int=0,temp2int=0; void port_init(void) PORTA = 0xf8;/f8 DDRA = 0x07; PORTB = 0x00; DDRB = 0xFF; PORTC =
4、0xFF; /m103 output only DDRC = 0x00; PORTD = 0x8F; DDRD = 0x70;/TIMER1 initialize - prescale:1/ WGM: 5) PWM 8bit fast, TOP=0x00FF/ desired value: 31.25KHz/ actual value: 31.250KHz (0.0%)void timer1_init(void) TCCR1B = 0x00; /stop TCNT1H = 0xFF; /setup TCNT1L = 0x01; OCR1AH = 0x00; OCR1AL = 0x30;/改变A
5、占空比 OCR1BH = 0x00; OCR1BL = 0x5E;/改变B占空比 ICR1H = 0x00; ICR1L = 0xFF; TCCR1A = 0xF1; TCCR1B = 0x09; /start Timer1 / 7/*延时函数*/void delay_ms(unsigned int xms) int i,j; for(i=0;i<xms;i+) for(j=0;j<1140;j+); void delay(uint x) int i,j; for(i=0;i<x;i+) for(j=0;j<200;j+); /按下按键后待处理的程序void key_s
6、ol(void)/液晶界面 flag=0; key_flag=1; LcdInit(); WriteChar(1,0,16,cont1); WriteChar(2,0,16,cont2); WriteNum(2,0,ASCIInum1); WriteNum(2,2,ASCIInum2); writecom(0x0f);/开光标显示 writecom(0xc0); while(key_flag!=0) /*确定按键*/ if(Get_Bit(PIND,PD0)=0) delay_ms(20);key_flag=key_flag+1;while(!(Get_Bit(PIND,PD0);/等待按键松
7、开delay_ms(20); switch(key_flag) case 1:/调节电流NUM1 /*增加按键*/ if(Get_Bit(PIND,PD1)=0) num_flag=1; delay_ms(10);num1+;if(num1=10) num1=9;WriteNum(2,0,ASCIInum1);writecom(0xc0); while(!(Get_Bit(PIND,PD1);/等待按键松开delay_ms(10); /*减少按键*/if(Get_Bit(PIND,7)=0) num_flag=1; delay_ms(10);num1-;if(num1=0) num1=1;Wr
8、iteNum(2,0,ASCIInum1);writecom(0xc0); while(!(Get_Bit(PIND,PD7);/等待按键松开delay_ms(10); break; case 2:/调节电流NUM2 writecom(0xc2); /*增加按键*/ if(Get_Bit(PIND,PD1)=0) num_flag=1; delay_ms(10);num2+;if(num2=10) num2=9;WriteNum(2,2,ASCIInum2);writecom(0xc2); while(!(Get_Bit(PIND,PD1);/等待按键松开delay_ms(10); /*减少按
9、键*/if(Get_Bit(PIND,7)=0) num_flag=1; delay_ms(10);num2-;if(num2=0) num2=1;WriteNum(2,2,ASCIInum2);writecom(0xc2); while(!(Get_Bit(PIND,PD7);/等待按键松开delay_ms(10); break; case 3: key_flag=0; break; default: key_flag=0; #pragma interrupt_handler int0_isr:iv_INT0void int0_isr(void) delay_ms(10); key_sol(
10、); /while(!(Get_Bit(PIND,PD2);/等待按键松开 delay_ms(10); key_flag=0; flag=1; LcdInit();void init_devices(void) /stop errant interrupts until set up CLI(); /disable all interrupts port_init(); timer1_init(); MCUCR = 0x02; GICR = 0x40; TIMSK = 0x00; /timer interrupt sources SEI(); /re-enable interrupts /al
11、l peripherals are now initializeduint AD_GetData(uint ad_input) ADMUX|=0x40; /ADC参考电压AVcc ADCSRA|=0x87; /使能ADC,128分频 ADMUX=ad_input; /选择AD转换通道 ADCSRA|=(1<<ADSC);/开始AD转换 delay(1); while(!(ADCSRA&(1<<ADIF); /等待转换结束 ADCSRA|=(1<<ADIF); /关闭AD转换 ADCSRA&=0x0f; return ADC;/*系统修正*/v
12、oid sys_comp() while(1) switch (delay_flag) case 0: case 1: if(temp1int<vol_exp) OCR1AL=OCR1AL+3; delay_flag=0; if(temp1int>vol_exp) OCR1AL=OCR1AL-3; delay_flag+; break; default: if(temp1int<vol_exp) OCR1AL=OCR1AL+1; if(temp1int>vol_exp) OCR1AL=OCR1AL-1; delay_ms(1); ad_get(); if(OCR1AL&
13、lt;2) OCR1AL=2; delay_ms(20); if(temp1int>vol_exp) delay_ms(30);if(temp1int>vol_exp) err_flag=0; err_sol(); PORTD&=0xbf;/打开继电器 if(temp2int>(num1*100+num2*10)&&(OCR1AL>150) err_flag=1; err_sol(); void err_sol() uchar cont3="Safe Mode " uchar cont4="Caution: &quo
14、t; uchar cont5="Voltage >36V " switch (err_flag) case 0: PORTD|=(1<<PD6);/关闭继电器 LcdInit(); WriteChar(1,0,14,cont4); WriteChar(2,0,14,cont5); OCR1AL =2;/初始化A占空比80% delay_flag=0; flag=0; while(!flag);/等待菜单按键按下 delay_ms(50); break; case 1: PORTD|=(1<<PD6);/关闭继电器 LcdInit(); Writ
15、eChar(1,0,14,cont3); / OCR1AL = 0x51;/初始化A占空比80% delay_flag=0; flag=0; while(!flag);/等待菜单按键按下 delay_ms(50); break; default: break; /*ad读取*/void ad_get() /uchar ASCII="0123456789" uchar i; uchar t; uchar r; addata=AD_GetData(0x45); /获得通道5数字量 for(i=0;i<9;i+) addata=addata+AD_GetData(0x45)
16、; temp1float=addata*0.0048828125; temp1float=temp1float/9.08; temp1int=(uint)(temp1float*100)+1); temp18=ASCIItemp1int/100; temp19=ASCII(temp1int%100)/10; temp111=ASCIItemp1int%10; while(!flag); WriteChar(1,0,17,temp1); addata=AD_GetData(0x46); /获得通道6的数字量 for(i=0;i<9;i+) addata=addata+AD_GetData(
17、0x46); temp2float=addata*0.0048828125; temp2float=temp2float/21.0; temp2int=(uint)(temp2float*100); temp28=ASCIItemp2int/100; temp210=ASCII(temp2int%100)/10; temp211=ASCIItemp2int%10; while(!flag); WriteChar(2,0,17,temp2); r+; if(r=30) /LcdInit(); /* addata=AD_GetData(0x47); /获得通道7的数字量 for(i=0;i<9;i+) addata=addata+AD_GetData(0x47); temp3float=addata*0.0048828125; temp3float=temp3float/21.0; temp3int=(uint)(temp3float*100
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重庆重庆广播电视集团(总台)重庆卫视招聘笔试历年参考题库附带答案详解
- 2025内蒙古通辽环保投资有限公司招聘4人笔试参考题库附带答案详解
- 湖南电气职业技术学院《职业素养与商务礼仪》2023-2024学年第二学期期末试卷
- 广东理工学院《初级会计学》2023-2024学年第二学期期末试卷
- 南京理工大学紫金学院《嵌入式基础与应用》2023-2024学年第二学期期末试卷
- 赣南卫生健康职业学院《新闻报道框架研究》2023-2024学年第二学期期末试卷
- 黔东南民族职业技术学院《建筑工程施工组织管理》2023-2024学年第二学期期末试卷
- 黑龙江建筑职业技术学院《语文基础与前沿问题》2023-2024学年第二学期期末试卷
- 黑龙江幼儿师范高等专科学校《教师伦理学》2023-2024学年第二学期期末试卷
- 广西生态工程职业技术学院《摄影摄像》2023-2024学年第二学期期末试卷
- 商场快闪门店装修合同模板
- 历年高考物理真题分类汇编合集
- 第5课时:精读引领课《纳米技术就在我们身边》+《纳米科技走进生活》课件
- 单位给个人借款合同范本
- TSG07-2019压力容器设计程序文件
- CJT511-2017 铸铁检查井盖
- 临床经尿道前列腺电切(TURP)护理查房
- 一年级下册口算题卡大全(口算练习题50套直接打印版)
- 军事理论-综合版智慧树知到期末考试答案章节答案2024年国防大学
- 村级固定资产管理制度
- 日照实验高中国际版入学试卷
评论
0/150
提交评论