结 论
电压测量人机界面设计对设备都有很大的应用和帮助,能够很好的应用到各种物
质清洗的设备中去,随着社会的科技的发展,国民生活水平的提高,越来越多的方面都要用到清洗设备,我国现在也在大力发展,并且目前也有了很高的地位。 本次论文从系统整体的框图开始分析,从各模块分布介绍最后完成整个清洗设备的整体设计系统,使用AT89C52单片机为控制核心,利用其强大的处理能力和较丰富的外围接口,从而也选用了一款适合的液晶显示器(RT12864M),它性能好,功耗小,并且自带字库,不用再去单独的去写一些字给液晶,只要调用字库里的文字就可以,更加简单方便。通过在此基础上还可以做更多的功能控制以及显示动作状态,在不同的清洗设备中做到不同的控制要求以及显示。
通过这次的毕业设计,使我对单片机有了更深刻的了解,尤其是AT89C52同时对清洗设备控制概念有了更实际的理解。至此,我基本掌握了各个器件的原理及应用,并熟悉了电路设计软件和仿真软件的使用方法。通过本次设计,我也深深地发现了自身在理论掌握和软件开发能力上的不足,在以后的工作学习中,我会不断严格要求自己。
31
参考文献
[1] 肖洪兵. 跟我学用单片机. 北京:北京航空航天大学出版社,2002.8
[2] 何立民. 单片机高级教程. 第1版.北京:北京航空航天大学出版社,2001 [3] 赵晓安. MCS-51单片机原理及应用. 天津:天津大学出版社,2001.3 [4] 李广第.单片机基础. 第1版.北京:北京航空航天大学出版社,1999 [5] 徐惠民、安德宁.单片微型计算机原理接口与应用.第1版.北京:北京邮电大学出版社,1996
[6] 何立民.从Cygnal 80C51F看8位单片机发展之路,片机与嵌入式系统应用,2002,105(5)5~8
[7] 夏继强. 单片机实验与实践教程. 北京:北京航空航天大学出版社, 2001 [8] 陈志强 胡辉. 单片机应用系统设计实践指南. 自编教材。
[9] 黄长杰;包文俊;液晶显示器汉字字模存储方法;安徽建筑;2006,104 (4)110-120
[10] 鹿玲,曹力;HD4478U控制器的LCD应用及错误显示问题解决;鞍山钢铁学院学报;2002,12(5):90-95
[11] 谢达勇,初建朋,等。液晶显示驱动/控制电路的设计;半导体技术;2001,11 (5):30-35
[12] 刘义菊;图形液晶显示模块在仪器仪表中的应用;电测与仪表;2001,6 (8):130~135
[13] 包明;余成波;;嵌入式处理器Nios II与液晶显示模块的接口及应用;与仪表;2006,13(1):60-80
[14] 付先成;低功耗高性能图形控制芯片的设计与验证;华中科技大学;2006 [15] 吴平;LCD便携式急救心电监护仪;浙江大学;2002
[16] 涂启志,赵冉,等。基于三相非对称Cuk斩波器的感应电机软起动;电力电子技术;2009,,106(7):100-110
[17] 苏亮,廖力清,等。电机软启动自整定模糊控制器的研究与设计;电子技术;2009,108(5):90-100
[18] 郭斌;电机软启动器的MATLAB仿真分析;兰州石化职业技术学院学报;2009,13(6):40-45
[19] 郭荣祥,袁红霞,等。基于斩波方式的三相交流异步电动机软起动仿真研究;冶金自动化信息网年会论文集;2004
32
附录1程序
程序:
/*************************************8M晶振***********************************/ /*void main(void) DDRD=0xff; delay_ms (1); init_lcd ();
/*****************清屏**************/ // lat_disp (0x00,0x00); //必须要 // clrram();
/***********************************/ // delay_ms(100);*/
/******************************函数****************************************/ // chn_disp(0,0,\王Zh(26).\指定起始行、列的汉字、字符、数字*/
// con_disp (0xff,0xff,1,1,4,16);/*反白:指定起始行、列、每行反白的数量、高度*/ // con_disp1 (0,0,5);/*闪烁反白:指定起始行、列反白的实字数*/ // img_disp(tab);/*全屏显示图片*/ // img_disp1(tab1);/*下半屏显示图片*/ // cur_disp1(0,1);/*大光标:列为8列*/ // cur_disp2(1,1);/*小光标:列为16列*/
/******************************接口****************************************/ /*16:RS=PD4 51: cs= P1^0 R/W=PD5 std=P1^1 E=PD6 sclk =P1^2 RST=PD7 rst=P1^3 PSB接低电平 PSB接低电平
/**************************************************************************/ #include
#define uint unsigned int #define uchar unsigned char #define x1 0x80 #define x2 0x88 #define y 0x80 #define comm 0 #define dat 1 uint ms=0; uint ns=0; uint tts=0; uint dds=0; uint qqs=0;
33
uchar tab1[]=\时间:123\ // uchar js=0;
/*sbit cs = P1^0; */ //RS sbit std = P2^4; //R/W sbit sclk = P2^5; //E sbit rst = P2^6; //RST
#define clr_rst rst=0 #define sbi_rst rst=1
#define clr_cs cs=0 #define sbi_cs cs=1
#define clr_std std=0 #define sbi_std std=1
#define clr_sclk sclk=0 #define sbi_sclk sclk=1
/*..................延时...................*/ void delay_us(uint te) {uint eee,hhh;
for(eee=0;eee for(hhh=0;hhh<100;hhh++); } } /*-----------------------------------*/ void wr_lcd (uchar dat_comm,uchar content) { uchar a,i,j; a=content; /*sbi_cs; */ clr_sclk; sbi_std; for(i=0;i<5;i++) { sbi_sclk; clr_sclk; } clr_std; sbi_sclk; clr_sclk; 34 if(dat_comm) sbi_std; //data else clr_std; //command sbi_sclk; clr_sclk; clr_std; sbi_sclk; clr_sclk; for(j=0;j<2;j++) { for(i=0;i<4;i++) { if(a&0x80) sbi_std; else clr_std; a<<=1; sbi_sclk; clr_sclk; } clr_std; for(i=0;i<4;i++) { sbi_sclk; clr_sclk; } } } //////////////////////////////////////////////////////////////////////////// void init_lcd (void) { sbi_rst; wr_lcd (comm,0x30); wr_lcd (comm,0x01); delay_us(1500); wr_lcd (comm,0x06); wr_lcd (comm,0x0c); } /*************指定起始位置写汉字和字符串1*****************/ /*a 为起始行 b 为起始列 *s 为显示的汉字、字符、数字*/ void chn_disp(uchar a,uchar b,uchar *s) { 35