资源描述
山东大学威海分校基于单片机的数字时钟C51单片机王若愚学号2008008003072010/7/18概述AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4K的可编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片机芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。功能特性概述 AT89S51提供以下标准功能:4K字节闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中到内容,但振荡器停止工作并禁止其它所有工作部件直到下一个硬件复位。AT89S51硬件电路原理复位及振荡电路 复位电路由按键复位和上电复位两部分组成,如图2所示。AT89S系列单片及为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为8.2K和10uF。 按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。 MCS51 LITE使用22.1184MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。 复位及振荡电路RS232串口电路 RS232串口电路使用MAX232CPE作为电平转换芯片,并通过套件提供的串口电缆连接到计算机背后的COM口(9针D型口),用于MCS51 LITE与上位机通信以及和其他串口设备的数据交互。 需要注意的是这里在电路板上对TxD和RxD进行了交叉,对应使用的DB9接头类型为Female,使用的线缆为延长线,也叫做直连线,线缆一头为Female一头为Male。如果电路板上不将RxD和TxD交叉,就应该采用Male类型的接头和交叉线缆(两头均为Female)连接。串口电平转换电路八段数码管显示电路 MCS51 LITE包含两个共阳8段数码管显示器,使用动态扫描方式驱动。共阳极作为位选有PNP三极管驱动连接在P1.0和P1.1口,八位段选在通过330限流后连接在单片机的P0口上。由于数码管是共阳的,所以当驱动信号为0时对应的数码管才点亮。 数码管显示电路按键及LED电路 开发板上提供了8个独立LED,由P2口控制,同样采用共阳级接法,所以只有当P2口输出低电平时LED才会点亮。这样做的主要原因是因为单片机的低电平驱动能力高电平强。 4个独立按键使用10K电阻上拉后连接到单片机的P3.2-P3.5口,中间串接的330电阻起到限流作用。按键没有按下时口线上因为上拉而呈现高电平,当某个按键按下时对应口线会被连接到GND而变成低电平。 另外由于LED的反向截止特性以及按键上拉较弱,P2口及P3.2-P3.5口亦可以兼做通用IO口使用,用来连接外部器件。MCS51 Lite板上也提供了插针方便连接。 按键及LED显示电路数字时钟设计实验任务(1 开机时,显示12:00:00的时间开始计时;(2 P0.0/AD0控制“秒”的调整,每按一次加1秒;(3 P0.1/AD1控制“分”的调整,每按一次加1分;(4 P0.2/AD2控制“时”的调整,每按一次加1个小时;系统板上硬件连线(1 把“单片机系统”区域中的P0.0P0.7端口用8芯排线连接到“动态数码显示”区域中的AH端口上;(2 把“单片机系统”区域中的P1.0、p1.1、p2.3、p2.6端口分别连接到数码管的段选位A1A4上。(3 把“单片机系统”区域中的 P3.2P3.5端口分别用导线连接到“独立式键盘”区域中的K1K4端口上;C51的其他功能的实现本实验板采用的是一个4位八段数码管,如果在自主设计区域加几块点阵就可以按意愿显示一定的图案,如果加上液晶,可以扩充显示信息的容量。开发板有转换速度可达到17us 的8位AD转换器TLC549和10位的DA转换器TLC5615。可以做成数字电压或者是数字温度计。单片机来产生不同的频率非常方便,不同频率对应着不同的音阶,对于不同的节拍(即不同音阶之间的间隔)我们也可以用单片机的定时/计数器来完成。这样就可以用单片机做一个电子琴。心得 总结对于开发板的焊接工作较为容易,但是仍要注意芯片的焊接方向是否正确,以及电容的正负极是否反向等。编程可以使用C语言,也可使用汇编语言,但是较为难,需要对板子的整体结构和功能有所了解,并且需要一定的基础。通过这次实践学习,基本掌握了一些单片机的原理及使用方法,为以后的学习奠定了基础。附录START: MOV SECOND,#00H MOV MINITE,#00H MOV HOUR,#12 MOV DISPBIT,#00H MOV T2SCNTA,#00H MOV T2SCNTB,#00H MOV TEMP,#0FEH LCALL DISP MOV TMOD,#01H MOV TH0,#(65536-2000) / 256 MOV TL0,#(65536-2000) MOD 256 SETB TR0 SETB ET0 SETB EAWT: JB SECONDK,NK1 LCALL DELY10MS JB SECONDK,NK1 INC SECOND MOV A,SECOND CJNE A,#60,NS60 MOV SECOND,#00HNS60: LCALL DISP JNB SECONDK,$NK1: JB MINITEK,NK2 LCALL DELY10MS JB MINITEK,NK2 INC MINITE MOV A,MINITE CJNE A,#60,NM60 MOV MINITE,#00HNM60: LCALL DISP JNB MINITEK,$NK2: JB HOURK,NK3 LCALL DELY10MS JB HOURK,NK3 INC HOUR MOV A,HOUR CJNE A,#24,NH24 MOV HOUR,#00HNH24: LCALL DISP JNB HOURK,$NK3: LJMP WTDELY10MS: MOV R6,#10D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RETDISP: MOV A,#DISPBUF ADD A,#8 DEC A MOV R1,A MOV A,HOUR MOV B,#10 DIV AB MOV R1,A DEC R1 MOV A,B MOV R1,A DEC R1 MOV A,#10 MOVR1,A DEC R1 MOV A,MINITE MOV B,#10 DIV AB MOV R1,A DEC R1 MOV A,B MOV R1,A DEC R1 MOV A,#10 MOVR1,A DEC R1 MOV A,SECOND MOV B,#10 DIV AB MOV R1,A DEC R1 MOV A,B MOV R1,A DEC R1 RETINT_T0: MOV TH0,#(65536-2000) / 256 MOV TL0,#(65536-2000) MOD 256 MOV A,#DISPBUF ADD A,DISPBIT MOV R0,A MOV A,R0 MOV DPTR,#TABLE MOVC A,A+DPTR MOV P1,A MOV A,DISPBIT MOV DPTR,#TAB MOVC A,A+DPTR MOV P3,A INC DISPBIT MOV A,DISPBIT CJNE A,#08H,KNA MOV DISPBIT,#00HKNA: INC T2SCNTA MOV A,T2SCNTA CJNE A,#100,DONE MOV T2SCNTA,#00H INC T2SCNTB MOV A,T2SCNTB CJNE A,#05H,DONE MOV T2SCNTB,#00H INC SECOND MOV A,SECOND CJNE A,#60,NEXT MOV SECOND,#00H INC MINITE MOV A,MINITE CJNE A,#60,NEXT MOV MINITE,#00H INC HOUR MOV A,HOUR CJNE A,#24,NEXT MOV HOUR,#00HNEXT: LCALL DISPDONE: RETITABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40HTAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH END
展开阅读全文