单片机利用键盘控制继电器.docVIP

  • 4
  • 0
  • 约3.94千字
  • 约 10页
  • 2017-08-11 发布于重庆
  • 举报
单片机利用键盘控制继电器

键盘控制继电器 一、设计任务:实现按键对继电器的控制 二、设计要求:1、用键盘控制单个继电器 2、用键盘控制多个继电器 3、实现按键中断功能 所需原件: 原件名称 数量 9cm*15cm的实验电路板 1 电源插座 1 PNP三极管 2 8M石英晶体 1 22pF电容 2 0—5.8k电位器 1 120电阻 1 1k电阻 2 200k电阻 2 ATmega16单片机 1 SPI程序下载端口 1 继电器 2 发光二极管 4 按键 4 集成电路插座40脚 1 数据下载线 1 排针、跳线 若干 设计步骤 硬件设计 设计要点 1、由于芯片自身电流不能带动继电器工作,故需要加入三极管,对电路的电流进放大,以确保可以驱动继电器。 2、首先考虑的是确保三极管和I/O口不会被反峰电压击穿,故与继电器并联了一个电容,可以对其产生的尖峰电压变化进行有效的过滤。 3、三极管集电极的负载继电器吸合线圈在三极管截止时会产生一个很高的反峰电压,故在继电器两端应并联一个二极管,以释放反峰电压。 4、键盘使用设计要求参见过去的作业。 电路图(详见附带图片) 实物图 软件设计 功能:1、实现芯片对波形频率和幅值的测量、显示 2、实现键盘对频率和幅值之间的转换 程序说明: 否 是 第一个键 第二个键 第三个键 否 是 程序内容: /***************************************************** This program was produced by the CodeWizardAVR V1.25.7a Evaluation Automatic Program Generator ?Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. Project : Version : Date : 2011/12/22 Author : Freeware, for evaluation and non-commercial use only Company : Comments: Chip type : ATmega16 Program type : Application Clock frequency : 4.000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 256 *****************************************************/ #include mega16.h #define Key_mask 0unsigned char key_value,key_line; void main(void) { unsigned char key_temp; unsigned int i; PORTC=0x00; DDRC=0x03; PORTD=0x1F; DDRD=0x1E; while(1) { key_line=0 for(i=1;i4;i++) { PORTD=~key_line; PORTD=~key_line; key_value=Key_maskPIND; if(key_value==Key_mask) //判定是否有按键按下 key_line=1; else { if(key_line==0 //如果是第一个按键按下 { while(1) { PORTC=0x01; key_line=0 PORTD=~key_line; PORTD=~key_lin

文档评论(0)

1亿VIP精品文档

相关文档