




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计 报 告 课程设计名称 微控制器技术 指导教师 设计起止日期 系 别 自动化学院控制工程系 专 业 自动化 学生姓名 _ _班级/学号 _ _ 成 绩 _1 前言(一)mcs-51单片机: 8051是一种8位元的单晶片微电脑,属于mcs-51单晶片的一种,由英特尔公司于1981年制造。到现在,有更多的ic设计商,如atmel、飞利浦、华邦等公司,相继开发了功能更多、更强大的相容产品。 8051单晶片是同步式的顺序逻辑系统,整个系统的工作完全是依赖系统内部的时脉信号,用以来产生各种动作周期及同步信号。在8051单晶片中已内建时脉产生器,在使用时只需接上石英晶体谐振器(或其它振荡子)
2、及电容,就可以让系统产生正确的时脉信号。8051能够达到以一般工业配线盘更小的体积,来达成自动控制作业,如感测讯号的撷取、循序控制等,它皆能轻易的完成。近年来单晶片的功能不断加强,价格愈加便宜,传统的8051已经成为学校的教材。 单晶片具备了便宜、电路简单、体积小与耗电低等优点,所以目前在业界使用的极为广泛。比如要控制一个马达就不需要使用一台pc来控制,只要一颗单晶片加上驱动电路就可以加以控制这颗马达的运转了。1、中央处理器: 中央处理器(cpu)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,cpu负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出
3、功能等操作。 2、数据存储器(ram) 8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的ram只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 3、程序存储器(rom): 8051共有4096个8位掩膜rom,用于存放用户程序,原始数据或表格。 4、定时/计数器(rom): 8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。 5、并行输入输出(i/o)口: 8051共有4组8位i/o口(p0、 p1、p2或p3),
4、用于对外部数据的传输。 6、全双工串行口: 8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。 7、中断系统: 8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。 8、时钟电路: 8051内置最高频率达12mhz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。 单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一
5、的结构,即普林斯顿(princeton)结构。intel的mcs-51系列单片机采用的是哈佛结构的形式,而后续产品16位的mcs-96系列单片机则采用普林斯顿结构。 mcs-51系列单片机中的8031、8051及8751均采用40pin封装的双列直接dip结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个i/o口,中断口线与p3口线复用。图 前言-1 8051单元8051 单晶片的接脚名称与功用,8051 总共有40 支接脚,4 个8 位元双向i/o,其中port3 除了可以当作i/o以外,也兼具其他特殊功能。 vcc:接正电源5v gnd
6、:接地 port0:可做一般i/o 使用,当作输入或输出时应在外部接提升电阻外部记忆体扩充时,当作资料汇流排(d07)及位址汇流排(a07) port1:一般i/o 使用,内部设有提升电阻。 port2:一般i/o 使用,内部也有提升电阻,外部记忆体扩充时,当作位址汇流排(a815)使用。 rst:晶片重置信号输入脚,只要输入一高电位脉冲,大于2个机械周期,就可以完成重置动作 ale/prog:接外部记忆体时,位址栓锁致能输出脉冲,利用此信号将位址栓锁住,以便取得资料码未接外部记忆体时,有1/6 石英晶体的振荡频率,可做为外部时脉在烧录prom时,此接脚也是烧录脉波之输入端 psen:当作程式
7、储存致能外部程式记忆体之读取脉波,在每个机械周期会动2 次,外接 rom时, 与rom 的oe 脚连接 ea/vpp:接高电位时,读取内部程式记忆体;接低电位时,读取外部程式记忆体。欲烧录内部eprom 时,利用此脚接收21v之烧录供应电压 xtal1, xtal2:接石英晶体振荡器,工作机械周期=石英晶体12图 前言-2 msc-51外部总线结构reset由高电平下降为低电平后,系统即从0000h地址开始执行程序。然而,初始复位不改变ram(包括工作寄存器r0-r7)的状态,8051的初始态。 8051的复位方式可以是自动复位,也可以是手动复位。此外,reset/vpd还是一复用脚,vcc掉
8、电其间,此脚可接上备用电源,以保证单片机内部ram的数据不丢失。 pin30:ale/ 当访问外部程序器时,ale(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ale端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ale会跳过一个脉冲。 如果单片机是eprom,在编程其间, 将用于输入编程脉冲。 pin29: 当访问外部程序存储器时,此脚输出负脉冲选通信号,pc的16位地址数据将出现在p0和p2口上,外部程序存储器则把指令数据放到p0口上,由cpu读入并执行。 pin31:ea/vpp
9、程序存储器的内外部选通线,8051和8751单片机,内置有4kb的程序存储器,当ea为高电平并且程序地址小于4kb时,读取内部程序存储器指令数据,而超过4kb地址则读取外部指令数据。如ea为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,ea端必须接地。 在编程时,ea/vpp脚还需加上21v的编程电压。2 目录基础题目 1、在数码管上显示012345基础题目 2、步进电机控制系统设计基础实验 3、直流电机 pwm 调速设计设计题目:1. 点阵led广告屏设计2. 接触式ic卡读写设计3. 字符型lcd显示设计4. 直流电机控制系统设计5. 电梯控制系统
10、建议模型设计6. 停车场车位控制7. 数字电压表设计8. 智力竞赛抢答器9. 具有闹钟功能的电子时钟设计3 正文基础题目1、在数码管上显示0123451、 系统工作原理利用单片机实现在数码管上显示012345 键盘扫描及数码管显示单元原理图2、 总体设计硬件部分:使用c51单片机,数码管以及8255软件部分:keil23、硬件电路设计及描述键盘扫描及数码显示接线图4、 软件设计流程及描述源程序:org 0000h ljmp main org 0030hmain: mov r0,#7ah mov r6,#06h mov a,#01hloop: mov r0,a inc a inc r0 djnz
11、 r6,loop mov dptr,#7f03h mov a,#81h movx dptr,aa1: lcall dir6 nop sjmp a1dir6: mov r0,#7ah mov r3,#0feh mov a,r3 disp1: mov dptr,#7f00h movx dptr,a inc dptr mov a,r0 add a,#0dh movc a,a+pc movx dptr,a acall delay inc r0 mov a,r3 jnb acc.5,disp2 rl a mov r3,a ajmp disp1 disp2: ret seg: db 3fh,06h,5bh
12、,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h delay: mov r5,#02h delay1: mov r4,#0ffh delay2: djnz r4,delay2 djnz r5,delay1 ret end main5、 综合调试结果分析与展示6、 系统操作说明按图将数码管与c51相连,加载程序之后数码管显示012345基础题目2、步进电机控制系统设计1、系统工作原理:通过单片机的i/o接口控制步进电机运转。使用开环控制方式能对步进电机的方向、速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电
13、顺序就改变一次,即电机转动一次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。课程设计中所使用的步进电机为四相八拍电机,电压为dc5v,其励磁线圈及其励磁顺序如图及表所示。 图 励磁线圈表励磁顺序2、总体设计:关于步进电机:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。 步进电机的主要特性: 1)步进电机必须
14、加驱动才可以运转。转动的速度和脉冲的频率成正比。 2) 步进电机具有瞬间启动和急速停止的优越特性。 3)改变脉冲的顺序, 可以方便的改变转动的方向。 因此,目前打印机,绘图仪,机器人,等等设备都以步进电机为动力核心。 3、硬件电路设计及描述:此进电机的驱动电压12v,步进角为 7.5度。一圈 360 度 , 需要 48 个脉冲完成。该步进电机有6根引线,排列次序如下:1:红色、2:红色、3:橙色、4:棕色、5:黄色、6:黑色。图 实验6-1 硬件连接图4、软件设计流程及描述:源程序:1. #include2. unsigned char v8=0x0e,0x0c,0x0d,0x09,0x08,
15、0x03,0x07,0x06;3. void delay()4. 5. unsigned int i;6. for(i=0;i30000;i+)7. ;8. 9. void main()10. 11. unsigned char m,n;12. p0=0x00;13. while(1)14. 15. for(n=0;n12;n+)16. 17. for(m=0;m8;m+)18. p0=vm;19. delay();20. 21. 22. for(n=0;n0;m-)25. p0=vm;26. delay();27. 28. 29. 30. 5、 综合调试结果分析与展示:步进电机一步一步移动,
16、转速可调。6、系统操作说明:8051单片机的p0口低四位接驱动电路,反相输出接步进电机的4、3、2、1口。基础实验3、直流电机 pwm 调速设计1、实验要求:利用单片机控制直流电机,掌握脉宽调制直流调速的方法。通过调节脉冲宽度,改变占空比,从而改变输出,达到改变直流电机转速的目的。2、总体设计:基于单片机用软件实现直流电机pwm调速系统中, 定时器定时初值。可以通过设定不同的定时初值 ,从而改变占空比d,进而达到控制电机转速的目的。高电平占越大速度越快。3、硬件电路设计及描述:通过单片机的 p1.7 口来模拟 pwm 输出,经过驱动电路来驱动直流电机,实现脉宽调速。将 p1.7直接与驱动电路的
17、 a端连接,驱动单元的输出a连接直流电机单元的2端。直流电机接线图4、软件设计流程及描述:源程序:1. #include2. sbit p1_7=p17;3. void main()4. 5. tmod=0x01;6. th0=0xd8;tl0=0xf0;7. ea=1;8. et0=1;9. tr0=1;10. p1_7=1;11. while(1);12. 13. void time(void) interrupt 114. 15. th0=0xd8;tl0=0xf0;16. p1_7=!p1_7;17. 程序中所设置的方波占空比为50%,高低电平相同,可以任意改变初值,从而改变占空比,进
18、一步达到改变周期调速的目的。5、综合调试结果分析与展示:直流电机转动,改变初值,直流电机转速发生变化。6、系统操作说明:按硬件连线图连线,p1.7口接驱动器,反相接直流电机。加载程序,便可运行,改变转速应修改程序参数。题目1、点阵led广告屏设计1、 系统工作原理16*16 led阵由四块8*8led阵组成。控制点阵的扫描显示,使16*16 led点阵循环显示汉字 例如“新年好,同学们好,欢迎您。”2、 总体设计硬件:c51单片机,8255,led显示屏软件:keil23、 硬件电路设计及描述 点阵显示接线图4、 软件设计流程及描述#include sst89x5x4.h#include ab
19、sacc.h/#include hzdot.h#include hzdot1.h#define row1 xbyte0xef00/ 端口定义#define row2 xbyte0xdf00#define col1 xbyte0xbf00#define col2 xbyte0x7f00void delay(void)/ 延时子程序unsigned char i;for(i=0; i60; i+);void clear(void)/ 清屏row1 = 0x00;row2 = 0x00;col1 = 0xff;col2 = 0xff;void main(void)unsigned char scan
20、=0x01, i, j;unsigned int count=0;clear();while(1)for(i=0; i50; i+)for(j=0; j8; j+)row1 = 0x00;col1 = hzdotcount;/ 0-7列col2 = hzdotcount+1;/ 8-15列count+=2;row1 = scan;/ 0-7行scan = (scan7);/ 行扫delay();row1 = 0x00;for(j=0; j8; j+)row2 = 0x00;col1 = hzdotcount;col2 = hzdotcount+1;count+=2;row2 = scan;/
21、8-15行scan = (scan7);delay();row2 = 0x00;count-=32;count+=2;if(count = (320-32) count=0; 执(0) 子(1) 之(2) 手(3) ,(4) 与(5) 子(6) 偕(7) 老(8)0x08,0x01,0x08,0x01,0x08,0x01,0xbf,0x1f,0x08,0x11,0x28,0x11,0x18,0x11,0x8c,0x11,0x0b,0x11,0x08,0x13,0x08,0x15,0x88,0x10,0x88,0x50,0x48,0x50,0x2a,0x60,0x14,0x40,/*执,0*/0
22、x00,0x00,0xfc,0x0f,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00,0x80,0x00,0x80,0x20,0xff,0x7f,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xa0,0x00,0x40,0x00,/*子,1*/0x40,0x00,0x80,0x00,0x00,0x11,0xfe,0x3f,0x00,0x10,0x00,0x08,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00,0x60,0x00,0x18,0x00,0x14,0x00,0xe7
23、,0x00,0x02,0x7f,0x00,0x00,/*之,2*/0x00,0x00,0x80,0x1f,0xfe,0x00,0x80,0x00,0x80,0x00,0xfe,0x3f,0x80,0x00,0x80,0x00,0x80,0x00,0xff,0x7f,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xa0,0x00,0x40,0x00,/*手,3*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
24、0x00,0x00,0x0c,0x00,0x0c,0x00,0x08,0x00,0x04,0x00,0x00,0x00,/*,,4*/0x00,0x00,0x10,0x00,0x10,0x20,0xf0,0x7f,0x10,0x00,0x10,0x00,0xf0,0x3f,0x00,0x20,0x00,0x20,0x00,0x24,0xfe,0x2f,0x00,0x20,0x00,0x20,0x00,0x12,0x00,0x0c,0x00,0x00,/*与,5*/0x00,0x00,0xfc,0x0f,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00,0x80,0
25、x00,0x80,0x20,0xff,0x7f,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xa0,0x00,0x40,0x00,/*子,6*/0x28,0x04,0x38,0x24,0x28,0x74,0xe4,0x0d,0x24,0x44,0xa6,0x45,0x65,0x7a,0x04,0x01,0xc4,0x1f,0x44,0x10,0x44,0x10,0xc4,0x1f,0x44,0x10,0x44,0x10,0xc4,0x1f,0x44,0x10,/*偕,7*/0x40,0x00,0x40,0x10,0xfe,0x3f,0x
26、40,0x10,0x40,0x08,0x40,0x04,0xff,0x7f,0x80,0x01,0x40,0x00,0x30,0x0c,0x2c,0x03,0xe3,0x00,0x20,0x20,0x20,0x20,0xc0,0x3f,0x00,0x00,/*老,8*/5、 综合调试结果分析与展示6、 系统操作说明按图连接,加载程序后led广告屏滚动出现所设计的字样题目2、接触式ic卡读写设计1、 系统工作原理ic卡8个触点分布如图所示。基于atmel 公司的at24c01 生产的ic卡就是一种简单易用的存储卡,其管脚排列如图所示。接触式ic卡与cpu采用iic总线通讯形式,iic总线只用两条
27、线,不需要片选线,支持带电插拔,scl是时钟线,sda是数据线。iic总线上传送的每一个字节均为8位,并且高位在前。首先由起始信号启动iic总线,其后为寻址字节,寻址字节由高7位地址和最低1位方向位组成,方向位表明主控器的操作方式,为读操作或写操作,其后的数据传输字节数是没有限制的。每传送一个字节后都必须跟随一个应答位或非应答位,在全部数据传送结束后主控制器发送终止信号。iic总线上每传输一个数据位,必须产生一个时钟脉冲。sda线上的数据必须在时钟线scl的高电平周期保持稳定,数据线的电平状态只有在scl线的时钟信号是低电平时才能改变。起始条件(重复起始条件):当scl线为高电平时,sda线从
28、高电平向低电平切换。停止条件:当scl线为高电平时,sda线由低电平向高电平切换。如图所示。启动和停止输出确认ic卡单元原理图 2、 总体设计硬件部分:c51单片机,读卡器,数码管软件部分:keil23、 硬件电路设计及描述 ic卡接线图4、软件设计流程及描述源程序:1. #include reg51.h2. #include iic_c51.c3. #include 4. #define uchar unsigned char5. #define uint unsigned int6. void delay(uint);7. void display(void);8. sbit p1_0=p
29、10;9. uchar disbuffer6=8,5,9,8,4,7;10. uchar disbuffer11=0;11. void delay(unsigned int count)12. 13. unsigned int i;14. for(i=0; icount; i+);15. 16. void display(void)/显示17. 18. uchar codevalue16=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;19. uchar chocode6=0xfe,
30、0xfd,0xfb,0xf7,0xef,0xdf;/位选码表20. uchar i,p,temp;21. for(i=0;i6;i+)22. 23. p=disbufferi;/取当前显示的字符24. temp=codevaluep;/查得显示字符的字码段25. xbyte0x7f01=temp;/送出字码段26. temp=chocodei;/取当前显示的位码段27. xbyte0x7f00=temp;/送出位码段28. delay(20);/延时1ms29. 30. 31. void display1(void)/显示出错32. 33. uchar codevalue16=0x3f,0x0
31、6,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;34. uchar chocode6=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/位选码表35. uchar i,p,temp;36. for(i=0;i5;i+)37. 38. p=disbuffer1i;/取当前显示的字符39. temp=codevaluep;/查得显示字符的字码段40. xbyte0x7f01=temp;/送出字码段41. temp=chocodei;/取当前显示的位码段42. xbyte0x7f00=temp
32、;/送出位码段43. delay(20);/延时1ms44. 45. 46. void main()47. 48. bit temp;49. unsigned char *ptr;50. ptr = (unsigned char *)0x30;/ 指向内部ram 30h处51. init_i2c();/ 初始化iic总线52. isendstr(0xa0,0,disbuffer,6);/ 将wdata中的数据写入卡内53. delay(300);54. temp = ircvstr(0xa0,0,ptr,6);/ 从卡内读出数据并存入指定ram中55. for(ptr=0x30;ptr0x3a
33、;ptr+)56. xbyte0x7f03=0x80; /8255a初始化57. while(1)58. display();59. temp=1;60. 61. if(temp = 1)/ 接收数据出错62. 63. for(ptr=0x30;ptr0x3a;ptr+)64. xbyte0x7f03=0x80; /8255a初始化65. while(1)66. display();67. temp=1;68. 69. 70. while(1);71. 5、 综合调试结果分析与展示输入输出显示一致6、系统操作说明将ic卡插入读卡器,将设计的内容读入卡后,输出至数码管题目3:字符型lcd显示实验
34、设计1、系统工作原理:在液晶显示器上显示字符串、数字等,并循环动态显示。如显示“happy new year!”2、总体设计: 控制上下两个分别显示哪些字符,送入相应的字符编码。3、硬件电路设计及描述:图 实验5-1 lcd液晶显示4、软件设计流程及描述:s/c:滚动对象选择。s/c1:画面滚动;s/c0:光标滚动。 r/l:滚动方向选择。r/l1:向右滚动;r/l0:向左滚动。 该指令代码表如下表所示:dl:设置控制器与计算机的接口形式。接口形式体现在数据总线长度上。 dl1:设置数据总线为8位长度,即db7db0 有效 dl0:设置数据总线为 4 位长度,即 db7db4 有效。该方式下
35、8 位指令代码和数据将按先高4位后低4位的顺序分两次传输。 n:设置显示的字符行数。n0为一行字符行;n1 为两行字符行。 f:设置显示字符的字体。f0为57点阵字符体;f1 为 510 点阵字符体。计算机对指令寄存器通道读操作(rs0,r/w1)时,将读出此格式的“忙”标志 bf值和7位地址指针计数器ac的当前值。计算机随时都可以对 hd44780u读“忙”操作。 bf值反映hd44780u的接口状态。计算机在对 hd44780u每次操作时首先都要读 bf值判断hd44780u的当前接口状态, 仅有在bf0时计算机才可以向hd44780u写指令代码或显示数据和从hd44780u读出显示数据。
36、 计算机读出的地址指针计数器ac当前值可能是 ddram地址也可能是 cgram的地址,这取决于最近一次计算机向ac写入的是哪类地址。5、综合调试结果分析与展示源代码如下:#include#include/引脚定义sbit rspin = p15;sbit rwpin = p16;sbit epin = p17;sbit p1_0 = p10;sbit p1_1 = p11;sbit p1_2 = p12;sbit p1_3 = p13;sbit p1_4 = p14;unsigned char xpos,ypos,yi;unsigned char distab1 = happy new ye
37、ar i love u forever ;unsigned char distab2 = bao bei ha ha ha ;void getkey()if(p1_0=0)yi=1;if(p1_0=1)yi=2;void delay(unsigned int t) unsigned int i,j; for(i=0;it;i+) for(j=0;j10;j+);void lcdwaitidle(void)/忙状态判别 p0=0xff; rspin=0; rwpin=1; epin=1; while(p0&0x80)=0x80);/读取忙标志bf, 判为1否, 为1等待 epin=0;void
38、lcdwcn(unsigned char c)/写指令c rspin=0; rwpin=0; p0=c; epin=1; _nop_(); epin=0;void lcdwc(unsigned char c)/查询忙标志, 然后写指令c lcdwaitidle(); lcdwcn(c);void lcdwd(unsigned char d)/查询忙标志, 然后写数据d lcdwaitidle(); rspin=1; rwpin=0; p0=d; epin=1; _nop_(); epin=0;void lcdpos(void)xpos&=0x3f;ypos&=0x03;if(ypos=0x00
39、) lcdwc(xpos|0x80);/ddram地址设置(第1行)else if(ypos=0x01)lcdwc(xpos+0x40)|0x80);/ddram地址设置(第2行)void lcdinit(void)/lcd初始化 delay(150); lcdwcn(0x38);/总线8位, 两行显示, 5*7点阵字符体 delay(50); lcdwcn(0x38); delay(50); lcdwcn(0x38); lcdwc(0x38); lcdwc(0x08);/关闭显示, 光标消失, 闪烁禁止 lcdwc(0x01);/清屏 lcdwc(0x06);/ac加1计数, 禁止滚动 lc
40、dwc(0x0e);/开显示void display(void)/ 显示子程序for(xpos=0; xpos16; xpos+) if(yi=1)ypos=0; lcdpos(); lcdwd(distab1xpos);else ypos=0; lcdpos(); lcdwd(distab2xpos);ypos=1; lcdpos(); lcdwd(distab3xpos);delay(2000);for(xpos=16; xpos30; xpos+)lcdwc(0x18);/ 滚屏ypos=0; lcdpos(); lcdwd(distab1xpos);ypos=1; lcdpos();
41、lcdwd(distab2xpos);delay(2000);void main(void) yi=2;epin=0;lcdinit();while(1) getkey();lcdwc(0x01);lcdwc(0x02);display(); delay(5000);5、 结果展示:6、系统操作说明按硬件连线图接线,p0口接液晶屏的d0d7,p1.5接rs,p1.6接rw,p1.7接en。加载程序即可。题目4、直流电机控制系统设计1、 系统工作原理通过按键或者开关调节直流电机的转速。通过调节脉冲宽度,改变占空比,从而改变输出,达到改变直流电机转速的目的。2、 总体设计用keil2软件编辑程序,
42、加载到c51上,通过8255将直流电机开启,并设有调速功能3、 硬件电路设计及描述直流电机单元由dc12v、1.1w 的直流电机、小磁钢、霍尔元件及输出电路构成。pwm的示意图如图所示。通过调节 t1 的脉冲宽度,可以改变 t1 的占空比,从而改变输出,达到改变直流电机转速的目的。pwm脉冲示意图通过单片机的 p1.7 口来模拟 pwm 输出,经过驱动电路来驱动直流电机,实现脉宽调速。将 p1.7直接与驱动电路的 a端连接,驱动单元的输出a连接直流电机单元的2端。直流电机接线图4、 软件设计流程及描述#includeunsigned char id;sbit p1_7=p17;sbit p3_
43、7=p37;void delay10ms(void)unsigned char i,j;for(i=20;i0;i-)for(j=248;j0;j-);void main()while(1)if(p3_7=0)/delay10ms();w=0;p1_7=0;/th0=0xb1;tl0=0xe0;else if(p3_7=1) /delay10ms();w=1;p1_7=0;/th0=0x3c;tl0=0xb0;/p1_7=0;switch(w)case 0:/if(p1_7=0)th0=0xb1;tl0=0xe0;p1_7=1;/break;case 1:/if(p1_7=0)th0=0x3c
44、;tl0=0xb0;p1_7=1;/break;5、 综合调试结果分析与展示6、系统操作说明将直流电机通过8255与c51连接,加载程序后,当开关指向0时电机低速旋转,当开关指向1时则变为高速。题目5、电梯控制系统建议模型设计1、 系统工作原理电梯的其实位置为1楼,当start 按下,数码管显示1。当start按下后,电梯开始向上运动,上升指示灯亮。2秒后到达2楼,数码管显示2,并在2楼停留5秒,然后继续上升。每楼层停留5秒,直到4楼,在4楼停留5秒后开始下降2、总体设计3、硬件电路设计及描述连接原理图:中断系统参考接线4、 软件设计流程及描述软件流程图:#include #include #
45、define uchar unsigned char#define uint unsigned intvoid delay(uint);void display(void);uchar disbuffer4=1,2,3,4;sbit start=p10;/start键sbit stop=p11;/stop键sbit led1=p12;/up灯sbit led2=p13;/down灯char i;void main(void)xbyte0x7f03=0x80;/8255a初始化while(1)if(start=1)display(); if(stop=0) continue; break; /停
46、止 if(start=1) continue; void delay(uint p)/延时uint j,k;for(k=0;kp;k+)for(j=0;j30000;j+);void display(void)/显示 uchar codevalue16=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar chocode1=0xfe;/位选码表uchar p,temp;/*上楼*/led2=0;/上升指示灯 for(i=0;i=0&i=1&i=0;i-) p=disbuffer
47、i;/取当前显示的字符temp=codevaluep;/查得显示字符的字码段xbyte0x7f01=temp;/送出字码段temp=chocode0;/取当前显示的位码段xbyte0x7f00=temp;/送出位码段 if(i=1&i=0&i=2)delay(5);/延时5s5、 综合调试结果分析与展示按接线图连接硬件部分,加载之后将开关打到1,程序运行,数码管按照题目要求显示,每隔五秒显示数字+1(-1),当开关打到0时,响应中断,程序停止6、系统操作说明题目6、数字电压表设计1、系统工作原理adc0809 包括一个8位的逐次逼近型的adc 部分,并提供一个8 通道的模拟多路开关和联合寻址逻辑。用它可直接输入8 个单端的模拟信号,分时进行a/d 转换,在多点巡回检测、过程控制等应用领域中使用非常广泛。表 地址信号与选中通道的关系a/d转换单元原理图2、 总体设计硬件:c51单片机 数码管 adc0809 软件:keil23、硬件电路设计及描述a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论