北邮单片机实验报告.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《北邮单片机实验报告.docx》由会员分享,可在线阅读,更多相关《北邮单片机实验报告.docx(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、电路综合实验报告流水灯计时器和密码锁目录一、流水灯和计时器41.实验目的42.设计功能43.实验器材及功能44.电路连接图55.电路接口56.主要程序说明57.实验排错及改进9二、密码锁101.设计目的10(1)功能10(2)用途102.设计功能10(1)提示各项操作指令10(2)密码正误识别11(3)重置密码113.实验器材及功能124.硬件设计13(1)电路原理图13(2)电路实际连接图13(3)系统工作流程图14(4)各分块电路的详细情况【包括端口的接线】155.程序设计16(1)键盘扫描程序16(2)显示屏显示程序21(3)滚动显示操作33(4)键盘按键判断程序34(5)主程序436.
2、操作过程及运行结果447.实验排错及改进45三、体会和建议45四、实验分工47附录48一、流水灯和计时器1.实验目的 这次实验是我第一次接触单片机,为了更加深入的了解ATmega16单片机的各种应用方法和工作原理,我们从最基础的实验入手,了解单片机的各个端口的作用和利用AVRStudio工具编写单片机可识别的C语言程序。在观看了教学视频和查阅了说明书后,我们了解了单片机的各个端口,对端口进行一定输入输出练习。为了将所学的单片机进行实际应用,我们通过流水灯和计时器这两个入门实验对所学知识进行实践检验。2.设计功能(1)流水灯演示,依次点亮每一个发光二极管。(2)用两个数码管做一个秒表计时器。 要
3、求按下中断按键后能够暂停秒表计时,但不影响流水灯的运行,再次按键能够使秒表继续计时3.实验器材及功能材料名称数量作用ATmega16单片机1对电路进行简单运算和控制发光二极管8实现流水灯功能数码管2秒表计时器按键1控制计时中断4.电路连接图5.电路接口流水灯八个灯:PA0PA7十位数码管:PB0PB7(PB2未接)个位数码管:PD0PD7(PD2未接)中断按键接:PD26.主要程序说明#include#includechar temp;volatile unsigned int cnt = 0;volatile unsigned int i = 1;volatile unsigned int
4、key = 0;char shuzi10 = /为计时器设置数字0-9数组0b11110011,/00b11000000,/10b01101011,/20b11101010,/30b11011000,/40b10111010,/50b10111011,/60b11100000,/70b11111011,/80b11111010,/9int main(void)DDRA = 0xff; /设置端口方向和初始状态DDRD = 0xff;DDRB = 0xff;TCNT0 = 55; MCUCR |= (1 ISC01); /八分频GICR |= (1 INT0);sei();TCCR0 |= (1
5、 CS01) | (1 =60000)cnt = 0;temp = PORTA; /控制发光二极管PORTA = PORTA = 60) /控制数码管的显示 i = 0;SIGNAL(SIG_INTERRUPT0) /中断信号key = !key;7.实验排错及改进错误:最初进行流水灯实验时,灯始终不亮 原因和改进:发光二极管未接地,接地后,再连接上电阻限流,即可正常发光。错误:秒表时间不准确,计数器跳变时间不是1秒 原因和改进:没有使用单片机自带定时器,在经过计算后设置了大致准确的延时,但每分钟仍然会慢三四秒。后来经过老师指导说明,明白了是由于单片机的准确频率应为1240000而非1M导致。
6、二、密码锁1.设计目的(1)功能在现实生活中,很多场合都用到了电子密码锁,比如说门禁系统,银行账户管理,保险箱等等地方都要用到电子密码锁,而且对其要求也很高。所以高安全性能密码锁的研究就成了一个必需的话题。本设计的目的就是为了在保证高安全性的前提下,实现降低成本,方便携带安装的功能,真正服务于人民。(2)用途可设计在一些简单的安全系统上,类似于密码箱,门禁系统上面,以提高产品的安全性。其中输入密码错误自动报警和立即锁死的功能能提高用户的警觉性,降低失窃率。除此之外,本款密码锁具有修改密码的功能,增加用户的安全性。2.设计功能(1)提示各项操作指令接通电源,液晶屏显示“welcome!”, 显示
7、“2013211104-group9”滚动字幕。(2)密码正误识别 由屏幕显示提示按键,进入密码输入阶段。用键盘输入六位密码,初始密码为【123456】。若输入的密码正确,蜂鸣器响一声,绿色二极管发光。若输入的密码错误,可再次输入,且每错误一次,增加一颗红色二极管发光。连续输入错误达三次时,蜂鸣器长鸣,三个二极管均发光。系统进入锁定状态,液晶屏显示六十秒倒计时,结束后方可再次输入密码。(3)重置密码密码输入正确后,提示是否修改密码,两次输入一致后修改内置密码,且修改密码时,新密码必须为6位,多6位无法继续输入,少于六位,无法进行其他操作。液晶屏显示“ok”,若两次不一样显示“fail”,需再次
8、输入。3.实验器材及功能材料名称数量作用4*4键盘1 09为数字键输入作为密码。 A-F为功能键根据显示屏的提示代表各项指令,详见下面的【五、操作过程及运行结果】1602液晶屏1 显示欢迎界面以及各项操作指南 显示输入的密码,不显示数字,显示为*。蜂鸣器1显示密码正误。密码输入正确,蜂鸣器响一声;密码输入错误三次,蜂鸣器长响,按A停止响,开始倒计时。发光二极管4(红3、绿1)显示密码正误。 若密码正确,则绿色二极管亮。 若密码错误,则红色二极管亮,错几次亮几个。导线若干连接各器件4.硬件设计(1)电路原理图(2)电路实际连接图进入60秒倒计时(3)系统工作流程图蜂鸣器长鸣,三个红色二极管均发光
9、开始开始是否是否为第三次输入错误输入密码输入密码正确错误蜂鸣器响一声,绿色发光二极管亮修改密码蜂鸣器鸣叫,第一次错误亮一个红灯,第二次亮两个不相同再次输入新密码相同修改成功,按C返回 结束(4)各分块电路的详细情况【包括端口的接线】系统以Atmega16单片机为控制核心,4*4键盘作为输入模块,1602液晶显示屏作为显示模块实现密码锁的各项功能。 键盘电路本系统使用的键盘采用行列式键盘,对键盘进行扫描时,可以采用查询扫描的方法:先对行进行扫描,再对列进行扫描,直至将每行每列都扫描一次,通过单片机端口电平的变化,判断哪个按键被按下使用单片机的8个I/O端口就可以控制16个按键。键盘的8个引脚分别
10、接在PORTB的8个端口。列线:PB0-PB3行线:PB4-PB7 SMC1602A液晶屏电路1602液晶屏主要用于与用户交互,包括显示操作指南,提示密码输入状态和显示结果。根据左图,由上至下依次为1-16号引脚。1号,3号接地。2号,15号接VCC。46号引脚与PC0、PC1、PC7相连,分别控制RS(数据/指令寄存器选择)、RW(读写选择引脚)、E(读写使能引脚)。714号引脚分别接在PORTA的8个端口,用于数据的并行传输。16接GND。 声光电路利用发光二极管和蜂鸣器表示输入密码正确与否:密码正确时,绿色发光二极管亮,蜂鸣器响一声;若输入的密码错误,可再次输入,且每错误一次,增加一颗红
11、色二极管发光。连续输入错误达三次时,蜂鸣器长鸣,三个二极管均发光。蜂鸣器的两端:PD1和AGND红色发光二极管的正负极:PD2和AGND、PD3和AGND、PD4和AGND。绿色发光二极管的正负极:PD0和AGND5.程序设计(1)键盘扫描程序 本程序通过行扫描法,对4 x 4 的行列结构的键盘进行扫描。其按键识别的过程如下:将全部行线置低电平输出,然后读四根输入列线中 有无低电平出现。只要有低电平出现,则说明有键按下。实际编程时,还要考虑按键的消抖。如读到的都是高电平,则表示无键按下。在确认有键按下后,需要进入确定具体哪一个键闭合的过程。其思路是:依次将行线置为低电平,并检测列线的输入(扫描
12、) ,进而确认是具体的按键 位置。如当 PD5 输出低电平时(PD3=1、PD4=1、PD5=0、PD6=1) ,测到 PD1 的输入为低电平(PD0=1、PD1=0、PD2=1、PD3=1) ,则可确认按键 K3-2 处于闭合。 此段程序通过每次循环进入三种状态中的一种以确定键盘的状态。unsigned char read_keyboard()static unsigned char key_state = 0, key_value, key_line;unsigned char key_return = No_key ;unsigned char i;switch (key_state)c
13、ase 0:key_line = 0b00010000;for (i = 1; i = 4; i+) / 扫描键盘PORTB = key_line;PORTB = key_line;key_value = Key_mask & PINB;if (key_value = Key_mask)key_line = 1; / 没有按键,继续扫描elsekey_state+; / 有按键,停止扫描PORTD=0b00000010; / 每次按键,蜂鸣器响一下delay(50);PORTD=0b00000000; break;break;case 1:if (key_value = (Key_mask &
14、 PINB) / 消抖处理,键盘编码,返回编码值switch (key_line | key_value)case 0b00011110: /根据输入返回相应键值key_return = K1_1;break;case 0b00101110:key_return = K1_2;break;case 0b01001110:key_return = K1_3;break;case 0b10001110:key_return = K1_4;break;case 0b00011101:key_return = K2_1;break;case 0b00101101:key_return = K2_2;b
15、reak;case 0b01001101:key_return = K2_3;break;case 0b10001101:key_return = K2_4;break;case 0b00011011:key_return = K3_1;break;case 0b00101011:key_return = K3_2;break;case 0b01001011:key_return = K3_3;break;case 0b10001011:key_return = K3_4;break;case 0b00010111:key_return = K4_1;break;case 0b00100111
16、:key_return = K4_2;break;case 0b01000111:key_return = K4_3;break;case 0b10000111:key_return = K4_4;break;key_state+; / 转入等待按键释放状态elsekey_state-; / 两次行电平不同返回状态,(消抖处理)break;case 2: / 等待按键释放状态PORTB=0b00001111; / 列线全部输出低电平PORTB=0b00001111; / 重复送一次if (Key_mask & PINB) = Key_mask)key_state = 0; / 行线全部为高电平
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 报告
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内