基于单片机独立按键数字循环系统.doc
文本预览下载声明
过程控制实验室
开放实验
题 目: 基于单片机的独立按键与数码循环显示系统
院系名称: 电气工程学院
专业班级: 自动F1208
学生姓名:
学 号:
指导教师: 熊新民
一、实验题目
基于单片机的独立按键与数码循环显示系统
实验目的
按键控制1位LED数码管循环显示0-9,首先在实验室将程序编写完整并使用tkstudy?ice检查是否有错误。观察有无错误果,若无错误,就会生成hex文件,最后利用protel?99?se画好原理图,则将正确编译过的hex文件通过编程器写入mcu片内。进行全速运行,看能否实现任务要求。
实验器材
AT89C51, 7SEG-COM-CAT-BLUE
BUTTON?,?CAP?,CRYSTAL??,??LED-YELLOW??,
RES?,RESPACK-7??,??RESPACK-8
org?0000h?
?????sjmp?main?????
?org?000bh??????
sjmp?t0_isr??????
org?0030h?
main:jb?p3.0,$?
?????acall?delay30ms?????
?jnb?p3.0,$?
loop:clr?a?
???? ?mov?dptr,#table??????
movc?a,@a+dptr??????
mov?p0,a?
????? mov?tmod,#01h??????
mov?th0,#0d8h??????
mov?tl0,#0efh??????
setb?et0??????
setb?ea?
setb?tr0?
pd:??jb?p3.1,fz?
????? acall?delay30ms??????
jnb?p3.1,$?
stop:sjmp main?
fz:??cjne?r0,#100,$??????
inc?dptr?????
?clr?a?
???? ?movc?a,@a+dptr??????
cjne?a,#00h,aaa?
???? ?mov?dptr,#table???;如果花样数据完应重新循环?????
?clr?a?
???? ?movc?a,@a+dptr?
aaa:?mov?p0,a?
????? mov?r0,#00h??????
sjmp?pd?
delay30ms:?
????? mov?r6,#150?
bbb:?mov?r7,#100??????
djnz?r7,$??????
djnz?r6,bbb??????
ret?
t0_isr:?
????? clr?tr0?
????? mov?th0,#0d8h??????
mov?tl0,#0efh??????
inc?r0??????
setb?tr0??????
reti?
table:db?3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h??????
end
硬件结构图:
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh?Programmable?and?Erasable?Read?Only?Memory)的低电压,高性能CMOS8位微处理器。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。?
一个单片机芯片的基本组成如下:?
中央处理器CPU:它是单片机的核心,用于产生各种控制信号,完成对数据的算术逻辑运算和传送。?
内部数据存储器RAM:用来存放可以读/写的数据。?
内部程序存储器ROM:用来存放程序指令或某些常数表格。?
4个8位的并行I/O接口P0、P1、P2和P3,每个口都可以用作输入或者输出。3个定时/计数器,用来作外部事件计数器,也可以定时。?
内部中断系统:具有
显示全部