单片机知识总结(一)

2019-04-15 17:31发布

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++;  //自加 } 注意:using 工作组可以忽略不写,而寄存器工作组有4个(0-3);默认使用寄存器工作组0 void Time0IRQ(void) interrupt 1 {
}