单片机方波脉冲计数控制 设计说明书
- 格式:doc
- 大小:486.50 KB
- 文档页数:32
单片机脉冲计数器1、设计内容用单片机实现对一路脉冲计数和显示的功能。
硬件包括单片机最小系统、LED显示、控制按钮;软件实现检测到显示2、要求计数范围0~2000;脉冲输入有光电隔离整形,有清零按钮程序如下:ORG 0000HLJMP MAINORG 0003HLJMP 0100HORG 0013HLJMP 0150HORG 0050HMAIN: CLR AMOV 30H , A ;初始化缓存区MOV 31H , AMOV 32H , AMOV 33H , AMOV R6 , AMOV R7 , ASETB EASETB EX0SETB EX1SETB IT0SETB IT1SETB PX1NEXT1: ACALL HEXTOBCDD ;调用数制转换子程序ACALL DISPLAY ;调用显示子程序LJMP NEXT1ORG 0100H ;中断0服务程序MOV A , R7ADD A , #1MOV R7, AMOV A , R6ADDC A , #0MOV R6 , ACJNE R6 , #07H , NEXTCLR AMOV R6 , AMOV R7 , ANEXT: RETIORG 0150H ;中断1服务程序CLR AMOV R6 , AMOV R7 , ARETIORG 0200HHEXTOBCDD:MOV A , R6 ;由十六进制转化为十进制PUSH ACCMOV A , R7PUSH ACCMOV A , R2PUSH ACCCLR AMOV R3 , AMOV R4 , AMOV R5 , AMOV R2 , #10HHB3: MOV A , R7 ;将十六进制中最高位移入进位位中RLC AMOV R7 , AMOV A , R6RLC AMOV R6 , AMOV A , R5 ;每位数加上本身相当于将这个数乘以2 ADDC A , R5DA AMOV R5 , AMOV A , R4ADDC A , R4DA A ;十进制调整MOV R4 , AMOV A , R3ADDC A , R3DJNZ R2 , HB3POP ACCMOV R2 , APOP ACCMOV R7 , APOP ACCMOV R6 , ARETORG 0250HDISPLAY: MOV R0 , #30HMOV A , R5ANL A , #0FHMOV @R0 , AMOV A , R5SW AP AANL A , #0FHINC R0MOV @R0 , AMOV A , R4ANL A , #0FHINC R0MOV @R0 , AMOV A , R4SW AP AANL A , #0FHINC R0MOV @R0 , AMOV R0 , #30HMOV R2 , #11111110BAGAIN: MOV A , R2MOV P2 , AMOV A , @R0MOV DPTR , #TABMOVC A , @A+DPTRMOV P0 , AACALL DELAYINC R0MOV A , R2RL AMOV R2 , AJB ACC.4 , AGAINRETTAB: DB 03FH , 06H , 5BH , 4FH , 66H , 6DH , 7DH , 07H , 7FH , 6FH ;七段码表DELAY: MOV TMOD , #01H ;0.05s延时子程序MOV TL0 , #0B0HMOV TH0 , #3CHSETB TR0WAIT: JNB TF0 , WAITCLR TF0CLR TR0RETEND单片机的T1口计数,T0口定时,P1口输出段码,P2口位选,三位数码管显示 ORG 0000HAJMP MAINORG 000BHAJMP COUNTORG 0100HMAIN: MOV TMOD,#51HMOV TH1,#00HMOV TL1,#00HMOV TL0,#0B0HMOV TH0,#3CHSETB PT0SETB ET0SETB EASETB TR0SETB TR1WAIT: AJMP WAITCOUNT: MOV 30H,TL1MOV 31H,TH1LCALL BCDLCALL WFRETIBCD: MOV R1,30HMOV A,R1MOV B,#100DIV ABMOV 33H,AMOV A,BMOV B,#10DIV ABMOV 34H,AMOV 35H,BPLAY: MOV A,33HMOV DPTR,#TABMOVC A,@A+DPTRMOV P1,ASETB P2.2LCALL DELAYCLR P2.2MOV A,34HMOVC A,@A+DPTRMOV P1,ASETB P2.1LCALL DELAYCLR P2.1MOV A,35HMOVC A,@A+DPTRMOV P1,ASETB 2.0LCALL DELAYCLR P2.0RETTAB: DB 3FH,06H,5BH,4FH,66F,6DH,7DH,07H,7FH,6FHDELAY: MOV R5,#10HDE1: MOV R7,#5DE2: MOV R6,#20DE3: DJNZ R6,DE3DJNZ R7,DE2DJNZ R5,DE1RETWF: MOV TH1,#00HMOV TL1,#00HMOV TH0,#0B0HMOV TL0,#3CHSETB TR1SETB TR0RETENDCOUNT: CLR TR1CLR TR0MOV 30H,TL1MOV 31H,TH1LCALL BCDLCALL WFRETORG 0000HAJMP MAINORG 000BHAJMP COUNTORG 0100HMAIN: MOV TMOD,#51HMOV TH1,#00HMOV TL1,#00HMOV TL0,#0B0HSETB PT0SETB ET0SETB EASETB TR0SETB TR1WAIT: AJMP W AITCOUNT: MOV 30H,TL1MOV 31H,TH1LCALL BCDLCALL WFRETIBCD: MOV R1,30HMOV A,R1MOV B,#100DIV ABMOV 33H,AMOV A,BMOV B,#10DIV ABMOV 34H,AMOV 35H,BPLAY: MOV A,33HMOV DPTR,#TABMOVC A,@A+DPTRMOV P1,ASETB P2.2LCALL DELAYCLR P2.2MOV A,34HMOVC A,@A+DPTRMOV P1,ASETB P2.1LCALL DELAYCLR P2.1MOV A,35HMOVC A,@A+DPTRMOV P1,ASETB 2.0LCALL DELAYCLR P2.0RETTAB: DB 3FH,06H,5BH,4FH,66F,6DH,7DH,07H,7FH,6FHDE1: MOV R7,#5DE2: MOV R6,#20 DE3: DJNZ R6,DE3DJNZ R7,DE2DJNZ R5,DE1RETWF: MOV TH1,#00H MOV TL1,#00HMOV TH0,#0B0HMOV TL0,#3CHSETB TR1SETB TR0RETENDCOUNT: CLR TR1CLR TR0MOV 30H,TL1MOV 31H,TH1LCALL BCDLCALL WFRET。
实验六单片机定时、计数器实验2——脉冲计数器一、实验目的1.AT89C51有两个定时/计数器,本实验中,定时/计数器1(T1)作定时器用,定时1s;定时/计数器0(T0)作计数器用。
被计数的外部输入脉冲信号从单片机的P3.4(T0)接入,单片机将在1s内对脉冲计数并送四位数码管实时显示,最大计数值为0FFFFH。
2.用proteus设计、仿真基于AT89C51单片机的脉冲计数器。
3.学会使用VSM虚拟计数/计时器。
二、电路设计1.从PROTEUS库中选取元件①AT89C51:单片机;②RES:电阻;③7SEG-BCD- GRN:七段BCD绿色数码管;④CAP、CAP-ELEC:电容、电解电容;⑤CRYSTAL:晶振;SEG-COM- GRN为带段译码器的数码管,其引脚逻辑状态如图所示。
对着显示的正方向,从左到右各引脚的权码为8、4、2、1。
2.放置元器件3.放置电源和地4.连线5.元器件属性设置6.电气检测7.虚拟检测仪器(1)VSM虚拟示波器单击小工具栏中的按钮,在对象选择器列表中单击COUNTER(计数/计时器),打开其属性编辑框,单击运行模式的下拉菜单,如图所示,可选择计时、频率、计数模式,当前设置其为频率计工作方式。
(2)数字时钟DCLOCK单击按钮,在对象选择器中选择DCLOCK(数字时钟)。
在需要添加信号的线或终端单击即可完成添加DCLOCK输入信号。
当前信号设置为DIGITAL型的时钟CLOCK,频率为50K。
三、源程序设计、生成目标代码文件1.流程图2.源程序设计通过菜单“sourc e→Add/Remove Source Files…”新建源程序文件:DZC36.ASM。
通过菜单“sourc e→DZC36.ASM”,打开PROTEUS提供的文本编辑器SRCEDIT,在其中编辑源程序。
程序编辑好后,单击按钮存入文件DZC32.ASM。
3.源程序编译汇编、生成目标代码文件通过菜单“sourc e→Build All”编译汇编源程序,生成目标代码文件。
单片机实验报告0903 班级:自动姓名:一.软件实验实验题目:脉冲计数(定时/计数器实验)1,实验目的:熟悉单片机内部定时/计数器功能,掌握初始化编程方法。
2,实验内容:把外部中断0输入的脉冲进行计数,并送数码管显示。
仿真电路图如下所示:设定频率发生器为50Hz程序如下:#include <reg51.h>sbit P2_0=P2^0; //数码管选定位sbit P2_1=P2^1;sbit P2_2=P2^2;sbit P2_3=P2^3;unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; unsigned int motorspeed;unsigned char GE,SHI,BAI,QIAN;unsigned int counter=0; //脉冲数unsigned int calsp; //设定多长时间计算一次void display(); //数码管显示void delay(); //延迟函数void calspeed();void main(){EA=1; //开启总中断EX0=1; //开启外部中断0IT0=1; //设置成下降沿触发方式TMOD=0x01; //设置定时器0为模式1,即16位计数模式TH0=(65536-10000)/256; //计数时间为10msTL0=(65536-10000)%6;ET0=1; //开启定时器0中断TR0=1; //启动定时器0P2=P2&0xf0;while(1){display();calspeed();}}void calspeed(){if(calsp>=100) //100*10ms=1s计算一次{motorspeed=counter;counter=0; //清零脉冲数calsp=0; //清零标志}}void _TIMER0() interrupt 1{TH0=(65536-10000)/256; //重新装入初值,计数时间为10ms TL0=(65536-10000)%6;calsp++;}void _INT0() interrupt 0{counter++;}void display() //数码管显示函数{GE=motorspeed_x0010_;SHI=motorspeed/10_x0010_;BAI=motorspeed/100_x0010_;QIAN=motorspeed/1000_x0010_;P2_0=1;P0=table[QIAN];delay();P2_0=0;P2_1=1;P0=table[BAI];delay();P2_1=0;P2_2=1;P0=table[SHI];delay();P2_2=0;P2_3=1;P0=table[GE];delay();P2_3=0;}void delay() //延迟函数{unsigned char i=10;while(i--);}二.硬件实验实验题目:用单片机控制二极管1,实验目的:熟悉用单片机控制二极管及其编程方法2,实验内容:跑马灯显示二极管仿真电路图如下所示:程序如下:#include <reg51.h>#include <intrins.h>void delay();//延时子函数void main(void){unsigned char temp;temp=0xfe;while(1){P2=temp;delay();temp=_crol_(temp,1); }}void delay(){unsigned int y;y=10000;while(y--);}。
桂林电子科技大学单片机最小应用系统设计报告指导老师:吴兆华学生:学号:桂林电子科技大学机电工程系目录一、实验课题及要求 (2)二、实验目的 (2)三、系统硬件电路 (2)3.1硬件电路说明 (3)3.3最小系统控制部分 (6)3.3.1晶振电路 (6)3.3.2复位电路 (7)四、软件设计 (10)4.1程序流程图 (10)4.2程序源代码 (11)五、设计总结 (14)六、参考文献 (14)一、实验课题及要求用8031单片机控制可测方波1~100Hz,并显示每分钟计数的脉冲二、实验目的1、加深外部中断指令的基本使用方法;2、熟悉外部中断处理程序的编程方法;3、进一步熟悉8051内部定时/计数器的初始化、使用方法及编程方法;4、进一步掌握8051中断处理程序的编程方法和应用;5、掌握I/O接口的基本方法;6、学会使用并熟练掌握电路绘制软件Protel99SE(或DXP)。
三、系统硬件电路整个设计主要包括单片机基本的晶振电路,按键复位电路,设计中需要的LED管,开关、按键等。
具体的电路图如下图1所示3.1硬件电路说明本次硬件系统包括单片机最小系统、外部中断电路、LED显示电路三部分在下面介绍中对每一部分都有详细的说明。
3.2 AT89C51单片机简介AT89S51单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL 公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
图2 AT89S51引脚图AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
桂林电子科技大学单片机最小应用系统设计报告指导老师:吴兆华学生:张亚鲁学号:082011224桂林电子科技大学机电工程系目录一、实验课题及要求 (3)二、实验目的 (3)三、系统硬件电路 (3)3.1硬件电路说明 (4)3.3最小系统控制部分 (6)3.3.1晶振电路 (6)3.3.2复位电路 (8)四、软件设计 (11)4.1程序流程图 (11)4.2程序源代码 (12)五、设计总结 (14)六、参考文献 (15)一、实验课题及要求用8031单片机控制可测方波1~100Hz,并显示每分钟计数的脉冲二、实验目的1、加深外部中断指令的基本使用方法;2、熟悉外部中断处理程序的编程方法;3、进一步熟悉8051内部定时/计数器的初始化、使用方法及编程方法;4、进一步掌握8051中断处理程序的编程方法和应用;5、掌握I/O接口的基本方法;6、学会使用并熟练掌握电路绘制软件Protel99SE(或DXP)。
三、系统硬件电路整个设计主要包括单片机基本的晶振电路,按键复位电路,设计中需要的LED管,开关、按键等。
具体的电路图如下图1所示图1系统设计总电路图3.1硬件电路说明本次硬件系统包括单片机最小系统、外部中断电路、LED显示电路三部分在下面介绍中对每一部分都有详细的说明。
3.2 AT89C51单片机简介AT89S51单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL 公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
图2 AT89S51引脚图AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
脉冲计数器程序设计
专业
班级:
姓名:
学号:
完成时间:
目录
1、课题设计的任务与要求: (3)
1.1课题设计的任务: (3)
1.2设计要求: (3)
2、设计思路与步骤: (3)
2.1 设计思路: (3)
2.2 设计步骤: (3)
3、参考资料 (5)
4、总结 (5)
1、课题设计的任务与要求:
1.1课题设计的任务:
在8051单片机的INTO引脚外接脉冲信号,要求每送来一个脉冲,把30H单元值加1,若30H单元记满则进位31H单元。
试利用中断结构,编制一个脉冲计数程序。
1.2设计要求:
1)用汇编语言编程;请在过程中加入必要的解释。
2)思路清晰、结构合理、层次清晰,设计简洁但又要能体现设计过程。
2、设计思路与步骤:
2.1 设计思路:
1)外部中断的设定;
2)当有中断产生,需要保护ACC寄存器。
在中断程序内,做加一动作。
2.2 设计步骤:
3、参考资料
3.1 <<MCS-51学习>>
4、总结
(整个课程设计过程中,你觉得学习到了什么,课设过程中自己做的不足的地方有哪些?对自己的学习有何启示?)。
一、实验目的和要求
1、掌握定时器/计数器计数功能的使用方法。
2、掌握定时器/计数器的中断、查询使用方法。
3、掌握Proteus软件与Keil软件的使用方法。
4、掌握单片机系统的硬件和软件设计方法。
二、设计要求
1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计
数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。
2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,设定计
数功能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。
三、电路原理图
四、实验程序流程图和程序清单
五、实验结果
六、实验总结
通过本次实验加强了对于定时器与计数器的运用,熟悉了定时器与计数器的中断查询不同方式的工作方法。
七、思考题
利用定时器0,在P1.0口线上产生周期为200微秒的连续方波,利用定时器1,对P1.0口线上波形进行计数,满50个,则取反P1.1口线状态,在P 1.1口线上接示波器观察波形。
目录• 1. 设计思想和设计说明----------------------- • 2. 硬件原理框图-----------------------------3 • 3. 硬件原理图与其软件配合介绍---------------3 • 4. 程序存储器和数据存储器的单元分配---------6 • 5. 程序流程图-------------------------------7 • 6. 源程序清单-------------------------------9 •7. 芯片资料---------------------------------12 •8. 仿真结果(打印仿真图)-------------------17 •9. 参考文献---------------------------------19一设计思想和设计说明设计思想:本次课程设计采用一个可扩展芯片AT89C51,四个7段LED数码管显示器,经过电阻连接而组成,并具有开关复位等功能。
首先在keil软件中输入计数器程序,在生成以hex为后缀名的文件,拷贝添加到芯片AT89C51中以实现其功能。
其中芯片的P0.0到P0.7和P1.0到P1.7分别和四个7段LED数码管显示器相连接,作为0000-9999计数的十位数显示,在练习使用译码器驱动7段LED数码管显示器的同时,芯片AT89C51的由12MHZ的晶振提供脉冲支持芯片工作。
设计说明:在汇编程序中可将十六进制转换变为十进制输出显示,即使得计数器的初始状态为0000,当第1个计数脉冲来到后,其状态为0001,以后来一个脉冲计一次数,依次可计数到9999后清零,计数器是采用数字电路实现的对个,十,百,千位的数字显示技术装置,能广泛应用于实验室,公共场合,以及实际生活中的一些应用,是人们日常生活中不可少的必需品。
由于数字集成电路以及555振荡器的广泛应用,使得计数器的精度大大的提高。
实验八脉冲计数实验一、实验目的:(1)掌握定时器/计数器的计数工作方式;(2)掌握用定时器/计数器实现脉冲计数的方法;(3)掌握用Keil实现软件调试的方法;(4)掌握用Proteus实现电路设计,程序设计和仿真的方法。
二、实验内容:定时器0外部输入端(P3.4)和定时器1外部输入端(P3.5)作为计数脉冲输入端,利用按钮手控产生单脉冲信号作为计数输入脉冲,编写程序控制,每输入一个(5个)脉冲,工作寄存器R0(R1)的内容加1,同时将R0(R1)的内容送到两位LED数码管中显示出来,晶振频率6MHZ。
三、实验参考电路:P1口接两位数码管显示工作寄存器R0的内容,P2口接两位数码管显示工作寄存器R0的内容,两只按钮分别接P3.2(外部中断0中断输入端)和P3.3(外部中断1中断输入端)。
实验电路如图:四、实验参考程序:ORG 0000HLJMP MAIN 指向主程序;ORG 000BH 定时器/计数器0的入口地址;LJMP T0C 指向中断服务程序;ORG 001BH 定时器/计数器1的入口地址;LJMP T1C 指向中断服务程序;ORG 0030HMAIN: MOV R0,#00H 清零;MOV R1,#00HMOV P1,#00HMOV P2,#00HMOV TMOD,#66H 置计数器0,计数器1为方式2;MOV TH0,#0FFH 置1次计数初值;MOV TL0,#0FFHMOV TH1,#0FBH 置5次计数初值;MOV TL1,#0FBHSETB EA 开中断;SETB ET0SETB ET1SETB TR0 启动计数器0;SETB TR1 启动计数器1;SJMP $ORG 0100HT0C: MOV A,R0 计数器0中断服务程序;ADD A,#01HDA A 十进制调整;MOV R0,A 保存计数器;MOV P1,A 计数值送显示器;RETIORG 0200HT1C: MOV A,R1 计数器1中断服务程序;ADD A,#01HDA A 十进制调整;MOV R1,A 保存计数器;MOV P2,A 计数器送显示器;RETIEND五、实验步骤:(1)建立工程文件,选择单片机型号,生成asm文件,在所生成文件中输入参考程序并调试如下:如图可以看出程序调试无错误,所以可以将其生成HEX文件。
课程设计论文课题:基于STC15单片机的频率计及方波发生器设计目录基于STC15单片机的频率计及方波发生器设计一、设计要求 (3)一)基础部分 (3)二) 发挥部分 (3)二、课程设计的意义与目的 (4)三、方案设计 (5)单片机数字频率计与可调方波发生器程序设计流程图 (5)四、硬件设计原理图: (7)五、硬件设计实物图: (7)六、程序框架: (8)七、功能说明: (8)八、测量: (9)低频测量: (9)高频测量: (9)九、误差分析: (10)第一次误差分析: (10)第二次误差分析: (10)十:实现功能情况表: (11)十一、心得与体会 (13)十二、参考资料 (13)十三、附录: (13)Main主函数: (13)按键扫描函数 (14)数码管显示相关函数: (14)PWM发生器函数: (16)频率计测量功能相关函数: (22)延时函数: (28)基于STC15单片机的频率计及方波发生器设计一、设计要求一)基础部分1. 数字频率计设计要求:1)被测信号为正弦波或方波,频率范围为1Hz~5MHz;2)测量相对误差的绝对值不大于百分之一;3)门限电压2V-5V;4)测量数据刷新时间不大于2s,测量结果稳定。
2. 方波发生器设计要求:1)方波发生器可以分为低频和高频2个端口产生,频率范围1Hz-6MHz;2)通过不同按键实现频率的粗调和微调。
二) 发挥部分1. 频率计范围为大于5MHz;2. 测量相对误差的绝对值不大于千分之一;3. 增加脉冲信号占空比的测量功能。
二、课程设计的意义与目的1.在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。
2.在通信技术中,波形的发生和频率的控制是最基本的要求,也是通信技术的基础,因此设计波形的发生与控制器就显得尤为重要。
3.单片机数字频率计与可调方波发生器,具有可靠性高、体积小、价格低、功能全,广泛应用与各种职能仪器中,能使在测量过程的控制中达到自动化,省掉很多繁琐的人工操作,同时也提高了测试精度。
单片机原理及应用课程设计报告设计题目:学院:专业:班级:学号:学生姓名:指导教师:年月日目录设计题目 (1)1 设计要求及主要技术指标: (1)1.1 设计要求 (1)1.2 主要技术指标 (2)2 设计过程 (2)2.1 题目分析 (4)2.2 整体构思 (4)2.3 具体实现 ................... 错误!未定义书签。
3 元件说明及相关计算 (5)3.1 元件说明 (5)3.2 相关计算 (6)4 调试过程 (6)4.1 调试过程 (6)4.2 遇到问题及解决措施 (7)5 心得体会 (7)参考文献 (8)附录一:电路原理图 (9)附录二:程序清单 (9)设计题目:PWM直流电机调速系统本文设计的PWM直流电机调速系统,主要由51单片机、电源、H桥驱动电路、LED 液晶显示器、霍尔测速电路以及独立按键组成的电子产品。
电源采用78系列芯片实现+5V、+15V对电机的调速采用PWM波方式,PWM是脉冲宽度调制,通过51单片机改变占空比实现。
通过独立按键实现对电机的启停、调速、转向的人工控制,LED实现对测量数据(速度)的显示。
电机转速利用霍尔传感器检测输出方波,通过51单片机对1秒内的方波脉冲个数进行计数,计算出电机的速度,实现了直流电机的反馈控制。
关键词:直流电机调速;定时中断;电动机;PWM波形;LED显示器;51单片机1 设计要求及主要技术指标:基于MCS-51系列单片机AT89C52,设计一个单片机控制的直流电动机PWM调速控制装置。
1.1 设计要求(1)在系统中扩展直流电动机控制驱动电路L298,驱动直流测速电动机。
(2)使用定时器产生可控的PWM波,通过按键改变PWM占空比,控制直流电动机的转速。
(3)设计一个4个按键的键盘。
K1:“启动/停止”。
K2:“正转/反转”。
K3:“加速”。
K4:“减速”。
(4)手动控制。
在键盘上设置两个按键----直流电动机加速和直流电动机减速键。
基于单片机的两相脉冲方波电路设计设计基于单片机的两相脉冲方波电路需要考虑以下几个方面:单片机的选择,输入脉冲信号的条件,输出方波信号的特性,以及其他相关的电路元件。
首先,选择单片机。
在进行电路设计之前,我们需要选择适合的单片机,它应该具有足够的IO接口来实现两个输入信号和一个输出信号。
常见的单片机包括8051系列、AVR系列和PIC系列等。
根据具体需求,可以选择适合的单片机。
其次,输入脉冲信号的条件。
输入脉冲信号应满足一定的条件,如幅值、频率和波形。
对于方波信号,幅值可以选择5V,频率可以选择1kHz,波形应为两相脉冲。
简单起见,我们可以使用两个外部信号源提供输入脉冲信号,或者使用函数发生器产生脉冲信号。
然后,设计输出方波信号的特性。
根据需求,我们可以选择输出方波信号的幅值、频率和波形。
幅值可以选择5V或3.3V,频率可以选择1kHz或者其他合适的频率,波形要求为方波。
然后,我们需要使用单片机的IO口控制输出信号,并使用相应的电路元件进行滤波和保护,确保输出方波信号的稳定性和可靠性。
最后,设计其他相关的电路元件。
在设计过程中,还需要考虑一些额外的电路元件,如滤波电容、限幅电阻、可编程电阻等。
这些元件可以根据具体要求和电路特性进行选择和配置,以确保电路工作正常。
综上所述,设计基于单片机的两相脉冲方波电路需要根据具体需求选择合适的单片机,满足输入信号和输出信号的条件,并考虑其他相关的电路元件的设计。
设计过程中,需要合理布局电路和连接电路,严格按照电路原理和规范进行操作,以确保电路的稳定性和可靠性。
模拟磨损试验机测定试件磨损次数装置实验——脉冲计数实验一,实验目的1,熟悉单片机定时/ 计数功能,掌握初始化编成方法;2,掌握顺序控制程序的简单编程;3,掌握显示数据的编程方法。
二,实验内容1,利用单相全波整流及直流电动机调速系统电气控制实验仪上脉冲产生电路,检测电机转动次数并显示。
实验仪上有八位LED共阴极显示块,软件设定预置数,计到预置数后电机停止运行。
2,开机前,显示预置数。
计数过程中在预置数范围内时,可随时停车并保持已计数值,再按启动钮继续计数或按清除钮删除计数值,重新运行并计数。
三,实验仪器、设备及材料PC机、有关连接线、数字万用表、电气控制实验仪、直流电压表、直流电动机。
四,实验原理用SST8位单片机SST89E564内部定时器/计数器TO计数方式进行计数,计数脉冲通过单片机P3.4 口输入,并送八位显示块显示。
由于在显示块上显示的数据是十进制数,编写程序时必须进行二转十及BCD码调整。
在单相全波整流及直流电动机调速系统实验仪上显示时,把P2 口作为控制字位输出,字位移动,逐位显示;PO 口作为送字形代码输出。
采用共阴极字形代码,每显示一位后要关闭显示,循环逐位(8位)5次。
实验仪上设有按钮NK1、NK2、NK3分别可作为启动(继续)、停车、清除按键,低电平有效,设计程序时要考虑延时。
五,实验步骤1,连接电气控制仪、直流电压表、直流电动机、外部脉冲输入端2,PC机上编程,通过数据线传输至电气控制实验仪,启动电气控制实验仪,完成实验。
六,实验程序JORG OOOOHLJMP START ;转发送主程序JORG OO1BHLJMP STOP ;转发送中断服务JJ START: MOV SP,#6OH ;MOV TMOD,#15H ;TOMOV PO,#O3FHMOV P1,#OFFH 主程序堆栈SP=6OH为计算器,工作方式1,T1为定时器,工作方式1MOV P2,#0FFH ;P0,P1,P2 口赋初值MOV TH0,#00HMOV TL0,#00H ;TO 从0 开始计数MOV TH1,#00HMOV TL1,#00H ;T1 定时时间为65.5msMOV 59H,#00H J 计数器溢出的数累计存放在59H 单元CLR 30H ; 将停止标志位清零MOV 30H,#00H J 设预置数70000MOV 31H,#00HMOV 32H,#00HMOV 33H,#00HMOV 34H,#07HMOV 35H,#00HMOV 36H,#00HMOV 37H,#00HLCALL CT6 ; 显示预置数START1: JB P1.0,START1LCALL DELYJB P1.0,START1 ; 电机是否启动LL0 : JB 30H,STOP1 ; 电机是否停止LL1: SETB TR1 ;SETB EA开定时器SETB ET1 ; 开中断SETB TR0 ; 开计数器CLR P1.3 ; 启动电机LL2 : LCALL CT ; 显示LL3: SETB RS1 ;CJNE R7,#00H,LL0CJNE R6,#00H,LL0CJNE R5,#07H,LL0选择2 区工作寄存器组CJNE R4,#00H,LL0 ; 预置数到否LL4 :SETB P1.3 ; 关电机CLR TR0 ; 关计数器CLR TR1 ;CLR ET1关定时器CLR EA ; 关中断LL5 :JB P1.2,LL6 LCALLDELYJB P1.2,LL6 ; 清零否LJMP START ; 清零调转到STARTLL6 :LCALL CT ; 显示LJMP LL5 ; 不清零调转到LL5 RETSTOP1: SETB P1.3CLR 30H CLRTR0 CLR TR1CLR EA CLR ET1 STOP2: LCALL CTSTART2: JB P1.0,ST1LCALL DELY JBP1.0,ST1 LJMPLL1ST1: JB P1.2,STOP1LCALL DELY JBP1.2,STOP1LJMP START RET关电机停止标志位清零关计数器关定时器关中断显示清零否清零后,调转到START中断子程序STOP: JB P1.1,STP LCALL DELYJB P1.1,STP ;SETB 30H ; STP: RETI 是否停止停止,标志位置1CT: CLR RS1MOV R6,TH0MOV R7,TL0JNB TF0,HBINC 59H ;CLR TF0 显示子程序选择0 区通用工作寄存器组计数器高八位传给R6 计数器低八位传给R7 计数器是否溢出将溢出的数累加后存在59H 单元溢出标志位清零HB: MOV R5,59H ;SETB RS1 ; CLR AMOV R4,A MOVR5,A MOV R6,AMOV R7,A ;MOV R2,#24 ;24H_B: CLR RS1 ; MOVA,R7 将累加后的溢出数传给R5 选择2 区通用工作寄存器组清零次移位选择0 区通用工作寄存器组继续启动电机否继续启动电机,调转到LL1CT2: MOV DPTR,#TAB ; 查表 MOV R0,#30HCT3: MOV R1,#80HCT4: MOV A,R1MOV P2,A ; 送字位 RR A RLC AMOV R7,AMOV A,R6RLC AMOV R6,AMOV A,R5RLC AMOV R5,ASETB RS1 MOV A,R7ADDC A,R7DA AMOV R7,AMOV A,R6ADDC A,R6DA AMOV R6,AMOV A,R5ADDC A,R5DA AMOV R5,AMOV A,R4ADDC A,R4DA AMOV R4,ADJNZ R2,H_B 选择 2 区通用工作寄存器组 二进制数转十进制CT1: SETB RS1 MOV R0,#30H MOV A,R7LCALL C_TMOV A,R6LCALL C_TMOV A,R5LCALL C_TMOV A,R4LCALL C_T选择 2 区通用工作寄存器组 拆字,十进制数由低位到高位依次存放到 30H-37H CT6: MOV R3,#5 循环显示 5 次MOV R1,AMOV A,@R0MOVC A,@A+DPTRMOV P0,A ; 送字形MOV R2,#4FHDJNZ R2,$INC R0CJNE R1,#80H,CT4DJNZ R3,CT2CT5: RETJ拆字子程序C_T: MOV R1,A ; ACALLPTDS1 MOV A,R1SWAP APTDS1: ANL A,#0FH MOV@R0,A INC R0 RETJ消抖延时子程序DELY: SETB RS0 ;MOV R5,#04HDEL1: MOV R4,#0FFHDJNZ R4,$ DJNZR2,DEL1 CLR RS0RETJTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H END七,实验流程图 预置数到否?YN 清零否?启动否?YY停止否?NN清零否?继续(启动)否? 设堆栈,定时/计数器、PO 、P1、P2 口初始化开定时/计数器、计数关定时/计数器 Y。
桂林电子科技大学单片机最小应用系统设计报告指导老师:吴兆华学生:学号:桂林电子科技大学机电工程学院摘要 (3)一、实验课题及要求 (4)二、实验目的及意义 (4)三、任务系统设计 (5)3.1 分析任务要求,写出系统整体设计思路 (5)3.2 问题的难点在按键连续按下超过2S的计时问题,如何实现计时功能。
(5)3.3 分析软件任务要求,写出程序设计思路,分配单片机内部资源 (5)3.4 脉冲宽度测量 (6)3.5 脉冲频率测量 (7)3.6 扩展测量范围原理 (7)3.7 选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图 (7)四、系统硬件电路 (8)4.1 硬件电路说明 (8)4.2 AT89C51单片机简介 (9)4.2.1 AT89S51具有如下特点: (10)4.2.2 AT89S51的运行模式 (10)4.2.3 MCS-51系列单片机的并行I/O口 (11)4.3最小系统控制部分 (12)4.3.2 复位电路 (14)4.4数码管显示电路 (15)4.5 功率放大电路 (17)4.6 显示部分硬件装备图 (19)五、用DXP绘制电路图 (20)5.1 电路板设计规则 (20)5.1.1 考虑PCB 尺寸大小 (20)5.1.2 确定特殊组件的位置 (20)5.1.3 布局方式 (21)5.1.4 电源和接地线处理的基本原则 (21)5.1.5 导线设计的基本原则 (22)5.2 PCB设计注意事项 (22)六、软件设计 (25)6.1程序流程图 (25)6.1.1 主程序图 (25)6.1.2 这段子程序图 (26)6.2程序源代码 (26)七、设计总结 (30)八、参考文献 (31)单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
单片机是20世纪中期发展起来的一种面向控制的大规模集成电路模块,具有功能强、体积小、可靠性高、价格低廉等特点,在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到了广泛的应用,极大的提高了这些领域的技术水平和自动化程度。
IAP15W4K58S4单片机利用PWM脉冲控制4个步进电机的编程方法最近购入一块IAP15W4K58S4(图1)的STC单片机的最小系统,然后用它控制步进电机,步进电机驱动器为基于TB6600的MicroStep Driver(图2)驱动器。
为了能控制该驱动器,利用现有的单片机系统控制驱动器。
连接电路原理图如图3所示,图中Vcc=5V.图1 IAP15W4K58S4单片机最小系统图2 步进电机驱动器使IAP15W4K58S4单片机能够控制步进电机,首先需要产生PWM脉冲,本例子产生频率为1KHz,占空比为50%的脉冲,P2.1、P2.2、P2.3、P3.7口输出4路PWM脉冲。
生产PWM脉冲,单片机涉及到的寄存器(不考虑PWM中断)有P_SW2(端口配置寄存器)、PWMCFG(PWM配置寄存器,初始电平高低)、PWMCKS(PWM时钟选择寄存器)、由PWMCH(高7位)和PWMCL(低8位)组成的15位PWM计数器、由PWM n T1H、PWM n T1L和PWM n T2H、PWM n T2L组成的PWM脉冲翻转计数器(其中PWM n T1H、PWM n T1L组成第一次翻转15位计数器,其中PWM n T2H、PWM n T2L组成第二次翻转15位计数器,n取值范围为2、3、4、5、6、7)、PWM n CR(PWM n的控制寄存器,设置输出管脚选择和中断使能控制,n取值范围为2、3、4、5、6、7)和PWMCR(PWM控制寄存器,用于开启各个端口和PWM模块开关,该寄存器最后设置)。
由于生成PWM,需将I/O 口配置为准双向口或强推挽模式,所以还需配置P m M0和P m M1寄存器,m取值范围为0~3。
以上寄存器各个位配置可参考该单片机的数据手册,本项目的例程参考STC官方例程基础进行修改,如后文所述。
IAP15W4K58S4单片机的特殊功能寄存器区中要使用扩展的特殊功能寄存器需要配置P_SW2的bit7位,将其(bit7)置1。
桂林电子科技大学微机综合设计设计报告指导老师:吴兆华学生:fdb学号:1000150310目录一、设计题目 (2)二、设计内容与要求 (2)三、设计目的和意义 (2)四、设计任务分析 (2)五、系统硬件电路 (4)5。
1 电路原理图绘制 (7)5。
1。
1 电路图绘制要点 (7)5.1.2 硬件电路制作 (8)5。
2 硬件电路说明 (8)5.2.1 单片机基本知识 (8)5。
2.2 AT89S51单片机介绍 (10)5。
2。
3最小系统控制部分 (14)5。
2。
4 数码管显示电路部分 (17)六、软件设计 (20)6。
1程序流程图 (20)6.2程序源代码 (22)八、调试过程 (27)8。
1 硬件调试 (27)8。
1.1 静态调试 (27)8.1.2 动态调试 (27)8.2 软件调试 (28)8。
3 调试收获与改进意见 (29)九、设计总结 (29)十、参考文献 (31)一、设计题目用8031单片机控制可测方波1~100Hz,并显示每分钟计数的脉冲。
二、设计内容与要求设计方波脉冲控制显示系统,用51单片机控制输出方波输出,频率范围为1~100Hz,并用数码管显示每分钟计数的脉冲数和当前频率,用两个按键分别控制频率的增减,同时用一个复位键,可以快速回到起始状态。
三、设计目的和意义1、通过方波脉冲控制系统的设计,将单片机原理课上所学的知识融会贯通、加深理解。
培养独立设计、制作和调试单片机应用系统的能力,熟悉单片机应用系统的软硬件调试方法和系统的设计开发过程,为今后的工作实践活动夯实基础。
2、通过方波脉冲计数控制系统的设计,掌握51系列单片机的内部定时/计数器的功能和使用方法;掌握单片机外部中断的应用和程序的编程方法;掌握数码管的使用和编程方法。
通过设计方案分析、选择和设计,设计并搭制硬件电路,编写控制程序等一系列工作,掌握单片机应用的基本方法,更重要的是学会一种科学的解决问题的逻辑思维,和完成任务的方法.3、培养一个解决困难问题的积极心态,为今后在工作上奠定坚实的基础。
桂林电子科技大学微机综合设计设计报告指导老师:吴兆华学生:fdb学号:1000150310目录一、设计题目 (2)二、设计内容与要求 (2)三、设计目的和意义 (2)四、设计任务分析 (2)五、系统硬件电路 (3)5.1 电路原理图绘制 (7)5.1.1 电路图绘制要点 (7)5.1.2 硬件电路制作 (8)5.2 硬件电路说明 (8)5.2.1 单片机基本知识 (8)5.2.2 AT89S51单片机介绍 (11)5.2.3最小系统控制部分 (14)5.2.4 数码管显示电路部分 (17)六、软件设计 (20)6.1程序流程图 (20)6.2程序源代码 (22)八、调试过程 (27)8.1 硬件调试 (27)8.1.1 静态调试 (27)8.1.2 动态调试 (27)8.2 软件调试 (29)8.3 调试收获与改进意见 (29)九、设计总结 (30)十、参考文献 (31)一、设计题目用8031单片机控制可测方波1~100Hz,并显示每分钟计数的脉冲。
二、设计内容与要求设计方波脉冲控制显示系统,用51单片机控制输出方波输出,频率范围为1~100Hz,并用数码管显示每分钟计数的脉冲数和当前频率,用两个按键分别控制频率的增减,同时用一个复位键,可以快速回到起始状态。
三、设计目的和意义1、通过方波脉冲控制系统的设计,将单片机原理课上所学的知识融会贯通、加深理解。
培养独立设计、制作和调试单片机应用系统的能力,熟悉单片机应用系统的软硬件调试方法和系统的设计开发过程,为今后的工作实践活动夯实基础。
2、通过方波脉冲计数控制系统的设计,掌握51系列单片机的内部定时/计数器的功能和使用方法;掌握单片机外部中断的应用和程序的编程方法;掌握数码管的使用和编程方法。
通过设计方案分析、选择和设计,设计并搭制硬件电路,编写控制程序等一系列工作,掌握单片机应用的基本方法,更重要的是学会一种科学的解决问题的逻辑思维,和完成任务的方法。
3、培养一个解决困难问题的积极心态,为今后在工作上奠定坚实的基础。
四、设计任务分析设计题目要求用单片机控制可测方波脉冲1~100Hz,并显示每分钟计数的脉冲数。
由要求可知道,任务包括方波的产生和方波脉冲数的显示两个部分。
方波由单片机内部定时器来产生,通过改变其定时初值来改变方波的频率,在硬件电路中可利用按键来控制频率的增减。
方波的波形利用示波器来观察。
由此,可有几个方案来实现题目的要求。
方案一:51单片机最小系统,外接上一个数码管显示电路用以显示每分钟的脉冲数。
数码管的断码选择端直接与单片机的P0口连接,位码选择端与P2口连接。
利用改变定时初值的方式来改变方波频率。
这个方案的优点是硬件电路简单,节省元器件,程序编写容易。
但是缺点也明显,只用一个数码管,无法显示当前的脉冲频率,而且无法用硬件实现频率的+1,-1的变化。
虽然实现了题目的基本功能,但是功能简单有限,也就达不到课程设计的目的了。
以下是方案一的电路图:图1 方案一原理图方案二:51单片机最小系统,加上两个数码管显示电路,分别显示脉冲数和频率。
此外,每个数码管用74HC573数据锁存器来驱动,增加两个按键用来控制频率的增减。
这个方案的优点是能利用数码管显示当前的频率和脉冲数,并且能用按键控制频率的大小。
数码管利用数据锁存器驱动,驱动能力更强,还可以支持I/O口扩展。
缺点是,数码管电路布线比较困难,跳线多。
综合分析以后,我们决定用方案二,虽然方案二难度相比方案一而言难度加大了,但是功能实现得很彻底。
当然,面对PCB布局布线的困难,我们只能采用双面板的形式。
我们也相信,这个对我们而言将更具挑战性。
下面就对方案二进行详细分析。
五、系统硬件电路硬件电路主要包括51单片机最小系统(晶振电路和复位电路)、数码管显示电路。
原理图如下。
图1 51单片机最小系统原理图图2 51单片机最小系统PCB图图3 数码管显示电路原理图图4 数码管显示电路PCB图图5 元器件清单5.1 电路原理图绘制5.1.1 电路图绘制要点绘制电路原理图要熟悉运用绘制软件(Protel 99 SE或者Altium Designer软件),绘制的最终目的是得到美观、清晰的图。
因而在绘制前根据需要,对绘图环境参数设计;绘制时正确元件载入(特别是元器件的封装形式一定要选着正确)与编辑;元件载入后正确连线,调整得到美观的原理图电路图绘制注意事项:1、元器件之间连线用Wire命令而不是用Line命令,虽然从表面上看,两者都是直线,只是颜色稍有些不同,但用Wire命令放置的导线是具有电气特性的,而用Line命令放置的直线是不具有电气意义的,两者具有根本区别的。
2、注意理解说明文字(Annotation)和网络标号(Net Label)的区别:说明文字是没有电气特性的,只是纯粹的文字解释,而网络标号是有电气特性的,它可以把电路图具有相同网络标号的电气连线是连在一起的,即在两个以上没有相互连接的网络中,把应该连接在一起的电气连接点定义成相同的网络标号,可以使它们在电气含义上属于真正的同一网络。
3、导线的端点与元件引脚的端点相连,而不是把导线和元件的引脚重叠,最常见的错误是当导线与元件引脚重叠时,这时软件会自动在元件引脚的端点加一节点,这时再把节点删除掉,认为就这样就正确了,实际上如果只是为了得到一张原理图,这样做并没有什么不妥,但却不能得到正确的网络表。
4、导线与导线之间不要有重叠。
5、不要在同一地方放两个以上相同的元件(如两个电源地符号重叠在一起)。
6、在放置电源地符号时,电源地符号的显示类型(Style)为Power Ground,这时Power Port 的属性对话框中网络标号(Net)的内容默认是不显示的,因此有些初学者在放置电源地符号时,没有留意网络标号的内容,致使有网络标号(Net)的内容网络标号为“GND”,有些网络标号的内容却为“VCC”,如果纯粹只为得到一张原理图,这样做是没有问题的,但是若利用自动布线来设计PCB板时,却会造成电源和地短路,从而使整块PCB板报废。
正确的做法是在放置电源地符号符号,把Power Port的属性对话框中网络标号(Net)的内容全部设置为GND。
7、在绘制电路原理图时,通常总线、总线分支线和网络标号是一起存在的,要注意总线和总线分支线不具有电气特性的,而网络标号是具有电气特性的,因此在放置总线时不能用加粗了的导线来替代,也不能用导线来替代总线分支线,总线分支线和元件引脚之间不能直接连在一起,而应通过导线接在一起,网络标号应放在导线上,不能放在元件引脚上,不能用说明文字(Annotation)来替代网络标号(Net Label)。
8、元器件封必需要有合适的封装方式。
没封装会影响后面生产PCB原理图。
封装形式不正确,后面生产PCB原理图时,期间的形式可能跟元器件的真实外形尺寸不相似。
5.1.2 硬件电路制作5.2 硬件电路说明5.2.1 单片机基本知识图6 单片机的基本组成单片机各部分的组成及功能的说明:(1)处理器单片机的中央处理器(CPU)是单片机的核心,完成运算和控制操作。
中央处理器主要包括运算器和控制器两部分。
单片机CPU和通用微处理器基本相同,只是增加了“面向控制”的处理功能,如位处理、查表、多种跳转等。
(2)运算器运算器主要用来实现算术、逻辑运算和位操作。
其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器。
ALU是运算电路的核心,实质上是一个全加器,完成基本算术和逻辑运算。
算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位和位取反等。
暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。
ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。
累加器是CPU使用最频繁的一个寄存器。
ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。
CPU中的数据传送大多通过累加器实现,因此累加器又是数据的中转站。
如单片机与片外ROM或I/O扩展口进行数据交换必须通过ACC来进行。
B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。
运算结果存于AB寄存器对中。
(3)控制器控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件。
控制器只要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等。
其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。
程序计数器PC(Program Counter)是控制器中最基本的寄存器,是一个独立的计数器,存放着下一条将要从程序存储器中取出指令代码的地址。
PC的基本工作过程是:读指令时,PC将其内容送给地址寄存器,作为所取指令的地址给程序存储器,然后程序存储器按此地址输出指令字节,同时PC自动加1,指向下一条指令的地址。
PC的变化轨迹决定了程序的流程。
PC是不可访问的,顺序执行程序时自动加1;执行转移程序时,自动将其内容更改成指向转移目的地址。
程序计数器的计数宽度决定了程序存储器的地址范围。
在AT89单片机中,PC是一个16位的计数器,可对64KB程序存储器进行寻址。
复位时PC的内容为0000H,说明程序应从程序存储器0000H单元开始执行。
指令寄存器是用来存放指令操作码的专业寄存器。
执行程序时,首先要从程序存储器中取出指令,送给指令寄存器;指令寄存器再将其输出到指令译码器;指令译码器将该指令进行译码,根据指令性质送到定是逻辑和条件转移逻辑电路,产生定时控制信号,完成程序的执行过程。
定时及控制逻辑电路根据指令的性质发出一系列定时和控制信号,控制计算机个组成器件进行相应的操作,执行指令。
(4)存储器单片机内部的存储器分为程序存储器和数据存储器。
程序存储器主要用来存储指令代码和一些常数及表格。
程序在开发调试成功之后就永久性地驻留在程序存储器中,在停机断电状态下代码也不会丢失。
程序存储器在操作运行过程中只读不写,因而又被称为只读存储器Rom(Read Only Memory)。
标准型AT89单片机的程序存储器采用4KB的快速擦写存储器Flash Memory,编程和擦除完全是电气实现的。
编程和擦除速度快,可以使用通用的编程器脱机编程,也可以在线编程。
Flaash的应用,是AT89系列单片机的显著特点之一。
在单片机中,用随机存储器RAM(Random Access Memory)来存储程序运行期间的工作变量和数据,所以又称为数据存储器。
一定容量的RAM集成在单片机内,提高了单片机的运行速度,也降低了功耗。