欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    单片机 定时器 课程设计Word格式.docx

    • 资源ID:5304580       资源大小:569.37KB        全文页数:16页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机 定时器 课程设计Word格式.docx

    1、1.电源管脚 Vcc(40脚):接+5V;Vss(20)脚:接地。2.时钟信号管脚 X1(19脚), X2(18脚):外部时钟信号的两个管脚。3.控制线 1)RESET(9脚):用作复位输入端。2)EA/VP(31脚):EA为访问内部或外部程序存储器的选择信号。对片内EPROM编程时,此管脚(作VP)接入21V编程电压。3)ALE/P(30脚):当访问外部存储器时,ALE信号的负跳变将P0口上的低8位地址送入锁存器。当对内EPROM编程时,该管脚(P)用于输入编程脉冲。4)PSEN(29脚):外部程序存储器读选通控制信号。4.输入/输出口线 1)P0口(32-39脚):8路漏极开路型双向并行I

    2、/O口。在访问外部存储器时,P0口作为低8位地址/数据总线复用口,通过分时操作,先传送低8位地址,利用ALE信号的下降沿将地址锁存,然后作为8位数据总线使用,用来传送8位数据。在对片内EPROM编程时,P0口接受指令代码;而在内部程序校验时,则输出指令代码,并要求外接上拉电阻。外部不拓展位单片应用,则作双向I/O口用,P0口能以吸收电流的方式驱动8个LSTTL负载。2)P1口(1-8脚):具有内部上拉电阻的8位准双向I/O口。在对片内EPROM编程及校验时,它接收低8位地址。P1口能驱动4个LETTL负载。3)P2口(21-28脚):在外接存储器时,P2口作为高8位地址总线。在对片内EPROM

    3、编程及校验时,它接受高8位地址。P2口驱动4个LETTL负载。4)P3口(10-17脚):8位带有内部上拉电阻的准双向I/O口。每一位有具有如下的特殊功能(或称第二功能):P3.0(RXD):串行输入端P3.1(TXD):P3.2(INT0):外部中断0输入端,低电平有效。P3.3(INT1):外部中断1输入端,低电平有效。P3.4(T0):定时/计数器0外部事件计数输入端。P3.5(T1):定时/计数器1外部事件计数输入端。P3.6(WR):外部数据存储器写选通信号,低电平有效。P3.7(RD):外部数据存储器读选通信号,低电平有效。1.3.2 LED数码管数码管是单片机系统中常用的显示界面

    4、,可以显示“1、2、3、4、5、6、7、8、9、0”和十六进制中的“A、B、C、D、E、F”及小数点“.”,数码管怎样来显示1,2,3,4呢?数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。分别被命名为A,B,C,D,E,F,G,H(小数点)和DP。如果要显示一个数字2,那么A,B,G,E,D这5个段的发光管亮,C,F,H不亮,就可以了。LED 数码管内部结构由图可知:要使数码管发光必须满足两个条件,一、COM端为高电平。二、在A-G端的对应部分输入低电平。这样电流流过相应的字段,数码管就会显示相应的字符了!由于数码管”A,B,CDP”端都并在一起,要使每一个数码管显示各自的内

    5、容,使用动静态扫描方式都可以。下面是共阴极数码管字型码表:51单片机结构框图1.4.程序设计1.4.1.主程序设计中计时采用定时器T0中断完成。主程序循环调用显示子程序和查键,当端口有开关按下时,转入相应的功能程序。流程图如图2-4-1所示。图1-4-1 主程序流程1.4.2.显示子程序显示子程序每次显示6个连续内存单元的十进制BCD码数据。由于采用7段共阳LED数码管动态扫描实现数据显示,显示十进制BCD码数据对应段码存放在ROM中。流程图如图2-4-2所示。显示时取内存地址中数据,然后查表得对应显示段码从P0口输出,P2口将为对应的数码管供电,于是数码管就会显示该地址单元的数据。图2-4-

    6、2 显示子程序1.4.3.定时器T0中断服务程序定时溢出中断周期设为50MS,中断进入后先进行定时中断初值校正,当中断累加到20次时,对秒计数单元进行加1操作。时钟最大计时值为23时59分59秒。#7FH存放“熄灭符”数据,用于时间调整时的闪烁功能。在计数单元中,采用十进制BCD码计数,满十进位。流程图如图3.3所示在程序中采用12MHZ晶振频率,精度为1MS,定时初值为50MS,用循环程序进行20次循环可到1S。当1S到时调用加1程序并判断秒、分是否为60,当秒为60时,秒清零,分加1;当分为60时,分清零。终端结束时,分时计时单元数据移入对应显示单元。图3.3 定时器T0中断服务程序1.5

    7、.按键设置采用共阳七段LED显示器,其管脚a-g,ap与单片机AT89C52的P0口相连;P0口输出段码数据;为保证其输出的电平和LED显示器所需的电平相匹配;P2.0-P2.5作为列扫描输出; P3.0,P3.1,P3.2,P3.3,接4个按钮开关,用于调时.1.6.数码管显示结果 此图显示的是:17点12分03秒1.7.程序#include /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#define KeyPort P3 /定义按键端口#define DataPort P0 /定义数据端口 程序中遇到DataPort 则用P0 替换sbit LATCH1=P22;/定义

    8、锁存使能端口 段锁存sbit LATCH2=P23;/ 位锁存unsigned char hour,minute,second;/定义时分秒bit UpdateTimeFlag;/定义读时间标志unsigned char code dofly_DuanMa10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/ 显示段码值09unsigned char code dofly_WeiMa=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/分别对应相应的数码管点亮,即位码unsigned char TempData

    9、8; /存储显示值的全局变量void DelayUs2x(unsigned char t);/us级延时函数声明 void DelayMs(unsigned char t); /ms级延时void Display(unsigned char FirstBit,unsigned char Num);/数码管显示函数unsigned char KeyScan(void);/键盘扫描void Init_Timer0(void);/定时器初始化/*- 主函数-*/void main (void)unsigned char num;Init_Timer0();while (1) /主循环 num=Key

    10、Scan();switch(num) case 1:hour+;if(hour=24)hour=0; /正常时间 小时 加1 break; case 2:hour-;if(hour=255)hour=23; /正常时间 小时减1 case 3:minute+;if(minute=60)minute=0; /分钟加1 case 4:minute-;if(minute=255)minute=59; /分钟减1 default:break; if(UpdateTimeFlag=1) UpdateTimeFlag=0;TempData0=dofly_DuanMahour/10; /时 /数据的转换,因

    11、我们采用数码管09的显示,将数据分开 TempData1=dofly_DuanMahour%10; TempData2=0x40; /加入- TempData3=dofly_DuanMaminute/10;/分 TempData4=dofly_DuanMaminute%10; TempData5=0x40; TempData6=dofly_DuanMasecond/10;/秒 TempData7=dofly_DuanMasecond%10; uS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0255 这里使用晶

    12、振12M,精确延时请使用汇编,大致延时 长度如下 T=tx2+5 uS void DelayUs2x(unsigned char t) while(-t); mS延时函数,含有输入参数 unsigned char t,无返回值 0255 这里使用晶振12M,精确延时请使用汇编void DelayMs(unsigned char t) while(t-) /大致延时1mS DelayUs2x(245); 显示函数,用于动态扫描数码管 输入参数 FirstBit 表示需要显示的第一位,如赋值2表示从第三个数码管开始显示 如输入0表示从第一个显示。 Num表示需要显示的位数,如需要显示99两位数值则

    13、该值输入2void Display(unsigned char FirstBit,unsigned char Num) static unsigned char i=0; DataPort=0; /清空数据,防止有交替重影 LATCH1=1; /段锁存 LATCH1=0; DataPort=dofly_WeiMai+FirstBit; /取位码 LATCH2=1; /位锁存 LATCH2=0; DataPort=TempDatai; /取显示数据,段码 i+; if(i=Num) i=0; 定时器初始化子程序void Init_Timer0(void) TMOD |= 0x01; /使用模式1

    14、,16位定时器,使用|符号可以在使用多个定时器时不受影响 /TH0=0x00; /给定初值 /TL0=0x00; EA=1; /总中断打开 ET0=1; /定时器中断打开 TR0=1; /定时器开关打开 定时器中断子程序void Timer0_isr(void) interrupt 1 static unsigned int num,i; TH0=(65536-2000)/256;/重新赋值 2ms TL0=(65536-2000)%256; Display(0,8); / 调用数码管扫描 i+; if(i=10) /20ms更新一次 UpdateTimeFlag=1; /更新时间志位置1 n

    15、um+; if(num=500) /大致1s num=0; second+; if(second=60) /秒到60,分钟加1 second=0; minute+; if(minute=60)/分钟到60,小时加1 minute=0; hour+; if(hour=24)/小时到24,回零 hour=0; 按键扫描函数,返回扫描键值unsigned char KeyScan(void) unsigned char keyvalue; if(KeyPort!=0xff) DelayMs(10); keyvalue=KeyPort; while(KeyPort!=0xff); switch(key

    16、value) case 0xfe:return 1; case 0xfd:return 2; case 0xfb:return 3; case 0xf7:return 4; case 0xef:return 5; case 0xdf:return 6; case 0xbf:return 7; case 0x7f:return 8;return 0; return 0;1.8 心得体会:通过本次课程设计,我学习到了很多,也收获了很多。总结如下:一、我对单片机的理论知识有了进一步的掌握,对单片机的原理和实际应用有了更多的理解和掌握。二、我对单片机的C语言编程有了更深刻的认识和更扎实的掌握,我们不断修改,不断尝试,对源代码各个模块的函数都有了一个非常深入的掌握。三、理论与实践相结合才能更好的理解和掌握所学的知识。


    注意事项

    本文(单片机 定时器 课程设计Word格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开