菜单
  

    2.2 程序及算法设计
    本设计采用广泛使用的C语言,程序的编码、仿真、调试等采用的是Proteus和Keil软件,以下为相关介绍。
    2.2.1程序代码语言
    C语言程序是由各种函数构成的[2],一个C程序至少要包括一个函数,并且一个C源程序有且只能有一个main()函数,但也可能包含其它的函数,因此,函数是构成C程序的基本单位。主程序是通过直接写语句和调用其它的函数实现有关功能的,这些函数可以是C语言本身提供的函数,像这样的函数称为库函数,它们也可以是自己编写的函数,这样的函数称为用户自定义函数。库函数和用户自定义函数会有什么样的区别呢? 简单地说,使用Keil C语言的人,可以直接调用C的库函数但不需要为这个函数书写任何代码,但要包含具有该函数的相应的头文件,而用户自定义函数则是个性化的,它们是用户根据需要而编写的。一个C语言程序,总是从main函数开始执行的[5],而不管物理位置上这个Main()放在什么地方。
    2.2.2 工作原理
    CS-51单片机的内部有2个定时和2个计数器[14]:TO和T1,全双工串行口UART、中断系统,下面一一做出介绍。
    当设置为定时工作方式时,输入信号来自内部振荡器,每个机器周期内定时器的计数器做一次加一运算。因此定时器也叫计算机机器周期的计数器。但是每个机器周期又相当于12个正带脉冲,故定时器计数速率为振荡频率的1/12。如果定时器的计数器产生溢出,则标志着定时时间到。下面分别介绍方式寄存器和控制寄存器。
    (1)方式寄存器TMOD:
    方式控制寄存器,是一可以编程的特殊功能寄存器,字节地址是88H,不可以位寻址。其低4位来控制TO,高4位来控制T1,格式如表1。
    表1 方式寄存器TMOD
    (MSB)                                                        (LSB)
    GATA    C/T    M1    M0    GATA    C/T    M1    M0

    GATE:门控位。当GATE=I时,计数器由外部中断信号INTx来控制,并且当运行控制位TR0(TRl)是“l”时开始计数,是“0”时停止计数。当GATE=“0”时,INTx不参加控制,这时只需要运行控制位TR0是“l”时,计数器就计数,而不管外部中断信号INTx的电平为高电平还是为低电平。
    C/T:计数器方式或定时器方式选择位。当C/T=0时是定时器方式,对机器周期计数。当C/T=1时是计数器方式,计数器的触发输入来自TO或T1端的外部脉冲。M1、M0:操作方式选择位。对应着4种操作方式,单片机复位时,TMOD各位上均是“0”。
    方式0:13位计数器
    方式1:16位计数器
    方式2:可自动重新装载的8位计数器
    方式3:T0分为两个独立的8位计数器,T1停止计数。
    (2)控制寄存器TCON
    定时器控制寄存器也是8位特殊功能寄存器,字节地址为88H,可以位寻址,位地址是88~8FH,其格式如表2.
    表2 控制寄存器TCON
       (MSB)                                                       (LSB)
    TF1    TR1    TF0    TR0    IE1    IT1    IE0    IT0
  1. 上一篇:ZigBee室内定位系统的研究与设计+RSSI的算法及MATLAB仿真
  2. 下一篇:51单片机的家用风扇控制器设计+电路图+源码
  1. stc15单片机水温水压无线监...

  2. PIC16F73单片机逆变电源硬件电路设计+电路图

  3. 51单片机永磁直流无刷电动机驱动控制器设计

  4. Arduino单片机车载太阳能空气净化器设计

  5. AT89C51单片机的无线环境监测装置设计+程序

  6. STC15W404AS单片机太阳能自动浇花器的设计

  7. PIC18F4520单片机水下机器人...

  8. 现代简约美式风格在室内家装中的运用

  9. 中国传统元素在游戏角色...

  10. 巴金《激流三部曲》高觉新的悲剧命运

  11. 江苏省某高中学生体质现状的调查研究

  12. C++最短路径算法研究和程序设计

  13. 浅析中国古代宗法制度

  14. NFC协议物理层的软件实现+文献综述

  15. 上市公司股权结构对经营绩效的影响研究

  16. 高警觉工作人群的元情绪...

  17. g-C3N4光催化剂的制备和光催化性能研究

  

About

优尔论文网手机版...

主页:http://www.youerw.com

关闭返回