STC15F单片机流水灯程序设计说明_第1页
STC15F单片机流水灯程序设计说明_第2页
STC15F单片机流水灯程序设计说明_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 “流水灯”程序设计说明1 程序设计思路流水灯是经典的测试发光二极管是否正常工作和学习使用发光二极管的案例。流水灯电路连接示意图2 关键代码设计说明 本程序由三个函数组成: (1)void Init() 初始化函数P0M1 = 0x00;/0000 0000P0M0 = 0xff;/1111 1111 将P0各位设置为推挽输出P2M1 = 0x00;/0000 0000P2M0 = 0xff;/1111 1111 将P2各位设置为推挽输出led_sel = 1;/为1时是led灯显示,为0时是数码管显示(2)void delay(uint t):本过程目的是延时tms;但是延时的时间可能不是很

2、准确。单片机工作时,是在统一的时钟脉冲控制下有序进行的。这个脉冲是由单片机控制器中的时钟电路产生的。时钟电路由振荡器和分频器组成,振荡器产生基本的振荡信号,然后进行分频,得到相应的时钟。振荡电路通常有内部振荡和外部振荡两种方式。STC15F2K60S2单片机内部集成高精度R/C时钟,工作时钟可以使用内部振荡器或者外部晶体振荡器(简称晶振)产生的时钟。外部振荡信号通过内部时钟电路,经过分频,得到相应的时钟信号。图2外部振荡模式工作原理示意图说明: (1) 振荡周期: 晶体振荡器的周期。(2) 状态周期: 振荡信号经二分频后形成的时钟脉冲信号,用S表示。一个状态周期的两个振荡周期作为两个节拍分别称

3、为节拍P1和节拍P2。P1有效时,通常完成算术逻辑操作;P2有效时,一般进行内部寄存器之间的传输。(3) 机器周期: 完成一个基本操作所需的时间称为机器周期。一个机器周期包含6个状态周期,用S1、S2、.、S6表示;共12个节拍,依次可表示为S1P1、S1P2、S2P1、S2P2、S6P1、S6P2。(4) 指令周期:CPU执行一条指令所需要的时间。CPU执行指令是在时钟脉冲控制下一步一步进行的,由于指令的功能和长短各不相同,因此,指令执行所需的时间也不一样。一个指令周期通常含有14个机器周期。 MCS-51单片机各种周期的相互关系例:若MCS-51单片机外接晶振为12MHz时,则单片机的四个

4、周期的具体值为:振荡周期1/12MHz1/12s0.0833s时钟周期1/6s0.167s机器周期1s指令周期14s单片机晶体振荡器M的频率可以在4MHz48MHz之间选择,典型值是11.0592MHz(因为使用这个频率的晶振可以准确地得到9600bits/s和19200bits/s的波特率)。(3)主函数:每隔一定延时给P0口赋值,P0位中为1的对应发光二极管将选通。由于显示模式是从右向左不断循环,因此可以利用移位计算来完成不同发光二极管依次显示的效果。要显示的信息放置在了led中,初始化为00000001。void main()Init();/初始化led = 0x01;/第一个LED发光while(1) P0 = led;/LED显示delay

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论