AT89C51单片机按键程序

合集下载

基于单片机AT89C51控制的键控流水灯_课程设计报告

基于单片机AT89C51控制的键控流水灯_课程设计报告
设计中,发光二极管是共阳极接法的,我们只需要将其初值不断的左移就会看到LED轮流的被点亮,也就实现了流水灯的功能。
图3-5流水灯模块图
3.3
图3-6 键控流水灯图
4
#include<reg51.h>
#define smg1 P0
#definelsd1P1
#define smg2P2
unsignedinti=1,u=7,j,n,c,k,h=7,s=1;
voidsjms3(void);
voidsjms4(void);
voidsjms5(void);
voidmsms1(void);
voidmsms2(void);
voidmsms3(void);
voidmsms4(void);
voidmsms5(void);
voidzd1(void);
voidzd2(void);
3.2.5
发光二极管就是LED,是一种由磷化镓等半导体材料制成的、能直接将电能转换成光能的发光显示器件。当其内部有一定电流通过时,就是发光。发光二极管具有功耗低、体积小、可靠性高、寿命长和相应快等优点。
流水灯模块采用16个LED发光二极管,通过代码的编写,实现五种流水移动,其中电阻的作用是保护二极管,向它提供较小的电流,防止二极管因为电流过大而烧毁。
1
单片机控制系统能够取代以前利用复杂电子线路或者数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。现在的单片机的控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。
2
2.1
随着经济的发展、科技的突飞猛进,芯片业得到了迅速的发展,是单片机技术在各种民用和工业控制等领域得到更广泛的应用。单片机凭借其低成本、高性能的不可代替优势已经成为了微电脑 控制的主力军。学习单片机的有效方法是将理论与实践并重,因此通过对单片机可控流水灯的设计和研究,鼓励学生在熟悉基本原理的前提下,与实际应用相联系,提出自己的方案,来完善设计,使得他们更好的掌握单片机的应用。

AT89C51单片机程序

AT89C51单片机程序
{
ch451_write(display[0]+0);
}
}
else if(!stop_flag)
{
ch451_write(display[0]+BCD[miaoge]);
}
}
void key_Recognize()
{
switch(ch451_key)
//beep=~beep;
miaoge++;
}
}
else if(stop_flag)
{
timecount=0;
ss_flag=~ss_flag;
}
}
}
void ch451_inter() interrupt 3
{
#include<reg52.h>
#include"ch451.h"
sbit beep=P2^6;
uchar timecount=0;
uint count;
extern uchar shishi,shige,fenshi,fenge,miaoshi,miaoge;
extern bit stop_flag,ss_flag;
num=1;
}break;
case 0x49: delay(65000);
num--;
if(num<1)
{
num=6;
}
break;
case 0x43:delay(65000);
//*****************************************************

基于AT89C51单片机键盘控制和LCD显示

基于AT89C51单片机键盘控制和LCD显示
判断被按下键的位置:
依次将所有的行线Y4~Y7置为低电平,在判断4根列线的电平状态,当遇到某一列的电平
键盘扫描流程图
为低时表示此键按下。
5LCD1602液晶显示屏
液晶显示器具有显示质量高、发光恒定、不会刷新亮点和闪烁、体积小、电流小、字迹清晰以及功耗低的特点。本实验才用了16×2个字符,5×7点阵,8位数据接口的液晶显示。
{
P3=0xf7;
if(P3!=0xf7)
{
temp=P3&0xf0;
switch(temp)
{
case 0xe0:num_0=0;write_cmd(0x01);
break;
}
}
}
void keyscan() //键盘扫描程序操作
{
P3=0xf7;
if(P3!=0xf7)
{
delay(20);//延迟20ms
write_cmd(0x04);
i=0;
c=(long)(((float)sqrt(a))*1000);
while(c!=0)
{
write_dat(0x30+c%10);
c=c/10;
i++;
if(i==3)
write_dat(0x2e);
}
if(sqrt(a)<=0)
write_dat(0x30);
}
else if(fuhao==4){write_cmd(0x80+0x4f);
系统硬件设计框图如图1
图1
2AT89S52是一种带4kB闪烁可编程课擦除只读存储器的低电压、高性能CMOS型8位微处理器,俗称单片机。它是一个低功耗、高性能的8位CMOS微控制器。由片内可反复

基于AT89C51单片机频率计的设计(含程序)

基于AT89C51单片机频率计的设计(含程序)

AT89C51单片机频率计的设计摘要基于在电子领域内,频率是一种最基本的参数,并与其他许多电参量的测量方案和测量结果都有着十分密切的关系。

由于频率信号抗干扰能力强、易于传输,可以获得较高的测量精度。

因此,频率的测量就显得尤为重要,测频方法的研究越来越受到重视。

频率计作为测量仪器的一种,常称为电子计数器,它的基本功能是测量信号的频率和周期频率计的应用范围很广,它不仅应用于一般的简单仪器测量,而且还广泛应用于教学、科研、高精度仪器测量、工业控制等其它领域。

随着微电子技术和计算机技术的迅速发展,特别是单片机的出现和发展,使传统的电子侧量仪器在原理、功能、精度及自动化水平等方面都发生了巨大的变化,形成一种完全突破传统概念的新一代侧量仪器。

频率计广泛采用了高速集成电路和大规模集成电路,使仪器在小型化、耗电、可靠性等方面都发生了重大的变化。

目前,市场上有各种多功能、高精度、高频率的数字频率计,但价格不菲。

为适应实际工作的需要,本次设计给出了一种较小规模和单片机(AT89C51)相结合的频率计的设计方案,不但切实可行,而且体积小、设计简单、成本低、精度高、可测频带宽,大大降低了设计成本和实现复杂度。

频率计的硬件电路是用Ptotues绘图软件绘制而成,软件部分的单片机控制程序,是以KeilC做为开发工具用汇编语言编写而成,而频率计的实现则是选用Ptotues仿真软件来进行模拟和测试。

关键词:单片机;AT89C51;频率计;汇编语言选题的目的意义数字频率计的主要功能是测量周期信号的频率。

其基本原理就是用闸门计数的方式测量脉冲个数。

频率是单位时间( 1s )内信号发生周期变化的次数。

如果我们能在给定的 1s 时间内对信号波形计数,并将计数结果显示出来,就能读取被测信号的频率。

数字频率计首先必须获得相对稳定与准确的时间,同时将被测信号转换成幅度与波形均能被数字电路识别的脉冲信号,然后通过计数器计算这一段时间间隔内的脉冲个数,将其换算后显示出来。

AT89C51单片机控制步进电机

AT89C51单片机控制步进电机

摘要步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电机的开环控制系统。

控制系统通过单片机存储器、I/O接口、中断、键盘、LED显示器的扩展、步进电机的环形分频器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。

为实现单片机控制步进电机系统在数控机床上的应用,系统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功能,也即数控机床的刀架自动进给运动,随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,自六十年代初期以来,步进电机的应用得到很大的提高。

人们用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪,磁盘光盘驱动器、各种自动控制阀、各种工具,还有机器人等机械装置。

此外作为执行元件,步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中,随着微电子和计算机技术的发展,它的需要量与日俱增,在各个国民经济领域都有应用。

步进电机是机电数字控制系统中常用的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用大规模集成电路的发展以及单片机技术的迅速普及,为设计功能强,价格低的步进电机控制驱动器提供了先进的技术和充足的资源。

关键词:步进电机;单片机;精度高;体积小;控制方便。

目录设计要求 (2)1.1设计要求 (2)1.2验收标准 (2)步进电机原理及硬件和软件设计 (2)2.1步进电机工作方式 (2)2.2 总体设计方框图 (5)2.3 设计原理分析 (6)2.3.1元器件介绍:步进电机 (6)2.3.2方案论证 (7)2.3.3硬件设计 (8)2.3.4元件清单 (12)2.3.5 软件设计 (13)总结 (19)致谢 (19)参考文献 (20)附录 (21)设计要求1.1设计要求(1)最小系统:选择AT89C51单片机为核心元件构成系统。

基于at89c51单片机的定时闹钟的设计

基于at89c51单片机的定时闹钟的设计

基于at89c51单片机的定时闹钟的设计本文介绍了基于AT89C51单片机的定时闹钟的设计。

文章将探讨设计目的和背景,并着重阐述定时闹钟的实现原理和功能。

本文档将介绍基于at89c51单片机的定时闹钟的硬件设计要点,包括电源、显示器、按键等组件选择和连接方式。

电源选择与连接在设计定时闹钟的硬件方案时,选择合适的电源是非常重要的。

以下是一些电源选择和连接的要点:使用稳定可靠的电源模块,例如直流电源模块,以确保单片机工作的稳定性。

将电源模块的正负极连接到at89c51单片机的VCC和GND引脚上。

注意电源的电压和电流要符合at89c51单片机的工作要求。

显示器选择与连接显示器是定时闹钟中显示时间和其他信息的重要组件。

以下是一些显示器选择和连接的要点:考虑使用液晶显示器 (LCD) 或数码管作为显示器,这些显示器可以清晰地显示数字和字符。

根据设计需求,选择合适的显示器尺寸和类型。

将显示器的控制引脚与at89c51单片机的相应引脚连接,以实现时间和信息的显示。

按键选择与连接按键是控制定时闹钟设置和功能的重要组件。

以下是一些按键选择和连接的要点:选择合适的按键类型,例如触摸按键或机械按键。

根据设计需求,确定所需的按键数量和布局。

将按键的引脚连接到at89c51单片机的GPIO引脚,以接收按键输入并实现相应的功能。

上述是基于at89c51单片机的定时闹钟的硬件设计要点,通过合理选择和连接电源、显示器和按键等组件,可以确保定时闹钟的稳定运行和正常功能。

本文将阐述基于at89c51单片机的定时闹钟的软件设计要点,包括如下内容:定时器的设置:使用at89c51单片机的定时器来实现定时功能,可以通过对定时器寄存器的设置来调整定时的时间间隔。

中断处理:在定时器到达设定的时间间隔时,通过中断处理来触发相应的操作。

可以通过设定中断优先级来确保定时器中断的可靠性。

闹钟功能的实现:通过软件算法和控制电路,将定时器和中断处理结合起来实现闹钟功能。

AT89C51单片机说明

AT89C51单片机说明

EA A8H AF
ET2 ES
ET1 EX1 ET0 EX0
AD AC AB AA A9 A8 IE
A0H A7 A6 A5 A4 A3 A2 A1 A0 P2
SM0 SM1 SM2 REN TB8 RB8 TI
RI
98H 9F 9E 9D 9C 9B 9A 99 98 SCON
90H 97 96 95 94 93 92 91 90 P1
工作寄存器组3 18H
17H 工作寄存器组2
10H
0FH 工作寄存器组1
08H
07H 工作寄存器组0
00H
图 2-4 内部低 128 个字节地址 RAM 空间
第 3 页 共 9页
附录
AT89C51 单片机说明
寄存器符号 ACC B PSW SP
DPTR
P0 P1 P2 P3 IP IE TMOD TCON TH0 TL0 TH1 TL1 SCON SBUF PCON
IP 中断优先次序寄存器
位地址 - - BD BC BB BA B9 B8
符号
- - PT2 PS PT1 PX1 PT0 PX0
-(IP.7) :保留位,无定义。 -(IP.6) :保留位,无定义。 PT2(IP.5) :设定计时器 2 的优先次序(8052 使用)。 PS(IP.4) :设定串行端口的中断优先次序。 PT1(IP.3) :设定时/计时器 1 的优先次序。 PX1(IP.2) :设定外部中断 INT1 的优先次序。 PT0(IP.1) :设定计时器 0 的优先次序。 PX0(IP.0) :设定外部中断 INT0 的优先次序。
(60KB)
0FFFFH
1000H
外部 程序 存储器

用单片机AT89C51设计一个2位的LED数码显示作为“秒表”—单片机课程设计

用单片机AT89C51设计一个2位的LED数码显示作为“秒表”—单片机课程设计

目录一、设计题目和要求: (2)二、设计目的: (2)三、设计内容: (3)四、课程设计心得体会 (25)五、参考文献 (26)六、课程设计指导教师评审标准及成绩评定 (27)附件1:秒表原理图(实际接线图) (28)附件2:仿真图1 (30)附件3:仿真图2 (31)一、设计题目和要求:题目三:秒表应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。

设计一个“复位”键,按下“复位”键后,秒表从0开始计时。

任务安排:李座负责绘制电路原理图;梁宗林负责收集资料及电子版整理;付忠林负责程序和仿真。

二、设计目的:1.进一步掌握AT89C51单片机的结构和工作原理;2.掌握单片机的接口技术及外围芯片的工作原理及控制方法;3.进一步掌握单片机程序编写及程序调试过程,掌握模块化程序设计方法;4.掌握PROTEUS仿真软件的使用方法;5.掌握LED数码管原理及使用方法。

6.掌握定时器、外部中断的设置和编程原理。

7.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

8.该课程设计通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、复位功能,并同时可以用数码管显示。

三、设计内容:了解8051芯片的的工作原理和工作方式,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、清零功能,精确到1秒。

AT89C51单片机的主要工作特性:·内含4KB的FLASH存储器,擦写次数1000次;·内含28字节的RAM;·具有32根可编程I/O线;·具有2个16位可编程定时器;·具有6个中断源、5个中断矢量、2级优先权的中断结构;·具有1个全双工的可编程串行通信接口;·具有一个数据指针DPTR;·两种低功耗工作模式,即空闲模式和掉电模式;·具有可编程的3级程序锁定定位;AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz.AT89C51各部分的组成及功能:振荡器和时钟电路数据存储器128字节程序存储器14KBCPU 两个16位定时器计数器中断控制总线扩展控制器并行可编程I/O口可编程串行口内部总线外部中断扩展控制P0 P1 P2 P3 RXD TXD1.单片机的中央处理器(CPU )是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

单片机课设 AT89C51八路抢答器

单片机课设 AT89C51八路抢答器

单片机课程设计任务书1.课题名称抢答器设计2.设计目的1.进一步理解和掌握单片机理论课程知识,加强对专业知识的合运用;2.学会熟练使用单片机编程工具软件及单片机软件编程;3.学习单片机小系统的硬件设计及PCB布线。

4.学会如何整理资料,划分模块,提高自己的编程技巧;3.设计思路a.了解抢答器的工作方式;b.单片机按键输入的设计;c.单片机驱动发光二极管显示及数码管的动态扫描工作方式;d.延时子程序设计;e.定时器的应用;4.设计要求1.在本设计中要求设计一个八组单片机控制的抢答器模拟器;2.要求由两个LED(红绿)指示抢答成功或失败;3.要求由1位数码管显示抢答成功(或失败)的组;4.发挥部分:剩余时间显示,各组积分显示;5.课程设计结束后,要求交设计心得,课程设计报告;目录第一章概述 (1)第二章八路抢答器设计方案及选取 (2)2.1电路设计方案一 (2)2.2电路设计方案二 (2)2.3电路设计方案的选取 (2)第三章电路设计原理及硬件设计 (3)3.1单片机最小系统的原理 (3)3.2八路抢答器工作原理 (4)3.3控制系统及所需元件 (5)第四章软件系统设计及仿真 (7)4.1软件系统设计 (7)4.2电路仿真 (8)第五章电路板制作与调试 (9)5.1电路板制作 (9)5.2电路调试 (9)第六章心得体会 (11)第七章参考文献 (12)鸣谢 (12)附录一源程序 (13)第一章概述《单片机原理及应用技术》是一门技术性,应用性、实践性很强的学科。

课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的和任务就是配合单片机的教学和平时实验,以达到巩固消化课程的内容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。

在实际生活中有好多地方都用到了单片机,因此学习好这门课程有着十分重要的意义。

AT89C51单片机的P2口控制

AT89C51单片机的P2口控制

用AT89‎C51单片‎机的P2口‎控制8个L‎e d的流水‎灯的C程序‎看不懂?‎悬赏分:‎80 - ‎解决时间:‎2009-‎4-1 2‎3:55 ‎用AT8‎9C51单‎片机的P2‎口控制8个‎L ed的流‎水灯的C程‎序看不懂?‎从P2-‎0到P2-‎7灯依次单‎独点亮后,‎又从P2-‎7到P2-‎0灯依次单‎独点亮如‎此反复循环‎,程序如下‎(低电平被‎点亮):‎#incl‎u de <‎R EGX5‎2.H>‎v oid ‎D elay‎1ms(u‎n sign‎e d in‎t cou‎n t){‎uns‎i gned‎int ‎i,j;‎for(‎i=0;i‎<coun‎t;i++‎)fo‎r(j=0‎;j<12‎0;j++‎);}‎main‎(){‎ un‎s igne‎d cha‎r LED‎I ndex‎= 0;‎b‎i t LE‎D Dire‎c tion‎= 1;‎w‎h ile(‎1)‎{‎ if(‎L EDDi‎r ecti‎o n)‎ P‎2 = ~‎(0x01‎<<LED‎I ndex‎);‎ els‎e‎ P2 ‎= ~(0‎x80>>‎L EDIn‎d ex);‎‎if(L‎E DInd‎e x==7‎)‎ LED‎D irec‎t ion ‎= !LE‎D Dire‎c tion‎;‎LEDI‎n dex ‎= (LE‎D Inde‎x+1)%‎8;‎ Del‎a y1ms‎(500)‎;‎}‎ }‎我这程序我‎真的看不懂‎,这个b‎i t LE‎D Dire‎c tion‎= 1;‎是什么意思‎?从主函‎数开始,麻‎烦高手帮我‎解释每一句‎的意思以及‎它有用途?‎越详细越‎好!在下‎在此先谢谢‎了!‎提问者:‎t wp16‎89916‎8 - 二‎级最佳答案‎#incl‎u de <‎R EGX5‎2.H> ‎void‎Dela‎y1ms(‎u nsig‎n ed i‎n t co‎u nt) ‎/*延时函‎数,延迟时‎间为cou‎n t×1m‎s)*/ ‎{un‎s igne‎d int‎i,j;‎for‎(i=0;‎i<cou‎n t;i+‎+)f‎o r(j=‎0;j<1‎20;j+‎+);‎}m‎a in()‎{‎u nsig‎n ed c‎h ar L‎E DInd‎e x = ‎0; /*‎声明8位变‎量LEDI‎n dex,‎用来指示8‎个LED中‎哪个被点亮‎,初始值为‎00000‎000*/‎bit ‎L EDDi‎r ecti‎o n = ‎1; /*‎声明位变量‎L EDDi‎r ecti‎o n,用来‎指示点亮的‎方向,初始‎值为1*/‎whil‎e(1) ‎/*一直循‎环执行大括‎号里面的语‎句*/{‎if(‎L EDDi‎r ecti‎o n) /‎*当LED‎D irec‎t ion=‎1时,00‎00 00‎01左移L‎E DInd‎e x位,取‎反后送给P‎2端口,点‎亮一个LE‎D*/P‎2 = ~‎(0x01‎<<LED‎I ndex‎);e‎l se /‎*当LED‎D irec‎t ion=‎0时,10‎00 00‎00右移L‎E DInd‎e x位,取‎反后送给P‎2端口,点‎亮一个LE‎D*/‎P2 = ‎~(0x8‎0>>LE‎D Inde‎x);‎i f(LE‎D Inde‎x==7)‎/*当一‎次循环结束‎时,把LE‎D Dire‎c tion‎取反,下次‎循环时将以‎相反的顺序‎点亮*/‎L EDDi‎r ecti‎o n = ‎!LEDD‎i rect‎i on; ‎LEDI‎n dex ‎= (LE‎D Inde‎x+1)%‎8; /*‎L EDIn‎d ex+1‎对8取余,‎保证LED‎I ndex‎在0~7之‎间*/D‎e lay1‎m s(50‎0); /‎*延时50‎0ms,即‎L ED的点‎亮间隔为0‎.5s*/‎}}‎2‎2回答者:‎紫翅z‎h idao‎- 四级‎ 20‎09-3-‎23 12‎:20‎我来评论‎>>提‎问者对于答‎案的评价:‎谢谢一楼的‎回答,三楼‎回答好一点‎,谢谢!‎相关内容‎?求:‎单片机控制‎双色LED‎灯流水亮起‎的程序‎1 20‎10-1-‎9‎流水灯‎利用单片机‎的P1口控‎制LED的‎发光闪烁,‎在利用编程‎实现模拟广‎告灯2‎009-1‎1-8‎?怎样‎让单片机在‎P1.和P‎2口同时控‎制两个不同‎花样的流水‎灯呢? ‎2009-‎6-29 ‎基‎于at89‎c51单片‎机的led‎彩灯控制器‎管内LED‎板模块硬件‎图中的芯片‎C D407‎6在电路中‎有何作用?‎ 5 ‎2009-‎5-23 ‎用‎P rotu‎e s软件实‎现AT89‎C51单片‎机控制的跑‎马灯的仿真‎,8个LE‎D实现左移‎和右移。

毕业设计-基于AT89C51单片机的电子密码锁的设计

毕业设计-基于AT89C51单片机的电子密码锁的设计

毕业设计(论文)题目:电子密码锁的设计学院:电气与信息工程学院专业:电子信息工程姓名:学号: ********* 指导老师:**完成时间: 2013年5月28日摘要随着经济社会发展,人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出。

传统的机械锁,由于其构造简单,安全性能低,无法满足人们的需要。

随着电子产品向智能化和微型化的不断发展,数字密码锁作为防盗卫士的作用显得尤为重要。

而单片机以其实用,功能强大,价格低廉等功能,已成为电子产品研制和开发中首选的控制器。

本文从经济实用的角度出发,阐述一个基于单片机的液晶显示电子密码锁的设计与实现。

系统采用ATMEL公司的AT89C51单片机作为系统核心,液晶显示器LCD1602作为输出设备显示系统提示信息,4*4矩阵键盘作为输入设备,CMOS串行E2PROM存储器AT24C02作为数据存储器,配合蜂鸣器、继电器等电路构成整个系统硬件;系统软件采用C语言编写。

设计的系统液晶显示,密码修改方便,具有报警、锁定等功能,使用便捷简单,符合住宅、办公用锁需求,具有一定的实用价值。

关键词:单片机,密码锁,AT89C51,LCD1602,AT24C02AbstractWith the development of our society and the i mprovement of people’s living standard, how to ensure the family security is becoming more and more important in particular. Traditional mechanical lock is unable to meet the need of us because of its simple structure and low security. Nowadays, electronic products become smarter and smaller, electronic password anti-theft lock plays a more important role as the security guards. The MCU with its practical, strong function, low price and other functions , has become the preferred controller in electronic product research and development.This article is written from the economic perspective, elaborates the design and implementation of a LCD electronic password anti-theft lock which is based on MCU. This system is composed of AT89C51 which is designed as the core of this system, LCD1602 as the output device to display the message of this system, 4 * 4 matrix keyboard as the input device, a CMOS serial E2PROM AT24C02 as the data storage, and a buzzer, relay circuit.The software of the system is written in C language. The system displays in a LCD, it can change password easily, and has the function of alarming, locking, and so on. This system has some practical value, and it is simple and easy to use, meets the demand of residential and the need of office lock.Key Words: MCU, Password-Lock, AT89C51, LCD1602, AT24C02目录摘要 (I)Abstract ............................................................................................................................. I I 目录 ................................................................................................................................. I II 1引言 . (1)1.1课题的背景和意义 (1)1.2课题的研究现状 (1)1.3课题研究内容 (2)2 数字密码锁总体设计 (3)2.1 系统方案论证 (3)2.1.1 采用数字电路的设计方案 (3)2.1.2 采用以单片机为核心设计方案 (4)2.2 基于单片机的数字密码锁的设计原理 (5)3 系统硬件设计 (6)3.1 主要元器件介绍 (6)3.1.1 主控芯片AT89C51的的介绍 (6)3.1.2 继电器的介绍 (9)3.1.3 存储芯片AT24C02的介绍 (10)3.1.4 LCD1602显示器的介绍 (10)3.1.5 矩阵键盘模块的介绍 (11)3.2 系统硬件部分 (12)3.2.1 系统电源部分 (12)3.2.2 键盘输入部分 (13)3.2.3 密码存储部分 (14)3.2.4 显示部分 (14)3.2.5 报警部分 (15)3.2.6开锁部分 (16)4 系统软件设计 (17)4.1 系统程序流程图 (17)4.1.1主程序流程图 (17)4.1.2 键功能程序流程图 (18)4.1.3 修改密码程序流程图 (19)4.1.4 开锁程序流程图 (20)4.2 子程序举例 (21)4.2.1 按键扫描子程序 (21)4.2.2 显示子程序 (22)4.2.3 开锁子程序 (22)4.3 系统软件调试及结果 (24)4.3.1 Proteus软件介绍 (24)4.3.2 系统软件调试 (25)4.3.3 仿真结果 (25)5 硬件系统制作及调试 (29)5.1焊接注意事项 (29)5.2硬件调试问题及解决办法 (30)5.3硬件调试效果 (31)总结 (34)致谢 (35)参考文献 (36)附录 (37)附录A 电路原理图 (37)附录B 系统总体程序 (38)1引言1.1课题的背景和意义随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤为突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜。

基于AT89C51单片机八位抢答器的设计

基于AT89C51单片机八位抢答器的设计

基于AT89C51单片机八位抢答器的设计一、本文概述随着电子技术的不断发展,单片机作为微型计算机的重要分支,已广泛应用于各种智能控制系统中。

AT89C51作为一款经典的8位单片机,以其高性能、低功耗、易编程等特点,在嵌入式系统设计中占据了重要地位。

本文旨在探讨基于AT89C51单片机的八位抢答器设计,通过分析其硬件组成、软件设计以及工作原理,为相关领域的开发人员提供一种实用的设计方案。

本文首先介绍了抢答器的应用场景和基本要求,随后详细阐述了AT89C51单片机的核心特性及其在系统中的作用。

接着,文章将重点介绍抢答器的硬件电路设计,包括按键输入电路、显示电路、声音提示电路等关键模块。

在软件设计方面,文章将给出抢答器程序的主要流程,包括按键扫描、状态判断、结果显示等功能模块的实现方法。

文章还将对抢答器的性能进行测试和分析,以确保其在实际应用中的稳定性和可靠性。

通过本文的研究,读者可以深入了解基于AT89C51单片机的八位抢答器的设计过程,掌握相关电子技术和编程技巧,为未来的嵌入式系统开发打下坚实基础。

本文的研究成果也可为类似系统的设计提供有益的参考和借鉴。

二、AT89C51单片机简介AT89C51是Atmel公司生产的一款低功耗、高性能的8位CMOS微控制器,它采用了Atmel公司的高密度、非易失性存储技术,并且与工业标准的8051指令集和输出管脚相兼容。

AT89C51单片机内部集成了4KB的可编程Flash闪烁存储器,这为用户提供了足够大的空间进行程序编写和存储。

它还拥有128字节的内部RAM、32个可编程的I/O口线、两个16位定时/计数器、一个5向量两级中断结构、一个全双工串行通信口、以及片内振荡器和时钟电路。

AT89C51单片机具有低功耗的空闲模式和掉电模式,使其在便携式产品和电池供电的应用中具有显著的优势。

其强大的功能集和灵活的编程能力使得AT89C51单片机在各种控制系统中得到了广泛的应用,包括抢答器设计、智能家居、工业自动化、医疗设备、安全系统等。

AT89C51实现计数显示

AT89C51实现计数显示

AT89C51单片机实现计数显示一:两位数的计数实现功能:通过检测按键的状态,按下一次计数一次,计数达到100次后清零,重新计数。

Proteus原理图KeilC51源代码1. #include <reg51.h>2. //绝对地址定义3. #include <absacc.h>4. #define PORT1 XBYTE [0x7FFF]5. #define PORT2 XBYTE [0xBFFF]6. unsigned char code TAB_COM_CATHOME[]=7. {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴0~9段码8. //按键端口使用9. sbit P37 = P3^7;10.void main()11.{12.//初始化13. unsigned char counter=0;14. PORT1 = TAB_COM_CATHOME[0];15. PORT2 = TAB_COM_CATHOME[0];16.while(1)17. {18.//判断按键是否按下19.if(P37==0)20. {21.//按键按下计数22. counter++;23.//判断计数是否满重新处理24.if(counter==100)25. {26. counter=0;27. }28.//拆分数据显示29. PORT1=TAB_COM_CATHOME[counter%10];30. PORT2=TAB_COM_CATHOME[counter/10];31.//判断按键是否释放32.while(P37==0);33. }34. }35.}二:三位数的计数实现功能:通过检测按键的状态,按下一次计数一次,计数达到1000次后清零,重新计数。

Proteus原理图KeilC51源代码1. #include <reg51.h>2. //绝对地址定义3. #include <absacc.h>4. #define PORT1 XBYTE [0x7FFF]5. #define PORT2 XBYTE [0xBFFF]6. #define PORT3 XBYTE [0xDFFF]7. unsigned char code TAB_COM_CATHOME[]=8. {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴0~9段码9. //按键端口使用10.sbit P37 = P3^7;11.void main()12.{13.//初始化14. unsigned int counter=0;15. unsigned int temp;16. PORT1 = TAB_COM_CATHOME[counter];17. PORT2 = TAB_COM_CATHOME[counter];18. PORT3 = TAB_COM_CATHOME[counter];19.while(1)20. {21.//判断按键是否按下22.if(P37==0)23. {24.//按键按下计数25. counter++;26.//判断计数是否满重新处理27.if(counter==1000)28. {29. counter=0;30. }31.//拆分数据显示32. PORT3=TAB_COM_CATHOME[counter%10];33. temp = counter/10;34. PORT2=TAB_COM_CATHOME[temp%10];35. PORT1=TAB_COM_CATHOME[temp/10];36.//判断按键是否释放37.while(P37==0);38. }39. }40.}三:四位数的计数实现功能:通过检测按键的状态,按下一次计数一次,计数达到10000次后清零,重新计数。

AT89C51基于单片机智能浇花系统设计说明

AT89C51基于单片机智能浇花系统设计说明

目录1. 绪论 (1)1.1系统工作原理 (1)1.2系统模块 (1)1.3系统操作界面及其操作过程 (1)1.3.1 系统操作过程 (2)2. 部件的选择 (2)2.1芯片的选择 (2)2.2继电器的选择 (2)2.3阀门的选择 (2)2.3.1 电磁阀的选择 (2)3. 硬件设计 (2)3.1设备的结构 (2)3.1.1 中央处理单元 (2)3.1.2 LED显示部分 (3)3.1.3 电磁阀部分 (3)3.1.4按键部分 (3)3.1.5 指示灯部分 (3)3.2总电路设计图 (3)3.3AT89C51单片机电路 (4)3.4晶振电路 (5)3.5复位电路 (5)3.6按键电路 (7)3.9LED显示电路 (7)3.10电磁阀电路 (9)4. 软件设计 (9)4.1系统组成 (9)4.2消抖流程及程序 (10)4.3总流程及程序 (12)4.4按键处理总流程及程序 (13)4.5工作中的处理流程 (14)5. 结论 (15)参考文献 (16)AT89C51基于单片机智能浇花系统设计摘要:本设计是通过AT89C51单片机采用汇编语言进行编程,在LED液晶屏上实现小时,分,秒的显示;并利用单片机来实现计时,定时功能,同时通过7个按键开关和3个指示灯来实现参数设置和调节功能、浇花间隔时间的设定、浇水持续时间的设定、单片机对电磁阀的自动控制。

根据用户设定的时间顺利的完成浇花任务。

关键词:单片机,控制,显示,电磁阀1.绪论1.1 系统工作原理自动浇花系统的设计,其主要执行装置是一个电磁阀门,其一端连接水管,另外一端连接外置的水管作为浇水口,浇水的水量主要由单片机控制。

设备主要是通过控制浇水的时间间隔和浇水的持续时间来控制浇水量的。

1.2 系统模块系统主要是由单片机、电源、按键、显示、指示灯、复位电路、电机模块等组成。

图1-1 系统模块1.3 系统操作界面及其操作过程复位电路模51单片机模块电源模块 按键模块指示灯模块 显示模块电机模块图1.2 系统操作界面1.3.1 系统操作过程注:用上图中的数字编号代替相关按键A:放置设备,接上水管(注意:保证不漏水),插上插头。

AT89C51单片机编程

AT89C51单片机编程

{ while ((p34&&p35) ! = 0); delay( ); if ((p34&p35) != 0 ) continue; else break; }
/* 下列语句分析被按下的键所在的列号 */ mask = 0xfe; while (1)
{ TI = 0; SBUF = mask; while(TI = = 0); if((p34&&p35) ! = 0)
7.5.2

模块设计原则
若我们把复杂的问题分解成许多容易解决的小问题,复 杂的问题也就容易解决了。但是如果只是简单地分解任务, 不注意对一些子任务的归纳与抽象,不注意模块之间的关系, 往往会使模块数太多,模块之间的关系变得复杂,从而使程 序的调试、修改变得更加复杂。一般说来,模块设计应该遵 从以下几条原则: (1)模块独立 模块的独立性原则应保证模块完成独立的功能,模块与 模块之间关系简单,修改某一模块,不会造成整个程序的混 乱。保证模块的独立性应注意以下几点: ①每个模块完成一个相对独立的特定功能。在对任务分 解时,要注意对问题的综合。 ②模块之间的关系力求简单。例如:模块之间最好只通 过数据传递发生联系,而不发生控制关系。 C 语言中禁止 goto语句作用到另一函数,就是为了保证函数的独立性。
带寄存器参数的函数名加入“ _” 字符前缀,表明这类 函数包含寄存器的参数传递 对于重入函数加上“_?”字符串前缀,表明这类函数包 含栈内的参数传递
void func(void)
_FUNC
void func(void) reentrant
_?FUNC
例2 用汇编语言编写函数"toupper",参数传递发生在寄存器R7中。

基于-AT89C51单片机简易计算器的设计

基于-AT89C51单片机简易计算器的设计

《微机原理与单片机课程设计》课程设计报告基于51单片机的简易计算器设计一、设计目的单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。

本设计是基于51系列单片机来进行的简单数字计算器设计,可以完成计算器的键盘输入,进行加、减、乘、除六位整数数范围内的基本四则运算,并在LED上显示相应的结果。

软件方面使用C语言编程,并用PROTUES仿真。

二、总体设计及功能介绍根据功能和指标要求,本系统选用MCS-51系列单片机为主控机,实现对计算器的设计。

具体设计及功能如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LED 显示数据和结果。

(2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。

(3)执行过程:开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。

(4)错误提示:当计算器执行过程中有错误时,会在LED上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LED上显示“CUO”,提示溢出。

三、系统模块组成框图:二、硬件设计(一)、总体硬件设计本设计选用AT89C51单片机为主控单元。

显示部分:采用LED动态显示。

按键部分:采用4*4集成计算键盘;总电路图:(1)4×4集成计算键盘集成计算键盘本质上是4×4矩阵键盘,矩阵键盘采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。

这样键盘上按键的个数就为4×4个。

这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。

AT89C51单片机开发板程序

AT89C51单片机开发板程序
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define mima 3
#define duanma P1
sbit weima=P3^0。
sbit redled=P0^5。
sbit greenled=P0^6。
void delay(uint z>。
void main(>
{
uchar b,c。
c=5。
while(1>
{
P0|=0x0f。
b=P0。
b&=0x0f。
if(b!=0x0f>
{
delay(20>。
P0|=0x0f。
b=P0。
b&=0x0f。
if(b!=0x0f>
{
switch(b>
{
case 0x0e:c=1。break。
TMOD|=0x01。
TH0=(65536-10000>/256。
TL0=(65536-10000>%256。
EA=1。
ET0=1。
TR0=1。
while(1>
{
}
}
void timer0(> interrupt 1
{
TH0=(65536-10000>/256。
TL0=(65536-10000>%256。
uchar tt,i,sec,min。
uchar xianshi[4]。
void delay(uint z>。
void init(>。
void main(>

【毕业设计】基于AT89C51单片机的电子时钟

【毕业设计】基于AT89C51单片机的电子时钟

昆明工业职业技术学院系统软件设计内容提要单片计算机即单片微型计算机。

由RAM ,ROM,CPU构成,定时,计数和多种接口于一体的微控制器。

它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。

而51系列单片机是各单片机中最为典型和最有代表性的一种。

这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

本设计主要设计了一个基于AT89C51单片机的电子时钟。

应用定时器实现秒定时,在此基础上实现时钟的计时功能,并通过数码管输出时分秒信息,并设计按键调时功能。

关键字:单片机;电子时钟;键盘控制目录1绪论单片机在多功能数字钟中的应用已是非常普遍的,人们对电子时钟的功能及工作顺序都非常熟悉。

但是却很少知道它的内部结构以及工作原理。

由单片机作为电子时钟的核心控制器,可以通过它的时钟信号进行实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。

通过键盘可以进行校时、定时等功能。

输出设备显示器可以用液晶显示技术或数码管来显示技术。

本系统利用单片机实现具有计时、校时等功能的数字时钟,是以单片机AT89S51为核心元件同时采用LED数码管显示器动态显示“时”,“分”,“秒”的现代计时装置。

与传统机械表相比,它具有走时精确,显示直观等特点。

另外具有校时功能,秒表功能,和定时器功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。

1.1所做题目的意义:数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。

在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。

第3章AT89C51的指令系统

第3章AT89C51的指令系统
址寄存器加变址寄存器间接寻址方式。 (1) MOVC A,@A+PC
以PC作基址寄存器,A的内容作为无符号整数和PC中的内容 (下一条指令的起始地址)相加后得到一个16位的地址, 该地址指出的程序存储单元的内容送到累加器A。
注意:PSEN*信号有效。
例如: (A)=30H,执行地址1000H处的指令 1000H: MOVC A,@A+PC
(2)特殊功能寄存器中的可寻址位 在指令中有4种表示方法: a. 直接使用位地址。例如PSW.5的位地址为0D5H。 b. 位名称的表示方法。例如:PSW.5是F0标志位,可使用F0表
示该位。 c.单元地址加位数的表示方法。例如 :(0D0H).5。 d.特殊功能寄存器符号加位数的表示方法。例如:PSW.5。
(2)双字节指令:操作码+操作数。 (3)三字节指令:操作码+操作数+操作数。
3.3 指令系统的寻址方式 寻址方式就是在指令中说明操作数所在地址的方法。 共7种寻址方式。
1.寄存器寻址方式 操作数在寄存器中
MOV A,Rn ;(Rn)→A,n=0~7 表示把寄存器Rn的内容传送给累加器A
寻址范围: (1)4组通用工作寄存区共32个工作寄存器。 (2)部分特殊功能寄存器,例如A、B 以及数据指针寄存器
7.相对寻址方式 在相对寻址的转移指令中,给出了地址偏移量,以“rel”表示,
即把PC的当前值加上偏移量就构成了程序转移的目的地址: 目的地址=转移指令所在的地址 + 转移指令的字节数 + rel
偏移量rel是一带符号的8位二进制数补码数。 范围是:–128 - +127
向地址增加方向最大可转移(127+转移指令字节)个单元地 址,向地址减少方向最大可转移(128-转移指令字节)个 单元地址。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档