首先,现在接触的单片机是89C51,它是89C52,内核是51做的。只有52个内部程序空间是8KB。51是4KB。这些信息也包括在他们的名字中。
数字8表示芯片为8051核心芯片。
9表示内部闪存E2PROM存储。我不记得其他数字代表什么了。
C代表CMOS
5固定
1表示芯片内部程序存储空间,1为4KB,2为8KB。
RC-STC MCU内部RAM(熟悉的条)为512B,RD+内部RAM为1280B(真的很小。)
我感觉上面的参数可能会用到,就不写细节了。毕竟它的全名是STC 89C51RC 40C-PDIP http://www.zhucesz.com/(说实话,全名是脑死人都记得的)
详细看图
开始用Keil编程。我不知道我为什么要用它。我猜原因是它可以生成十六进制文件(十六进制文件)。单片机只能下载十六进制或bin文件(二进制文件)。
以下是编程时注意的事项列表:
http://www.zhucesz.com/和sbit keyword
特殊功能SFR寄存器数据声明,声明一个8位寄存器,声明16位用SFR16。
示例sfr P0=0x80;它意味着MCU内部地址0x80处的寄存器改名为P0,我们可以用P0直接操作寄存器。简单来说,就是给MCU里面的东西起个名字,方便我们去参观。
特殊功能位声明,即在特殊功能寄存器中声明一位。
示例sbi
T led=P10;它意味着P1端口的最低位被定义为LED。它也感觉像是一个名字。与上面不同的是,sfr声明的是寄存器,sbit声明的是函数位,是位。
还有一个位,用来定义一个位变量。虽然我没有用过一次,但我也没有看到它。.
2.位操作和总线操作(led灯点亮时)
当led灯被控制时,位操作已经被看到。一条语句只能控制一个I/O端口。形状象led1=0;点亮第一盏灯。
不需要为总线操作定义位,因为P1是由sfr在头文件http://www.zhucesz.com/中定义的。MCU知道P1是什么。此时,十六进制数被用来表示灯的状态。
点亮1、3、5和7,写P1=0xAA;.
3.无符号uint(16位)和无符号字符(8位)
Uint是由宏定义的,这一点没有解释。它最初被称为无符号int。
Uint是一个无符号整数,16位二进制,需要一个2字节的表达式,其值范围从0到65535。Uchar是一个无符号字符,8位二进制,只需要1字节表达式,其值范围从0到255。
4.数码管的位选择和段选择
位选择控制哪个数码管亮,段选择控制什么数码管输出,例P0=0x7f;表示数码管显示数字8,0x7f的二进制数字是01111111。
书位选择和段选择上的程序都是通过P0传输的。我不知道其他人是不是。(感觉有点迷茫)
5.键盘
这似乎是最简单的,直接几个if来判断按键是否按下,做什么,松什么,可以随意玩(但是没有乐趣)
6.打破,
LCD,其他的下次我们来总结一下。
转载于:http://www.zhucesz.com/