⑴ 单片机课程设计秒表
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