电子课程设计_电子密码锁 课程设计

电力电子课程设计的总结在大一、大二学年,我们都一直比较侧重于理论知识的学习,忽视了动手做实验的促进作用 。想到平时老师经常教导我们要重视实验,自身也认识到实验能力的重要性,我们踊跃报名本届的电子设计竞赛 。我们很顺利地通过了学院的选拔考试,成为了2007年全国大学生电子设计竞赛的参赛队员 。对于这次既能拓宽我们的专业知识面,又能锻炼我们实验中分析问题与解决问题的的能力的机会,我们都倍感珍惜 。在学期末的时候 , 我们学院就开始了竞赛培训 。每一堂培训课上,老师都给我们讲述了许多应用性很强的知识,有涉及传感器、运算放大器、模拟电路、数字电路、单片机、FPGA、高频通信、仪器仪表使用、赛题分析等等各个方面 。课堂内容中除了一小部分是我们平时上课中讲过的 , 大多都是新知识,而且老师在讲授知识点的过程中,列举了许多典型应用 , 使我们对这些新接触的知识不致于感到陌生 。在课外,首先以我们擅长的方面确定我们此次竞赛培训阶段的主要训练方向,有选择地做一些训练 。整整一个暑假下来 , 我们做的小模块也还不少呢 。在培训期间,我们组完成了一个完整的系统 , 但是这么些小模块的训练却给我们带来了无形的财富 。一方面,我们三人分工合作 , 任务安排得合理有序,在最短的时间内达到了最高的效益,且大家互相帮助,互相纠错,降低了出错率;另一方面,在这些小模块练习中 , 我们熟悉了开发工具、协议的调试、程序中BUG的测试与避免,提高了程序正确运行的效率 。很快暑假培训就结束了,等待我们的是四天三夜对我们能力的挑战 。3号早上一看到赛题,我们就开始与时间做竞争 。经过我们三人反复分析,最终我们选择了音频信号分析仪 。很幸运,暑假期间我们已将用液晶做菜单显示的模块完全做成型 。赛题中需要以菜单显示,我们便很方便的将我们的模块移植过去 。可见,在培训期间尽可能多做些模块还是很有必要的 。但是,事实终究不能尽如人意 。当我们能够实现基本功能时,我们的单片机ARM9E却时不时地发生工作不正常的情形:有时AD采样不到数值,致使液晶显示发生死机现象 。眼看截止时间一点一点地逼近,而这种奇怪的现象仍时有发生,我们都着急万分 。要是平时做实验,遇到困难了 , 同学之间可以互相帮助,也可以请教老师 。但现在我们能依靠的只有自己了 。经验告诉我们,沉着与冷静是最好的策略,烦躁与焦急只会自乱阵脚 。我们三个商量后,决定一步一步检查过来,先查硬件后调软件 。检查后发现硬件电路并没有问题,那就有可能是软件上的问题 。于是在更改了A/D的控制指令后 , 终于解决了这一难题 。这些经历也使我们认识到有时候要敢于持怀疑态度,我们遇到的一些问题并不一定是人为主观因素造成的,有时却是由我们所忽略的客观因素造成的 。学会具体问题具体分析 , 并且能够灵活地处理不同的情况,我想是我们每一个科学工作者应该努力培养 , 逐步形成的素质 。我们感到很幸运能够参加电子设计竞赛,也非常感谢学校和老师给我们提供了此次难得的机会 。参加电子设计竞赛,一方面使我们增长了见识,熟悉了许多功能强大的集成电路,以便于将来运用得得心应手,也了解了许多先进的处理技术与高级的开发平台 。竞赛使我们对本专业的研究领域产生了浓厚的兴趣 , 将动手制作一件成功且实用的科技作品视为莫大的骄傲,更是对自己能力的肯定;另一方面 , 竞赛培养了我们小组中三人的团队协作、互帮互助与默契精神 。在电子竞赛中 , 我们收获了患难与共的珍贵友谊 。短短的两个月的培训与竞赛生活给我们的感受要比大学三年的生活更丰富多彩 。
电子时钟课程设计这是一个时分秒的程序,希望对你有帮助,其他功能可以自己加吧
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0xbf,0x86,
0xdb,0xcf,0xe6,0xed,
0xfd,0x87,0xff,0xef};
uchar t,num1,num2,num3;
sbit dula=P2^6;
sbit wela=P2^7;
sbit key2=P3^4;
sbit key3=P3^5;
sbit key5=P3^7;
uchar miao1,miao2,fen1,fen2,shi1,shi2;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void keyscan()
{
if(key2==0)
{
delay(20);
if(key2==0)
{
num1++;
}
}
while(!key2);
if(key3==0)
{
delay(20);
if(key3==0)
{
num2++;
}
}
while(!key3);
if(key5==0)
{
delay(200);
if(key5==0)
{
num3++;
}
}
while(!key5);
}
void main()
{
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
miao1=num1/10;
miao2=num1%10;
fen1=num2/10;
fen2=num2%10;
shi1=num3/10;
shi2=num3%10;
keyscan();
wela=1;
P0=0xdf;
wela=0;
dula=1;
P0=table[miao2];
dula=0;
delay(5);
wela=1;
P0=0xef;
wela=0;
P0=0xff;
dula=1;
P0=table[miao1];
dula=0;
delay(5);
wela=1;
P0=0xf7;
wela=0;
P0=0xff;
dula=1;
P0=table[fen2];
dula=0;
delay(5);
wela=1;
P0=0xfb;
wela=0;
P0=0xff;
dula=1;
P0=table[fen1];
dula=0;
delay(5);
wela=1;
P0=0xfd;
wela=0;
P0=0xff;
dula=1;
P0=table[shi2];
dula=0;
delay(5);
wela=1;
P0=0xfe;
wela=0;
dula=1;
P0=0xff;
P0=table[shi1];
dula=0;
delay(5);
}
}
void t0_timer() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
t++;
if(t==20)
{
t=0;
num1++;
if(num1==60)
{
num1=0;
num2++;
if(num2==60)
{
num2=0;
num3++;
if(num3==24)
{
num3=0;
}
}
}
}
}
汇编语言电子时钟的课程设计;name: ELECTRONIC CLOCK
datasegment
mess1 db'****************ASM ASSIGNMENT****************',0ah,0dh
db'',0ah,0dh
db'***************ELECTRONIC CLOCK***************',0ah,0dh
db'',0ah,0dh
db'',0ah,0dh
db'*******Press C or c to correct the time*******',0ah,0dh
db'',0ah,0dh
db'***********Press ESC button to exit***********',0ah,0dh,'$'
tn db 'Please input the new time (hh:mm:ss):',0dh,0ah,'$'
mess2db'*******Time is:',0ah,0dh,'$'
t_buffdb 40;在数据段开一段时间显示缓冲区
db ?
db 40 dup (?)
hor db ?
min db ?
sec db ?
fg db 0
dataends
stack segment
db 100 dup(?)
stack ends
codesegment
assume cs:code,ss:stack,ds:data ;确定各个逻辑段的类型
start:
call clear;调用清屏子程序
display: ;时间显示部分
mov ax,data
mov ds,ax
mov bx,offset t_buff;送t_buff的偏移地址到BX
mov ah,2ch;调用DOS时间调用功能,功能号:2cH,小时,分钟,秒数分别保存在CH,CL,DH中
int 21h
mov al,ch;小时数设定
mov ah,0
call bctd;调用进制转换子程序
push ax
and al,0f0h;选取al高四位
mov cl,4;设置右循环的次数
rol al,cl;右循环
or al,30h;加30h得到ACSII码
mov [bx],al;将得到的结果送到t_buff缓冲区
inc bx;BX自加1,指针指向下一个缓冲区的下一个地址
pop ax
and al,0fh;选取低四位
or al,30h
mov [bx],al;将转换后的低四位值送入缓冲区的第二个地址
inc bx
;----------------------------------------------------------
mov al,':' ;显示分隔符号
mov [bx],al
inc bx
;-------------------------------------------------------
mov ah,2ch
int 21h
mov al,cl;分钟数设定
mov ah,0
call bctd
push ax
and al,0f0h
mov cl,4
rol al,cl
or al,30h
mov [bx],al
inc bx
pop ax
and al,0fh
or al,30h
mov [bx],al
inc bx
;-------------------------------------------------------------------------
mov al,':';显示分隔符号
mov [bx],al
inc bx
;-------------------------------------------------------------------------
mov ah,2ch;秒设定
int 21h
mov al,dh
mov ah,0
call bctd
push ax
and al,0f0h
mov cl,4
rol al,cl
or al,30h
mov [bx],al
inc bx
pop ax
and al,0fh
or al,30h
mov [bx],al
inc bx
;----------------------------------------------------------------------
mov al,'$';将字符串的结束位送至显示缓冲区的最后一位
mov [bx],al
;------------------------------------------------------------------------
pushbx;置光标位置 ,AH=2,BH=0,DH跟DL分别为行号与列号,并入栈保护BX
mov ah,2
mov bh,0
mov dh,17
mov dl,41
int 10h
pop bx
lea dx,t_buff;送t_buff偏移地址到DX,并调用DOS显示功能,功能号为9
mov ah,9
int 21h
pushbx;置光标位置
mov ah,2
mov bh,0
mov dh,0
mov dl,0
int 10h
pop bx
lea dx,mess1
mov ah,9
int 21h
pushbx;置光标位置
mov ah,2
mov bh,0
mov dh,17
mov dl,21
int 10h
pop bx
lea dx,mess2
mov ah,9
int 21h
;-----------------------------
call delay1
movah,1;调用键盘I/O中断功能号1,获取键值到AL
int16h
cmpal,'c';是c键,转到时间修改程序
jeCor
cmpal,'C';是C键,转到时间修改程序
jeCor
cmpal,1bh
jzquit;是ESC键,退出程序
jmpdisplay
quit:
mov ah,4ch;程序终止功能号
int 21h
ret
Cor: call correct;调用时间修改子程序
;-------------------------------
bctd proc near;二进制转BCD码子程序
;AX输入参数
;AX输出参数,存放调整过的BCD码
movdx,ax
movax,0
movcx,16;设循环次数
bctd1:
clc;清进位标志C
rcldx,1;通过进位的循环右移
adcal,al;带进位加法
daa;加法的十进制调整
xchgal,ah;交换高、低八位
adcal,al
daa
xchgal,ah
loopbctd1;循环次数保存在CX里
ret
bctdendp
;-------------------------------------------
clear proc near
pushax;入栈保护现场
pushbx
pushcx
pushdx
mov ax,0600h;ah=06(滚动)al=00(全屏空白)
mov bh,3eh;设置背景颜色(2)和前景颜色(e)
sub cx,cx
mov dx,5f5fh
int 10h
pop dx;出栈恢复现场
pop cx
pop bx
pop ax
ret
clear endp
;-----------------------------------------
delay1 PROC ;精确延迟时间子程序
MOV DX,04ffh;循环次数
up: XOR CX,CX
a: NOP
LOOP a
DEC DX
JNZ up
RET
delay1 ENDP
;----------------------------
correct proc;时间修改子程序
call input;调用键盘输入子程序输入数据
mov ch,hor
mov cl,min
mov dh,sec
and dl,0h
mov ah,2dh
int 21h
jmp start
ret
correct endp
;----------------------------------
input proc;键盘输入子程序
push ax;入栈保护数据
push bx
push cx
push dx
pushf
mov dx,offset tn;显示修改时间的格式提示
mov ah,09h
int 21h
mov dx,offset t_buff;数据缓冲区的数据输入
mov ah,0ah
int 21h
and dx,0h
lea bx,t_buff
inc bx
inc bx
mov dh,[bx]
sub dh,30h
inc bx
mov dl,[bx]
sub dl,30h
mov cl,10
mov al,dh
mul cl
add al,dl
mov ch,al
mov hor,al
inc bx
inc bx
mov dh,[bx]
sub dh,30h
inc bx
mov dl,[bx]
sub dl,30h
mov cl,10
mov al,dh
mul cl
add al,dl
mov cl,al
mov min,al
inc bx
inc bx
mov dh,[bx]
sub dh,30h
inc bx
mov dl,[bx]
sub dl,30h
mov cl,10
mov al,dh
mul cl
add al,dl
mov dh,al
mov sec,al
popf;出栈恢复数据
pop dx
pop cx
pop bx
pop ax
ret
input endp
;----------------------------
codeends
end start
电子课程设计数字电子技术停车场车位计数电路的课程设计我能帮你做
数字电子技术课程设计【电子课程设计_电子密码锁 课程设计】摘要:本系统由单片机系统、矩阵键盘、LED显示和报警系统组成 。系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能 。除上述基本的密码锁功能外,还具有调电存储、声光提示等功能,依据实际的情况还可以添加遥控功能 。本系统成本低廉,功能实用
关键词:AT89S51,AT24C02, 电子密码锁 , 矩阵键盘
全文请查看邮件!
电子密码锁 课程设计在本设计中介绍了声光控照明灯控制器的组成、性能、及工作原理,给出各电路原理图及元件参数选择,节电效果十分明显 。白天光照好,不管过路者发出多大声音,都不会是灯泡发亮 。夜晚光暗,电路的拾音器只要检测到有碎发声响,就会自动亮为行人照明,过几分钟后又自动熄灭,节能节点 。本电路采用两级控制(光线强弱的感应与声强的感应) 。
光控电路是根据光线的强弱来优先决定电灯的亮灭 。该电路可以对声控延时电路进行控制,在白天光线较强时 , 光控电路输出低电平将声控电路封锁;在晚上光线较弱时,光控电路输出高电平 , 则声控功能打开 。声控电路中采用了双三极管构成的放大电路 , 将MIC转化的电信号连续放大,通过延时电路实现灯亮及灯亮的时间 。
参考资料: