1、数字单片机的技术进步反映在内部结构、功率消耗、外部电压等级以及制造工艺上。在这几方面,较为典型地说明了数字单片机的水平。在目前,用户对单片机的需要越来越多,但是,要求也越来越高。下面分别就这几个方面说明单片机的技术进步状况。第2章 设计内容 利用单片机的定时计数器,中断系统,以及键盘和LED显示器进行设计。在数码管显示器上实现电子时钟,显示格式为00-00-00,实现从0-9h的长时间定时,并且能进行设置时间和整点提示、提示功能使能控制。第3章 MCS-51单片机系统简介MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,
2、如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。以后我们将用89C51、89S51来完成一系列的实验。MCS-51系列单片机M
3、CS-51系列单片机分为两大系列,即51子系列与52子系列。51子系列:基本型,根据片内ROM的配置,对应的芯片为8031、8051、8751、895152子系列:增强型,根据片内ROM的配置,对应的芯片为8032、8052、8752、8952这两大系列单片机的主要硬件特性如下表:上表中可以看到,8031、8031、8032、80C32片内是没有ROM的,对应着上表看,我们可以发现,51系列的单片机的RAM大小为128B,52系列的RAM大小为256B,51系列的计数器为两个16位的,52系列的计数器为三个16位计数器。51系列的中断源为5个,52系列的中断源为6个。MCS-51单片机内部定时
4、器/计数器中 断系统简介5个中断源的符号、名称及产生的条件如下。 INT0:外部中断0,由P32端口线引入,低电平或下跳沿引起。 INT1:外部中断1,由P33端口线引入,低电平或下跳沿引起。 T0:定时器计数器0中断,由T0计满回零引起。 T1:定时器计数器l中断,由T1计满回零引起。 TIRI:串行IO中断,串行端口完成一帧字符发送接收后引起。 MCS-51单片机中断系统的结构第4章 课程设计原理 单片机控制的数字钟的硬件结构与软件设计,给出了汇编语言源程序。此数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。显示器件选用LED七段数码管。在显示电路输出的驱动下,显示出清晰
5、、直观的数字符号。针对数字钟会产生走时误差的现象,在电路中就设计有有校准时间功能的电路。使用动态数码显示的方法,运用独立式按键识别过程,按“时”,“分”,“秒”数据送出显示处理方法,另外时钟还设置专门的针对于整点报时的按键,以时钟个位变化为标志当前后两位的值不相等时将蜂鸣器置高电平时蜂鸣器响。具体硬件整体框图如下: 4.1 数值时钟整体框图软件设计框图如下: 4.2 软件简单流程图第5章 课程设计代码; 简要说明:实现24小时制电子钟,6位数码管显示,显示时分秒 显示格式:00-00-00 P0口输出段选信号,P2口输出位选信号,到整点进行提示提示时间为30s P1.0为调时按钮,P1.1为调
6、分按钮;P1.3为秒复位 晶振12M ORG 0000H ;程序入口地址 LJMP START ORG 000BH ;定时器0中断入口地址 LJMP TIMER_0 K1 BIT P3.7 ;定义调时按键 K2 BIT P3.6 ;定义调分按键 K3 BIT P3.5 ;秒清零 K4 BIT P3.4 ;停止蜂鸣器 FLAG BIT 37H ;蜂鸣器响标志位1为蜂鸣器没有叫,0代表蜂鸣器正在叫 MODE BIT 38H ;报时使能位1为能够报时0为否 FLAG1 BIT 38HSTART: MOV TMOD,#01H ;定时器0,工作模式1 MOV TH0,#03CH MOV TL0,#0B0
7、H ;赋初值,定时50ms SETB EA ;开中断总开关 SETB TR0 ;开启定时器0 SETB ET0 ;定时器0中断允许位 MOV R6,#0 ;用于控制走时的基准时钟源,计中断次数 MOV R5,#0 ;R5用于控制扫描按键的时间间隔 MOV 20H,#0 ;秒个位寄存器清零 MOV 21H,#0 ;秒十位寄存器清零 MOV 22H,#0 ;分个位寄存器清零 MOV 23H,#0 ;分十位寄存器清零 MOV 24H,#0 ;时个位寄存器清零 MOV 25H,#0 ;时十位寄存器清零 CLR P0.0 ;将蜂鸣器置0停止 SETB FLAG ;将蜂鸣器响清零 SETB MODE ;默
8、认置为能够报时 MOV 30H,24H MOV 31H,30H LJMP DISPLAYTIMER_0: CLR EA INC R6ADD_TIME: CJNE R6,#20,NEXT ;定时器中断20次,1秒到 MOV R6,#0 INC 20H MOV A,20H CJNE A,#10,NEXT ;如果秒个位等于10,清零 MOV 20H,#00H INC 21H MOV A,21H CJNE A,#6,NEXT ;如果秒十位等于6,清零 MOV 21H,#00H INC 22H NEXT:重新赋初值,定时50ms SETB EA RETIDISPLAY: LCALL TIME INC R
9、5 MOV DPTR,#TABLE MOV A,20H MOVC A,A+DPTR MOV P1,A CLR P2.0 LCALL DELAY SETB P2.0 ;显示秒个位 MOV A,21H CLR P2.1 SETB P2.1 ;显示秒十位 MOV A,22H CLR P2.3 SETB P2.3 ;显示分个位 MOV A,23H CLR P2.4 SETB P2.4 ;显示分十位 MOV P1,#0BFH CLR P2.2 SETB P2.2 CLR P2.5 SETB P2.5 MOV A,24H CLR P2.6 SETB P2.6 ;显示时个位 MOV DPTR,#TABLE
10、;该位使用TABLE1以消除前置0 MOV A,25H CLR P2.7 SETB P2.7 ;显示时十位 MOV A,31H CJNE A,30H,CONTINUE JNB FLAG,COMPARE;如果蜂鸣器正在响则比较PTF: CJNE R5,#80,DISPLAY ;当R5到4时,扫描按键 MOV R5,#0 LJMP KEY_SCANCOMPARE: SUBB A,33H JZ CONTINUE1 MOV 33H,20H CPL P0.0CONTINUE1: SUBB A,32H CJNE A,#3,PTF SETB FLAG CLR P0.0 LJMP PTFCONTINUE: J
11、NB MODE,NRS SETB P0.0 SETB FLAG1 CLR FLAG ;设置标志位为0 MOV 32H,21HNRS: CJNE R5,#80,EXIT0 ;KEY_SCAN: JNB K1,ADD_HOUR JNB K2,ADD_MIN JNB K3,CLEAR JNB K4,STOP LJMP DISPLAY ;无键按下,跳至走时EXIT0:ADD_HOUR: INC 24H ;小时加1更新ADD_MIN: INC 22H ;分钟加1CLEAR: ; MOV 20H,#00H MOV 21H,#00HSTOP: JB FLAG,OFF CLR P0.0; SETB FLAG;
12、OFF: JNB MODE,OPEN CLR MODE ;清除报时控制位 MOV R0,#0EFHLOOP1: MOV R1,#03HLOOP11: MOV P1,#0C0H SETB P2.5 MOV P1,#8EH SETB P2.4 SETB P2.3 DJNZ R1,LOOP11 DJNZ R0,LOOP1OPEN: SETB MODELOOP2:LOOP21: MOV P1,#0C8H DJNZ R1,LOOP21 DJNZ R0,LOOP2DELAY: MOV R7,#150 ;扫描延时 DJNZ R7,$ RETTIME: MIN: MOV A,22H CJNE A,#10,HO
13、UR ;如果分个位等于10,清零 MOV 22H,#00H INC 23H MOV A,23H CJNE A,#6,HOUR ;如果分十位等于6,清零 MOV 23H,#00H INC 24H MOV 30H,24H HOUR: CJNE A,#0,LOOP ;如果时十位等于0,检查时个位 CJNE A,#9,EXIT ;如果时个位等于9,清零 MOV 24H,#00H ;清零时个位 MOV 25H,#00H ;清零时十位 LJMP EXITLOOP: MOV A,24H CJNE A,#10,EXIT ;如果时个位等于10,清零 MOV 24H,#00H INC 25H LJMP EXIT
14、EXIT: RET TABLE: ;数码管字形显示编码表 DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;字形显示编码 END ;程序结束第6章 仿真与编译编译正常时仿真:当需要关闭整点提示时显示器显示如下:打开时显示如下:第7章 设计总结虽然课程设计内容繁多,过程繁琐但我的收获却更加丰富。通过这次对长定时器的设计,我摆脱了单纯的理论知识学习状态,和实际操作的结合锻炼了我。综合运用了所学的专业基础知识,解决实际使用过程中存在的问题,同时也提高我查阅文献资料、设计规范以及电脑制图等其他专业能力水平。通过整体的设计,局部的取舍,以及对细节的斟酌处理
15、,都使我的能力得到了锻炼,并且磨练了我的意志力,抗压能力及耐力也都得到了不同程度的提升。通过对系统的分析与设计过程,我学到了许多新的知识,并且对我在这几年所学习模电和数电方面的知识进行巩固。本次课程设计能顺利如期的完成给了我很大的信心,让我了解专业知识的同时也对本专业的发展前景充满信心。张毅刚,彭喜元,彭宇.单片机原理及应用.2版.北京:高等教育出版社阎石.数字电子技术基础.5版.北京:童诗白,华成英.模拟电子技术基础.4版.北京:参考元器件清单: 单片机:AT89C51 1片 74LS04非门: 8片 按键:BUTTON 4个 电阻:RES 1K 若干 电容:CAP 30pF,10uF等 若干 8连七段LED数码管:共阳 1个 电源:POWER +5V 2个 地:GROUND 1个 蜂鸣器:SOUNDER 1个
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1