当前位置:文档之家› 单片机C51时钟的设计报告

单片机C51时钟的设计报告

单片机课程设计报告设计名称:单片机电子时钟的设计班级:电信08级1班学号::指导教师:一课程设计的目的单片计算机即单片微型计算机。

(Single-Chip Microcomputer ),是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。

他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。

而51单片机是各单片机中最为典型和最有代表性的一种。

这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

二、课程设计的具体要求:该课程设计是利用MCS-51单片机部的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。

设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等。

用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为XXYY (自己计算)。

形成定时时间为50ms。

用片RAM的7BH单元对50ms计数,计20次产生秒计数器78H单元加1,秒计数器加到60则分计数器79H单元加1,分计数器加到60则时计数器7AH单元加1,时计数器加到24则时计数器清0。

然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。

显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。

在处理过程中加上了按键判断程序,能对按键处理三.MCS-51单片机系统简介40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。

⒈电源:⑴VCC - 芯片电源,接+5V;⑵VSS - 接地端;注:用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。

但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0v或者5v。

⒉时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。

⒊控制线:控制线共有4根,⑴ALE/PROG:地址锁存允许/片EPROM编程脉冲①ALE功能:用来锁存P0口送出的低8位地址②PROG功能:片有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。

⑵PSEN:外ROM读选通信号。

⑶RST/VPD:复位/备用电源。

①RST(Reset)功能:复位信号输入端。

②VPD功能:在Vcc掉电情况下,接备用电源。

⑷EA/Vpp:外ROM选择/片EPROM编程电源。

①EA功能:外ROM选择端。

②Vpp功能:片有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

⒋I/O线80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。

P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)四、MCS-51单片机部定时器/计数器、中断系统简介定时/计数器是单片机中重要的功能模块之一,在检测,控制和智能仪器等设备中经常用它来定时。

MCS-51系列中51子系列有2个16位的可编程定时/计数器:T0和T1;每个定时计数器既可以对系统时钟计数实现定时,也可以对外部信号计数实现计数功能,通过编程设定来实现。

T0有4种工作方式,T1有3种工作方式,T2有3种工作方式,可通过编程设定。

每个定时/计数器计数事件到时产生溢出,使相应的溢出位置位,溢出可通过查询或中断方式处理。

2.中断系统简介MCS-51单片机提供5个硬件中断源:2个外部中断源INT0(P3.2)和INT1(P3.3),2个定时/计数器T0和T1的溢出中断TF0和TF1;1个串行口发送TI和接收RI中断。

T0中断服务程序流程图如图11.3。

五、键盘和LED数码管显示器简介本系统共用8个数码管,从右到左依次显示秒个位、秒十位、横线、分个位、分十位、横线、时个位和时十位。

采用软件译码动态显示。

按键处理设置为:如没有按键,则时钟正常走时。

当按下K0按键时,进入调分状态,时钟停止走动;按K1可K2按键可进行加1或减1操作;继续按K0键可分别进行分和小时的调整;最后按K0键将退出调整状态,时钟开始计时运行。

六、基本原理1.定时器/计数器T0定时器/计数器T0用于时间计时。

选择方式1,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清0;分单元加到60则对时单元加1,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。

在对各单元计数的同时,把它们的值放到存储单元的指定位置。

七.硬件电路八、软件程序流程及代码1. T0中断服务程序流程图3.程序代码ORG 0000HLJMP STARTORG 000BH ;定时器/计数器T0中断程序入口LJMP INTT0;主程序START:MOV R0,#70HMOV R7,#0CHINIT:MOV R0,#00HINC R0DJNZ R7,INITMOV 72H,#10MOV 75H,#10MOV TMOD,#01HMOV TL0,#0B0HMOV TH0,#03CHSETB EASETB ET0SETB TR0START1:LCALL SCANLCALL KEYSCANSJMP START1;延时1MS子程序DL1MS:MOV R6,#14HDL1:MOV R7,#19HDL2:DJNZ R7,DL2DJNZ R6,DL1RET;延时20MS子程序DL20MS:ACALL SCANACALL SCANACALL SCANRET;数码管显示程序SCAN:MOV A,78H ;时间存入显示缓冲区相应位置MOV B,#0AHDIV ABMOV 71H,AMOV 70H,BMOV A,79HMOV B,#0AHDIV ABMOV 74H,AMOV 73H,BMOV A,7AHMOV B,#0AHDIV ABMOV 77H,AMOV 76H,BMOV R1,#70H ;循环扫描显示MOV R5,#80HMOV R3,#08HSCAN1:MOV A,R5MOV P2,AMOV A,R1MOV DPTR,#TABMOVC A,A+DPTRMOV P0,AMOV A,R5LCALL DL1MSINC R1MOV A,R5RR AMOV R5,ADJNZ R3,SCAN1MOV P2,#00HMOV P0,#0FFHRETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH ;“0~9”,“-”的共阳极字段码;定时器/计数器T0中断服务程序INTT0:PUSH ACCPUSH PSWCLR ET0CLR TR0MOV TL0,#0B0HMOV TH0,#03CHSETB TR0INC 7BHMOV A,7BHCJNE A,#14H,OUTT0MOV 7BH,#00INC 78HMOV A,78HCJNE A,#3CH,OUTT0MOV 78H,#00INC 79HMOV A,79HCJNE A,#3CH,OUTT0MOV 79H,#00INC 7AHMOV A,7AHCJNE A,#18H,OUTT0MOV 7AH,#00OUTT0:SETB ET0POP PSWPOP ACCRETI;按键处理程序KEYSCAN:CLR EAJNB P1.0,KEYSCAN0JNB P1.1,KEYSCAN1JNB P1.2,KEYSCAN2 KEYOUT:SETB EARETKEYSCAN0:LCALL DL20MSJB P1.0,KEYOUTWAIT0:JNB P1.0,WAIT0INC 7CHMOV A,7CHCLR ET0CLR TR0CJNE A,#03H,KEYOUTMOV 7CH,#00SETB ET0SETB TR0SJMP KEYOUT KEYSCAN1:LCALL DL20MSJB P1.1,KEYOUTWAIT1:JNB P1.1,WAIT1MOV A,7CHCJNE A,#02H,KSCAN11INC 79HMOV A,79HCJNE A,#3CH,KEYOUTMOV 79H,#00SJMP KEYOUTKSCAN11:INC 7AHMOV A,7AHCJNE A,#18H,KEYOUTMOV 7AH,#00SJMP KEYOUTKEYSCAN2:LCALL DL20MSJB P1.2,KEYOUTWAIT2:JNB P1.2,WAIT2MOV A,7CHCJNE A,#02H,KSCAN21DEC 79HMOV A,79HCJNE A,#0FFH,KEYOUTMOV 79H,#3BHSJMP KEYOUTKSCAN21:DEC 7AHMOV A,7AHCJNE A,#0FFH,KEYOUTMOV 7AH,#17HSJMP KEYOUTEND九.设计制作流程1、在PROTEUS中设计硬件PROTEUS软件使用过程如下:1)选择元器件2)放置元器件3)连线4)添加程序5)运行仿真元器件清单如下:单片机:80C52按键:BUTTON电阻:RES电容:CAP晶振:CRYSTALLED数码管:7SEG-MPX8-CA-BLUE(CA:共阳,CC:共阴)地:GRAND电源:POWER2、在KEIL51中编写程序,编译、连接形成HEX文件。

3、在PROTEUS中把HEX文件加载到单片机芯片上。

4、运行仿真看结果。

十.总结这次课程设计,有很多的心得体会,有关于单片机方面的,更多的是关于人与人之间关系方面的。

在这期间,我得到了很多同学的帮助。

我本人对单片机也并不是很熟悉,学的东西好像它是它,我是我似的,理论联系不了实际。

以前的汇编语言没学好,一开始的程序这块儿就要令我束手无策了。

后来请教我们班的一个同学,看他边做边给我讲解。

最后在计算机上调试成功,后来自己又从头到尾做了一遍,完成了本程序。

最后说明自己对这门课程的感受,课堂教学考虑到大多数同学的需求,主要强调“基本”—基本知识、基本理论、基本方法、基本技能。

而这次设计正是为我们提供了一个深入学习、探索的机会,成为课堂教学的有益补充。

相关主题