欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    微机原理课程设计论文.docx

    • 资源ID:3248672       资源大小:108.63KB        全文页数:16页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    微机原理课程设计论文.docx

    1、微机原理课程设计论文1 课程设计的内容(1)编程语言为C语言;(2)基于单片机的硬件电路设计与调试;(3)从键盘上输入当前时间,格式为“XX(小时):XX(分):XX(秒),以此为起点,每秒刷新一次,1秒钟延迟方式采用软件方式并用子程序编写或者定时器实现,主程序用于显示时间结果和调用子程序,由于软件延迟产生的误差每小时调整一次,保证每小时误差不超过0.1秒。 2设计思想要完成本实验任务要求的功能,可以将系统分为以下几个部分来设计:定时器/计数器电路、时间及功能设置电路、时间显示电路等。其中,定时器/计数器电路是整个电子钟设计的基础。一般都是用定时/计数器来产生定时中断信号(例如定时时间间隔为1

    2、/100s),然后通过软件计数器来相继获得实时时钟的秒、分、时等时间值。实现电子钟的软件主要由主程序和中断服务程序两模块组成。 在主程序中,除了完成对系统的初始化和中断向量的设置外,需要对各种软件时间计数器进行查询、比较和判断,并根据判断结果发出各种控制信号,以完成时钟的显示操作。 在定时中断服务程序中,需要设计1/100s计数器,秒个位、秒十位计数器,分个位、分十位计数器,时个位、时十位计数器以及由键盘设置的各定时时间计数器和各作息时间计数器等等,并对各计数器酌情作加1计数。然后,由主程序来完成对各种计数器内容的查询。 注意事项:向定时器通道写计数初值时,无论以二进制还是十进制形式写入,如果

    3、其值超过255,需分两次分别写入计数器的高、低字节,否则只需写一次。究竟写一次还是两次,要在写初值之前通过写控制字来设置。 3.1 单片机连线。1、 电源:这当然是必不可少的了。单片机使用的是5V电源,其中正极接40管脚,负极(地)接20管脚。 2、 振蒎电路:单片机是一种时序电路,必须供给脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。只要买来晶体震荡器,电容,连上就能了,按图1接上即可。 3、 复位管脚:按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。 4、 EA管脚:EA管脚接到正电源端。 至此,一个单片机就接好,通上电,单片机

    4、就开始工作了。 我们的第一个任务是要用单片机点亮一只发光二极管LED,显然,这个LED必须要和单片机的某个管脚相连,不然单片机就没法控制它了,那么和哪个管脚相连呢?单片机上除了刚才用掉的5个管脚,还有35个,我们将这个LED和1脚相连。(见图1,其中R1是限流电阻) 按照这个图的接法,当1脚是高电平时,LED不亮,只有1脚是低电平时,LED才发亮。因此要1脚我们要能够控制,也就是说,我们要能够让1管脚按要求变为高或低电平。即然我们要控制1脚,就得给它起个名字,总不能就叫它一脚吧?叫它什么名字呢?设计51芯片的INTEL公司已经起好了,就叫它P1.0,这是规定,不能由我们来更改。3.2 MAX7

    5、219及其功能说明 首先应该有数码管来显示相应的时间,这要用到一片7219芯片来驱动所用到的数码管。下面我们就7219的功能做一些简单的介绍。MAX7219是MAXIM公司生产的串行输入/输出共阴极数码管显示驱动芯片,一片MAX7219可驱动8个7段(包括小数点共8段)数字LED、LED条线图形显示器、或64个分立的LED发光二级管。该芯片具有10MHz传输率的三线串行接口可与任何微处理器相连,只需一个外接电阻即可设置所有LED的段电流。它的操作很简单,MCU只需通过模拟SPI三线接口就可以将相关的指令写入MAX7219的内部指令和数据寄存器,同时它还允许用户选择多种译码方式和译码位。此外它还

    6、支持多片7219串联方式,这样MCU就可以通过3根线(即串行数据线、串行时钟线和芯片选通线)控制更多的数码管显示。MAX7219的外部引脚分配各引脚的功能为:DIN:串行数据输入端DOUT:串行数据输出端,用于级连扩展LOAD:装载数据输入CLK:串行时钟输入DIG0DIG7:8位LED位选线,从共阴极LED中吸入电流SEG ASEG G DP 7段驱动和小数点驱动ISET: 通过一个10k电阻和Vcc相连,设置段电流MAX7219有下列几组寄存器:(如图3)MAX7219内部的寄存器如下图,主要有:译码控制寄存器、亮度控制寄存器、扫描界限寄存器、关断模式寄存器、测试控制寄存器。编程时只有正确

    7、操作这些寄存器,MAX7219才可工作。4.1 流程图及其说明 整个程序的流程图如下所示:4.2.1 MAX7219驱动对于时钟电路的设计我们首先做的是数码管驱动芯片7219。通过7219的驱动,是数码管能显示通过软件设置的时间。电路原理图如下图,MAX7219与单片机的连接只需要3条线:LOAD(CS)片选引脚、CLK串行时钟引脚、DIN串行数据引脚。其中C1 为电源滤波电容,R1用来设置段电流。电路原理图通过上面的原理和相应的程序使数码管完成显示功能,具体程序将在下面的章节分析。4.2.2时钟运行进位规则这一部分主要完成时钟的进位和正常的时间显示问题。我们定义了一个长度为六的数组,分别用来

    8、表示时钟的时、分、秒的个位和十位。这当中主要考虑的就是时间的进位问题以及十、分、秒十位和各位的进制问题。其中时、分、秒的个位都是十进制。而十位是六进制。当分、秒的十位为六而个位为零的时候要同时清零,已达到时、分整体六十进制。这对于软件编程来说还是比较简单的,只需要用if语句就可以完成。这主要需要注意的就是时分秒的同时清零问题,让它完成时钟的具体功能。具体的程序后面源程序清单中会有介绍。4.3源程序及注释#include #define DECODE_MODE 0x09 /译码控制寄存器#define INTENSITY 0x0A /亮度控制寄存器#define SCAN_LIMIT 0x0B

    9、/扫描界限寄存器#define SHUT_DOWN 0x0C /关断模式寄存器#define DISPLAY_TEST 0x0F /测试控制寄存器 #define uchar unsigned char#define uint unsigned intsbit LOAD=P10; /MAX7219片选 12脚sbit DIN=P11; /MAX7219串行数据 1脚sbit CLK=P12; /MAX7219串行时钟 13脚sbit key1=P30; sbit key2=P31;sbit key3=P32;sbit key4=P33; /*sbit KEY1=P13; /暂停或运行sbit

    10、KEY2=P14; /位选择sbit KEY3=P15; /增加sbit KEY4=P16; /减少 uchar sj7=0;uint time=0,flash=0;uchar k=0,i=0;void Write7219(unsigned char address,unsigned char dat);void Initial(void);void Init(void);void Write7219(unsigned char address,unsigned char dat) uchar i; LOAD=0; /拉低片选线,选中器件 for (i=0;i8;i+) /发送地址 CLK=0

    11、; /清零时钟总线 DIN=(bit)(address&0x80); /每次取高字节 address=1; /左移一位 CLK=1; /时钟上升沿,发送地址 for (i=0;i8;i+) /发送数据 CLK=0; DIN=(bit)(dat&0x80); dat=1; CLK=1; /时钟上升沿,发送数据 LOAD=1; /发送结束,上升沿锁存数据 void Initial(void) uint i=0; Write7219(SHUT_DOWN,0x01); /开启正常工作模式(0xX1) Write7219(DISPLAY_TEST,0x00); /选择工作模式(0xX0) Write72

    12、19(DECODE_MODE,0xff); /选用全译码模式 Write7219(SCAN_LIMIT,0x05); /8只LED全用 Write7219(INTENSITY,0x08); /设置初始亮度 for(i=1;i0;i-) for(j=110;j0;j-); void keyscan() uchar i; if(key4=0) delayms(100); if(key4=0) /* while(!key4); TR0=0; /关定时器0 Write7219(1,0); Write7219(2,0); Write7219(3,0); Write7219(4,0); Write7219

    13、(5,0); Write7219(6,0); */ for(i=1;i7;i+) Write7219(i,sji); /数码管显示 i=0; TR0=1; if(key1=0) delayms(100); if(key1=0) while(!key1); TR0=0; /关定时器0 i+; if(i=7) i=1; /* TH0=0x4B; /初始化定时器0 TL0=0xFF; time=0; TR0=1;*/ if(i!=0) for(flash=0;flash3;flash+) Write7219(i,-1); delayms(20000); Write7219(i,sji); delay

    14、ms(20000); if(key2=0) /增加键 delayms(100); if(key2=0) while(!key2);/ 确认释放 switch(i) case 1: /秒个位加一 sj1+; if(sj1=10) sj1=0; break; case 2: /秒十位加一 sj2+; if(sj2=6) sj2=0; break; case 3: /分个位加一 sj3+; if(sj3=10) sj3=0; break; case 4: /分十位加一 sj4+; if(sj4=6) sj4=0; break; case 5: /十个位加一 sj5+; if(sj5=10) sj5=

    15、0; break; case 6: /时十位加一 sj6+; if(sj6=3) sj6=0; break; if(key3=0) delayms(100); if(key3=0) while(!key3); switch(i) case 1: /秒个位减一 sj1-; if(sj1=-1) sj1=9; break; case 2: /秒十位减一 sj2-; if(sj2=-1) sj2=5; break; case 3: /分个位减一 sj3-; if(sj3=-1) sj3=9; break; case 4: /分十位减一 sj4-; if(sj4=-1) sj4=5; break; c

    16、ase 5: /时个位减一 sj5-; if(sj5=-1) sj5=9; break; case 6: /是十位减一 sj6-; if(sj6=-1) sj6=2; break void main(void) uchar i,k=0; Initial(); Init(); /MAX7219初始化 while(1) keyscan(); /时间显示和进位 if(sj1=10) sj1=0; sj2+; if(sj2=6) sj2=0; sj3+; if(sj3=10) sj3=0; sj4+; if(sj4=6) sj4=0; sj5+; if(sj5=10) sj5=0; sj6+; if(sj6=2&sj5=4) sj6=0; sj5=0; for(i=1;i7;i+) Write7219(i,sji); /数码管显示 void time0() interrupt 1 TH0=0x4B; TL0=0xFF; time+; if(time=20) time=0; sj1+;


    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开