⑴ 全自動洗衣機定時控制 用單片機C51語言來寫哦!
#include<reg51.h>
sbit led1=P2^0;//進水指示燈
sbit led2=P2^1;//洗滌指示燈
sbit led3=P2^2;//甩干指示燈
sbit beep=P2^3;//蜂鳴器
unsigned char l=0;
void timerinit()//定時器初始化
{
TMOD=0x01;
TL0=(65536-50000)%256; //50ms
TH0=(65536-50000)/256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
timerinit();
led1=0;
led2=1;
led3=1;
while(1)
{
if(l==40)
{
led1=1;
led2=0;
}
if(l==120)
{
led2=1;
led3=0;
}
if(l==160)
{
led3=1;
beep=0;
l=0;
TR0=0;//停止計時
}
}
}
void timer() interrupt 1
{
TL0=(65536-50000)%256;
TH0=(65536-50000)/256;
l++;
}
⑵ 美的洗衣機、冰箱等用單片機控制還是arm控制
ARM也是單片機,一般都裝有操作系統,用戶界面友好。它是一款高性能的單片機。
洗衣機,冰箱這些東西控制和操作都比較簡單,一般使用的是普通的8位或16位單片機
⑶ 現在的洗衣機控制系統大多數用什麼的單片機還是PLC
毫無疑問,絕大多數是單片機。只有非常高檔的採用PLC,單片機大部分用c語言,不過匯編也一樣。看你那一種熟練了!
⑷ 鎮ㄥソ錛屾垜鐪嬫偍鏇劇粡闂榪囧崟鐗囨満鎺у埗媧楄。鏈篊璇璦紼嬪簭鐨勯棶棰橈紝鎴戝硅繖涓寰堟劅鍏磋叮錛屼笉鐭ラ亾鍙涓嶅彲浠ョ湅涓涓嬫偍鐨勭▼搴
涓嬪垪紼嬪簭宸茬粡璋冨ソ錛屾寜閿鏄劇ず鐢佃礬鍙瑙侊細
//鍗曠墖鏈猴細浣跨敤51緋誨垪鍏煎圭殑鍗沖彲錛
//4脳4鐭╅樀閿鐩橈細鎺ュ湪P1鍙o紱
//涓や綅鏁扮爜鏄劇ず鍣錛 P0鍙h緭鍑轟竷孌電爜錛孭2鍙h緭鍑轟綅閫夌爜銆
/========================================
//C璇璦紼嬪簭濡備笅銆
/*************************************************************
* 鏂囦歡鍚: KEY_LED.c
* 鍔熻兘 : 瀵4脳4鐭╅樀閿鐩樿繘琛岃緭鍑猴紝鍦ㄦ暟鐮佺″悗涓や綅鏄劇ず鎸夐敭鍊箋
**************************************************************/
#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[10] = ;
uchar sec, t_50ms;
/**************************************************************
* 鍚嶇О : Delay_1ms()
* 鍔熻兘 : 寤舵椂瀛愮▼搴忥紝寤舵椂鏃墮棿涓 1ms * x
* 杈撳叆 : x (寤舵椂涓姣縐掔殑涓鏁)
* 杈撳嚭 : 鏃
***************************************************************/
void Delay_1ms(uint x)
{
uint i;
uchar j;
for(i = 0; i < x; i++) for(j = 0; j <= 148; j++);
}
/**************************************************************
* 鍚嶇О錛 Display(uchar k)
* 鍔熻兘錛 灝嗗弬鏁板垎鎴愬嶮浣嶃佷釜浣嶅垎鍒鏄劇ず
* 杈撳叆錛 k (閿鐩樻暟鍊)
* 杈撳嚭錛 P0鍙h緭鍑轟竷孌電爜錛孭2鍙h緭鍑轟綅閫夌爜
***************************************************************/
void Display(uchar k)
{
P2 = 0; //娑堥殣
P0 = table[k / 10];
P2 = 0x02; Delay_1ms(5); //鏄劇ず5ms鍗佷綅
P2 = 0; //娑堥殣
P0 = table[k % 10];
P2 = 0x01; Delay_1ms(5); //鏄劇ず5ms涓浣
}
/**************************************************************
* 鍚嶇О錛 Keyscan()
* 鍔熻兘錛 P1澶栨帴4脳4鎸夐敭, 鎸夌収鎵鎻忔硶璇誨嚭閿鍊
* 杈撳嚭錛 鎸夐敭鍊0~15/濡傛棤閿鎸変笅, 榪斿洖16
***************************************************************/
uchar Keyscan(void)
{
uchar i, j, temp, Buffer[4] = ;
for(j = 0; j < 4; j++) { //寰鐜鍥涙
P1 = Buffer[j]; //鍦≒1楂樺洓浣嶅垎鍒杈撳嚭涓涓浣庣數騫
temp = 0x01; //璁″垝鍏堝垽鏂璓1.0浣
for(i = 0; i < 4; i++) { //寰鐜鍥涙
if(!(P1 & temp)) //浠嶱1浣庡洓浣嶏紝鎴鍙1浣
return (i + j * 4); //榪斿洖鍙栧緱鐨勬寜閿鍊
temp <<= 1; //鍒ゆ柇鐨勪綅錛屽乏縐諱竴浣
} }
return 16; //鍒ゆ柇緇撴潫錛屾病鏈夐敭鎸変笅錛岃繑鍥16
} //鍛靛懙錛屽疄璐ㄦх殑璇鍙ヤ笉榪8琛岋紝灝辨槸榪欎箞綆緇冿紒
/**************************************************************
* 鍚嶇О錛 GetKey()
* 鍔熻兘錛 璇誨嚭鎸夐敭銆佹秷鎶栥佺瓑寰呮寜閿閲婃斁
* 杈撳嚭錛 鎸夐敭鍊0~15/濡傛棤閿鎸変笅, 榪斿洖16
***************************************************************/
uchar GetKey(void)
{
uchar Key_Temp1, Key_Temp2; //涓ゆ¤誨嚭鐨勯敭鍊
P1 = 0xff;
Key_Temp1 = Keyscan(); //鍏堣誨叆鎸夐敭
if(Key_Temp1 == 16) return 16; //娌℃湁閿鎸変笅錛岃繑鍥16
Display(sec); //鐢ㄦ樉紺轟唬鏇垮歡鏃
Key_Temp2 = Keyscan(); //鍐嶈諱竴嬈℃寜閿
if(Key_Temp1 != Key_Temp2) return 16; //涓嶅悓錛岃繑鍥16
while(Keyscan() < 16) //絳夊緟鎸夐敭閲婃斁
Display(sec); //絳夊緟鏈熼棿鏄劇ず
return Key_Temp1;
}
/**************************************************************
* 鍚嶇О : Main()
* 鍔熻兘 : 涓誨嚱鏁
***************************************************************/
void Main(void)
{
uchar Key_Value; //璇誨嚭鐨勯敭鍊
sec = 0;
TMOD = 0x01;
TH1 = (65536-50000)/256;
TL1 = (65536-50000)%256;
TR0 = 1;
ET0 = 1;
EA = 1;
while(1) {
Display(sec); //鏄劇ず
if (GetKey() == 10) {
TR0 = 0;
while (TR0 == 0) {
Display(sec); //鏄劇ず
Key_Value = GetKey();
if (Key_Value < 10) {
sec %= 10;
sec = sec * 10 + Key_Value;
}
if (Key_Value == 10) TR0 = 1;
} } }
}
/**************************************************************
* 鍚嶇О : T0_INT()
* 鍔熻兘 : T0涓鏂鍑芥暟
***************************************************************/
void T0_INT() interrupt 1
{
TH1 = (65536-50000)/256;
TL1 = (65536-50000)%256;
t_50ms++;
if(t_50ms >= 20) {
t_50ms = 0;
sec++;
sec %= 60;
}
}
/*************************************************************/