单片机秒表课程设计,急求!!!!

1.设计要求用AT89C51设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“开始”键和一个“复位”键。2.实验原理题目难点在于... 1. 设计要求
用AT89C51设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“开始”键和一个“复位”键。
2. 实验原理
题目难点在于通过对键盘的扫描对时钟的走时/停止进行控制,项目采用定时器T0作为计时器,每10ms发生一次中断,每100次中断加1s。在此期间,如“开始”按键按下,程序方将TR0置为1,从而开启中断,时钟开始走时;如“复位”按键按下,程序将TR0置为0,同时将存储时间的变量清零,从而中断停止,并实现复位。
本题目采用专用数码管显示控制芯片MAX7219。MAX7219是美国MAXIM公司生产的串行输入/输出共阴极显示驱动器,该芯片最多可驱动8位7段数字LED显示器或个LED和条形图显示器。其引脚图及引脚功能参见有关参考资料。

如果能把程序编出来给我谢谢了,如果能帮我做以下的东西更是感激不尽,您的100金就到手了!!!!qq邮箱 791853880@qq.com

2 ***** 方案设计
控制系统总体介绍, 框图,工作原理。
2.1***********
2.2***********
3 ***** 硬件电路设计
重点介绍各部分的硬件电路设计:分块介绍,每部分电路要介绍清楚,一些关键引脚如何接线要进行说明,外围扩展电路的端口地址要写清楚,等等。
3.1***********
3.2***********
4***** 软件编程设计
分块重点介绍程序的功能与实现:主程序,中断程序以及子程序各自完成哪些任务?流程图要自己画。A/D、D/A转换程序,滤波程序等各种关键程序的源码与介绍。软件编程设计这一章不要附上全部源码,源码放在最后的附录里
能把这些全做了当然给100金,如果不能求把程序编好给我!!!!!!!!!!!!!!!!!
写不出来报告把程序编好了也可以啊!!!!!!!!!!!!!!!!!!
展开
 我来答
百度网友7247a56
2013-07-23 · TA获得超过4616个赞
知道大有可为答主
回答量:1422
采纳率:92%
帮助的人:482万
展开全部

原理图如下,

程序如下:

;=================================================

;寄存器分配定义

;=================================================

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


 END

做而论道
高能答主

2013-08-12 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
已经过去好多天了,还需要答案吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
善如南0hHb23
2013-06-27 · TA获得超过174个赞
知道小有建树答主
回答量:777
采纳率:0%
帮助的人:493万
展开全部
交流
球球我吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abeitt
2013-06-29 · TA获得超过152个赞
知道答主
回答量:66
采纳率:0%
帮助的人:61.8万
展开全部
汇编还是C?
追问
汇编,你会??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式