为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

“国信长天杯”第三届全国电子专业人才设计与技能大赛单片机组预赛程序、流程图、电路图

2013-08-10 12页 pdf 73KB 45阅读

用户头像

is_496499

暂无简介

举报
“国信长天杯”第三届全国电子专业人才设计与技能大赛单片机组预赛程序、流程图、电路图 一、总程序 #include #include #define uchar unsigned char #define uint unsigned int sbit key4=P3^3; sbit key5=P3^2; sbit key6=P3^1; sbit key7=P3^0; sbit PWM=P3^4; //直流电机控制输出 void delayms(uint z) { uint i,j; for(i=0;i
“国信长天杯”第三届全国电子专业人才设计与技能大赛单片机组预赛程序、流程图、电路图
一、总程序 #include #include #define uchar unsigned char #define uint unsigned int sbit key4=P3^3; sbit key5=P3^2; sbit key6=P3^1; sbit key7=P3^0; sbit PWM=P3^4; //直流电机控制输出 void delayms(uint z) { uint i,j; for(i=0;i99) wendu_H=99; write_24C02(0x00,wendu_H); } while(!key4); } else if(key5==0) /*加下限*/ { delayms(2); if(key5==0) { wendu_L++; if(wendu_L>wendu_H) wendu_L=wendu_H; write_24C02(0x01,wendu_L); } while(!key5); } else if(key6==0) /*减上限*/ { delayms(2); if(key6==0) { wendu_H--; if(wendu_H wendu_H) {TR0=1;} else if((wendu_now < wendu_H) && (wendu_now > wendu_L)) {TR0=0;PWM=1; } if(wendu_now < wendu_L) {relay();} else if((wendu_now < wendu_H) && (wendu_now > wendu_L)) { P0=0x00; P2=0xa0; P2=0x00; } } void main() { P0=0x00; //清 uln2003 P2=0xa0; P2=0x00; P0=0xff; //清数码管 P2=0xe0; P2=0x00; P0=0xff; //清流水灯 P2=0x80; P2=0x00; TMOD=0x01; TH0=(65536-100)/256; TH0=(65536-100)%256; ET0=1; // TR0=1; EA=1; wendu_H=read_24C02(0x00); wendu_L=read_24C02(0x01); while(1) { keyscan1(); Read_temperature(); jiance(); display(); } } /*定时器 0 中断服务函数*/ void timer0() interrupt 1 { TH0=(65536-100)/256; TH0=(65536-100)%256; cnt++; if(cnt==3) { PWM=0; } if(cnt==10) { cnt=0; PWM=1; } } // #include "18B20.h" sbit DQ = P1^4 ; void delay(uint i) { while(i--); } void DS18B20_init(void) { DQ = 1; delay(8); DQ = 0; delay(80); DQ = 1; delay(10); delay(5); } uchar DS18B20_read_char(void) { uchar dat = 0; uchar i=0; for (i=8;i>0;i--) { DQ = 0; dat>>=1; DQ = 1; if(DQ) dat|=0x80; delay(5); } return(dat); } void DS18B20_write_char(uchar dat) { uchar i=0; for (i=8; i>0; i--) { DQ = 0; DQ = dat&0x01; delay(5); DQ = 1; dat>>=1; } delay(5); } void Read_temperature(void) { uchar a=0; uint b=0; uint t=0; uchar TempH; DS18B20_init(); DS18B20_write_char(0xCC); DS18B20_write_char(0x44); delay(200); DS18B20_init(); DS18B20_write_char(0xCC); DS18B20_write_char(0xBE); a=DS18B20_read_char(); b=DS18B20_read_char(); t=b; t=(t<<8)|a; TempH=t>>4; wendu_now=TempH; wendu[4]=TempH%100/10; wendu[5]=TempH%10; } // #include "24C02.h" #define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();} sbit SDA=P2^1; sbit SCL=P2^0; void start() { SDA=1; _nop_(); SCL=1; somenop; SDA=0; somenop; SCL=0; } void stop() { SDA=0; _nop_(); SCL=1; somenop; SDA=1; } void ack() { SDA=1; somenop; SCL=1; somenop; SCL=0; SDA=1; somenop; } void waitack() { SDA=1; somenop; SCL=1; somenop; if(SDA) { SCL=0; stop(); } else SCL=0; } /*先送一个字节的高位*/ void sendbyte(uchar dat) { uchar i; for(i=0;i<8;i++) { if(dat&0x80) SDA=1; else SDA=0; somenop; SCL=1; dat<<=1; somenop; SCL=0; } } uchar readbyte() { uchar i; uchar dat; for(i=0;i<8;i++) { SCL=1; somenop; dat<<=1; if(SDA) dat |=0x01; SCL=0; somenop; } return dat; } void write_24C02(uchar add,uchar dat) { start(); sendbyte(0xa0); waitack(); sendbyte(add); waitack(); sendbyte(dat); waitack(); stop(); } uchar read_24C02(uchar add) { uchar temp; start(); sendbyte(0xa0); waitack(); sendbyte(add); waitack(); start(); sendbyte(0xa1); waitack(); temp=readbyte(); ack(); stop(); return temp; } 二、流程图 开始 初始化 改变温度上下限值 Y 上下限值写入EEPROM 读取当前温度 P34口输出PWM波 Y P34口输出高电平 继电器关闭 Y继电器打开 Y wendu_now > wendu_H wendu_now < wendu_L N 数码管显示 有按键按下 从EEPROM中读上下限值 N 程序流程图    三、电机驱动电路图      
/
本文档为【“国信长天杯”第三届全国电子专业人才设计与技能大赛单片机组预赛程序、流程图、电路图】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索