電子課程設計_電子密碼鎖 課程設計

電力電子課程設計的總結在大一、大二學年,我們都一直比較側重于理論知識的學習,忽視了動手做實驗的促進作用 。想到平時老師經常教導我們要重視實驗,自身也認識到實驗能力的重要性,我們踴躍報名本屆的電子設計競賽 。我們很順利地通過了學院的選拔考試,成為了2007年全國大學生電子設計競賽的參賽隊員 。對于這次既能拓寬我們的專業知識面,又能鍛煉我們實驗中分析問題與解決問題的的能力的機會,我們都倍感珍惜 。在學期末的時候 , 我們學院就開始了競賽培訓 。每一堂培訓課上,老師都給我們講述了許多應用性很強的知識,有涉及傳感器、運算放大器、模擬電路、數字電路、單片機、FPGA、高頻通信、儀器儀表使用、賽題分析等等各個方面 。課堂內容中除了一小部分是我們平時上課中講過的 , 大多都是新知識,而且老師在講授知識點的過程中,列舉了許多典型應用 , 使我們對這些新接觸的知識不致于感到陌生 。在課外,首先以我們擅長的方面確定我們此次競賽培訓階段的主要訓練方向,有選擇地做一些訓練 。整整一個暑假下來 , 我們做的小模塊也還不少呢 。在培訓期間,我們組完成了一個完整的系統 , 但是這么些小模塊的訓練卻給我們帶來了無形的財富 。一方面,我們三人分工合作 , 任務安排得合理有序,在最短的時間內達到了最高的效益,且大家互相幫助,互相糾錯,降低了出錯率;另一方面,在這些小模塊練習中 , 我們熟悉了開發工具、協議的調試、程序中BUG的測試與避免,提高了程序正確運行的效率 。很快暑假培訓就結束了,等待我們的是四天三夜對我們能力的挑戰 。3號早上一看到賽題,我們就開始與時間做競爭 。經過我們三人反復分析,最終我們選擇了音頻信號分析儀 。很幸運,暑假期間我們已將用液晶做菜單顯示的模塊完全做成型 。賽題中需要以菜單顯示,我們便很方便的將我們的模塊移植過去 ??梢姡谂嘤柶陂g盡可能多做些模塊還是很有必要的 。但是,事實終究不能盡如人意 。當我們能夠實現基本功能時,我們的單片機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;出?;謴同F場
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轉化的電信號連續放大,通過延時電路實現燈亮及燈亮的時間 。
參考資料: