简易洗衣机控制器

简易洗衣机控制器

摘要: 尽管洗衣机有了很大发展,但消费者的需求不断提高。为使洗衣机的操作更方便、更人性化,根据设计的要求主要采用单片机设计简易洗衣机的控制系统,控制电动机正反转的时间,在对洗衣总时间进行设定后,洗衣机能完成洗衣过程。它的CPU 采用51单片机,根据设计需要增加一些按键设定时间和数码管显示时间。在满足输入/输出接口及其他硬件的情况下,再进行软件设计。首先是了解其工作流程,绘制功能流程图。然后,制作硬件编写程序实现。本设计主要实现了对洗衣机的定时设置,及控制洗衣机暂停和开始,能显示计时时间,计时结束能发声报警。 关键词 洗衣机、控制、单片机

Abstract :In spite of the washing machine has made great development, but the demands of consumers. To make washing machine operation more convenient, more human, according to the requirement of the design is mainly design simple washing machine control system by single chip microcomputer, the control motor and reversing time, after set laundry total time for washing machine can finish the laundry process. Its CPU USES 51 single chip microcomputer, according to the design needs to add some buttons to set time and digital tube display time. In meet the under the condition of input/output interface, and other hardware, and software design. First of all is to understand its working process, flow chart drawing function. Then, make the hardware programming implementation. This design mainly realized the timing set of washing machine, washing machine and control pause and start, can show the timing time, end time can voice alarm. Key words:Washing machines, control, simple and easy

I

目录

1. 前言 ····················································································································································· 1 2. 方案选择 ·············································································································································· 2 2.1 方案一·············································································································································· 2 2.2 方案二·············································································································································· 2 2.3 方案比较 ·········································································································································· 3 3. 单元模块设计 ······································································································································ 4 3.1 51单片机STC12C5A08S2简介 ········································································································ 4 3.2 51单片机最小系统外围电路 ·········································································································· 5 3.3 时间显示电路 ·································································································································· 6 3.4 洗涤时间设置电路··························································································································· 7 3.5 电机工作状态电路及L293D 简介 ···································································································· 8 3.6 声音报警模块 ································································································································ 10 4. 整体电路图 ········································································································································ 11 5. 软件设计 ············································································································································ 12 5.1 软件设计原理及工具 ····················································································································· 12 5.2 软件设计结构图 ···························································································································· 13 5.3 软件流程图 ···································································································································· 13 5.4 Altium Designer Winter 09软件简介 ····························································································· 15 6. 系统调试、系统功能、指标参数 ····································································································· 17 6.1 系统调试 ········································································································································ 17 6.2 系统功能 ········································································································································ 17 6.3 指标参数 ········································································································································ 17 7. 设计总结 ············································································································································ 19 7.1 设计小结 ········································································································································ 19 7.2 改进 ··············································································································································· 19 8. 参考文献 ············································································································································ 21 附录: ······················································································································································· 22 附录1 元件清单 ································································································································· 22 附录2 电路图 ····································································································································· 23 附录3 相关程序 ································································································································· 24

II

1. 前言

本电路时间主要是由单片机计时器构成计时电路,通过时间的采集来完成电机正反转停止的操作,再由几个按键实现控制。从按键出来的信号,经过单片机接收后进入程序进行秒计数。用户初始化后置入洗涤时间,并按开始按钮,洗衣机开始工作。当秒计数器变为零的时候,向分钟计数器借数,控制电机断电与蜂鸣器发声报警。与此同时,LED 灯显示出电机运转状态;当用户设定的洗涤时间结束后,蜂鸣器发声报警;同时电机指示灯熄灭。复位之后可重新置入洗涤时间进行下一次开始。

本设计具有广阔的开发前景,利用单片机控制,能够执行多项任务,为实现居家智能化做好铺垫。而且,单片机开发技术在国内也比较成熟,价格也比较便宜,开发系统成本低,更容易使消费者接受。利用单片机开发的控制系统能使洗衣机的控制智能化,使用更方便、更简单,更便捷,更能适应现代社会需求。

1

2. 方案选择 2.1 方案一

用数字电路知识做成电路,首先,从秒脉冲出来的信号,经过一个控制电路后进入秒计数器进行秒计数,进行清零,这时用户置入洗涤时间,并按开始按钮,洗衣机开始工作。当秒计数器变为零的时候,去分钟计数器上面借数;与此同时,从十秒位转化出来的信号进入移位寄存器后,LED 灯表示出电机运转状态;当用户设定的洗涤时间结束后,电路报警并清零;同时电机指示灯熄灭。软件方面需要用到Proteus 软件画图,或者是其他仿真软件。

2.2 方案二

用单片机做成电路,主要内容:设计一个用单片机控制的洗衣机控制器. 以单片机为主控制器,扩展必要的外部电路,设计制作一个洗衣机控制器。需要用到Altium Designer Winter 09软件,后者是其他绘图软件绘制电路图。

① 设置洗涤时间:正转20秒→暂停10秒→反转20秒→暂停10秒→定时未到回到“正转20秒→暂停10秒→„„”,定时到则停止并报警; ② 洗涤时洗涤指示灯闪烁;漂洗时漂洗指示灯闪烁;脱水时脱水指示灯 闪烁。正转是正转指示灯亮,反转是反转指示灯亮。

③ 有启动/暂停按钮控制:按下启动按键时启动,按下暂停按键时暂停。

2

2.3

方案比较

方案一:数字电路做思路清晰,对各电路比较了解,符合本课程设计的要

求,更能巩固数字电路的知识。但是电路复杂,与实际应用不相符合。对于个人来说相对与Proteus 软件不太熟悉。

方案二:用单片机做更为简单,便于开发,易于编程实现控制,便于制作,也符合本课程设计的要求。个人对Altium Designer Winter 09软件用得比较熟悉,能灵活运用绘制电路图,编程实现更为灵活。 所以我选择方案二。

3

3. 单元模块设计

3.1 51单片机STC12C5A08S2简介

51单片机主控芯片为STC12C5A08S2的引脚连接图,本单片机为新一代宏晶芯片,具有1个时钟/机器周期,高速、高可靠,2路PWM ,8路10位高速A/D转换,25万次/秒1T 8051带总线, 无法解密, 管脚直接兼容传统89C52, 有全球唯一ID 号可省复位电路,36-44个I/O内部R/C时钟的新一代宏晶芯片加密性强,解密难度高。其外设的P1、P2、P3、P4的四个I/O

口,32位外接端口可供使用,还具有5个中断源可供用户使用。

图3 - 1 51单片机主控芯片

4

3.2 51单片机最小系统外围电路

图3 - 2程序下载接口

图3 - 3单片机时钟模块

图3 - 4复位电路

51单片机最小系统的必需电路中,程序下载接口是给单片机下载程序的,通过接口可以和上位及实现通信,也可以实现两机通信。单片机时钟模块中X1、X2为单片机时钟电路输入接口,为单片机提供时钟周期,相对51来说,一个机器周期为12个时钟周期,单片机执行一条语句,需要12个时钟周期,也就是说单片机将时钟周期进行了12分频。复位电路是能保证单片机从程序初始化开始执行的电路,保证了单片机的正常启动。

电路电源控制开关、 电源指示灯、 滤波电路是控制整个电路电源的开关和电源指示灯电源滤波,电源开关控制整个电路的运行与停止,电源指示灯显示整个电路的工作状态,通过计算,发光二极管需要串联,保证通过二极管的电流不会超过发光二极管正常发光的电流,使发光二极管正常发光。电源滤波保证通过电路的电压为直流电压,减小交流电压的影响。

5

图3 - 6 电源指示灯

图3 - 5 电路电源控制开关

3 - 7 滤波电路

3.3 时间显示电路

图3 - 8 显示模块电路图

6

显示模块电路图是时间显示连接电路,计时显示通过用户设置的时间进行显示,图3 - 8 显示模块电路图左边两位显示时间分,错误!未找到引用源。右边两位显示时间秒,通过单片机I/O口控制数码管的显示,当秒显示变为零时,向分显示借位,直到分和秒都变为零时,洗衣机停止转动,并且蜂鸣器发声报警。对于数码管的阳极,采用三极管(PNP )实现开关控制,三极管接1K 电阻主要起限流作用,使三极管产生偏置电流控制导通截止,使四位数码管共用七段码,实现四位数码管同时显示。其中图中的P1与

P3接口与单片机相连。

3.4 洗涤时间设置电路

图3 - 9 按键模块图

我们可以利用图中按键置数,当把它们接到一个低触发(P2端口平时保持高电平,外部给一个力就输入一个低电平)的脉冲上,就可以实现从0-9的数字输入。因此设计出洗涤时间设置电路如 按键模块图,每次按动开关都将使洗涤时间的对应位(十位或者个位)增加1,最大增加至9,又由于所设置洗涤时间为60分内,故当我们对洗涤时间进行设置时,十位所置数小于6。

7

3.5 电机工作状态电路及L293D 简介

L293D芯片连接图中L293D 采用16引脚DIP 封装,其内部集成了双极型H-桥电路,所有的开量都做成n 型。这种双极型脉冲调宽方式具有很多优点,如电流连续;电机可四角限运行;电机停止时有微振电流,起到“动力润滑”作用,消除正反向时的静摩擦死区:低速平稳性好等。L293D 通过内部逻辑生成使能信号。H-桥电路的输入量可以用来设置马达转动方向,使能信号可以用于脉宽调整(PWM )。另外,L293D 将2个H-桥电路集成到1片芯片上,这就意味着用1片芯片可以同时控制2个电机。每1个电机需要3个控制信号EN12、IN1、IN2,其中EN12是使能信号,IN1、IN2为电机转动方向控制信号,IN1、IN2分别为1,0时,电机正转,反之,电机反转。选用一路PWM 连接EN12引脚,通过调整PWM 的占空比可以调整电机的转速。选择一路I/O口,分别接IN1和IN2引脚,控制电机的正反转。由于条件限制,本设计以直流电机代替220V 电机模

拟,所以在此使用直流电机,实际洗衣机为220V 交流电机。若为220V 交流电机,则需使用继电器控制电机的运行停止。

图3 - 10 L293D 芯片连接图

第一步:分析洗衣机的工作状态,对于洗衣机电机的工作顺序有“启动—

8

—>正转20s ——>暂停10s ——>反转20s ——>暂停10s ——>停止... ”,我们

可以将三种工作状态假设为正转,暂停,反转依次设为01,00,10。从而设计出合适电路如下 电机正转反转指示灯工作状态显示电路:

图3 - 11 电机正转反转指示灯

图3 - 12 电机接口

第二步:分析实验设计中一个电机要求用2个LED 模拟洗衣机的动作状态:OUT1为1、OUT2为0时D3亮为正转,暂停时D1和D3都不亮,OUT3和OUT4为第二个电机状态控制,其运行方式与D1和D3相同,利用正转、暂停、反转的三种不同状态分别为01、00、10,D1、D3、D4、D5以1表示亮(正转),以0表示灭(反转)从而分次序的完成设计。下面只介绍D1和D3的状态。考虑到存在正转和反转两种不同状态,我们需要改变单片机的I/O口来控制电机正转反转,如此分析四个数字变化规律,OUT1和OUT2分别由P1.1和P1.2控制,简略列出其增值表如表3- 1

表3- 1

3.6 声音报警模块

图3 - 13 蜂鸣器报警电路模块图

蜂鸣器报警电路模块图为报警电路模块,本模块与时间显示配合,当时间计时结束时,由单片机BELL 端口控制蜂鸣器发声报警,电路由一个三极管(PNP )一个蜂鸣器一个1K 电阻组成,主要利用三极管的截止和导通特性控制蜂鸣器的发声。

4. 整体电路图

综合上面单元模块设计的原理,设计思路,以及每部分电路的设计,得到电

路 整体电路图所示电路图。

图4 - 1 整体电路图

5. 软件设计

5.1 软件设计原理及工具

软件设计中,程序使用单片机定时器,实现精确计时。主程序使用循环嵌

套,if 语句的嵌套,实现程序顺序循环和分支的三种程序结构方式。通过对I/O口的赋值,控制电机的正转和反转及暂停。对数码管实行循环赋值,使四个位的数码管同时显示。按键通过查询方式控制按键的输入输出,根据按键的输入输出,编写相应的程序控制时间的加减和电机的通断,以及整个系统的运行与停止。软件设计所使用Keil uVision4软件进行编程,Keil uVision4软件是德国keil Software公司出品的51系列兼容单片机C 语言软件开发系统,与汇编相比,C 语言在功能上、结构上、可读性、可维护性上有明显的优势,因而易学易用,Keil uVision4软件需要Win98、NT 、Win2000、WinXP 等操作系统基础上运行。

5.2 软件设计结构图

图5 - 1 程序结构图

程序结构图为软件设计结构图,该结构主要利用单片机的定时器计时,通过程序设置单片机的定时器,使形成一个到计时,用数码管将定时器的时间显示出来。程序通过查询方式,查看按键的输入,通过按键的返回值,做出暂停开始,还是设置时间,从而实现简易洗衣机的控制。计时器启动控制:“正转20s ——>暂停10s ——>反转20s ——>暂停10s ——>停止”直到设置的时间计时结束,整个过程不断重复。

5.3 软件流程图

软件程序执行的顺序如图5 - 2 主程序流程图和图5 - 3 定时器程序流程图所示,用户可以设置洗衣的时间,可以随时暂停开始,当中断程序计

时结束后,电机停止且发声报警。相关程序参照附录2。

图5 - 2 主程序流程图

图5 - 3 定时器程序流程图

5.4 Altium Designer Winter 09软件简介 5.4.1 概述

Altium Designer 是Altium 公司(澳大利亚)继Protel 系列产品(Tango (1988)、Protel for DOS、Protel forWindows 、Protel 98、Protel 99、Protel 99 SE、Protel DXP 、Protel DXP 2004)之后推出的高端设计软件。2001 年,Protel Technology 公司改名为Altium 公司,整合了多家EDA 软件公司,成为业内的巨无霸。2006 年,Altium 公司推出新品Altium Designer 6.0,经过Altium Designer 6.3、AltiumDesigner 6.6、Altium Designer 6.7、Altium Designer 6.8、Altium Designer 6.9、Altium DesignerSummer 08、Altium Designer Winter 09、 Altium Designer Summer09等版本升级,体现了Altium 公司全新的产品开发理念,更加贴近电子设计师的应用需求,更加符合未来电子设计发展趋势要求。

5.4.2 Altium Designer Winter 09软件特点

Altium Designer Winter 09与之前Altium Designer 6.X相比,新增的技术特征如下:

a) 即插即用的软件平台搭建器 b) 2.应用控制面板 c) 3.新的交互式布线功能 d) 4.设计发布管理功能 e) 5.方便的供应商数据链接服务

f) 6.实时制造规则检查

g) 7.三维PCB 可视引擎性能提高

5.4.3 Altium Designer Winter09新特性

直观的编辑器为您的硬件设计轻松地装配一个软件平台。一个可以被装配在软件平台构建器内的软件层。令对硬件的应用控制变成一种标准化的服务包,如存储访问控制和网络服务控制。运用软件平台功能将使设计者仅利用鼠标很少的点击操作就很容易完成对应用控制代码的装配并提供一种强大全面功能调用。

设计发布管理功能,管理一个原型或产品设计的发布流程是产品研发的重要环节,并且也是所有企业数据管理的重要组成部分。在Altium Designer Winter09中首次提供了标准的模式。

过孔(VIA )属性的分层定义功能随着制造工艺的改进和更高布线密度的要求,允许为每一信号层单独设置过孔尺寸的需求越发显得重要,Altium Designer Winter09 中允许对圆形过孔定义过孔叠层属性。

6. 系统调试、系统功能、指标参数

6.1 系统调试

整个系统主要分为硬件和软件部分,硬件就是搭建单片机电路,做好电路

的连接。可以使用面包板搭建,也可以通过制作电路板焊接制作,最好的是用工厂加工的板子焊接。缺点就是成本较高,单块板子小的也要100块钱左右。用面包板连接的电路,可能存在接触不良的问题,增加了调试的难度;而制作的电路板需要焊接,但是自己制作的电路板可能线路能够承载的电流不够,最好还是选用工厂加工的电路板,利用电路板焊接电路减小了接触不良的问题。软件方面使用Keil uVision4软件进行编程,先通过模块编程实现,再整体实现。单独调试数码管显示模块、调试按键模块、发声报警模块、电机工作状态模块,最后通过模块嵌套,完成整个程序编写。

6.2 系统功能

通过编程及硬件调试,本系统主要实现洗衣定时,时间计时显示,控制暂停和开始,定时结束声音报警,能实现洗衣机的正转反转,用户可随时暂停和开始,暂停时,定时器不计时,开始时接着暂停前的时间开始。

6.3 指标参数

通过单片机定时器中断计时,计时准确性大大提高。通过计时验证,本

设计可以最大计时60分钟,最小计时为1分钟,精度为1秒钟,与实际计时

无差别。再控制电机转动上,能够正常显示电机正转反转和暂停的状态,暂停和开始都能正确进行,与设计要求完全符合。

7. 设计总结

7.1 设计小结

在课程设计的整个过程中,有过为思考问题而焦头烂额的烦恼,更有设计

成功的欣喜若狂。在付出与收获中,乐此不疲,享受自己创造的喜悦。从一知半解到调试成功,在学习与动手实践中得到了科学启示,人生感悟。

一分耕耘,一分收获。尽管课程设计只有几天时间,但是通过这种开放式课程设计,学到的不仅仅是知识,更重要加强了动手能里,和学会了一种新的学习方法,学会了如何利用现有的资源(图书馆资料和网络资源),为我终身的继续学习,创造了条件和基础,虽然这次学习时间并不长,但是对自主学习的要求提高了,通过这样的学习形式,提高了我的学习能力。

“学无止境,上下求索”,在今后的学习中,我将把学到的知识和自己的实际相融合,并灵活的运用到学习、工作和生活当中。用自己辛勤的汗水,铿锵的脚步和坚忍不拔的精神,体验人生的涵义。只有不断挑战自己、超越自己,才能跟上时代的步伐,成为适应二十一世纪的学习型创新人才。

7.2 改进

设计中还存在一定的不足,还需进一步改进: 需改进一:控制开关的设定需增加

需改进二:LED 控制电路中的灯的循环及其闪烁控制

8. 参考文献

① 康华光主编. 《电子技术基础 模拟部分》. 高等教育出版社.2005. ② 阎石主编. 《数字电子技术基础》. 高等教育出版社.2005. ③ 郭天祥编. 新概念《51单片机C 语言教程》. 电子工业出版社.2009.1 ④ 谭浩强编. 《C 程序设计(第三版)》. 清华大学出版社.2005.7 ⑤ 伍时和编. 《数字电子技术基础(第一版)》. 清华大学出版社,2009. ⑥ 陈明义主编. 《电子技术课程设计实用教程(第3版)》中南大学出版社.2010 ⑦ 陈学平编. 《Altium Designer Summer09电路设计与制作》电子工业出版社.2012

附录:

附录1 元件清单

表 1 元件清单

表 1 元件清单为整个设计所用到的所有元件,具体应用参照标题4整体电路图及附录2的电路图。

附录2 电路图

附录3 相关程序

相关程序:

#include sbit k1=P2^4; sbit k2=P2^5; sbit k3=P2^6; sbit k4=P2^7; sbit g1=P1^6; sbit g2=P1^5; sbit g3=P1^0; sbit g4=P1^7;

sbit d1=P1^1; //d1=1,d2=0时右轮往前 sbit d2=P1^2; sbit feng=P4^2; sbit dp=P3^2;

#define uchar unsigned char #define uint unsigned int

uchar code tem[]={0x05,0xdd,0x46,0x54,0x9c,0x34,0x24,0x5d,0x04,0x14}; uint f,m,n=0;

int j=0,g,s,b,q,i1,i2; uint k;

void she(void) {

ET0=0; feng=1; i1=d1; i2=d2; d1=0; d2=0;

while(1) {

if(k3==0) { if(k3==0) { j=j+60; if(j>3600) j=0; f=j/60; } while(k3==0);

} if(k4==0) { while(n/3); // 延时10毫秒,去抖动 if(k4==0) { j=j-60; if(j

b=f%10;q=f/10;

for(k=0;k

g2=0;P3=tem[b];dp=1;g2=1;P3=0xff; g1=0;P3=tem[q];g1=1;P3=0xff; } } }

void main() {

TMOD=0x00;

// TH0=(65536-46079)/256; //给初值50ms 中断 // TL0=(65536-46079)%256; TH0=(8192-4607)/32; TL0=(8192-4607)%32; EA=1; ET0=1; TR0=1; while(1)

{ if(k1==0) { if(k1==0) { i1=d1; i2=d2; d1=0; d2=0; ET0=0; feng=1; while(1) if(k2==0) { if(k2==0) { ET0=1; d1=i1; d2=i2; break; }

while(k2==0); } } while(k1==0); } if(k2==0) { if(k2==0) { she(); } while(k2==0); }

//***************************************数************************************************/ g=m%10;s=m/10;b=f%10;q=f/10; for(k=0;k

g4=0;P3=tem[g];g4=1;P3=0xff; g3=0;P3=tem[s];g3=1;P3=0xff;

g2=0;P3=tem[b];dp=0;g2=1;P3=0xff;

码管显示

g1=0;P3=tem[q];g1=1;P3=0xff; } } }

void time(void) interrupt 1 {

TH0=(8192-4607)/32; //设置5ms 中断 TL0=(8192-4607)%32; if(n==200) { j--; m=j%60; f=j/60; n=0; }

if((60-m)>0&&(60-m)

else if((60-m)>=20&&(60-m)

d1=0; d2=0; }

else if((60-m)>=30&&(60-m)

else if((60-m)>=50&&(60-m)

else if(j


相关文章

  • 基于VHDL语言的简易洗衣机控制器
  • 电子课程设计 --简易洗衣机控制器设计 学院: 班级: 姓名: 学号: 指导老师: 2013年12月 目 录 第一部分:设计任务与要求„„„„„„„„„„„„„„„1 第二部分:总体框图„„„„„„„„„„„„„„„„„„1 第三部分:选择 ...

  • 电子报合订本1987索引
  • 为什么影电需要良好的天线????107 20吋彩色显像管代换一例????139 牡丹14吋影电显像管代换????143 彩色像管损坏一例????????35 彩色显像管损坏的教训??????35 遥控彩电使用注意????????163 彩色 ...

  • 电气自动化毕业设计题目
  • 基于单片机的数字温度计设计 基于单片机的小型电动机控制系统设计 全自动洗衣机的PLC控制 自动送料装车系统设计 自动门控制装置设计 开关电源的原理和设计 声控开关及其功能的扩展 抢答器的制作 欠压过压保护系统设计 电子万年历的制作 触摸延时 ...

  • 试述开环控制系统的主要优缺点
  • 习 题 1-1 试述开环控制系统的主要优缺点. 答:优点:开环控制系统无反馈回路,结构简单,成本较低. 缺点:控制精度低,容易受到外界干扰,输出一旦出现误差无法补偿. 1-2 日常生活中有许多闭环和开环控制系统,试举几个具体例子,并说明它们 ...

  • 科技作品类说明书模板
  • 西北工业大学第一届大学生节能减排社会实践与科技竞赛 运动型时尚洗衣机设计说明书 设计者:周宇.马坚.张北辰.赵玺.张东 (西北工业大学大学动力能源学院和机电学院:张北辰.周宇 ) 作品内容简介 本组成员将活动主题定义为"为低碳经济 ...

  • 简易租赁合同范本
  • 出租方(以下简称甲方)身份证地址、号码:   承租方(以下简称乙方)身份证地址、号码:   甲、乙双方通过友好协商,就房屋租赁事宜达成协议如下:   一、租赁地点及设施:   1.租赁地址:     路    弄    号    室;房型规 ...

  • 房屋租赁简易合同
  • 出租方(以下简称甲方)身份证地址、号码: 承租方(以下简称乙方)身份证地址、号码: 甲、乙双方通过友好协商,就房屋租赁事宜达成协议如下: 一、租赁地点及设施:    1.租赁地址:     路    弄    号    室;房型规格     ...

  • 中学寄宿生管理工作汇报
  •   我校连续七届【14年】获得省文明单位的称号,是江西省德育示范学校。xx年,我校初中部全部剥离,办成了纯高中并迁入新校园。现在,有教学班50个,在校学生3248人,其中寄宿生1637人【男生1159人,女生478人】。   学校有学生公寓 ...

  • 初中物理-电与磁
  • 电与磁 一.磁现象 知识点Ⅰ 磁体与磁极 1磁体:物体能够吸引由铁.钴.镍制成的物品,我们就说它具有磁性.具有磁性的物体称 为磁体. (1) 磁体分为天然磁体(如天然磁体矿石)和人造磁体. (2) 常见的人造磁体有条形磁体.蹄形磁体.磁针等 ...

© 2024 范文参考网 | 联系我们 webmaster# 12000.net.cn