网站开发环境是什么意思,wordpress 路径函数,万网是什么,网站建设如何敲图标代码一、系统方案 1、设计使用两个按键分别为S1和S2及一个发光二极管LED。S1为出水控制按键#xff0c;当S1按下#xff0c;表示售水机持续出水#xff0c;继电器#xff08;库元件relay#xff09;接通#xff0c;指示灯LED亮。S2为停水控制键#xff0c;当S2按下#xff…一、系统方案 1、设计使用两个按键分别为S1和S2及一个发光二极管LED。S1为出水控制按键当S1按下表示售水机持续出水继电器库元件relay接通指示灯LED亮。S2为停水控制键当S2按下继电器断开停止出水指示灯LED熄灭。 2、用两片8LED数码管库中的器件名为7SEG-MPX8-CA-BLUE或7SEG-MPX8-CC-BLUE或液晶芯片LM041L或LM041液晶芯片LGM12641BS1R LM3228显示费率、出水总量及总价。 3、费率单位为元/升假定费率为0.5元/升。出水总量单位为升总价单位为元。假定出水速度为100ml/秒。费率、出水量、总价均保留两位有效数字。 4、用定时器设计一个1秒的定时间隔当售水机出水键S1按下后同时启动该秒定时器用于实时显示出水量每过1秒出水量加100ml按下S2停止出水键后则显示总价。不足1秒按1秒计算。
二、硬件设计 原理图如下
三、单片机软件设计 1、首先是系统初始化 //*********************************************************************** // 显示屏初始化函数 //*********************************************************************** void LCD_init(void) { LCD_write_com(0x38); //显示模式设置 delay_nms(5); LCD_write_com(0x08); //显示关闭 delay_nms(5); LCD_write_com(0x01); //显示清屏 delay_nms(5); LCD_write_com(0x06); //显示光标移动设置 delay_nms(5); LCD_write_com(0x0C); //显示开及光标设置 delay_nms(5); } 2、液晶显示程序 //*********************************************************************** // 显示屏命令写入函数 //*********************************************************************** void LCD_write_com(unsigned char com) { RS_CLR; RW_CLR; EN_SET; Data_IO com; delay_nms(5); EN_CLR; } //*********************************************************************** // 显示屏数据写入函数 //*********************************************************************** void LCD_write_data(unsigned char data) { RS_SET; RW_CLR; EN_SET; Data_IO data; delay_nms(5); EN_CLR; } 3、按键程序 //按键扫描函数 void scan_key() { if(key1) //如果按键1按下 { if(enable0) //如果当前是停止状态则对出水量进行清0操作保证每次出水都是从0 开始 { water_cnt 0 ; } enable 1; //置位使能标志位 }else if(key2) //当按键2按下停止出水 { enable 0; //清除标志位 vision_cost(); } } 4、核心算法程序 void main() { DDRA0XFF; //设置端口A为输出 PORTA0xff; DDRB0XFF; //设置端口B为输出 PORTB0x00; DDRC0XFC; //数值按键为输入模式 PORTC0xF3; DDRD0XFF; //设置端口D为输出 PORTD0XFF; DDRE0XFF; //设置端口E为输出 PORTE0XFF; DDRF0XFF; //设置端口F为输出 PORTF0XF0; //LCD初始化
//定时器1配置 //TCCR1B按键中配置 LCD_init(); vision_init(); timer1_init(); //定时器初始化 TIMSK 0x04; //timer interrupt sources SEI(); while(1) { scan_key(); //扫描按键 vision_count(); delay_nms(500); //延时主要控制刷新周期 } } 四、 proteus仿真设计 Proteus软件是一款应用比较广泛的工具它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况这样就可以通过软件仿真来验证我们设计的方案有没有问题如果有问题可以重新选择器件连接器件直到达到我们设定的目的避免我们搭建实物的时候如果当初选择的方案有问题我们器件都已经焊接好了再去卸载下去再去焊接新的方案的器件测试这样会浪费人力和物力也给开发者带来一定困惑Proteus仿真软件就很好的解决这个问题我们在设计之初就使用该软件进行模拟仿真测试选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸焊接实物调试最终完成本设计的作品。