单片微机原理(1)电子实验中心课程内容微型计算机的基础知识围绕MCS-51系列单片机的原理结构、汇编指令系统、汇编语言程序设计,系统总线扩展技术,单片机定时计数、中断、串口通信,初步掌握单片机系统的设计开发方法及单片机的简单应用。学生能力与本门课程的关系目录第1章微型计算机基础知识第2章MCS-51单片机的结构和原理第4章MCS-51单片机的指令系统、程序设计第5章MCS-51的I/O接口及应用第6章单片机中断系统及应用第7章单片机定时系统及应用第9章MCS-51系统的串行接口第10章MCS-51的系统总线与资源扩展第11章ADDA的应用课程学时总学时64学时学时分配:MCS51系列单片微机48学时实验16学时教材及参考书教材:《单片微机原理与接口技术》自编参考书:《单片机原理与应用》所有都可以《微型计算机原理及接口技术》裘雪红西安电子科技大学出版社学习本课程的建议抓住7个环节:练习、实验、预习、听课、复习、记笔记、作业注重两个能力:自学能力、实践能力注意两个交流:与同学、老师的交流实现一个转变:基础课向专业基础课学习方法的转变。处理好课程与教材的关系:课程学时及内容安排,学习参考书理论课教学形式课堂教师讲授为主课堂教师提示,课后学生自学为主(思考题等)完全学生自学为主,讨论课,安排在答疑时间,同学讨论,教师答疑总结。学习要求:成绩考核考试成绩80%平时成绩20%归纳总结所学其中某章内容平时成绩:考勤、课后作业(专用一本)、课堂表现课程学习总结第一章微型计算机基础知识一、(1.1)微型计算机发展二、(1、4)微型计算机中数的表示和运算三、(1.2)微型计算机模型四、(1.3)单片微型计算机一计算机的历史与发展计算机发展的五个阶段(基本电子器件)电子管计算机(1946—1956)用机器语言、汇编语言编写程,用于军事和国防尖端技术晶体管计算机(1956—1962)开始使用高级语言,开始用于工程技术、数据处理和其它科学领域小规模集成电路计算机(1962—1975)采用微程序、流水线等技术,提高运行速度;出现操作系统、诊断程序等软件大规模集成电路计算机(1975—1981)采用半导体存储器、采用图形界面操作系统器件速度更快,软件、外设更加丰富超大规模集成电路计算机(1981—至今)微型化、巨型化、多媒体及人工智能联网应用。1、1微型计算机的分类1)按形态分类2)按CPU的字长分类3)按主机装置分类4)应用类型1)按形态分类单片机、单板机、微机系统单板机单片机系统机三种应用形态图示4)按应用类型分:用于数值计算、数据处理及信息管理方向通用微机,例如:PC微机功能越强越好、使用越方便越好。用于过程控制、智能化仪器仪表方向、实时信号处理的专用微机。例如:单片机、工控机可靠性高、实时性强程序相对简单、处理数据量小。DSP硬件计算,速度快。计算机的应用范围科学计算信息处理实时控制:工业现场控制、家用电器等计算机辅助设计人工智能:模式识别、专家系统、机器人等二、计算机的数1.进位计数制计算机中采用的是二进制数。二进制数的要素有:每一位数是0或1两个数码中的一个;逢二进一,借一为二。二进制数的尾符为:B十进制数是日常生活中使用最多的数制。十进制数的要素有:每一位数是0~9十个数码中的一个;逢十进一,借一为十。十进制数的尾符为:D1.位(bit)2.字节(Byte)3.字和字长(word)4.位编号5.指令、指令系统和程序注意:计算机以二进制代码的形式表示信息有关术语位(bit)指计算机能表示的最基本最小的单位在计算机中采用二进制表示数据和指令,故:位就是一个二进制位,有两种状态,“0”和“1”字节(Byte)相邻的8位二进制数称为一个字节1Byte=8bit如:1100001101010111位1或01位字节110000118位字110000110011110016位双字1100001100111100110000110011110032位高字节低字节高字低字把一个字定为16位,1Word=2Byte一个双字定为32位1DWord=2Word=4Byte字长字长是每一个字所包含的二进制位数。表示信息的二进制代码单元的基本长度位数)称为字长,字长越长。表示的数值范围就越大,精度就越高。•字长常与CPU内部的寄存器、运算装置、总线宽度一致。•三总线:AB、DB、CB例某CPU内含8位运算器,则:参加运算的数及结果均以8位表示,最高位产生的进位或借位在8位运算器中不保存,而将其保存到标志寄存器中10110101被加数8位+10001111加数8位进位111111101000100和8位PSW标志寄存器运算器标志寄存器运算器被加数加数和进位▲字长是衡量CPU工作性能的一个重要参数。不同类型的CPU有不同的字长。如:Intel4004是4位8051是8位8088/8086/80286是16位80386/80486、Pentium是32位10101100011001011001100001000011被加数+11000011110000110001010101011000加数进位11111111111101110000001010001010110110011011和4位8次8位4次16位2次32位1次位编号为便于描述,对字节,字和双字中的各位进行编号。从低位开始,从右到左依次为0、1、2...←编号7654321010100010D7D6D5D4D3D2D1D0A7A6A5A4A3A2A1A0字节数据Data地址AddressD0D7D15D8158101010101010101070A0A7A15A8字的编号为15~0双字的编号依此类推,为31~0例如0+1=11+1=1011+1=10010–1=1(1)二进制(Binary)(xxx)2或(xxx)B例如(1011.11)2或(1011.11)B数码:0、1进位规律:逢二进一,借一当二权:2i基数:2系数:0、1按权展开式表示(1011.11)2=1×23+0×22+1×21+1×20+1×2-1+1×2-2将按权展开式按照十进制规律相加,即得对应十进制数。=8+0+2+1+0.5+0.25(1011.11)2=(11.75)10=11.75(1011.11)2=1×23+0×22+1×21+1×20+1×2-1+1×2-2(2)八进制和十六进制进制数的表示计数规律基数权数码八进制(Octal)(xxx)8或(xxx)O逢八进一,借一当八80~78i十六进制(Hexadecimal)(xxx)16或(xxx)H逢十六进一,借一当十六160~9、A、B、C、D、E、F16i例如(437.25)8=4×82+3×81+7×80+2×8-1+5×8-2=256+24+7+0.25+0.078125=(287.328125)10例如(3BE.C4)16=3×162+11×161+14×160+12×16-1+4×16-2=768+176+14+0.75+0.015625=(958.765625)10二、不同数制间的关系与转换(1)不同数制间的关系2不同数制间的关系与转换不同数制之间有关系吗?十进制、二进制、八进制、十六进制对照表77011176601106550101544010043300113220010211000110000000十六八二十F17111115E16111014D15110113C14110012B13101111A121010109111001981010008十六八二十非十进制换成十进制:按权展开相加(2)不同数制间的转换(10101.11)B=1×24+1×22+1×20+1×2-1+1×2-2=16+4+1+0.5+0.25=(21.75)D(2A.8)H=2×161+10×160+8×16-1=32+10+0.5=(42.5)D(165.2)O=1×82+6×81+5×80+2×8-1=64+48+5+0.25=(117.25)D十进制换成其他进制十进制数转换为其他进制数时,可将十进制数分为整数和小数两部分进行。•整数的转换——基数除法规则:除基取余,商零为止,逆序排列。•小数的转换——基数乘法规则:乘基取整,满足精度要求为止,顺序排列。1.5001整数0.7500[例]将十进制数(26.375)10转换成二进制数26613011012(26)10=(11010)2×2×21.0001.37522220.375×2一直除到商为0为止余数130读数顺序读数顺序.011每位八进制数用三位二进制数代替,再按原顺序排列。八进制→二进制二进制→八进制(11100101.11101011)2=(345.726)8(745.361)8=(111100101.011110001)2补0(11100101.11101011)2=(?)811100101.1110101100345726从小数点开始,整数部分向左(小数部分向右)三位一组,最后不足三位的加0补足三位,再按顺序写出各组对应的八进制数。补01110010111101011二进制与八进制间的相互转换一位十六进制数对应四位二进制数,因此二进制数四位为一组。(10011111011.111011)2=(4FB.EC)16(3BE5.97D)16=(11101111100101.100101111101)2补0(10011111011.111011)2=(?)1610011111011.111011004FBEC0十六进制→二进制:每位十六进制数用四位二进制数代替,再按原顺序排列。二进制→十六进制:从小数点开始,整数部分向左(小数部分向右)四位一组,最后不足四位的加0补足四位,再按顺序写出各组对应的十六进制数。补010011111011111011二进制和十六进制间的相互转换计算机中两个重要的数位LSB:最低有效位。MSB:最高有效位。对八位二进制数:D0-D6:表示数字本身。D7:表示符号位。即MSB为符号位。表示的方法:原码、反码及补码。3带符号数的表示原码MSB=0表示正数;MSB=1表示负数。X1=+105D则[X1]原=01101001BX2=-105D则[X1]原=11101001B0有两种表示方法:00000000B与10000000B。[+0]原=00000000[-0]原=10000000可表示的正数与负数个数相等。可表示的数据范围:(-127—127)反码正数的反码=原码;负数的反码=符号位不变,数字位逐个取反。[+31]原=00011111[-31]原=10011111[+31]反=00011111[-31]反=111000000有两种表示方法:00000000B与11111111B。[+0]反=00000000[-0]反=11111111可表示的正数与负数个数相等。可表示的数据范围:(-127—127)[+127]原=01111111[-127]反=10000000补码正数的补码=原码;负数的补码=反码+1。[+7]原=00000111[-7]原=10000111[+7]反=00000111[-7]反=11111000[+7]补=00000111[-7]补=111110010的表达式是唯一的:00000000B[+0]原=00000000[-0]原=10000000[+0]反=00000000[-0]反=11111111[+0]补=00000000[-0]补=00000000表示的范围:(-128—127)可表示的负数比正数多一个。补码的运算8位二进制补码所能表示的数值范围是-128~+127。对于微型计算机,如果运算结果超过了它所能表示的数值范围,称为溢出。引入补码可以将减法运算化成加法运算。[X-Y]补=[X]补+[-Y]补5、计算机中的编码制度编码制度:指用一组二进制数表示某个符号(数字、字符)的方法。BCD码:用四位二进制数表示一位十进制数的