智能电风扇控制器设计_单片机课程设计(编辑修改稿)内容摘要:

增加了程序的易移植性。  程序的要完全运行正确,不仅要弄清楚电路图,尤其是各接口的接法,还要注重每个小的细节,因为往往一个很小的错误,使得程序出现一些无法预料的结果,在程序的调试过程中, 我们组 出现了将‘ =’错写为了‘ ==’,智能电风扇控制器设计 11 结果当然运行不出来。 单片机是很重要的一门课程,学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。 尽管我们在课堂学到的内容很有限,但在以后的学习中单片 机还需要好好的深入研究和学习。 七、参考文献 [1] 陈海宴 . 51 单片机原理及应 用 . 北京:北京航空航天大学出版社 ,2020. [2] 郭天祥 . 51 单片机 C 语言教程 . 北京:电子工业出版社 ,2020. [3] 胡启明,葛祥磊 . Proteus 从入门到精通 . 北京:电子工业出版社 ,2020. [4] 张兆明 .基于 AT89S52 单片机的自动温控电风扇设计 .测控技术 , 2020, 03(210820). 智能电风扇控制器设计 12 附录 1: 系统程序 系统主函数 /********************************************************************** ********************************************************************** @@ 设计题目:智能电风扇控制器设计 @@ 设计者: @@ 设计功能: 1. 系统分为自动模式和手动模式,通过自动控制手动控制切换键 K1()可以实现电机转速控制,并用数码管显示其工作在何种状态。 2. 手动状态可以通过 S S2( 加, 减 )实现 9 级风速增减调速,并通过数码管显示。 3. 通过 DS18B20 可以实现风扇附近环境温度的检测,温 度精确到 摄氏度,并通过数码管可以显示实时温度当系统工作切换到自动控制状态时,系统根据环境温度自动控制转速的快慢。 4. 两种工作状态下,均可以通过定时设置功能键 K1()可以实现风扇定时工作,通过时间增减键( 加, 减)实现定时时间设定时间到后风扇停止工作 @@ 系统连线 、 、 、 分别连按键 K K S S2 DS18b20 数据线连 @@ 系统参数: (本参数为仿真参数) 共分为 9 个档位, 从低到高为 19 档,通过数码管显示,对应电机两端电压分别为 、 、 、 、 、 、 、 系统使用的 DS18b20 可以实现 摄氏度的精度。 通过四舍五入,数码管显示可以实现 摄氏度的精度。 环境温度范围与转速关系为: 21 以下,停止; 2122 1 档; 2223 2 档; 2324 3 档; 2425 4 档; 2526 5 档; 2627 6 档; 2728 7 档; 2829 8 档; 29以上, 9 档 系统共设置 7 个定时时间,分别为 1min,5min,10min,30min,1h,2h,5h ********************************************************************************************************************************************/ include 智能电风扇控制器设计 13 include include //用于访问绝对地址 include define uchar unsigned char define uint unsigned int define ON 1 define OFF 0 define Confirm 2 define TimeGrade1 1 //定时等级分别设置为 1 分钟, 5 分钟, 10 分钟, 30 分钟, 1小时, 2 小时, 5 小时 define TimeGrade2 5 define TimeGrade3 10 define TimeGrade4 30 define TimeGrade5 60 define TimeGrade6 120 define TimeGrade7 300 define add XBYTE[0xff23] //控制寄存器 define PA XBYTE[0xff20] //位选为 8255, A口 define PB XBYTE[0xff21] //段选为 8255, B 口 define DA XBYTE[0xff80] //P0 对应的地址 unsigned char tflag。 //定时器时间标志 unsigned char TimeGrade。 //风扇定时等级 unsigned int TimeGo,TIME,t1flag。 //风扇定时时间标志位 int temp_T,temp_T_A。 //采集温度值以及采集的温度绝对值 uint volt_d=140,volt_a。 bit secflag = 0。 bit Auto = OFF。 //定义自动控制允许位 uchar TC = OFF。 //定义定时功能允许位 bit Ch_Full = 0。 //定义调档以最大或者最小标志位 bit TBZF = 0。 //定义温度低于 0 时标志位 uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x88,0x8b,0xbf,0xff}。 //共阳数码管编码表 uchar code wei[]={0x01,0x02,0x04,0x08,0x10,0x20}。 void delayMS(uint z)。 void Initial(void)。 智能电风扇控制器设计 14 void Time_Set(void)。 void display(uchar aa,uchar bb)。 void Handle_display(void)。 void Key_check(void)。 void Anto_Control_speed(void)。 void TempTrans(void)。 void delayMS(uint z) //延时函数 { uchar x,y。 for(x=z。 x0。 x) for(y=110。 y0。 y)。 } void display(uchar aa,uchar bb) //显示子程序 { PA=~wei[aa]。 //位选 PB=table[bb]。 //段选 delayMS(2)。 } void Initial(void) { EX0 = 1。 //开外部中断 0 EX1 = 1。 /。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。