首页 > 学院 > 开发设计 > 正文

单片机知识总结(一)

2019-11-14 10:49:08
字体:
来源:转载
供稿:网友

1、什么是单片机?

单片机是指一个集成在一块芯片上的完整计算机系统。完整的计算机系统包括:CPU、内存、内部和外部总线系统,同时集成诸如通信接口、定时器、实时时钟等外围设备,

2、Keil C51存储区关键字

    (1)内部数据存储区----分三种不同的存储类型data、idata和bdata

data:存储类型标识符通常指低128字节的内部数据区,存储的变量直接寻址

idata:存储类型标识符指内部的256个字节的存储区,但是只能间接寻址,而且速度比直接寻址慢

bdata:存储类型标识符指内部可寻址的16字节存储区,20H到2FH可以在本区域声明可寻址位的数据类型

    (2)外部数据存储区

外部数据区可读写访问外部数据区比内部数据区慢,因为外部数据区是通过一个数据指针加载一个地址间接访问的,编辑器提供两种不同的存储类型访问外部数据xdata和pdata

xdata:存储类型标识符指外部数据,64K字节内的任何地址(STC89C52RC)

pdata:存储类型标识符仅指1页或者256字节的外部数据区

    (3)程序存储区

程序存储区是只读的,最多可以有64K字节的程序存储区,程序代码包括所有的函数和库保存在程序区,常数变量也是保存在程序存储区,C51编辑器可以使用code关键字标识符来访问程序存储区

3、sbit使用

    sbit P0_1 = P0^1;  //说明:其中P0必须先用sfr定义好

因此这里用 sbit P0_7 = P0^7;就是定义用符号P0_7来表示P0.7引脚

4、中断系统

    中断服务函数:当出现中断时,程序运行转移到标记有“interrupt”关键字的函数内进行相关中断信息的处理

keil开发环境中,中断服务函数是以函数的方式来实现的,中断服务函数格式如下:

void 函数名(void) interrupt 中断号 using 工作组

{

    //中断服务函数内容

}

例如:  

void Timer0IRQ(void) interrupt 1 using  0   //中断服务函数

{

    TH0 = (65536-50000)/256;   //计数器寄存器高8位重新载入

    TL0 = (65536-50000)%256;   //计数器寄存器低8位重新载入

    P2 = 1<<i;  //进行移位操作

    i++;  //自加

}

注意:using 工作组可以忽略不写,而寄存器工作组有4个(0-3);默认使用寄存器工作组0

void Time0IRQ(void) interrupt 1

{

}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表