单片机定义变量和定时器/计数器
21ic 2022-01-17

1、在某程序中需要定义如下变量:

(1)定义数码管的显示0~9的共阴极显示代码(0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07, 0x7f, 0x6f)数组dis_code,将其定义在CODE区。

(2)定义定时器/计数器0的赋计数值的高、低字节变量TL0_L和TH0_H,将其定义在DATA去区的0x30、0x31处。

(3)定义长度为20的无符号字符型数组data_buf于IDATA区中。

(4)定义长度为100的无符号字符型数组data_array于XDATA区中。

(5)先定义一个无符号字符型变量status于BDATA区中,再定义8个与status的8个位对应的位变量flag_lamp1、flag_lamp2、flag_machine1、flag_machine2、flag_port1、flag_port2、flag_calcu1和calcu2(从低位到高位)。

答:

(1)unsigned char code dis_code[10]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f};

(2)unsigned char data TL0_L _at_ 0x30, TH0_H _at_ 0x31;

(3)unsigned char idata data_buf[20];

(4)unsigned char xdata data_array[100];

(5)unsigned char bdata status;

sbit flag_lamp1=status^0;

sbit flag_lamp2=status^1;

sbit flag_machine1=status^2;

sbit flag_machine2=status^3;

sbit flag_port1=status^4;

sbit flag_port2=status^5;

sbit flag_calcu1=status^6;

sbit flag_calcu2=status^7;

2、在中增加了定时器/计数器2(T2),修改头文件“REG51.H”,添加如下内容:

(1)特殊功能寄存器T2CON、T2MOD、RCAP2L、RCAP2H、TL2、TH2,地址分别为0xc8~ 0xcd。

(2)对T2CON的8个位分别定义位变量CP_RL2、C_T2、TR2、EXEN2、TCLK、RCLK、EXF2、和TF2(从低位到高位)。

(3)定义位变量T2、T2EX对应于P1口的第0位和第1位;定义位变量ET2对应于EI的第5位;定义位变量PT2对应于IP的第5位;

(4)对P1口的8个位分别定义位变量P0_0、P0_1、P0_2、P0_3、P0_4、P0_5、P0_6和P0_7(从低位到高位)。

答:

(1)

sfr T2CON=0xc8;

sfr T2MOD=0xc9;

sfr RCAP2L=0xca;

sfr RCAP2H=0xcb;

sfr TL2=0xcc;

sfr TH2=0xcd;

(2)

sbit CP_RL2=T2CON^0;

sbit C_T2=T2CON^1;

sbit TR2=T2CON^2;

sbit EXEN2=T2CON^3;

sbit TCLK=T2CON^4;

sbit RCLK=T2CON^5;

sbit EXF2=T2CON^6;

sbit TF2=T2CON^7;

(3)

sbit T2=P1^0;

sbit T2EX=P1^1;

sbit ET2=EI^5;

sbit PT2=IP^5;

(4)

sbit P0_0=P0^0;

sbit P0_1=P0^1;

sbit P0_2=P0^2;

sbit P0_3=P0^3;

sbit P0_4=P0^4;

sbit P0_5=P0^5;

sbit P0_6=P0^6;

sbit P0_7=P0^7;

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • 单片机最小电源供电模块介绍

    [导读]电源供电模块 图 电源模块电路图对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源模块的稳定可靠是系统平稳运行的前提和基础。51

    05-13
  • PIC单片机之I2C(从模式)

    [导读]网上有许多讲解单片机 实现I2C主模式,但是从模式的很少。我现在就来讲讲PIC单片机使用MSSP模块实现I2C从模式。有关I2C协议的具体介绍可以看 《

    05-13
  • PIC单片机的定时器精准计时的计算

    [导读]关于PIC单片机的定时器精准计时的计算在此用了16C711单片机的TMR0做定时中断,希望实现精准计时,在程序中,TMR0用了晶振的32分频,初值#0F

    05-13
  • 单片机时钟是什么?

    [导读]什么时钟?首先我们先讲讲什么是时钟。时钟就是单片机的心脏。每跳动一下。整个单片机的各个电路就同步的动作一下。就好像我们做广播体操的时候 广播上喊的节拍1

    05-13
  • 什么是单片机?

    [导读]什么是单片机?答:把微型计算机的主要功能部件集成在一个芯片上的单芯片微型计算机叫单片机。如果说单片机就是一个电脑你可能不会认可,其实它和我们用的电脑的在

    05-13
  • 51单片机的中断优先级及中断嵌套

    [导读]说最基本的,老的51单片机(80C51系列)有5个中断源,2个优先级,可以实现二级中断服务嵌套。现在很多扩展的51单片机已经有4个优先级(或更多)和更多

    05-13
  • 一张图看线程是什么?

    知识点如下:  面试题:线程是什么?谈线程必须要谈进程,首先线程在Linux里就叫轻量级进程,线程是进程里的一个执行流,创建线程时我们只为线程创建了PCB,我们

    05-13
  • LCD1602 管脚分布及控制指令

    [导读]液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在嵌入式应用系统中得到越来越广泛的应用,这讲中向大家介绍的LCD1602 液晶显示模块(其

    05-13
  • 嵌入式系统的 BootLoader 4大方面

      一、简介   本文将从BootLoader的概念、BootLoader的主要任务、BootLoader的框架结构以及BootLoader的安装等四

    05-12
  • 如何用乘法运算代替除法运算

      与传统的4/8位单片机相比,ARM的性能和处理能力是遥遥领先的。但与之相应,ARM的系统设计复杂度和难度,较之传统的设计方法也大大提升了,同时也大大拓展了针

    05-12
  • 远程数据采集与传送的实用电路

      摘要:介绍了一种以W78E52单片机为控制核心和调制解调器(MODEM)接口进行远程数据采集与传送的实用电路。该电路结构简单,可靠性高,控制方便。文中讲述了

    05-12
  • 采用89C2051硬件电的电子钟

      一、电路原理   本电路采用89C2051单片机设计硬件电路如图1所示。AT89C2051具有2k字节闪速可编程可擦除只读存储器(FLASHEEP

    05-12
下载排行榜
更多
广告