-1-一、单片机:就是在一片半导体硅片上集成了中央处理单元、存储器、并行接口I/O、串行I/O口、定时器/计数器、终端系统、系统时钟电路及系统总线的微型计算机。二、单片机的硬件结构:8位微处理器、数据存储器(128B)、程序存储器、4个8位可编程并行I/O口、1个串行口、2个16位定时/计数器、1个看门狗、5个中断源和中断向量、特殊功能寄存器26个、低功耗节电模式、3个程序加密锁定位。其图如下:三、单片机引脚:单片机共有40个引脚;按其功能可分为3类:电源及时钟引脚控制引脚I/O口引脚四、单片机存储器结构程序存储器16位数据存储器8位特殊功能寄存器位地址空间五、四组并行I/O端口1、P0口1)P0口是一个双功能的8位并行口,字节地址在80H,位地址为80H—87H。2)P0口特点:地址/数据复用口和通用I/O口当P0口用作地址/数据复用口时,是一个真正的双向口,用作与外部存储器的连接,片外必须要接上拉电阻。当P0口作为通用I/O口时,由于有高阻抗,所以在端口外要接上上拉电阻,它是一个准双向口。2、P1口1)P1口是单功能的I/O口,字节地址为90H,位地址为90H---97H.2)P1口特点:CPU(运算器)(控制器)XTAL1XTAL2数据存储器(RAM)P0P2程序存储器特殊功能寄存器看门狗定时器P1定时器/计数器16位2个串行口P3中断系统-2-由于P1口内部有上拉电阻,没有高阻抗输入状态,所以不需要在片外接上拉电阻。P1口“读引脚”输入时,必须先向锁存器写入。3、P2口1)P2口是一个双功能口,字节地址为A0H,位地址为A0H---A7H.2)P2口特点:与P1口的一样。4、P3口略六、时钟电路与时序1、时钟电路设计图在书上35页图2-13.2、时钟周期:若时钟晶体的振荡频率为fosc,则时钟周期T=1/fosc。3、机器周期:一个机器周期包括12个时钟周期。即:Tcy=12/fosc。4、指令周期:单字节和双字节指令周期一般为单机器周期和双机器周期。三字节指令周期都是双机器周期;乘、除指令周期4个机器周期。七、复位操作和复位电路1、复位电路设计在书上37页图2-18或图2-19或图2-20.八、单片机最小系统设计如图九、keilC的使用方法:步骤:1、点击桌面快捷键Uv4,打开软件2、单击project出现下拉菜单,单击NewuVisonProject新建一个文件,在弹出的窗口下方文件名随便写(自定义),并保存好。3、在弹出来的窗口左边框里点atmel,在下拉菜单里选中at89s51,单击ok按钮。再点击yes。4、按ctrl+N新建一个文本,保存。在弹出来的窗口下方文件名写好文件名(文件名可以随便写,但必须要以.c为后缀),保存类型不要动。5、在左方框右击SourceGroup1在出现的下拉菜单中选中AddFile……在出现的窗口中双击你刚才写好的文件名(这个文件名必须要以.C为后缀),添加后,关闭窗口。-3-6、在左方框右击Target1在出现的下拉菜单中选中Optionsfor……,,在出现的窗口中点击上方的output,选中复选框createHEXFile,单击OK。这样基可以编写程序了。十、Proteus的使用方法:步骤:1、点击桌面ISIS快捷方式,打开软件。2、保存。3、单击左窗口P,在弹出的窗口中输入元件名,查找所需要的元件。4、查找好元件后,按要求连接电路图,并保存好。十一、中断的概念:单片机能及时地响应中断源提出的服务请求,并作出快速响应和及时处理。十二、中断系统结构在书上88页图5-2.十三、中断控制寄存器IE、IP1、IEEA:中断允许总开关控制位EA=0,所有中断请求被屏蔽EA=1,所有中断请求被放开ES:串行口允许中断ES=0,禁止串行口中断ES=1,允许串行口中断ET1:定时器/计数器T1的中断允许位ET1=0;禁止T1中断ET1=1,允许T1中断EX1:外部中断1中断允许位EX1=0,禁止外部中断1中断EX1=1,允许外部中断1中断ET0:定时器/计数器T0中断允许位ET0=0,禁止T0中断ET0=1,允许T0中断EX0:外部中断0中断允许位EX0=0,禁止外部中断0中断EX0=1,允许外部中断0中断2、IPPS:串行口中断优先级PS=1,高优先级PS=0,低优先级PT1:定时器T1中断优先级PT1=1,高优先级PT1=0,低优先级PX1:外部中断1中断优先级PX1=1,高优先级PX1=0,低优先级PT0:定时器T0中断优先级PT0=1,高优先级PT0=0,低优先级-4-PX0:外部中断0中断优先级PX0=1,高优先级PX0=0,低优先级十四、中断初始化设置1、外部中断0INT0设置:EA=1,IT0=1,EX0=12、外部中断1INT1设置:EA=1,IT1=1,EX1=13、定时器T0:方式0:TMOD=0x00,ET0=1,TR0=1,EA=1,TH0=0Xxx,TL0=0Xxx。方式1:TMOD=0x01,ET0=1,TR0=1,EA=1,TH0=0Xxx,TL0=0Xxx。4、定时器T1:方式0:TMOD=0X00,ET1=1,TR1=1,EA=1,TH1=0Xxx,TL1=0Xxx。方式1:TMOD=0X10,ET1=1,TR1=1,EA=1,TH1=0Xxx,TL1=0Xxx。十五、中断及定时器服务程序设计如下:1、定时器T0方式1(方式0不要重新装载)#includereg52.hvoidmain(void){TMOD=0x01;TH0=0x83;TL0=0x06;ET0=1;EA=1;TR0=1;while(1);}voidintsert0(void)interrupt1{TH0=0x83;TL0=0x06;P0=0x00;}2、定时器T1方式1#includereg52.hvoidmain(void){TMOD=0x10;TH0=0x83;TL0=0x06;ET1=1;EA=1;TR1=1;while(1);}-5-voidintsert0(void)interrupt1{TH0=0x83;TL0=0x06;P0=0x00;}3.外部中断0#includereg51.h#defineucharunsignedchar#defineuintunsignedintVoidmain(){EA=1;IT0=1;EX0=1;While(1);}4、外部中断1#includereg51.h#defineucharunsignedchar#defineuintunsignedintVoidmain(){EA=1;IT1=1;EX1=1;While(1);}十六、定时器/计数器的结构1、结构框图振荡器/121=1&TL1(5位)TH1(8位)TF1中断GATETR1T1P3.5引脚INT1-6-2、TMOD和TCON的结构TMOD结构GATEC/!TM1M0GATEC/!TM1M0TCON结构TF1TR1TF0TR0IE1IT1IE0IT0十七、定时器初始值计算:如:定时1ms,TH0=(65536-1000)/256TL0=(65536-1000)%256十八、单片机与数码管动态显示接口设计(硬件电路,程序设计)1、硬件电路如图:3、程序设计:#includeREGX51.H#defineucharunsignedchar#defineuintunsignedintuchardisplayram[6];ucharcodedisplaytab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};voiddelayms(uintn){uchari;while(n--)for(i=0;i120;i++);}voidclr_dis(){displayram[0]=0x1b;//全灭-7-displayram[1]=0x1b;displayram[2]=0x1b;displayram[3]=0x1b;displayram[4]=0x1b;displayram[5]=0x1b;}voiddisplay(uchardisplayram[6]){unsignedchark,i,j=0x7f;for(i=0;i6;i++){k=displayram[i];P2=j;P0=displaytab[k];delayms(1);P2=0xff;j=(j1)|0x80;}}voidmain(){uchari;clr_dis();while(1){for(i=0;i8;i++){displayram[i]=i;display(displayram);delayms(5);}}}十九、单片机独立键盘设计:1、硬件设计-8-2、程序设计#includeREGX51.H#defineucharunsignedchar#defineuintunsignedintsbitkey1=P3^0;sbitkey2=P3^1;sbitkey3=P3^2;sbitkey4=P3^3;voiddelayms(uintms)//延时1ms{uchari;while(ms--)for(i=0;i120;i++);}voidmain(){while(1){if(key1==0){delayms(5);if(key==0)P0=0xff;}if(key2==0){delayms(5)-9-if(key2==0)P0=0x0f;}if(key3==0){delayms(5)if(key3==0)P0=0xf0;}if(key4==0){delayms(5)if(key4==0)P0=0xa5;}}}