单片机控制全自动洗衣机:注水-洗涤-排水程序设计及C语言代码
{/'title/':/'单片机控制全自动洗衣机:注水-洗涤-排水程序设计及C语言代码/',/'description/':/'本文介绍基于单片机设计全自动洗衣机的/////'注水-洗涤-排水/////'程序,并提供C语言代码和仿真图。洗衣过程分为标准洗和快速洗两种,由按键控制。代码实现电机正反转控制,以及时间显示功能。/',/'keywords/':/'单片机, 全自动洗衣机, 注水, 洗涤, 排水, C语言, 仿真图, 时间显示, 电机控制, 标准洗, 快速洗/',/'content/':/'#include ///'reg52.h///'//n//nsbit key_standard = P1^0; // 标准洗按键//nsbit key_fast = P1^1; // 快速洗按键//nsbit motor = P2^0; // 电机控制引脚//nsbit segA = P0^0; // 数码管A段//nsbit segB = P0^1; // 数码管B段//nsbit segC = P0^2; // 数码管C段//nsbit segD = P0^3; // 数码管D段//nsbit segE = P0^4; // 数码管E段//nsbit segF = P0^5; // 数码管F段//nsbit segG = P0^6; // 数码管G段//nsbit segDP = P0^7; // 数码管小数点段//nsbit dig1 = P2^1; // 数码管第1位//nsbit dig2 = P2^2; // 数码管第2位//nsbit dig3 = P2^3; // 数码管第3位//nsbit dig4 = P2^4; // 数码管第4位//n//nvoid delay(unsigned int t) {//n unsigned int i, j;//n for(i = 0; i < t; i++)//n for(j = 0; j < 125; j++);//n}//n//nvoid displayTime(unsigned int time) {//n unsigned int digit[4];//n digit[0] = time / 1000;//n digit[1] = (time / 100) % 10;//n digit[2] = (time / 10) % 10;//n digit[3] = time % 10;//n//n segA = 1; segB = 1; segC = 1; segD = 1; segE = 1; segF = 1; segG = 0; segDP = 0;//n P1 = 0x01; // 数码管1显示//n P0 = ~(0x3F); // 显示空//n delay(1);//n//n segA = 0; segB = 1; segC = 1; segD = 0; segE = 0; segF = 0; segG = 0; segDP = 0;//n P1 = 0x02; // 数码管2显示//n P0 = ~(0x06 | (0x40 >> digit[0])); // 显示十位数//n delay(1);//n//n segA = 1; segB = 1; segC = 0; segD = 1; segE = 1; segF = 0; segG = 1; segDP = 0;//n P1 = 0x04; // 数码管3显示//n P0 = ~(0x3F); // 显示空//n delay(1);//n//n segA = 1; segB = 1; segC = 1; segD = 1; segE = 0; segF = 0; segG = 1; segDP = 0;//n P1 = 0x08; // 数码管4显示//n P0 = ~(0x06 | (0x40 >> digit[1])); // 显示个位数//n delay(1);//n//n segA = 1; segB = 0; segC = 1; segD = 1; segE = 0; segF = 1; segG = 1; segDP = 0;//n P1 = 0x10; // 数码管5显示//n P0 = ~(0x3F); // 显示空//n delay(1);//n//n segA = 1; segB = 0; segC = 1; segD = 1; segE = 1; segF = 1; segG = 1; segDP = 0;//n P1 = 0x20; // 数码管6显示//n P0 = ~(0x06 | (0x40 >> digit[2])); // 显示十位数//n delay(1);//n//n segA = 1; segB = 1; segC = 1; segD = 0; segE = 0; segF = 0; segG = 1; segDP = 0;//n P1 = 0x40; // 数码管7显示//n P0 = ~(0x3F); // 显示空//n delay(1);//n//n segA = 1; segB = 1; segC = 1; segD = 0; segE = 1; segF = 1; segG = 1; segDP = 0;//n P1 = 0x80; // 数码管8显示//n P0 = ~(0x06 | (0x40 >> digit[3])); // 显示个位数//n delay(1);//n}//n//nvoid main() {//n unsigned int wash_time = 0;//n unsigned char wash_repeat = 0;//n//n while(1) {//n // 检测标准洗按键//n if(key_standard == 0) {//n delay(10);//n if(key_standard == 0) {//n wash_repeat = 3; // 洗涤反复3次//n break;//n }//n }//n//n // 检测快速洗按键//n if(key_fast == 0) {//n delay(10);//n if(key_fast == 0) {//n wash_repeat = 2; // 洗涤反复2次//n break;//n }//n }//n }//n//n while(wash_repeat > 0) {//n motor = 1; // 电机正转//n delay(400); // 洗涤4秒//n motor = 0; // 电机停止//n delay(200); // 间歇2秒//n motor = 1; // 电机反转//n delay(400); // 洗涤4秒//n motor = 0; // 电机停止//n delay(200); // 间歇2秒//n//n wash_time += 10; // 洗涤时间累加//n displayTime(wash_time);//n//n wash_repeat--; // 反复次数减少//n }//n//n motor = 0; // 关闭电机//n displayTime(0); // 清空数码管//n while(1);//n}//n/',/'content/':/'以下是基于单片机设计全自动洗衣机的仿真图://n//n
//n//n请注意,此代码仅为示例,并未经过实际测试。您可能需要根据自己的硬件设置和需求进行适当的修改和调整。/
原文地址: http://www.cveoy.top/t/topic/ps8d 著作权归作者所有。请勿转载和采集!