单片机闹钟课程设计

作者&投稿:狐浦 (若有异议请与网页底部的电邮联系)
求单片机课程设计实验 用汇编语言,基于51单片机的定时闹钟~

MODE_RGEQU 40H;模式选择
MODE2EQU 60H;MODE值
MODE3EQU 61H
MODE4EQU 62H
MODE5EQU 63H
MODE6EQU 64H
MODE1EQU 65H
HOUR EQU 41H;小时缓冲区
MIN EQU 42H;分钟缓冲区
SEC EQU 43H;秒缓冲区
TEMPEQU 4AH
;*********闹钟缓冲区********************
H_ALARMEQU 6AH;闹钟缓冲区
M_ALARMEQU 6BH
S_ALARMEQU 6CH
F_ALARMEQU 6DH
;***********秒表缓冲区******************
M_SECEQU 76H
S_SECEQU 77H
;*********LED送显示临时变量*************
LED0EQU 51H
LED1EQU 52H
LED2 EQU 53H
LED3EQU 54H
MODE_KEY EQU P3.4
UP_KEYEQU P3.3
DOWN_KEYEQU P3.5
BUFEQU 49H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INT_0
ORG 001BH
LJMP INT_1
ORG 0080H
MAIN:MOV SP,#2FH ;堆栈初始化
MOV MODE_RG,#0 ;MODE_RG寄存器值初始化
MOV LED0,#0FEH ;初始化LED
MOV LED1,#0FDH
MOV LED2,#0FBH
MOV LED3,#0F7H
MOV MODE1,#1
MOV MODE2,#2
MOV MODE3,#3
MOV MODE4,#4
MOV MODE5,#5
MOV MODE6,#6
MOV F_ALARM,#0 ;错误2:一开始用 CLR F_ALARM,这导致在后面的时候JZ F_ALARM 运行错误,
MOV BUF,#0;在于 JZ 指令是对累加器A全为0或者全为1进行判断,CLR只能对一位操作
MOV TMOD,#11H ;定时器初始化:定时器0,方式1,定时器1,方式1
MOV IP,#00001000B ;定时器1优先级高
MOV TH0,#3CH ;定时50MS
MOV TL0,#0B1H
MOV TH1,#0D8H ;定时10MS
MOV TL1,#0F0H
SETB EA
SETB ET0
SETB ET1
SETB TR0 ;启动定时器
MOV HOUR,#0 ;for test
MOV MIN,#0
MOV SEC,#0 ;定时器计数器,50MS中断一次,200次则刚好1S
MOV M_SEC,#0
MOV S_SEC,#0
MOV H_ALARM,#0
MOV M_ALARM,#0
MAIN1:LCALL DISPLAY12
LCALL DISPLAY34
;CLR P1.4 TEST
JNB MODE_KEY,KEY_SCAN
MOV A,MODE_RG
CJNE A,MODE6,Y1 ;MODE6 秒表
JNB DOWN_KEY,DEALDOWN ;判断秒表开关
JNB UP_KEY,DEALUP
Y1:MOV A,F_ALARM ;判断闹钟
JNZ ALARM
LJMP MAIN1
;-----------------------------------秒表开关程序---------------------------
DEALDOWN:LCALL DELY10MS
JB DOWN_KEY,MAIN1
H1:JNB DOWN_KEY,H1
CPL TR1
LJMP MAIN1
DEALUP:LCALL DELY10MS
JB UP_KEY,MAIN1
H2:JNB UP_KEY,H2
MOV M_SEC,#0
MOV S_SEC,#0
CLR TR1
LJMP MAIN1
;-----------------------------------闹钟扫描程序---------------------------
ALARM:MOV A,H_ALARM
CPL P1.2
CJNE A,HOUR,EXIT3

MOV A,M_ALARM
CJNE A,MIN,EXIT3
LJMP STARTALARM
EXIT3:SETB P3.6
LJMP MAIN1
STARTALARM: CPL P3.6
JNB DOWN_KEY,OFFALARM
LJMP S1
OFFALARM:LCALL DELY10MS
JB DOWN_KEY,MAIN1
S2:JNB DOWN_KEY,S2
MOV F_ALARM,#0
SETB P3.6
LJMP MAIN1
S1:LCALL DELAY
LJMP MAIN1
;-----------------------------------键盘扫描程序---------------------------
KEY_SCAN:LCALL DELY10MS
JB MODE_KEY,MAIN1
INC MODE_RG
;SETB P1.4 测试
K1:JNB MODE_KEY,K1 ;按键直到用户松开按键
K2:MOV A,MODE_RG
CJNE A,#0,DEALMODE ;不是在正常显示模式下则跳转到模式处理程序
LJMP MAIN1 ;返回主程序
;*******************模式处理程序部分
DEALMODE:MOV TEMP,#0 ;凡转入MODE处理,则首先清除TEMP
MOV A,MODE_RG ;有MODE_RG值不为5、0
CJNE A,MODE2,M0 ;判断MODE_RG值,不为1跳转
LJMP H_GLINT ;模式1,小时位闪烁
M0:CJNE A,MODE3,M1 ;不是模式2,跳转
LJMP M_GLINT ;模式2,分钟位闪烁
M1:CJNE A,MODE4,M2 ;不是模式3,跳转
LJMP H_GLINT
M2: CJNE A,MODE5,M3
LJMP M_GLINT
M3:CJNE A,MODE6,M4
MOV M_SEC,#0
MOV S_SEC,#0
LJMP MAIN1
M4:CJNE A,MODE1,M5
;CLR TR1
LJMP MAIN1
M5:MOV MODE_RG,#0
LJMP MAIN1
;*****************************MODE为1,3,小时位闪烁
//MOV TEMP,HOUR ;将TEMP赋值,防止在加的时候是在随机值的基础上增加

H_GLINT:;CPL P1.0
MOV R0,#28
MOV R1,#28
K4:LCALL DISPLAY12 ;分开显示
LCALL DISPLAY34
E1:JNB MODE_KEY,K21 ;检测是否有按键按下,有按下则跳转到分钟位闪烁

JB UP_KEY,E9 ;判断加位有无按键按下
LJMP UP
E9:DJNZ R0,K4
K6:LCALL DISPLAY34
JNB MODE_KEY,K21 ;检测是否有按键按下,有按下则跳转延时后进行模式判断
LJMP G1
K21:LCALL DELY10MS ;延时后确定有MODE按键按下,将
JB MODE_KEY,H_GLINT
W:JNB MODE_KEY,W
INC MODE_RG
CPL P1.4
LJMP DEALMODE ;确定有按下,MODE+1后返回MODE处理程序
JNB UP_KEY,UP ;判断加位有无按键按下
G1:DJNZ R1,K6
LJMP H_GLINT ;调用完毕返回,实现闪烁
K3:LJMP MAIN1 ;可省略
;******************************MODE为2,4,分钟位闪烁
M_GLINT:MOV R0,#28
MOV R1,#28
K23:CPL P1.7
LCALL DISPLAY12
LCALL DISPLAY34
JNB MODE_KEY,KK ;跳转,确定是否有按键按下
JNB UP_KEY,UP ;判断加位有无按键按下
MOV A,MODE_RG
CJNE A,MODE3,E2 ;在MODE5的情况下要判断闹钟确认键有没按下
LJMP E5
E2:JNB DOWN_KEY,F2
LJMP E5
F2:LJMP ONALARM2
E5:DJNZ R0,K23
K24:LCALL DISPLAY12
JNB MODE_KEY,KK ;检测是否有按键按下,有按下则跳转
JNB UP_KEY,UP ;判断加位有无按键按下
MOV A,MODE_RG ;扫描闹钟确认键
CJNE A,MODE3,E7 ;在MODE5的情况下要判断闹钟确认键有没按下
LJMP G2
E7:JB DOWN_KEY,E8
CPL P1.3
LJMP ONALARM2
E8:LJMP G2
KK:LCALL DELY10MS ;去抖
JB MODE_KEY,M_GLINT
W1:JNB MODE_KEY,W1
INC MODE_RG
CPL P1.4
LJMP DEALMODE ;确定有按下,MODE+1后返回MODE处理程序
G2:DJNZ R1,K24
LJMP M_GLINT
;*************************位加,处理程序
;***************小时调整
UP:MOV R1,#20
UP11:INC TEMP

UP12:MOV A,MODE_RG ;判断此时的MODE,根据MODE将临时变量给对应的赋值
CJNE A,MODE2,AA0 ;不是在MODE2的情况下跳转
MOV A,TEMP
CJNE A,#24,A_UP1
MOV TEMP,#0
A_UP1:MOV HOUR,TEMP ;为MODE2,将临时变量赋给小时位
LJMP UP15
AA0:CJNE A,MODE4,UP13 //UP13为分钟调整入口
MOV A,TEMP
CJNE A,#24,A_UP
MOV TEMP,#0
A_UP:MOV H_ALARM,TEMP ;模式3,将临时变量赋给闹钟的小时位
LJMP UP15 ;UP15为显示入口
;****************分钟调整入口
UP13:MOV A,MODE_RG
CJNE A,MODE3,UP14 ;不是模式2,跳转
MOV A,TEMP
CJNE A,#60,DISOVER2
MOV TEMP,#0
DISOVER2:MOV MIN,TEMP
LJMP UP15
UP14:MOV A,TEMP ;上面判断不是模式2,则必然是模式4
CJNE A,#60,DISOVER3
MOV TEMP,#0
DISOVER3:MOV M_ALARM,TEMP
LJMP UP15
UP15:LCALL DISPLAY12
LCALL DISPLAY34
DJNZ R1,UP01
MOV R1,#1 ;
JNB UP_KEY,UP11
UP01:JNB UP_KEY,UP12
UP16:MOV A,MODE_RG ;松开键以后按照模式判断该返回哪种状态,不能返回DEALMODE函数
CJNE A,MODE2,UP17
LJMP H_GLINT
UP17:CJNE A,MODE3,UP18
MOV SEC,#0 ;每次设置完时间后将秒钟位置零保证时间准确
LJMP M_GLINT
UP18:CJNE A,MODE4,UP19
LJMP H_GLINT
UP19:CJNE A,MODE5,UP20
LJMP M_GLINT
UP20:LJMP MAIN1
ONALARM2:LCALL DELY10MS ;延时10MS,去抖
JB DOWN_KEY,B2 ;抖动所致,返回分钟位闪烁
LJMP K42
B2:LJMP M_GLINT
K42:JNB DOWN_KEY,K42
MOV F_ALARM,#0FFH
MOV MODE_RG,#0
LJMP MAIN1
;---------------------------------------中断程序入口---------------------
;*******************时间中断0*********************
;错误1:中断程序EXIT处用了MAIN1,导致一直处于中断状态
INT_0:PUSH ACC
PUSH PSW
MOV TH0,#3CH
MOV TL0,#0B1H
INC BUF
MOV A,BUF
CJNE A,#20,EXIT
TIME:MOV BUF,#0
INC SEC
MOV A,SEC
CJNE A,#60,EXIT
MOV SEC,#00H
INC MIN
MOV A,MIN
CJNE A,#60,EXIT
MOV MIN,#00H
INC HOUR
MOV A,HOUR
CJNE A,#24,EXIT
MOV HOUR,#0
RETI
EXIT: POP PSW
POP ACC
RETI

;******************时间中断1***********************
INT_1: MOV TH1,#0D8H ;定时10MS
MOV TL1,#0F0H
INC S_SEC
MOV A,S_SEC
CJNE A,#100,EXIT4
MOV S_SEC,#0
INC M_SEC
MOV A,M_SEC
CJNE A,#100,EXIT4
MOV M_SEC,#0
EXIT4:RETI
;---------------------------------------显示-----------------------------
DISPLAY12:MOV A,MODE_RG ;判断模式,决定是显示闹钟时间还是显示当前时间
CJNE A,MODE4,DIS0 ;模式四,显示闹钟
LJMP DIS01 ;MODE4
DIS0:CJNE A,MODE5,DIS20
DIS01:MOV R7,H_ALARM ;闹钟模式
LJMP DIS2
DIS20:CJNE A,MODE6,DIS21
MOV R7,M_SEC ;秒表模式,显示秒表高位
LJMP DIS2
DIS21:CJNE A,MODE1,DIS1
LJMP DIS22
DIS22:MOV R7,MIN
LJMP DIS2
DIS1:MOV R7,HOUR ;DISPLAY12显示高位
DIS2:LCALL BCTD ;判断完毕,调用显示
;将秒、分 分别转码,放到R4,R3
MOV A,R4
MOV R3,A
LCALL DIVIDE
MOV DPTR,#NUMTAB
MOV P2,#0FH
MOV P2,LED0
MOV A,45H ;从拆字的出口获取值
MOVC A,@A+DPTR
MOV P0,A
LCALL DELY10MS
MOV P2,LED1
MOV A,46H
MOVC A,@A+DPTR
MOV P0,A
LCALL DELY10MS
RET
DISPLAY34:MOV A,MODE_RG ;判断模式,决定是显示闹钟时间还是显示当前时间
CJNE A,MODE4,DIS31
LJMP DIS32
DIS31:CJNE A,MODE5,DIS35
DIS32:MOV R7,M_ALARM
LJMP DIS34
DIS35:CJNE A,MODE6,DIS41
MOV R7,S_SEC ;秒表模式,显示秒表低位
LJMP DIS34
DIS41:CJNE A,MODE1,DIS33
MOV R7,SEC
LJMP DIS34
DIS33:MOV R7,MIN ;DISPLAY34显示低位
DIS34:LCALL BCTD
MOV A,R4
MOV R3,A
LCALL DIVIDE
MOV P2,LED2
MOV A,47H
MOVC A,@A+DPTR
MOV P0,A
LCALL DELY10MS
MOV P2,LED3
MOV A,48H
MOVC A,@A+DPTR
MOV P0,A
LCALL DELY10MS
SETB P2.3
RET
;--------------------二翻十:入口:R6R7 出口:R2R3R4----------------------
BCTD:MOV R5,#16
CLR A
MOV R2,A
MOV R3,A
MOV R4,A
LOOP:CLR C
MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
DA A
MOV R3,A
MOV A,R2
ADDC A,R2
DA A
MOV R2,A
DJNZ R5,LOOP
RET
;-----------------------拆字:入口:R3R4 出口:45H46H47H48H------------------
DIVIDE:MOV A,R3
ANL A,#0FH
MOV 46H,A
MOV A,R3
ANL A,#0F0H
SWAP A
MOV 45H,A ;时拆字 45H放时高位,46H放十低位
MOV A,R4
ANL A,#0FH
MOV 48H,A
MOV A,R4
ANL A,#0F0H
SWAP A
MOV 47H,A ;分拆字 47H放分高位,48H放分低位
RET
;------------------------------------延时----------------------------------
DELY10MS: MOV R6,#10
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
DELAY:MOV 74H,#2 ;延时子程序,12M晶振延时1.002秒
L3: MOV 72H ,#10
L1: MOV 73H ,#249
L2: DJNZ 73H ,L2
LCALL DISPLAY12
LCALL DISPLAY34
JNB DOWN_KEY,OFFALARM1
LJMP S3
OFFALARM1:LCALL DELY10MS
JB DOWN_KEY,S3
S4:JNB DOWN_KEY,S4
MOV F_ALARM,#0
SETB P3.6
LJMP MAIN1
S3:DJNZ 72H ,L1
DJNZ 74H ,L3
RET
NUMTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH ;码表
END

这个 我正在学单片机,也刚刚做过了这个实验没多久,不过我的是8098单片机,确实是汇编语言。不过我做的仅仅是个电子钟,你可以随时改变你输入的时间然后它就会按时分秒跳动,我做的是24小时制的。不过我没有弄闹钟额……不过也简单,可以弄一个中断申请就ok。话说你的闹钟要求是什么?我记得8098是不能响的,只有一个发光二极管可以亮一亮……
话说能请你把问题补充一下么?我的程序写在纸上,然后我们还要求是要把程序翻译出机器码然后在单片机上实验出结果的。所以我连机器码都翻译了的……实在不知道你们的要求。

原理可以先和你说一下:主程序先是一系列的初始化(中断悬挂的清零和寄存器的设置,堆栈的设置等),然后开启中断,写显示程序(显示程序前要弄好你显示的寄存器以及扫描子程序的地址,还要对十六进制数进行转换变成十进制数,只要做一个除法就行,用十六进制数除以A就能够得出相应的十进制数。)
然后就是你的中断程序了,比如你的中断申请是每10ms申请一次,那你就计数,如果到了100次中断了,那就秒加一,再查看秒是否到60,是则清零让分加一,否则跳到中断程序末端;然后再依次查分和时。最后中断程序的末端还要用一次计时器软件中断申请。再跳回主程序反复运行。可能比较麻烦,我记得我打的草稿就好多张纸呢,后来在16进制向10进制转换的时候还出了个寄存器的问题。
不知道和你程序的要求是否相同= =。

期待你能够补充一下你的问题。

1.单片机在计时控制方面的应用设计。
如:时钟、频率计、彩灯、交通灯
2.单片机在计数控制方面的应用设计。
如:计数器、计分器、抢答器、报警器
(1)时钟能计时,可校准时间,至少有一种附带功能(如秒表、定时器或闹钟功能);(2)频率计能测试并显示1HZ—10KHZ频率、5V的方波,可附带方波发生器功能;(3)彩灯要求控制16个LED有两种以上闪烁方式;(4)交通灯要求模拟控制十字路口交通信号,有倒计时显示。
2. 单片机在计数控制方面应用的设计功能要求:
(1)计数器利用外中断通过对传感器送来的方波计数的方法实现对产品线上的产品计数,用数码管显示计数结果;(2)计分器设计一个用于竞技比赛的计分牌,通过按钮设定对双方的比分加减,可附加定时功能;(3)抢答器要求有4路以上,可以设定限时等功能;(4)报警器要求能对8路以上的通道进行巡检,进行声光报警和显示通道号。
设计报告题目(三号宋体加粗居中)
XXX,C06(x)班,学号:xxxxxxx(小四号宋体居中)
1. 系统功能的确定(小四号宋体加粗)
正文(小四号宋体)
2. 方案论证
2.1方案一
2.2方案二
2.3方案三
系统方案的选定并给出总体框图
3. 系统硬件的设计
3.1主控制器的设计(电路图及设计说明)
3.2接口电路的设计
3.3等等
4. 系统软件的设计
4.1主程序的设计(程序流程图及说明)
4.2键扫描程序的设计
4.3等等
5. 系统调试
5.1硬件调试
5.2软件调试
5.3综合调试
6. 指标测试
6.1测试仪器
6.2指标测试
7. 结论
对课程设计的结果进行总结。
急用啊

http://blog.liuwentao.net/read.php?149

也是用PROTUES仿真的,汇编和C程序都有,电路图也有!而且标注也很明细。


数字电子课程设计 数字显示电子钟 1、任务要求 1) 时钟的“时”要求...
《数字钟设计报告》指导老师:姓名:学号:电子设计 一、 引言 大屏幕数字钟套件采用6位数字(二十四小时制)显示,格式为“时时:分分:秒秒”,电路板尺寸为330MM*70MM,是以前大屏幕数字钟的改进版,解决了以前大屏幕数字钟显示数字“6”和“9”不美观的现象;解决了发光二极管引脚焊盘间距过大容易...

大学PLC课程设计一般有哪些题目?
23. PLC控制的自动售货机毕业设计论文 24. 双恒压供水西门子PLC毕业设计 25. 交流变频调速PLC控制电梯系统设计毕业论文 26. 基于PLC的三层电梯控制系统设计 27. PLC控制自动门的课程设计 28. PLC控制锅炉输煤系统 29. PLC控制变频调速五层电梯系统设计 30. 机械手PLC控制设计 31. 基于PLC的组合机床控制系统设计 ...

电工数字钟课程设计 电路图 详细一点啊
间范围是 00:00:00~23:59:59,具备有时分秒校准功能。数字钟上面要带有 闹钟,闹钟与时钟之间能随时切换,闹钟具备时分秒设置功能。设计的详细资料在图片上的网站搜“带整点报时与闹钟功能的数字钟设计,附设计框图,电路图,C语言源程序.元器件清单”,希望能对你有点用吧..一到课程设计的时候就...

用集成电路做时钟。
从有利于学习的角度考虑,这里主要介绍以中小规模集成电路设计数字钟的方法。 经过了数字电路设计这门课程的系统学习,特别经过了关于组合逻辑电路与时序逻辑电路部分的学习,我们已经具备了设计小规模集成电路的能力,借由本次设计的机会,充分将所学的知识运用到实际中去。 本次课程设计要求设计一个数字钟,...

数字电子课程设计多功能数字钟的电路设计
用数字电路电路复杂成本高,做出的时钟还可能不是很准还是用单片机做吧,用最简单的51就够了。

求一个汇编语言课程设计的MASM32时钟的程序
jnb AlarmOnOff,NotAlarm; 闹钟开启了吗?如没有开启则无需理会是否到闹时时间 mov a,Second jnz NotAlarm; 秒为零吗? mov a,Minute cjne a,AlarmMinute,NotAlarm; 时间分钟值和闹时设置分钟值相等吗? mov a,Hour cjne a,AlarmHour,NotAlarm; 时间小时值和闹时设置小时值相等吗? setb AlarmTimeOn; 到了...

单片机课程设计:交通灯控制!
108.150MHz频段窄带调频无线接收机 109.电子体温计 110.基于单片机的病床呼叫控制系统 111.红外测温仪 112.基于单片微型计算机的测距仪 113.智能数字频率计 ...132.单片机交通灯控制系统的设计 133.智能立体仓库系统的设计 134.智能火灾报警监测系统 135.基于单片机的多点温度检测系统 136.单片机定时闹钟设计 137.湿...

数字闹钟微机原理课程设计题目:实验箱是es 86pciu+
难度不大,我稍微指点你。

大学PLC课程设计一般有哪些题目?
PLC控制的自动售货机毕业设计论文 \\x0d\\x0a24. 双恒压供水西门子PLC毕业设计 \\x0d\\x0a25. 交流变频调速PLC控制电梯系统设计毕业论文 \\x0d\\x0a26. 基于PLC的三层电梯控制系统设计 \\x0d\\x0a27. PLC控制自动门的课程设计 \\x0d\\x0a28. PLC控制锅炉输煤系统 \\x0d\\x0a29. PLC控制变频调速五层电梯...

求助!!!电子日历表课程设计
三、参考模块设计:1.按键接口模块功能:1)消除按键的抖动,输出平稳的电平2)跟据不同模块的需要输出不同宽度的电平。如:输入到跑表的按键电平宽度应与状态机所用时钟的宽度相同。在设定时间和闹钟时,长按Key3需要输出快速调节脉冲。2.分频模块:由输入的时钟得到需要的各种基准频率,详细讨论见设计提示。3.模式切换...

乐业县13949191278: 用C语言编写AT89C51单片机程序,设计一个智能数字钟. -
陈伦联双: 基本要求:1.C语言程序要求是模块化设计.2.该闹钟基于AT89C51单片机及相关外围电路进行设计.3.该闹钟有6个数码管(共阳极),可分别显示时间(时、分、秒)、及定时时间(分、秒).4.该闹钟有4个按钮,S1是切换显示按键,该键按下时可分别实现切换正常走时显示、设定走时显示、设置定时时间,启动定时,回到正常状态等功能.S2是设定键,即该键按下,将分别选中需要设定的选项.S3键是加键,即按下去表示相应选项加1.S4键是减键,即按下去表示相应的选项减1.5.该闹钟可以定时时间到,LED将发出提示闪光,且持续30s.发挥要求:1.定时时间可被打断,即打断后恢复时继续计时.2.设置闹钟报警功能;3.能切换显示年月日等信息.

乐业县13949191278: 如何拿单片机用C语言编程做一个闹钟? -
陈伦联双: 按键,显示屏,喇叭或蜂鸣器,电源,单片机及外围器件.这个是硬件必须的.你要根据要求来选择硬件,如果用LED显示,就比较耗电,用干电池做电源肯定不行.如果用LCD显示,那么就要选择带LCD驱动的单片机.软件实现很简单,时间的准确性,和省电这块可能会比较棘手.我们自己研发的多定时多录音闹钟已经卖了很多了.

乐业县13949191278: 单片机定时闹钟设计 -
陈伦联双: 一个定时程序,一个喇叭,我感觉就能解决问题,不过目的中好像没提到喇叭;LED应该是用来显示剩余时间的,不知道是共阳数码管还是发光二极管,如果是发光二极管应该就是用来提示到达计时时间~具体的程序设计要根据实验连接图,具体的引脚配置来确定,如果是试验箱的话应该都是固化好的电路,地址应该给出了8255a是用来扩展引脚的,8253是计数器,为什么用在这里我也不知道,具体的连接方式 微机原理与接口技术 这本书上有,网上也有很多资料~

乐业县13949191278: 求单片机C语言的电子闹钟设计程序 其功能只要有闹钟,一天24小时的时钟功能就行. -
陈伦联双: 你看看行不行#include uchar code tab[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F} void view() /*七段数码管显示程序 七个管轮流显示*/ {P3=0x01; unsigned int i=0; while(i{n=vnum; P1=tab[n]; P3i++; } } void mDelay(unsigned int ...

乐业县13949191278: 单片机时钟设计思路 -
陈伦联双: 首先需要一个时钟信号.可以用DS1302,可能你会说我不想用,我用单片机定时器模拟,这样也可以,不过这你得把时间设置为当前时间.得对应,是吧! 有了时钟信号以后,(可以设计一个键盘电路与显示电路,这是方便直观查看与修改闹钟时间.当然,如果闹钟时间就是那个特定的值,就不用这些了.) 哦?差不多就可以了吧......

乐业县13949191278: 51单片机 可编程作息时间控制器设计 -
陈伦联双: 本设计是可编程作息时间控制器设计,由单片机AT89C51芯片和LCD、LED显示器,辅以必要的电路,构成一个单片机四路可调闹钟.电子钟可采用数字电路实现,也可以采用单片机来完成.LCD显示“时”,“分”,LED亮灯来表示闹钟的到来...

乐业县13949191278: 51单片机设计一个电子钟,如何实现闹钟功能? -
陈伦联双: 闹钟功能还不简单吗?把设定的时间和当前的时间做比较,相同了就驱动蜂鸣器发声. 整点报时更简单,只要“小时”的数字发声变化了就表明整点了.

乐业县13949191278: 带有LCD显示的定时闹钟 - 单片机课程设计 -
陈伦联双: /*电子时钟源代码*/ #include<graphics.h> #include<stdio.h> #include<math.h> #include<dos.h> #define PI 3.1415926 /*定义常量*/ #define UP 0x4800 /*上移↑键:修改时间*/ #define DOWN 0x5000 /*下移↓键:修改时间*/ #define ESC 0x11b /*...

乐业县13949191278: 单片机课程设计电子时钟程序 -
陈伦联双: #include <at89x51.h> //头文件包含#define uchar unsigned char //宏定义 #define uint unsigned int #define ON 0 //定义0为打开 #define OFF 1 //定义1为关闭 #define LEDBus P1 //定义p1口为数码管段码口 sbit MIAO =P1^2; //秒点 sbit HOU_S=P...

乐业县13949191278: 制作51单片机小闹钟 -
陈伦联双: 不用ds1302 #include <reg52.h> sbit led=P1^0; sbit key=P1^1; int s=0; int n=0; int b=0; int a=1; void delay10ms(void) { unsigned char a,b,c; for(c=1;c>0;c--) for(b=38;b>0;b--) for(a=130;a>0;a--); } void timer(void) interrupt 1 using 1 { int i; if(i==20) { s+...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网