菜单
  

    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. 单片机无线通信的恒压供水系统设计+程序

  2. 单片机的火灾报警系统设计+电路图+程序

  3. AT89S51单片机储藏室温湿度...

  4. MSP430单片机多功能电能表设计+电路图

  5. STC89C52RC单片机的智能路灯...

  6. STC12C5A60S2单片机信号发生器的设计+电路图

  7. STC89C52单片机嵌入式家庭防...

  8. 十二层带中心支撑钢结构...

  9. java+mysql车辆管理系统的设计+源代码

  10. 酸性水汽提装置总汽提塔设计+CAD图纸

  11. 河岸冲刷和泥沙淤积的监测国内外研究现状

  12. 杂拟谷盗体内共生菌沃尔...

  13. 中考体育项目与体育教学合理结合的研究

  14. 大众媒体对公共政策制定的影响

  15. 当代大学生慈善意识研究+文献综述

  16. 电站锅炉暖风器设计任务书

  17. 乳业同业并购式全产业链...

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回