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
{
}