当前位置:文档之家› 51单片机为什么是8位机呢

51单片机为什么是8位机呢

51单片机为什么是8位机呢
51单片机为什么是8位机呢

51单片机属于8位机

1、处理能力的概念。

51单片机属于8位机,8位是个什么意思呢?就是CPU处理的数据是8位的。位数的高低体现了CPU处理能力的强弱。4位的处理器已经基本淘汰了,8位的处理器占据了低端单片机的大部分市场,32位处理器是现在兴起的嵌入式系统的主流配置,我们常用的电脑大多都是32位,64位的处理器也有,但是市场份额比较少,价格也较高。所以我们学习的51单片机属于比较低级的单片机,会逐渐被新兴的嵌入式处理器所淘汰,但是51单片机成本低,学习资源最丰富,上手容易,对于初学者来说是很理想的用于学习的单片机。

2、存储器问题。

51单片机有两类存储器,一类是程序存储器ROM,它断电以后数据不丢失,但是必须用编程器擦除和写入程序;另一类是数据存储器RAM,它断电以后数据会丢失,但是可以用程序改写内容。以AT89C51为例,因为它有16条地址线(P0和P2),所以它可以访问64K存储器空间(2的16次方是65535),它的ROM和RAM都是分内外的,外部存储器都需要扩展,扩展方法参见教材。但是ROM和RAM 的内外执行方式不同,ROM的内外切换要用EA脚(31脚)的电平选择,而RAM 的切换可以直接用不同指令MOV和MOVX分开同时访问。例如AT89C51有4K内部ROM,64K外部ROM,如果EA=1,则从内部ROM开始执行,当超出4K之后,跳转到片外4K以上的空间运行;如果EA=0,则完全在外部ROM中运行,内部ROM不再起作用。什么意思呢?就是要么运行内部4KROM要么运行外部4KROM,内外ROM 的前4K不能同时运行,必须用EA切换。所以一般在没有外部ROM的情况下,EA 必须接电源正极,否则程序不能运行。我曾经因为EA悬空造成程序无法运行,苦苦思索一周才找到原因,期间因为盲目测试导致3块AT89C51损坏,教训十分惨痛,望后来者吸取教训。RAM就不同了,AT89C51有128B内部RAM,可以扩展64K外部RAM,这两个部分的RAM可以同时被访问,注意选择不同指令即可,访问内部用MOV,访问外部用MOVX,外部RAM扩展方法参见教材。ROM的种类除了常见的PROM(可编程ROM),还有MASK ROM、FLASH ROM 和EEPROM等种类。MASK ROM是掩模存储器,掩模的意思就是工厂把程序直接做在芯片上了,适于不需要反复修改的大批量产品生产,成本非常低,但是用户不能更改程序,8051里就是这种ROM。我最初接触单片机的时候,去电子市场买8051,结果商家真的卖给我了一块,回家一看,里面全都是程序,根本无法修改,现在回想起来,自己简直是个傻瓜,哪有买掩模ROM的单片机做学习和开发的?!商家也不告诉我已经烧好的程序可以干什么,害的我只能拿它当8031使了!这个教训真是好笑,希望大家一定要搞明白ROM的种类区分。PROM有OTP(一次性编程)和允许反复擦写(用紫外线照射擦除)两种,87C51系列就是OTP的ROM;就现在的形势看,ROM有普及FLASH之势,那些用紫外线擦除的垃圾看来是要被淘汰了。FLASH ROM可以电擦写,但必须整块擦除,写入速度快,擦写次数在1000到10万次之间(视不同类型芯片而定),事实上89C51系列的ROM就是FLASH ROM,U盘内的ROM也是,一种NAND FLASH现在广泛用于嵌入式系统中,它的存储容量大,成本低,可以实现固态硬盘的功能;EEPROM是电可擦写存储器,它是按

位擦写的,可以擦写10万次以上,但擦写速度较FLASH ROM要慢,AT24C02就是EEPROM,我们用的很多智能IC卡也是。RAM的种类有静态SRAM,动态DRAM 和SDRAM之分。SRAM只要写入一次,有电数据就可以保持,单片机里就是SRAM,但是它的缺点就是太贵,所以单片机里的RAM都很小。DRAM一次写入数据之后只能保持一瞬间,必须不断重写,叫做刷新,这个过程还需要相应的逻辑电路支持,很麻烦但是很便宜。SDRAM叫做具有静态特性的动态RAM,它把逻辑刷新电路和DRAM做到了一起,它的工作方式本质是动态的,但是从外部看相当于一个SRAM,这样就不但具有静态特性而且价格便宜,我们电脑里的内存条都是SDRAM。我自己的理解是这样的,就像爬山比赛,能力强的人呢,爬上去就不会滑下来。但是能力不行的人站不住,只好滑下来再爬上去,反复这样,频率高了给人的感觉就好像他在山上一样。呵呵,反正能力强的东西总是更贵一些的。

3、IO口问题。

P0口是集电极开路,所以我的实验板上给它加了上拉电阻。上拉电阻的作用就是在基本没有电流输出的情况下将管脚电位拉到5V,这样对于外部来说是逻辑1,如果没有这个电阻,管脚电位就是0。为什么?假如三极管关闭的情况下C-E 间电阻为100M,如果上拉电阻为10K,则分压的结果是几乎接近5V,这就是上拉的原理。IO口的驱动能力有限,AT89C51也就不到20MA(8051连这些都没有),可以直接驱动LED(电流流入方式),但是驱动别的大电流外部设备必须加驱动电路,否则会烧毁IO口,务必注意。迄今为止,我一共烧毁了7块AT89C51,损失了一把银子之后我终于找到了原因:一个是电源问题,电源电压超过5V或者极性颠倒都会导致芯片烧毁;另一个问题就是我在单片机供电的情况下测量P0.0脚(39脚)电位时表笔不小心连通了电源正极(40脚),而此时刚好P0.0内部MOS管开通(也就是输出0),结果直接烧毁了输出MOS管。因为P0口是数据线,结果导致编程时数据无法写入。这个教训最惨痛了,务必牢记。单片机的一种绝对保密技术就是利用了这种方法,编程之后烧毁一只闲置的数据或地址管脚的输出管,造成数据无法读出,达到绝对保密的目的。还有一点需要注意,如果要读入管脚的状态,必须先向该管脚写1,然后再读该管脚方能得到正确输入。使用P3的第二功能之前,也要先向P3口写1,目的都是让IO口输出管关闭。IO口详细构造请阅读51教材相关部分。

4、有关寻址方式。

相关教材中的寻址部分纯粹是找别扭,我都可以用51开发产品了,可是我现在重读这部分教材依然一头雾水,无法理解。不理解很好,说明你大脑正常,不用去管教材所说的寻址方式到底是什么意思,你学会如何使用就行了。其实就是对数字操作(所谓立即寻址)、对寄存器操作(所谓寄存器寻址)、对地址操作(所谓直接寻址)、对指针操作(有专用指针也有寄存器作为指针)和对位操作5种情况。寻址方式就是告诉你一个操作什么东西的问题,没有什么高深的。如果还是不明白就不要看这部分内容了,直接学习指令进行编程,当你编程很熟练之后,你会发现,其实它那些怪里怪气的寻址方式命名是很可笑的。

5、对中断概念的理解。

我最开始看了一个使用中断的程序之后,想了好几个晚上也没有理解什么叫中断。这个程序的注释竟然说中断服务程序是这个程序的核心部分,我当时就茫然

了——那主函数是什么?垃圾吗?在我的认识里,主函数才应该是一个程序的核心。忘了过了多少日子,我终于明白了中断的含义。假如你设置一只闹钟6点叫你,如果你6点准时爬起来看闹钟是不是叫你的话,那就不叫闹钟了,你成了闹钟的闹钟了。初学者很容易不明白为什么主函数里并没有跳转到中断服务函数的指令,怎么中断服务程序就自己自动执行了呢?没错,中断不需要什么指令来启动,它会自己启动,就像定时炸弹到点就会自动爆炸一样。什么时候启动由定时器、计数器或者外部中断决定,这是一个前台运行过程(谁表演谁就是前台嘛),你在后台看不到,后台是个设置中断的过程,决定什么情况下中断会叫你。比如你在车站等你女朋友,你无法准确知道她什么时候来,所以后台函数是个循环——你来回踱步,焦急的等待。当你女朋友出现的时候,她要求你停止踱步,和她去商店买衣服——这是中断服务函数。如果你女朋友还没来,你就自己跑到商店里了,那就不叫中断了。如果她来了你还在踱步——很不幸,系统不是跑飞就是崩溃了,呵呵。有关中断的具体操作与设置方法,请仔细阅读51教材相关部分。中断是单片机一个的难点,也是一个有特色之处,没有中断的话单片机就失去了全部的灵活性与实时性,变成一块用于顺序控制的数字电路了。

6、编程语言问题。

你可以用汇编编程,也可以用C51语言编程。它们各有各的强项和弱点,选择哪种语言要根据你的基础和具体任务确定。有个老兄这样说:汇编挺好啊,不过你用着用着就想用C51了;C51嘛,也挺好啊,不过你用着用着就想用汇编了。呵呵,真的是这样。我个人的理解是:汇编好写不好看,C语言好看不好写。去看别人一段没有注释的汇编语言是一件很困难的事情,看不懂并不说明你编程水平差。这种情况下先不要看别人的例程,根据你自己的思路编写即可,到了关键部分或是遇到障碍再看看例程,效果很好。别人写的C语言比较好理解,因为C 语言本质上就是各种各样的函数调来调去的过程,看懂了函数,程序基本就明白了。下面说说汇编和C各自的特点:汇编是个事必躬亲的战术语言,要干什么就直接干什么,什么事情都要直接操作硬件,所以累啊——系统倒不累,你累啊,呵呵,累死你换来的好处就是代码比较小,而且工作准确,操作决不会马马虎虎。C语言就不同了,是个战略语言,只抓大局,一堆基层工作全给INCLUDE了,够狠,要干什么不好好干,非要拐弯抹角——比如重新运行不让用跳转(封杀GOTO 语句),非要设计一个巧妙的循环,汇编就没这么不老实。这次你不累了,但是如果智商不够就惨了,一句都写不下去,不像汇编——就算我笨,能编多少时多少,编一点是一点。当甩手掌柜自然不错,但是缺点也很明显:一来代码要大不少,系统资源一下就被搞紧张了;二来涉及到对硬件的具体操作就它就没招了,还得求人家汇编,呵呵。所以汇编和C你都要掌握,大局由C定,几处需要准确处理硬件的工作交给汇编,属于瞎子背瘸子的组合,呵呵。两手抓,两手都要硬,互相渗透,结合使用,这就是学习单片机语言的基本原则。说了一顿,和具体编程一点关系都没有,但是原则你要把握。汇编语言我就不说了,教材都会详细说明指令的意义和使用方法,下面我说一下C51。C语言的具体结构和编写方法你明白了吗?没明白赶紧看书。C51与通用C语言的区别我理解主要有两点:一是中断函数的声明与使用,二是如何在单片机里进行位操作,我的理解就这一点点,当然这与我水平比较菜有很大关系。那么C语言如何能够认识那些单片机的寄存器呢?难道每写一个程序都先要铺天盖地的定义一番?!这个我们不怕也不用管,KEIL里有自带的包含文件来解决这个问题。你在KEIL里写C51程序的话,

上来先写一个#INCLUDE,这一堆问题就解决了,下面你可以直接写P0=0X00,或者SCON=0X00之类,反正C语言可以认识,还能正确编译,怎么样?战略语言确实不得了,脏活全让这个文件做了。当然想舒服就得付出资源的代价,C代码肯定比汇编大,不信你编写一个同样的汇编程序试试看。想学习C51的话,可以找一本教材,但是如果你基本明白C了,买教材就有点浪费了,因为大多数C51教材都花上很大篇幅讲C的规则,什么数据类型,什么控制语句,简直是浪费白纸,所以你借一本教材看看C51和通用C不同的地方就可以了,买一本实在不值得。借不到也可以到网络上搜索一下,有更通俗的教材,这里推荐明浩写的那个基于KEIL软件的C51教材,虽然只有几课内容,很简单,但是非常容易理解,也很实用,同时还说明了KEIL的使用方法。

常见问题就谈这么多,都是一些概括性的介绍,具体问题你要自己去解决。

(完整版)51单片机实现双机通信(自己整理的)

1号机程序 #in clude #defi ne uint un sig ned int #defi ne uchar un sig ned char sbit p10=P1 A 0; uchar a,b,kk; //uchar code d_c[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; void delay_ms(uchar y) { uchar i; while(y__) for(i=0;i<120;i++) 5 } void put(uchar x) // 发送函数 { SBUF=x; //SBUF:串行口数据缓冲器 while (TI==0); 〃等待发送结束 TI=0; } P £j £fA>l3 旳 4阳 1370 丘阳 H 鮎口 PDLWAJil- PDSA>f POfiAME PQ TiJT FZ^KS 畑 阳pz- A A-m FZW11 PZ.AtZ FZj9jAl4 PZ.TW? P3£VR : iD paimcc P3.sii nrn pjjfflrn F3.WTI] M*Tl pgtjgQIH F3.7/IF 1E 11 左边1号机,右边2号机, ,功能实现 帕叶DO ■ 口 IJApi FDJ H [I Z — 观旧 IP 口 .hQKD* *QAADf H ^ 弓 H.Lta RQfMM FZJWS pz. iwe F2JKA-IDI P2JTA11I F2.HW1Z P2JSM13 F2W.14 F2JM1S F3Ji nHX& gj.im:& riaiWTO rjjfWTT F3.1/W f3AT1 P3JillW F3JMF ■T2 1E

51单片机数码管时钟程序

本人初学51,编写简单时钟程序。仅供参考学习 #include #define uint unsigned int #define uchar unsigned char Uchar code table_d[16] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1 }; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0xef}; void delay(uint); unsigned long i,num,t=1; void main() { TMOD=0X01; TH0=(65536-10000)/256; TL0=(65536-10000)%256; EA=1; ET0=1; TR0=1; while(1) { num=i/20;//i为秒位 if(i==1728000)//一天大概是这个秒吧,,,应该是,呵呵。就是世间到24时就归零。 i=0; //也可用下面这个部分来代替上面的。 /*if(i==20) { i=0; num++; if(num==5184000) num=0; }*/ //num=9; P2=7;//P2口为数码管控制端,我的是38译码器控制,就直接对其赋值来控制时,分,秒的显示; P0=table[i%100%10]; delay(t); P2=6; P0=table[i%100/10]; delay(t); P0=table_d[(num%60)%10]; P2=5; delay(t); P0=table[(num%60)/10]; P2=4;

基于51单片机的全自动洗衣机控制器设计毕业设计

基于单片机的全自动洗衣机控制系统 摘要 随着数字技术的快速发展,数字技术被广泛应用于智能控制的领域中。单片机以体积小、功能全、价格低廉、开发方便的优势得到了许多电子系统设计者的青睐。它适合于实时控制,可构成工业控制器、智能仪表、智能接口、智能武器装置以及通用测控单元等。 本文以AT89S51单片机为核心设计了全自动洗衣机控制系统,本系统实现了对洗衣机整个洗衣过程的控制,包括用户参数输入、洗衣、脱水和结束报警四个阶段。控制系统主要由电源电路、单片机控制系统和外部硬件电路三大模块组成。电源电路为单片机主控系统提供5v的直流电压;单片机主控系统负责控制洗衣机的工作过程,主要由AT89S51单片机、数码管、按键、蜂鸣器、LED指示灯组成;外部硬件电路有继电器、三极管、LED灯组成。 本系统的电路并不复杂,给AT89S51单片机载入软件程序后,能够实现全自动洗衣机的基本功能。虽然不能与电器市场上的洗衣机控制系统媲美,但也具有一定的实用性。 关键词:AT89S51;用户参数;继电器;控制系统;LED

Abstract With its rapid development, digital technology is widely used in the field of control system. Single chip microcontroller is favored by many electronic system designers for its smallness, full function, low price and easy application. Its pretty fit for real-time control as a core in industrial controller, intelligent apparatus, intelligent interface, intelligent weapon device, universal measure control unit, etc. This article designs a full-automatic washing machine control system with AT89S51 as core. This system realizes whole working course of full-automatic washing machine, including four parts: user parameter input, wash, dehydrate and ending music play. Hardware system is made up of three modules: power supply circuit, digital control circuit and machine control circuit. Power supply circuit provides steady DC 5V voltage for digital control circuit and AC 220V for motor. Digital control circuit takes charge of controlling the working course. It consists of AT89S51, double-figured common-cathoded numeral display, buttons, buzzer, LED. Machine control circuit realizes the functions of water level detect, motor driven, water import and export, it consists of water level detector, motor, transmission system components and penstocks. After downloading the program to AT89S51, this circuit can realize basic functions of full-automatic washing machine. It seems hard for this control system to compare with perfect ones in the electrical appliance market, but it has certain practicability. Keywords: AT89S51 ; User parameter input ;water level detector ; Control system ;LED

51单片机控制4个数码管显示

. //使用AT89c51单片机控制四个数码管动态显示0-9999 ,12MHz #include void jiayi();//加1函数 void chufa();//除法函数 void xianshi();//显示函数 void delay();//延时函数 sbit P2_0=P2^0;//个位位码 sbit P2_1=P2^1;//十位位码 sbit P2_2=P2^2;//百位位码 sbit P2_3=P2^3;//千位位码 unsigned char qianwei,baiwei,shiwei,gewei; unsigned int count=0; unsigned char code dis[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳极0-9 void main() { while(1) { jiayi(); chufa(); xianshi(); } } void chufa()//将数字的各个位拆开 { qianwei=count/1000;//千位数 baiwei=count%1000/100; //百位数 shiwei=count%100/10; //十位数 gewei=count%10; //个位数 } void jiayi() { count=count+1; if(count==10000) count=0; } void delay()//延时 { unsigned int i,j; for(i=0;i<10;i++) { for(j=0;j<200;j++); } }

基于51单片机的简易计算器制作

基于51单片机的简易计算器制作专业:电气信息班级:11级电类一班 姓名:王康胡松勇 时间:2012年7月12日 一:设计任务 本系统选用AT89C52单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计,具体设计如下: (1)由于设计的计算器要进行四则运算,为了得到较好的显示效果,经综合分析后,最后采用LED 显示数据和结果。 (2)采用键盘输入方式,键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键(on\c)和等号键(=),故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)在执行过程中,开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LED上提示八个0;当除数为0时,计算器会在LED上会提示八个负号。 设计要求:分别对键盘输入检测模块;LED显示模块;算术运算模块;错误处理及提示模块进行设计,并用Visio画系统方框图,keil与protues仿真 分析其设计结果。 二.硬件设计 单片机最小系统 CPU:A T89C52 显示模块:两个4位7段共阴极数码管 输入模块:4*4矩阵键盘 1.电路图

电路图说明 本电路图采用AT89C52作为中处理器,以4*4矩阵键盘扫描输入,用两个74HC573(锁存器)控制分别控制数码管的位于段,并以动态显示的方式显示键盘输入结果及运算结果。为编程方便,以一个一位共阴极数码管显示负号。 三,程序设计 #include #define Lint long int #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; //锁存器段选sbit wela=P2^7; sbit display_g=P2^0; //负号段选 sbit display_w=P2^1; //负号位选uchar code table[]={0x3f,0x06,0x5b,0x4f, //0,1,2,3

51单片机实现双机通信(自己整理的)

左边1号机,右边2号机,,功能实现 1号机程序 #include #define uint unsigned int #define uchar unsigned char sbit p10=P1^0; uchar a,b,kk; //uchar code d_c[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; void delay_ms(uchar y) { uchar i; while(y--) for(i=0;i<120;i++) ; } void put(uchar x) //发送函数 { SBUF=x; //SBUF:串行口数据缓冲器 while(TI==0); //等待发送结束 TI=0; } void main() { uchar j; SCON=0x40; //串行口工作方式1,8位通用异步发送器

— TMOD=0x20; //定时器1工作方式2 PCON=0x00; //波特率不倍增 TH1=0xf4; TL1=0xf4; //波特率2400 TR1=1; //定时器1开始计时 P2=0xc0; while(1) { if(p10==0&&j==0) { delay_ms(15); while(p10==0); kk=1; P2=0xf9; j=1; } if(p10==0&&j==1) { delay_ms(15); while(p10==0); kk=2; P2=0xa4; j=2; } if(p10==0&&j==2) { delay_ms(15); while(p10==0); kk=3; P2=0xb0; j=0; } if(kk==1) put('A'); if(kk==2) put('B'); if(kk==3) put('C'); delay_ms(10); } }

51单片机-数码管

51单片机-数码管 共阴极是指所有发光二极管阴极连接在一起,这个共阴极可以用来做片选。 如图,这里有8个发光二极管,到底哪个亮需要进行片选。段选:8 段数码管 每一段的控制段叫段选位选:就是进行哪个8 段数码管亮的选择TX-1C 使用两 片锁存器74HC573 实现位选和段选这里的D0”7是连在单片机的I/O 口上,当 为高电平时,Q 与D 中的数据一致,遇到负跳变沿时Q 中的数据保持住,D 中 的数据即使变化也不会影响Q。MCUVersion2 使用的是74HC245 和38 译码器 74HC13874HC245 有一个缓冲和驱动的作用,这样可以使led 显示的更加稳定, 数码管显示分动态显示和静态显示,每个数码管的状态都是被不断更新的,利 用的人的视觉暂留,使看上去数值保持在一个固定的位置上,人的视觉是有延 续性的,当一个东西不断变化时,变化的时间小于人眼的视觉暂留时间的话, 人的眼睛会以为这个东西是连续的。静态显示是一幅画面放在那看上去是不动 的而它确实是不动的。动态扫描显示即轮流向各位数码管送出字型码和相应位 选,利用发光管的余晖和视觉暂留作用,使人的感觉好像各位数码管同时都在 显示。静态显示:数码管从左向右依次点亮: #include <reg52.h>void delay(){ int i,j; for(i = 0; i <0xff; i++) for(j = 0; j <0xff; j++) ;} unsigned int code duan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07};unsigned int code wei[]={ 0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff};void main(){ while(1){ int i; P2 = 0x39; for(i = 0; i <8; i++){ P2 = duan[ i]; P1 = wei[ i]; delay(); } } } 想让哪个 数码管亮多少就亮多少:tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!

基于51单片机的全自动洗衣机控制系统设计

基于51单片机的全自动洗衣机控制系统设计 1 引言 全自动洗衣机作为家用电器,已经走入了千家万户的生活中,成为了我们生活的必需品。目前中国的洗衣机市场需求特别大而且潜力巨大,人们对洗衣机的要求也越来越高。目前洗衣机的功能很多,但是并不能完全满足人们的需求,这就要求设计者们在进行设计以及改进是更加贴近生活,符合民意,将人们的需求变为设计的根本,创造出更节能、更安全、更干净舒适的全自动洗衣机。 目前的洗衣机市场竞争压力大,各个厂商在设计和制造时往往只能单一提现洗衣机的几个功能,体现出自己的个性化而并不能全面兼备。这就给我们带来了生活上的不便,我们需要更加智能而且全面的洗衣机。所以,本论文就全自动洗衣机的选择与性能设计进行讨论与设计。此次设计需要解决的问题有:如何选择本次设计的全自动洗衣机类型;分析此类全自动洗衣机的优缺点,提出课题设计方案方向;就全自动洗衣机的安全性与清洁性进行设想与设计;单片机与传感器的选择、安置以及各自实现的功能;电路及控制系统的设计。 1.1课题的提出及意义 本次所选择的题目为基于单片机的全自动洗衣机的控制系统的设计。在我们日常生活中,全自动洗衣机主要可以分为波轮式洗衣机和滚筒式洗衣机。在选择洗衣机的类型之前,要对两种洗衣机的应用范围、工作方式、内部结构进行了解调查。通过走访邻里和网上调查,了解相对小样本下两种洗衣机的使用情况以及在使用过程中出现的一系列问题,根据使用数量的多少和出现问题的程度,选择使用量和出现问题较多的洗衣机。选题人自行调查两种洗衣机的工作方式、工作流程、工作原理以及软硬件的构成,自行观察两种洗衣机的实际运行过程以及运行结束后水、衣服的清洁程度。通过对比两种洗衣机的运行过程以及运行模式, 1

基于51单片机的计算器设计

目录 第一章引言 (3) 1.1 简述简易计算器 (3) 1.2 本设计主要任务 (3) 1.3 系统主要功能 (4) 第二章系统主要硬件电路设计 (4) 2.1 系统的硬件构成及功能 (4) 2.2 键盘电路设计 (5) 2.3 显示电路设计 (6) 第三章系统软件设计 (7) 3.1 计算器的软件规划 (7) 3.2 键盘扫描的程序设计 (7) 3.3 显示模块的程序设计 (8) 3.4 主程序的设计 (9) 3.5 软件的可靠性设计 (9) 第四章调试 (9) 第五章结束语 (10) 参考文献 (11) 附录源程序 (11)

第一章引言 1.1 简述简易计算器 近几年单片机技术的发展很快,其中电子产品的更新速度迅猛。计算器是日常生活中比较的常见的电子产品之一。如何才能使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器呢? 本设计是以AT89S52单片机为核心的计算器模拟系统设计,输入采用4×6矩阵键盘,可以进行加、减、乘、除9位带符号数字运算,并在LCD1602上显示操作过程。 科技的进步告别了以前复杂的模拟电路,一块几厘米平方的单片机可以省去很多繁琐的电路。现在应用较广泛的是科学计算器,与我们日常所用的简单计算器有较大差别,除了能进行加减乘除,科学计算器还可以进行正数的四则运算和乘方、开方运算,具有指数、对数、三角函数、反三角函数及存储等计算功能。计算器的未来是小型化和轻便化,现在市面上出现的使用太阳能电池的计算器, 使用ASIC设计的计算器,如使用纯软件实现的计算器等,未来的智能化计算器将是我们的发展方向,更希望成为应用广泛的计算工具。 1.2 本设计主要任务 以下是初步设定的矩阵键盘简易计算器的功能: 1.扩展4*6键盘,其中10个数字,5个功能键,1个清零 2.强化对于电路的焊接 3.使用五位数码管接口电路 4. 完成十进制的四则运算(加、减、乘、除); 5. 实现结果低于五位的连续运算; 6. 使用keil 软件编写程序,使用汇编语言; 7. 最后用ptoteus模拟仿真; 8.学会对电路的调试

状态机思路在单片机程序设计中的应用

状态机思路在单片机程序设计中的应用 状态机的概念 状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。 比如说一个按键命令解析程序,就可以被看做状态机:本来在A状态下,触发一个按键后切换到了B状态;再触发另一个键后切换到C状态,或者返回到A状态。这就是最简单的按键状态机例子。实际的按键解析程序会比这更复杂些,但这不影响我们对状态机的认识。 进一步看,击键动作本身也可以看做一个状态机。一个细小的击键动作包含了:释放、抖动、闭合、抖动和重新释放等状态。 同样,一个串行通信的时序(不管它是遵循何种协议,标准串口也好、I2C也好;也不管它是有线的、还是红外的、无线的)也都可以看做由一系列有限的状态构成。 显示扫描程序也是状态机;通信命令解析程序也是状态机;甚至连继电器的吸合/释放控制、发光管(LED)的亮/灭控制又何尝不是个状态机。 当我们打开思路,把状态机作为一种思想导入到程序中去时,就会找到解决问题的一条有效的捷径。有时候用状态机的思维去思考程序该干什么,比用控制流程的思维去思考,可能会更有效。这样一来状态机便有了更实际的功用。 程序其实就是状态机。 也许你还不理解上面这句话。请想想看,计算机的大厦不就是建立在“0”和“1”两个基本状态的地基之上么? 状态机的要素 状态机可归纳为4个要素,即现态、条件、动作、次态。这样的归纳,主要是出于对状态机的内在因果关系的考虑。“现态”和“条件”是因,“动作”和“次态”是果。详解如下: ①现态:是指当前所处的状态。 ②条件:又称为“事件”。当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。 ③动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。 ④次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。

基于51单片机的数码管简易计算器

基于51/52单片机的简易计算器制作 11级自动化2班 王栎斐宋为为闫巨东 一、题目利用单片机芯片STC89C52、四位八段共阳数码管及已制作好的电路板等器件设计制作一个计算器。 二、任务与要求要求计算器能实现加减乘除四种运算 具体如下 1. 加法:四位整数加法计算结果若超过八位则显示计算错误 2. 减法:四位整数减法计算结果若超过八位则显示计算错误 3. 乘法:多位整数乘法计算结果若超过四位则显示计算错误 4. 除法:整数除法 5. 有清除功能 三、课程设计简述 总体设计思路简述 1.按照系统设计的功能的要求 初步确定设计系统由主控模块、显示模块、键扫描接口 电路共三个模块组成。主控芯片使用STC89C52单片机。 2.键盘电路采用4*4矩阵键盘电路。 3.显示模块采用共阳极数码管构成。 四、硬件电路 五、软件编程部份 #include

#define uchar unsigned char #define uint unsigned int //uchar code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40}; //共阴极 // 0 1 2 3 4 5 6 7 8 9 熄灭- //uchar code loc[]={0xff,0xfe,0xfd,0xfb,0xf7}; //uchar code ero[]={0x79,0x50,0x5c}; uchar code num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0x40}; //共阳极 uchar code loc[]={0x00,0x80,0x40,0x20,0x10}; uchar code ero[]={~0x79,~0x50,~0x5c}; uint n=0,n1=0,n2=0; //赋初值 uchar flag=0; //计算类型选择关键字 void delay(int t); void display(int n); void error(); main() { while(1) { uchar temp; //第一行检测 P3=0xfe; temp=P3; temp=temp&0xf0; if(temp!=0xf0) { delay(10); temp=P3; temp=temp&0xfe; if(temp!=0xfe) { temp=P3; switch(temp) { case 0xee:n1=0;n2=0;n=0;flag=0;break;

基于51单片机的洗衣机控制系统设计

基于MCS-51单片机的洗衣机控制系统设计单片机技术日新月异的发展,单片机以其集成度高、运算速度快、体积小、运行可靠、价格低廉等特点在过程控制、机电一体化、智能化仪表、家用电器等方面得到了广泛应用。本文采用MCS一51单片机作为洗衣机控制系统的核心,硬件线路及控制程序的设计是该系统的重要组成部分。硬件线路设计主要包括电源、功能及控制系统、洗衣机状态显示、输出控制电路的设计。控制程序设计主要包括主程序、内部定时中断服务程序、外部中断中断服务程序的设计。 一、洗衣机功能要求 洗衣机的主要工作程序是:洗涤--脱水--漂洗--脱水--漂洗--脱水。上述工作程序中,包含三个过程,洗涤过程、漂洗过程、脱水过程。 1、洗涤过程:放好待洗物,启动开关,进水阀通电,向洗衣机供水,当供水达到预定水位时,水位开关接通,进水阀断电关闭,停止供水。洗涤电动机接通电源,带动波轮(或桶)旋转,产生各种形式的水流搅动衣物进行洗涤。通过电动机不停的正转、停转、反转,反复循环,形成洗涤水对洗涤物产生强烈的翻滚作用,同时,衣物之间、衣物与四周桶壁之间产生互相摩擦和撞击力,以次达到洗涤衣物的目的。 2、漂洗过程:漂洗的目的在于清除衣物上的洗涤液,因此,漂洗过程与洗涤过程的电器动作是完全相同的。 3、脱水过程:洗涤或漂洗后,需要对衣物进行脱水以便晾干,节省水资源,所以脱水是洗衣过程中必不可少的环节。洗涤或漂洗过程结束后,电动机停止转动,排水阀通电,打开排水阀门排水。当水位低到一定程度时,满足安全条件,脱水电动机接通,电机带动脱水桶高速旋转,利用离心力把衣服上的水从桶壁的小眼里甩出。全部洗衣工作完成后,由蜂鸣器发出音响,表示衣物已洗干净。 二、洗衣机硬件电路设计 根据洗衣机的基本功能,硬件电路设计需要考虑:水流强度的问题、洗涤、漂洗、脱水时间设定长短的问题、工作时间或剩余时间f 显示、工作过程中的暂停、启动、复位、洗完后的

51单片机-八段数码管显示

实验一八段数码管显示 1、实验目的: (1)了解数码管动态显示的原理。 (2)了解74LS164扩展端口的方法。 2、实验要求: 利用实验仪提供的显示电路,动态显示一行数据. 3、实验电路图 LED1LED2LED3LED4LED5LED6 4、实验器材: (1)超想-3000TB综合实验仪 1 台 (2)超想3000仿真器 1 台 (3)计算机 1 台

5、实验连线 无 6、实验说明: (1)本实验仪提供了8段码LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。6位位码由8155的PA0口输出,经Ua2003反向驱动后,选择相应显示位。 74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,并且实现移位。向显示位选通地址输出高电平就可以点亮相应的显示位。 本实验仪中数据位输出地址为0e102H ,时钟位输出地址为0e102H ,位选通输出地址为 0e101H 。本实验涉及到了8155 I0/RAM 扩展芯片的工作原理以及74LS164器件的工作原理。 (2)七段数码管的字型代码表 显示字形 g f e d c b a 段码 0 0 1 1 1 1 1 1 3fh 1 0 0 0 0 1 1 0 06h 2 1 0 1 1 0 1 1 6bh 3 1 0 0 1 1 1 1 4fh 4 1 1 0 0 1 1 0 66h 5 1 1 0 1 1 0 1 6dh 6 1 1 1 1 1 0 1 7dh 7 0 0 0 0 1 1 1 07h 8 1 1 1 1 1 1 1 7fh 9 1 1 0 1 1 1 1 6fh A 1 1 1 0 1 1 1 77h B 1 1 1 1 1 0 0 7ch C 0 1 1 1 0 0 1 39h D 1 0 1 1 1 1 0 5eh E 1 1 1 1 0 0 1 79h F 1 1 1 1 71h a b c d e f g dp

基于51单片机的计算器设计程序代码汇编

DBUF EQU 30H TEMP EQU 40H YJ EQU 50H ;结果存放 YJ1 EQU 51H ;中间结果存放GONG EQU 52H ;功能键存放 ORG 00H START: MOV R3,#0 ;初始化显示为空MOV GONG,#0 MOV 30H,#10H MOV 31H,#10H MOV 32H,#10H MOV 33H,#10H MOV 34H,#10H MLOOP: CALL DISP ;PAN调显示子程序WAIT: CALL TESTKEY ; 判断有无按键JZ WAIT CALL GETKEY ;读键 INC R3 ;按键个数 CJNE A,#0,NEXT1 ; 判断就是否数字键 LJMP E1 ; 转数字键处理NEXT1: CJNE A,#1,NEXT2 LJMP E1 NEXT2: CJNE A,#2,NEXT3 LJMP E1 NEXT3: CJNE A,#3,NEXT4 LJMP E1 NEXT4: CJNE A,#4,NEXT5 LJMP E1 NEXT5: CJNE A,#5,NEXT6 LJMP E1 NEXT6: CJNE A,#6,NEXT7 LJMP E1 NEXT7: CJNE A,#7,NEXT8 LJMP E1 NEXT8: CJNE A,#8,NEXT9 LJMP E1 NEXT9: CJNE A,#9,NEXT10 LJMP E1 NEXT10: CJNE A,#10,NEXT11 ;判断就是否功能键LJMP E2 ;转功能键处理NEXT11: CJNE A,#11,NEXT12 LJMP E2 NEXT12: CJNE A,#12, NEXT13 LJMP E2

基于单片机的洗衣机设计

. 单片机原理及系统课程设计 专业:自动控制 班级: 姓名: 学号: 指导教师: 交通大学自动化与电气工程学院 2014年1 月12日

基于AT89C51单片机的全自动洗衣机设计 1 设计目的及要求 1.1设计目的 洗衣机已成为人们日常生活中必不可少的一部分,但是传统的基于继电器的控制,已不能满足人们对洗衣机的要求。因此设计了基于单片机的洗衣机控制电路系统,由单片机控制实现洗衣机的各项功能。单片机的体积小,控制功能灵活,因此,设计出基于单片机的全自动洗衣机控制电路系统具有很强的实用性。由于个人能力有限,所设计的洗衣机比前沿科技产品要差很远。所以这次课程设计的主要目的在于通过亲手操作,查找资料,培养自己的分析设计能力,把这学期课程中零散的知识进行整合,将理论的知识联系到实际的生活中,在实例中深入理解一些理论知识,并从中有所收获。 1.2设计要求 模拟全自动洗衣机工作过程。以电机替代洗衣机电机。显示洗衣机工作的状态(进水、浸泡、洗衣、脱水、结束)。显示工作剩余时间(洗衣程序可自定义,时间精度:秒)。洗衣时交替正、反转。 2 设计方案及原理 2.1设计方案 利用AT89C51单片机的P0,P1,P2,P3串行口的输入输出功能,控制数码管、电动机、发光二极管的工作状态,进而模拟洗衣机的基本工作过程。 洗衣机的主要工作过程是:进水—洗涤—漂洗—换水—漂洗—换水—漂洗—换水—脱水—结束。上述工作过程中,包含三个过程:洗涤过程、漂洗过程、脱水过程。 (1) 洗涤过程:放好待洗物,启动开关,进水阀通电,向洗衣机供水,供水结束后,洗涤电动机接通电源,通过电机不停的正转、反转,形成洗涤水对洗涤物产生强烈的翻滚作用;同时衣物之间、衣物与四周桶壁之间产生互相摩擦和撞击力,达到洗涤衣物的目的。 (2) 漂洗过程:漂洗的目的在于清除衣物上的洗涤液,因此,漂洗过程与洗涤过程的电机动作是完全相同的。

基于51单片机的LED数码管动态显示

基于51单片机的LED数码管动态显示 LED数码管动态显示就是一位一位地轮流点亮各位数码管,对于每一位LED数码管来说,每隔一段时间点亮一次,利用人眼的“视觉暂留"效应,采用循环扫描的方式,分时轮流选通各数码管的公共端,使数码管轮流导通显示。当扫描速度达到一定程度时,人眼就分辨不出来了。尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,认为各数码管是同时发光的。若数码管的位数不大于8位时,只需两个8位I/O口。 1 硬件设计 利用51单片机的P0口输出段码,P2口输出位码,其电路原理图如下所示。 在桌面上双击图标,打开ISIS 7 Professional窗口(本人使用的是v7.4 SP3中文版)。单击菜单命令“文件”→“新建设计”,选择DEFAULT模板,保存文件名为“DT.DSN”。在器件选择按钮中单击

“P”按钮,或执行菜单命令“库”→“拾取元件/符号”,添加如下表所示的元件。 51单片机AT89C51 一片 晶体CRYSTAL 12MHz 一只 瓷片电容CAP 22pF 二只 电解电容CAP-ELEC 10uF 一只 电阻RES 10K 一只 电阻RES 4.7K 四只 双列电阻网络Rx8 300R(Ω) 一只 四位七段数码管7SEG-MPX4-CA 一只 三极管PNP 四只 若用Proteus软件进行仿真,则上图中的晶振和复位电路以及U1的31脚,都可以不画,它们都是默认的。 在ISIS原理图编辑窗口中放置元件,再单击工具箱中元件终端图标,在对象选择器中单击POWER 和GROUND放置电源和地。放置好元件后,布好线。左键双击各元件,设置相应元件参数,完成电路图的设计。 2 软件设计 LED数码管动态显示是一位一位地轮流点亮各位数码管的,因此要考虑每一位点亮的保持时间和间隔时间。保持时间太短,则发光太弱而人眼无法看清;时间太长,则间隔时间也将太长(假设N位,则间隔时间=保持时间X(N-1)),使人眼看到的数字闪烁。在程序中要合理的选择合适的保持时间和间隔时间。而循环次数则正比于显示的变化速度。 LED数码管动态显示的流程如下所示。

基于的51单片机全自动洗衣机设计

全自动洗衣机课程设计 基于51单片机,C语言实现。 基本要求 模拟全自动洗衣机工作过程。以电机替代洗衣机电机。显示洗衣机工作的状态(进水、浸泡、洗衣、脱水、结束)。显示工作剩余时间(洗衣程序可自定义,时间精度:秒)。 洗衣时交替正、反转。 扩展要求 洗衣和脱水时电机转速不同。增加水位传感器输入。故障报警。增加声音提示。其它自定义功能。 设计用Preteus仿真: 仿真图如下:

C文件函数代码: #include //****************************// #define uchar unsigned char #define uint unsigned int //*******************************// //***************************// sbit mo_r = P3^2; //电机右控制线sbit mo_l = P3^3; //电机左控制线 //****************************// sbit key_menu = P3^4; // 菜单按键 sbit key_on = P3^5; // 开始按键sbit key_off = P3^6; // 结束按键 sbit key_se = P3^7; // 菜单选择按键 //***************************// sbit led_in = P0^0; // 进水指示灯sbit led_xi = P0^1; // 洗衣指示灯sbit led_pao = P0^2; // 泡洗指示灯sbit led_xx = P0^3; // 脱水指示灯

51单片机多任务的原理及其实现

51单片机多任务操作系统的原理与实现 51单片机多任务操作系统的原理与实现 -- 一个超轻量级的操作系统 前言 想了很久,要不要写这篇文章?最后觉得对操作系统感兴趣的人还是很多,写吧. 我不一定能造出玉,但我可以抛出砖. 包括我在内的很多人都对51使用操作系统呈悲观态度,因为51的片上资源太少.但对于很多要求不高的系统来说,使用操作系统可以使代码变得更直观,易于维护,所以在51上仍有操作系统的生存机会. 流行的uCos,Tiny51等,其实都不适合在2051这样的片子上用,占资源较多,唯有自已动手,以不变应万变,才能让51也有操作系统可用.这篇贴子的目的,是教会大家如何现场写一个OS,而不是给大家提供一个OS版本.提供的所有代码,也都 是示例代码,所以不要因为它没什么功能就说LAJI之类的话.如果把功能写全了,一来估计你也不想看了,二来也失去灵活性没有价值了. 下面的贴一个示例出来,可以清楚的看到,OS本身只有不到10行源代码,编译后 的目标代码60字节,任务切换消耗为20个机器周期.相比之下,KEIL内嵌的 TINY51目标代码为800字节,切换消耗100~700周期.唯一不足之处是,每个任务要占用掉十几字节的堆栈,所以任务数不能太多,用在128B内存的51里有点难度,但对于52来说问题不大.这套代码在36M主频的STC12C4052上实测,切换任务仅需2uS. #include #define MAX_TASKS 2 //任务槽个数.必须和实际任务数一至 #define MAX_TASK_DEP 12 //最大栈深.最低不得少于2个,保守值为12. unsigned char idata task_stack[MAX_TASKS][MAX_TASK_DEP]; //任务堆栈. unsigned char task_id; //当前活动任务号 //任务切换函数(任务调度器) void task_switch(){ task_sp[task_id] = SP; if(++task_id == MAX_TASKS) task_id = 0; SP = task_sp[task_id]; } //任务装入函数.将指定的函数(参数1)装入指定(参数2)的任务槽中.如果该槽中原来就有任务,则原任务丢失,但系统本身不会发生错误. void task_load(unsigned int fn, unsigned char tid) {

基于单片机智能洗衣机开题分析报告

基于单片机智能洗衣机开题报告

————————————————————————————————作者:————————————————————————————————日期:

毕业设计(论文)开题报告1.结合毕业设计(论文)课题情况,根据所查阅的文献资料,每人撰写2000字左右的文献综述 文献综述

1.绪论 1.1引言 随着数字技术的快速发展,数字技术被广泛应用于智能控制的领域中。单片机以其集成度高、运算速度快、体积小、运行可靠、价格低廉等特点,在过程控制、数据采集、机电一体化、智能化仪表、家用电器及网络技术等方面得到了广泛的应用。 洗衣机是现代人必备的日常生活家电,它的发明和应用使人们的洗衣工作变得省时又省力,很好地缓解了人们在家务劳动方面的压力。而随着人们对生活质量的不断追求,普通的洗衣机已经不能满足部分人的需求,所以研究多功能的全自动洗衣机具有重大的意义。 目前中国洗衣机市场正进入更新换代期,市场潜力巨大,人们对于洗衣机的要求也越来越高,目前的洗衣机主要有强弱洗涤功能、进排水系统故障自动诊断功能、暂停等几大功能,在许多方面还不能达到人们的需求。这就要求设计者们有更高的专业和技术水平,能够提出更多好的建议和新的课题,将人们的需求变成现实,设计出更节能、功能更全面、更人性化的全自动洗衣机。目前的洗衣机都没有实现全方面的兼容,大多数洗衣机的厂家都只注重各自品牌的特长,突出一两个与别的洗衣机不同的个性化的功能。因此,设计出基于单片机的全自动洗衣机控制电路系统具有很强的实用性。 基于单片机的自动洗衣机控制系统具有精度高、功能强、经济性好的特点。无论在提高产品质量还是产品数量,节约能源还是改善劳动条件等方面都显示出无比的优越性。对基于单片机的全自动洗衣机控制系统设计进行深入研究,可是我们掌握全自动洗衣机这种重要家电的工作原理和控制系统,进一步了解单片机在不同领域的应用方法,学会单片机控制全自动洗衣机的电控板设计,同时也为将来从事电子行业打下一定基础,所以本次设计具有重大意义。 毕业设计(论文)开题报告

51单片机自动洗衣机控制系统

项目一 洗衣机控制 一、项目内容及要求。 内容: 设自动洗衣机的控制要求是:启动后先开启进水阀进水,水位到达设定值后关闭,然后波轮按正转5秒、反转5秒,正、反转之间停3秒的规律不断循环转动,直至达到设定时间停止,之后打开排水阀放水,水放完后洗衣桶旋转脱水,1分钟后停止并关闭排水阀,洗衣过程结束。要求水位设置不少于高、中、低三档,洗衣时间在3——12分钟范围内可调,以1分钟为单位,排水时间定为1分钟。运动执行器用指示灯模拟,水位用开关模拟,试设计该洗衣机的控制电路。 要求: ⑴画出控制系统的框图,说明系统方案设计的思路、理由或依据; ⑵选择、确定组成控制系统的各个单元,并阐述选择确定的原则或依据; ⑶画出完整的电气原理图,介绍整体电路的工作原理、性能或特点; ⑷如采用单片机控制,给出单片机程序的流程图和清单,说明程序的工作原理。 ⑸制作实物电路,验证设计、制作是否正确。

二、题目分析及设计思路。 1.技术要点: ①要对自动洗衣机的整个流程要清楚,要清楚哪些步骤比较重要。对于洗衣机优先级最高的应该是暂停这个功能。因为一旦当洗衣机盖子被打开或者发生什么意外情况,洗衣机必须马上停止工作,这也是出于对安全问题的考虑。 ②洗衣机在洗衣的过程中波轮按正转5秒、反转5秒,正、反转之间停3秒的规律不断循环转动,直至达到设定时间停止。当到了设定的时间以后洗衣机便要进入下一个的洗衣流程。 ③设置洗衣机时间和水位必须要显示结果,方便用户查看。 ④单片机程序中的设计洗剂时间这些要做到比较精确,这样才能保证洗衣机能将衣服洗的比较干净。 ⑤水位设置的处理,因为考虑到身边没有水位传感器,这里我用限时的方法来完成低、中、高三个水位的设置。 ⑥进水和出水的电磁阀我这里都是用LED灯显示来代替了,进水和出水我会将对应的LED点亮来表示进水和出水。 三、方案设计说明。 本系统实现了对洗衣机整个洗衣过程的控制,包括用户参数输入、洗衣、排水和脱水等阶段。控制系统主要由电源模块、单片机控制系统和外部硬件电路构成。电源采用三端集成固定稳压器7805提供+5V

相关主题
文本预览
相关文档 最新文档