欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    微控制器原理课程设计报告.doc

    • 资源ID:3268059       资源大小:7.95MB        全文页数:66页
    • 资源格式: DOC        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    微控制器原理课程设计报告.doc

    北京信息科技大学微控制器技术课程设计报告 课 程 设 计 报 告 课程设计名称 微控制器技术 指导教师 设计起止日期 系 别 自动化学院控制工程系 专 业 自动化 学生姓名 _ _班级/学号 _ _ 成 绩 _1 前言(一)MCS-51单片机: 8051是一种8位元的单晶片微电脑,属于MCS-51单晶片的一种,由英特尔公司于1981年制造。到现在,有更多的IC设计商,如ATMEL、飞利浦、华邦等公司,相继开发了功能更多、更强大的相容产品。 8051单晶片是同步式的顺序逻辑系统,整个系统的工作完全是依赖系统内部的时脉信号,用以来产生各种动作周期及同步信号。在8051单晶片中已内建时脉产生器,在使用时只需接上石英晶体谐振器(或其它振荡子)及电容,就可以让系统产生正确的时脉信号。8051能够达到以一般工业配线盘更小的体积,来达成自动控制作业,如感测讯号的撷取、循序控制等,它皆能轻易的完成。近年来单晶片的功能不断加强,价格愈加便宜,传统的8051已经成为学校的教材。 单晶片具备了便宜、电路简单、体积小与耗电低等优点,所以目前在业界使用的极为广泛。比如要控制一个马达就不需要使用一台PC来控制,只要一颗单晶片加上驱动电路就可以加以控制这颗马达的运转了。1、中央处理器: 中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 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),用于对外部数据的传输。 6、全双工串行口: 8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。 7、中断系统: 8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。 8、时钟电路: 8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。 单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(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:接地  PORT0:可做一般I/O 使用,当作输入或输出时应在外部接提升电阻外部记忆体扩充时,当作资料汇流排(D07)及位址汇流排(A07)  PORT1:一般I/O 使用,内部设有提升电阻。  PORT2:一般I/O 使用,内部也有提升电阻,外部记忆体扩充时,当作位址汇流排(A815)使用。  RST:晶片重置信号输入脚,只要输入一高电位脉冲,大于2个机械周期,就可以完成重置动作  ALE/PROG:接外部记忆体时,位址栓锁致能输出脉冲,利用此信号将位址栓锁住,以便取得资料码未接外部记忆体时,有1/6 石英晶体的振荡频率,可做为外部时脉在烧录PROM时,此接脚也是烧录脉波之输入端  PSEN:当作程式储存致能外部程式记忆体之读取脉波,在每个机械周期会动2 次,外接 ROM时, 与ROM 的OE 脚连接  EA/VPP:接高电位时,读取内部程式记忆体;接低电位时,读取外部程式记忆体。欲烧录内部EPROM 时,利用此脚接收21V之烧录供应电压  XTAL1, XTAL2:接石英晶体振荡器,工作机械周期=石英晶体12图 前言-2 MSC-51外部总线结构RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。 8051的复位方式可以是自动复位,也可以是手动复位。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。 Pin30:ALE/ 当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。 如果单片机是EPROM,在编程其间, 将用于输入编程脉冲。 Pin29: 当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。 Pin31:EA/Vpp程序存储器的内外部选通线,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. 电梯控制系统建议模型设计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 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,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接口控制步进电机运转。使用开环控制方式能对步进电机的方向、速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动一次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。课程设计中所使用的步进电机为四相八拍电机,电压为DC5V,其励磁线圈及其励磁顺序如图及表所示。 图 励磁线圈表励磁顺序2、总体设计:关于步进电机:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。 步进电机的主要特性: 1)步进电机必须加驱动才可以运转。转动的速度和脉冲的频率成正比。 2) 步进电机具有瞬间启动和急速停止的优越特性。 3)改变脉冲的顺序, 可以方便的改变转动的方向。 因此,目前打印机,绘图仪,机器人,等等设备都以步进电机为动力核心。 3、硬件电路设计及描述:此进电机的驱动电压12V,步进角为 7.5度。一圈 360 度 , 需要 48 个脉冲完成。 该步进电机有6根引线,排列次序如下:1:红色、2:红色、3:橙色、4:棕色、5:黄色、6:黑色。图 实验6-1 硬件连接图4、软件设计流程及描述:源程序:1. #include<reg51.h>2. unsigned char v8=0x0e,0x0c,0x0d,0x09,0x08,0x03,0x07,0x06;3. void delay()4. 5. unsigned int i;6. for(i=0;i<30000;i+)7. ;8. 9. void main()10. 11. unsigned char m,n;12. P0=0x00;13. while(1)14. 15. for(n=0;n<12;n+)16. 17. for(m=0;m<8;m+)18. P0=vm;19. delay();20. 21. 22. for(n=0;n<12;n+)23. 24. for(m=8;m>0;m-)25. P0=vm;26. delay();27. 28. 29. 30. 5、 综合调试结果分析与展示:步进电机一步一步移动,转速可调。6、系统操作说明:8051单片机的P0口低四位接驱动电路,反相输出接步进电机的4、3、2、1口。基础实验3、直流电机 PWM 调速设计1、实验要求:利用单片机控制直流电机,掌握脉宽调制直流调速的方法。通过调节脉冲宽度,改变占空比,从而改变输出,达到改变直流电机转速的目的。2、总体设计:基于单片机用软件实现直流电机PWM调速系统中, 定时器定时初值。可以通过设定不同的定时初值 ,从而改变占空比D,进而达到控制电机转速的目的。高电平占越大速度越快。3、硬件电路设计及描述:通过单片机的 P1.7 口来模拟 PWM 输出,经过驱动电路来驱动直流电机,实现脉宽调速。将 P1.7直接与驱动电路的 A端连接,驱动单元的输出A连接直流电机单元的2端。直流电机接线图4、软件设计流程及描述:源程序:1. #include<reg51.h>2. 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%,高低电平相同,可以任意改变初值,从而改变占空比,进一步达到改变周期调速的目的。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 "Absacc.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; i<60; i+);void clear(void)/ 清屏Row1 = 0x00;Row2 = 0x00;Col1 = 0xff;Col2 = 0xff;void main(void)unsigned char Scan=0x01, i, j;unsigned int count=0;clear();while(1)for(i=0; i<50; i+)for(j=0; j<8; j+)Row1 = 0x00;Col1 = hzdotcount;/ 0-7列Col2 = hzdotcount+1;/ 8-15列count+=2;Row1 = Scan;/ 0-7行Scan = (Scan<<1)|(Scan>>7);/ 行扫Delay();Row1 = 0x00;for(j=0; j<8; j+)Row2 = 0x00;Col1 = hzdotcount;Col2 = hzdotcount+1;count+=2;Row2 = Scan;/ 8-15行Scan = (Scan<<1)|(Scan>>7);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*/0x00,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,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,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,0x00,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,0x40,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总线只用两条线,不需要片选线,支持带电插拔,SCL是时钟线,SDA是数据线。IIC总线上传送的每一个字节均为8位,并且高位在前。首先由起始信号启动IIC总线,其后为寻址字节,寻址字节由高7位地址和最低1位方向位组成,方向位表明主控器的操作方式,为读操作或写操作,其后的数据传输字节数是没有限制的。每传送一个字节后都必须跟随一个应答位或非应答位,在全部数据传送结束后主控制器发送终止信号。IIC总线上每传输一个数据位,必须产生一个时钟脉冲。SDA线上的数据必须在时钟线SCL的高电平周期保持稳定,数据线的电平状态只有在SCL线的时钟信号是低电平时才能改变。起始条件(重复起始条件):当SCL线为高电平时,SDA线从高电平向低电平切换。停止条件:当SCL线为高电平时,SDA线由低电平向高电平切换。如图所示。启动和停止输出确认IC卡单元原理图 2、 总体设计硬件部分:C51单片机,读卡器,数码管软件部分:keil23、 硬件电路设计及描述 IC卡接线图4、软件设计流程及描述源程序:1. #include "Reg51.h"2. #include "IIC_C51.c"3. #include <absacc.h>4. #define uchar unsigned char5. #define uint unsigned int6. void delay(uint);7. void display(void);8. sbit P1_0=P10;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; i<count; 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,0xfd,0xfb,0xf7,0xef,0xdf;/位选码表20. uchar i,p,temp;21. for(i=0;i<6;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,0x06,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;i<5;i+)37. 38. p=disbuffer1i;/取当前显示的字符39. temp=codevaluep;/查得显示字符的字码段40. XBYTE0x7F01=temp;/送出字码段41. temp=chocodei;/取当前显示的位码段42. XBYTE0x7f00=temp;/送出位码段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;ptr<0x3A;ptr+)56. XBYTE0x7f03=0x80; /8255A初始化57. while(1)58. display();59. temp=1;60. 61. if(temp = 1)/ 接收数据出错62. 63. for(ptr=0x30;ptr<0x3A;ptr+)64. XBYTE0x7f03=0x80; /8255A初始化65. while(1)66. display();67. temp=1;68. 69. 70. while(1);71. 5、 综合调试结果分析与展示输入输出显示一致6、系统操作说明将IC卡插入读卡器,将设计的内容读入卡后,输出至数码管题目3:字符型LCD显示实验设计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 有效。该方式下 8 位指令代码和数据将按先高4位后低4位的顺序分两次传输。 N:设置显示的字符行数。N0为一行字符行;N1 为两行字符行。 F:设置显示字符的字体。F0为5×7点阵字符体;F1 为 5×10 点阵字符体。计算机对指令寄存器通道读操作(RS0,R/W1)时,将读出此格式的“忙”标志 BF值和7位地址指针计数器AC的当前值。计算机随时都可以对 HD44780U读“忙”操作。 BF值反映HD44780U的接口状态。计算机在对 HD44780U每次操作时首先都要读 BF值判断HD44780U的当前接口状态, 仅有在BF0时计算机才可以向HD44780U写指令代码或显示数据和从HD44780U读出显示数据。 计算机读出的地址指针计数器AC当前值可能是 DDRAM地址也可能是 CGRAM的地址,这取决于最近一次计算机向AC写入的是哪类地址。5、综合调试结果分析与展示源代码如下:#include<reg51.h>#include<intrins.h>/引脚定义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 YEAR 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;i<t;i+) for(j=0;j<10;j+);void lcdwaitidle(void)/忙状态判别 P0=0xff; RSPIN=0; RWPIN=1; EPIN=1; while(P0&0x80)=0x80);/读取忙标志BF, 判为1否, 为1等待 EPIN=0;void 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) 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计数, 禁止滚动 lcdwc(0x0e);/开显示void Display(void)/ 显示子程序for(XPOS=0; XPOS<16; 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; XPOS<30; XPOS+)lcdwc(0x18);/ 滚屏YPOS=0; lcdpos(); lcdwd(DisTab1XPOS);YPOS=1; lcdpos(); lcdwd(DisTab2XPOS);delay(2000);void main(void) yi=2;EPIN=0;lcdinit();while(1) getkey();lcdwc(0x01);lcdwc(0x02);Display();

    注意事项

    本文(微控制器原理课程设计报告.doc)为本站会员(椰子壳)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开