一、什么是单片机?
单片机结构包括:输入设备,运算器,输出设备,控制器,内存。
单板机:Z80
单片机:Intel MCS-51,体积小,功能强,可靠性高,价格低。以最小系统或单片机扩展系统出现在:家用电器,智能仪表,工业过程控制,航空,汽车等领域。
单片机特点:
(1) 受集成度限制,片内存储器容量较小,一般内ROM:8KB以下;
内RAM:256KB以内。
(2) 可靠性高
(3) 易扩展
(4) 控制功能强
(5) 易于开发
单片机发展分四个阶段:
第一阶段(74年~76年)初级阶段:仙童公司F8(8位CPU,64KB)
第二阶段(76年~78年)低性能单片机:Intel公司MCS-48(8位CPU)
第三阶段(78年~83年)高性能单片机:Intel公司MCS-51、
Motorola 6801、Z8
第四阶段(83年~今)新一代单片机(单片微控制器):AT89C51(Atmel)
二、 单片机系统的组成
1、 硬件部分
运算器
CPU 寄存器组
控制器
内存 片内
单片机
片外
中断控制逻辑
并行I / O
通用接口 串行UART
定时 / 计数器T / C
定时 / 计数器:8253
模数转换器:ADC 0809
数模转换器:DAC 0832
外围器件(片外扩展接口) 串行通信扩展:8251
并行通信扩展:8255A、8155
驱动器
DSP等
2、 软件部分(即程序)
需用户自已开发,根据指令系统进行设计。某些功能硬件可以实现,软件也可以实现。
硬件实现——速度快,占CPU时间少;但电路复杂、成本高。
软件实现——简化硬件电路设计,可靠性高,成体低,占CPU时间少,实时性差,此外,还需开发设备。
§1-2计算机中数的表示及运算
计算机只识别和处理数字信息,数字是以二进制数表示的;它易于物理实现,同时,资料存储、传送和处理简单可靠;运算规则简单,使逻辑电路的设计、分析、综合、方便,使计算器具有逻辑性。
一、 用数制及转换
1、各种进位计数及其表示方法
数字符号:0、1、2、……9 ——数码。数码的个数——基数。
进位规则:逢十进一
例如,十进制数,10个数码;采用“逢十进一”
30681 = 3×104+0×103+6×102+8×101+1×100
例如,二进制数,2个数码,采用“逢二进一”
(11010100)2 = 1×27+1×26+0×25+1×24+0×23+1×22+0×21+0×20
总之,N进制数,N个数码,“逢N进一”
2、数制之间的转换
任意进制之间相互转换,整数部分和小数部分必须分别进行,
十进制转换成二进制——短除取余法
余数
2 45
2 22 ————————— 1
2 11 ————————— 0
2 5 ———————— 1
2 2 ———————— 1
2 1 ———————— 0
0 ——————— 1
十进制小数转换成二进制小数——乘2取整法。
二进制转换成十进制——展开求和法。
(101101)2 = 1×25+0×24+1×23+1×22+0×21+1×20
= 32+0+8+4+0+1
= 45
二进制转换成八进制、十六进制与此类似。
二、 机器数及其编码
1、 机器数与真值
机器只认识二进制数:0、1。
这是因为,电路状态常有两个,如通、断;高电平、低电平;…可用0、1表示。
这种0、1、0、1…1在机器中的表现形式——机器数。一般为8位。
无符号数:00000000B、……11111111B即00H ~ FFH
机器数有:
带符号数:+1010110B、-1101001 真值
01010110、11101001 机器数
2、 机器数的编码及运算
对带符号数而言,有原码、反码、补码之分,计算机内一般使用补码。
1) 原码
将数“数码化”,原数前“+”用0表示,原数前“-”用1表示,数值部分为该数本身,这样的机器数叫原码。
设X——原数;则[X]原 = X(X 0)
[X]原 = 2n-1 – X (X 0),n为字长的位数。
如,[+3]原 = 00000011B
[-3]原 = 27 - (-3) = 10000011B
0有两种表示方法:00000000 +0
10000000 -0
原码最大、最小的表示:+127、-128
2) 反码
规定正数的反码等于原码;负数的反码是将原码的数值位各位取反。
[X]反 = X (X 0)
[X]反 =(2n –1)+ X (X 0)
如,[+4]反 = [+4]原 = 00000100 B
[-4]反 = (28 –1)+(-5) = 11111111- 00000101 = 11111010 B
反码范围:-128 ~ +127
两个0; +0 —— 00000000 B
-0 —— 11111111 B
3)补码
补码的概念:现在是下午3点,手表停在12点,可正拨3点,也可倒拨9点。即是说-9的操作可用+3来实现,在12点里:3、-9互为补码。
运用补码可使减法变成加法。
规定:正数的补码等于原码。
负数的补码求法:1)反码 + 1
2)公式:[X]补 = 2n + X (X<0)
如,设X = - 0101110 B , 则[X]原 = 10101110 B
则[X]补 = [X]反 + 1 = 11010001 + 00000001 = 11010010 B
如,[+6]补 = [+6]原 = 00000110 B
[-6]补 = 28 + (-6) = 10000000 – 00000110 = 11111010 B
8位补码的范围 –128 ~ +127。
0 的个数:只一个,即00000000
而10000000 B是-128的补码。