⑴ 單片機課程設計秒錶
1. 可通過M鍵切換顯示模式:日期(年、月、日)、時間(小時、分、秒)、秒錶(小時、分、秒、1/100秒)、鬧鍾(小時、分、秒)。
2. 在日期顯示模式,可通過A鍵依次使年、月、日閃爍或變色,這時可通過I鍵加1調整。
3. 在時間顯示模式,可通過A鍵依次使小時、分、秒閃爍或變色,這時可通過I鍵加1調整。
4. 在秒錶顯示模式,可通過I鍵切換(啟動/暫停)計時,當暫停計時時可通過A鍵復位。
5. 在鬧鍾顯示模式,可通過A鍵依次使On/Off標志、小時、分、秒閃爍或變色,這時可通過I鍵切換On/Off標志或加1調整。
6. 調整和秒錶操作不影響日期和時間的准確性。
7. 可通過Q鍵結束程序。
⑵ 關於51單片機 的秒錶/時鍾計時器設計摘要
本設計以AT89S51單片機為核心晶元,與型號為1602的液晶顯示器構成數字電子時鍾電路。AT89S51是一個低功耗,高性能CMOS 8位單片機,片內含4K Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件採用ATMEL公司的高密度、非易失性存儲技術製造,兼容標准MCS-51指令系統及AT89C51引腳結構,晶元內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統提供高性價比的解決方案.液晶顯示器以其微功耗、體積小、顯示內容豐富、超薄輕巧的諸多優點,在袖珍式儀表和低功耗應用系統中得到越來越廣泛的應用。
⑶ 單片機電子秒錶設計。設計一個六位led數碼顯示秒錶,秒錶顯示時間為000.000-999.999s
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
unsigneg long int b=0;
sbit wei1=P1^0;
sbit wei2=P1^1;
sbit wei3=P1^2;
sbit wei4=P1^3;
sbit wei3=P1^4;
sbit wei4=P1^5;
sbit key1=P1^6;
//共陰數碼管七段碼
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77};
void Delay1ms(uint i) //1ms延時程序
{
uint j;
for(;i>0;i--)
{
for(j=0;j<164;j++)
{;}
}
}
void display(unsigneg long int ) //顯示子程序
{
P0= table[a/100000];//百位
wei1=1;
Delay1ms(2) ;
wei1=0;
P0= table[a/10000%10];//十 位
wei2=1;
Delay1ms(2) ;
wei2=0;
P0=0x80|table[a/1000%10];//個位,加小數點
wei3=1;
Delay1ms(2) ;
wei3=0;
P0= table[a/100%10];
wei4=1;
Delay1ms(2) ;
wei4=0;
P0= table[a/10%10];
wei5=1;
Delay1ms(2) ;
wei5=0;
P0= table[a%10];
wei4=6;
Delay1ms(2) ;
wei6=0;
}
void main(void )//主程序
{
TMOD=0x01;// 定時器1工作方式一
ET0=1;
EA=1;
TH0=(65536-1000)/256;//定時1ms
TL0=(65536-1000)%256;
TR0=1;
LED=1;
while(1)
{
display(b);
if(key1==0)//判斷按鍵是否按下
{
Delay1ms(10);//延時消抖
if(key1==0)
{
while(key1==0);//等待按鍵抬起
TR0=!TR0;
}
}
}
}
//中斷子程序
void Timer0(void) interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
b++;
if(b==1000000) b=0;
}
⑷ 單片機電子秒錶課程設計
高估我啦,你上csdn上找找把
⑸ 51單片機秒錶設計,高手請進
正好,我的博客上有一個比較好的,是我2004年帶課程設計時所寫,你可以去看看.
⑹ 單片機課程設計電子秒錶
電路原理圖已畫好
實現你描述的全部功能
KeiluVision3編譯通過,C語言編寫,有詳細注釋
實機調試通過
留個郵箱發給你...
----------------------------
郵件已發......
⑺ 利用實驗箱,製作一電子秒錶(分別用匯編語言和單片機c 語言編寫) 單片機實驗
這個實驗,隨便一本單片機書都有的程序。再說了,你沒有說是用液晶屏顯示還是數碼管,數碼管又是哪種的,共陽還是共陰?你可以參見以下連接。
⑻ 課程設計:C51單片機數字電子秒錶設計
ORG 0000H
LJMP STAR
STAR:MOV P1,#00H
MOV P0,#0FFH
MOV P3,#00H
setb p1.6
L1:CLR P1.7
JB P1.0 , WAN ;;判斷方式轉換
;;MOV P3,#00H ;;P3口清零
SETB P3.2 ;;主幹綠燈
SETB P3.3 ;;次道紅燈
MOV 31H,#03CH ;;付初值60秒
MOV R4,#03CH
L2 :CALL DIS1 ;;調用顯示
CALL YS
clr p1.6
DEC R4 ;;減一
DJNZ 31H,L2 ;;判斷是否計數完成
CLR P3.2 ;;主黃燈亮
CLR P3.3
SETB P3.1
mov 32H,#05H
MOV R4 ,#05H
L3:
setb p3.3
CALL DIS1 ;;調用顯示
CALL YS
DEC R4
CLR p3.3
DJNZ 32H,L3
CLR P3.1
CLR P3.4
SETB P3.0
SETB P3.5
mov 33H ,#020H ;;主幹紅燈 次道綠燈20秒
MOV R4,#02DH
setb p1.6
L4 :
CALL DIS1
CALL YS
clr p1.6
DEC R4
DJNZ 33H,L4
CLR P3.2 ;;次道黃燈亮5秒鍾
CLR P3.5
setb p3.4
mov 34h,#05h
MOV R4 ,#05H
L8:setb p3.0
CALL DIS1
CALL YS
clr p3.0
CALL DIS1
CALL YS
setb p3.0
clr p3.0
DEC R4
DJNZ 34H,L8
LJMP L1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
wan:SETB P1.7
JB P1.0 , L1 ;;判斷方式轉換
MOV P3,#00H ;;P3口清零
SETB P3.2 ;;主幹綠燈
SETB P3.3 ;;次道紅燈
MOV 31H,#040D ;;付初值60秒
MOV R4,#040D
L12 :CALL DIS1 ;;調用顯示
CALL YS
DEC R4 ;;減一
DJNZ 31H,L12 ;;判斷是否計數完成
CLR P3.2 ;;主黃燈亮
CLR P3.3
SETB P3.1
mov 32H,#05H
MOV R4 ,#05H
L13: CALL DIS1
CALL YS
setb p3.3
CALL DIS1
CALL YS
DEC R4
CLR p3.3
DJNZ 32H,L13
CLR P3.1
CLR P3.4
SETB P3.0
SETB P3.5
mov 33H ,#010H ;;主幹紅燈 次道綠燈20秒
MOV R4,#010H
L14 :CALL DIS1
CALL YS
CALL DIS1
DEC R4
DJNZ 33H,L14
CLR P3.2 ;;次道黃燈亮5秒鍾
CLR P3.5
setb p3.4
mov 34h,#05h
MOV R4 ,#05H
L18:setb p3.0
CALL DIS1
CALL YS
clr p3.0
CALL DIS1
CALL YS
setb p3.0
clr p3.0
DEC R4
DJNZ 34H,L18
LJMP WAN
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
YS: MOV 72H,#80D
LOOP3:MOV 71H,#100D
LOOP1:MOV 70H,#22D
LOOP0:DJNZ 70H,LOOP0
DJNZ 71H,LOOP1
MOV 70H,#46D
LOOP2:DJNZ 70H,LOOP2
DJNZ 72H,LOOP3
MOV 70H,#48D
LOOP4:DJNZ 70H,LOOP4
RET
Dis1: mov A,r4
mov B,#10D
div AB
lcall SEG7
CLR P2.0
mov P0,A
lcall DLY
mov A,B
lcall SEG7
SETB P2.0
mov P0,A
lcall DLY
RET
SEG7: MOV DPTR,#TAB
movc A,@A+DPTR
RET
TAB:DB 03FH,006H,05BH,04FH,066H
DB 06DH,07DH,007H, 07FH,06Fh
DLY:
mov R7,#2D
D1: mov R6,#249D
DJNZ R6,$
DJNZ R7,D1
RET
⑼ 單片機秒錶課程設計,急求!!!!
原理圖如下,
程序如下:
;=================================================
;寄存器分配定義
;=================================================
LED_BUF EQU 50H ;顯示數據首址
COUNTER_INT EQU 3BH ;中斷計數器
SECOND EQU 3DH ;秒單元
;=================================================
;常數定義
;=================================================
CN_COUNT_INT EQU 100 ;10ms * 100 = 1S
SET_MODEL EQU 0FFH ;完全解碼模式
SET_BRIGHT EQU 04H ;占空比為15/32;顯示亮度;
SET_LIMIT EQU 01H ;2位顯示方式;
SET_NORMAL EQU 01H ;測試模式
SET_START EQU 01H ;進入啟動工作方式?
;=================================================
;管腳分配定義
;=================================================
m7219_DIN BIT P3.0
m7219_LOAD BIT P3.1
m7219_CLK BIT P3.2
KEYSTART BIT P1.0
KEYRESET BIT P1.1
;============================================
;模擬主程序
;===========================================
org 0000h
ajmp main
ORG 000BH
LJMP Timer0Interrupt
org 0030h
main:
mov sp,#70h
lcall Init_M7219
lcall InitTimer0
; MOV SECOND,#95H ;TEST
Loop:
CALL disp
key_reset:
SETB KEYRESET
JB KEYRESET,key_start
; DELAY
NOP
NOP
NOP
JB KEYRESET,key_start
JNB KEYRESET,$
CLR TR0
MOV A,#0
MOV SECOND,A
MOV led_buf,A
MOV LED_BUF+1,A
JMP key_SCAN_END
key_start:
SETB KEYSTART
JB KEYSTART,key_SCAN_END
; DELAY
NOP
NOP
NOP
JB KEYSTART,key_SCAN_END
JNB KEYSTART,$
SETB TR0
key_SCAN_END:
JMP loop
;===========================================
InitTimer0:;10ms一次中斷
MOV TMOD,#01H
MOV TH0,#0D8H
MOV TL0,#0F0H
SETB EA
SETB ET0
RET
;===========================================
Timer0Interrupt:
PUSH DPH
PUSH DPL
PUSH ACC
MOV TH0,#0D8H
MOV TL0,#0F0H
;========================
INC COUNTER_INT
MOV A,COUNTER_INT ;10ms 計數值加1
CJNE A,#CN_COUNT_INT,Timer0Interrupt_EXIT
MOV COUNTER_INT,#0
MOV A,SECOND
CJNE A,#99H,Timer0Int_sec
CLR TR0;關閉計時
JMP Timer0Interrupt_EXIT
Timer0Int_sec:
ADD A,#01 ;秒加1
DA A
MOV SECOND,A
SWAP A
ANL A,#0fH
MOV led_buf,A
MOV A,SECOND
ANL A,#0FH
MOV LED_BUF+1,A
;========================
Timer0Interrupt_EXIT:
POP ACC
POP DPL
POP DPH
RETI
;====================================================
; function:Init_M7219 ;初始化max719
; input: ------------
; output: ----------
; usage: a,b
;====================================================
Init_M7219: ;初始化Max7219
MOV a,#0bh ;設置掃描界限
MOV b,#set_limit ;設置位數
lcall w_7219
MOV a,#09h ;設置解碼模式
MOV b,#set_model ;00h非解碼模式;ffh為BCD解碼模式
lcall w_7219
MOV a,#0ah ;設置亮度
MOV b,#set_bright ;15/32亮度
lcall w_7219
MOV a,#0fh ;設置工作方式
MOV b,#set_normal ;正常工作方式
lcall w_7219
MOV a,#0ch ;進入啟動工作方式
MOV b,#set_start
lcall w_7219
RET
;===================================================
; function:disp ;顯示子程序
; input: r0
; output: -----------
; usage: r0,r3,r4,a,b
;===================================================
disp:
MOV r0,#led_buf
MOV r4,#01h
MOV r3,#set_limit
INC r3
disp1:
MOV a,@r0
MOV b,a
MOV a,r4
lcall w_7219
INC r0
INC r4
djnz r3,disp1
RET
;===================================================
; function:w_7219 ;顯示驅動程序;
; input: a ;傳送7219的地址
; b ;傳送7219的數據
; output:-------------
; usage: a,r2
;====================================================
w_7219:
CLR M7219_clk
CLR M7219_din
CLR M7219_load ;置load=0
lcall sd_7219 ;傳送7219的地址
MOV a,b
lcall sd_7219 ;傳送數據
setb M7219_load ;數據裝載
CLR M7219_din
RET
;=================================================
; function:sd_7219 ;向7219傳送數據或地址子程序
; input: a
; output: max7219
; usage: a, r2
;==================================================
sd_7219: ;向7219送地址或數據
MOV r2,#08h
c_sd:
CLR C
CLR M7219_clk
RLC a
MOV M7219_din,c ;准備數據
NOP
setb M7219_clk ;上升沿將數據傳入
NOP
NOP
CLR M7219_clk
djnz r2,c_sd
RET