单片机技术的特点以及在电子技术中的应用.docVIP

单片机技术的特点以及在电子技术中的应用.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
绪论 1.1系统背景 1.1.1单片机技术的特点以及在电子技术中的应用 a.单片机技术的特点: 将CPU和计算机外围电路集成到了一个芯片上,可以向外部接口电路扩展,以实现微控制器化。扩大了片内存储容量、外部寻址空间。为单片机配置了完善的外部并行总线(AB、DB、CB)) 本实验设计并制作如图所示。 时钟电路用于产生单片机工作所需的时钟信号。 80C51单片机内部带有时钟电路,只需在片外通过XTAL1和XTAL2引脚接入定时控制元件(晶体振荡器和电容),即可构成一个稳定的自激振荡器。外接晶体为12MHz ,振荡周期=1/12MHz=0.0833us 时钟周期=1/6us=0.167us 机器周期=1us 2.2.2 复位电路设计 复位电路有3种方式:上电自动复位、按键电平复位和 外部脉冲复位 本图是按键电平复位的电路,要保证复位信号高电平持续时间大于2个机器周期,即2us ,电容和电阻的选择要与12MHz晶体相匹配 2.2.3 按键电路设计 右边的9个键对应数字1-9,例如切换到键盘输入状态,手动输入4个1 左边的3个键分别是SHIFT状态切换键 、“+”、“-” 2.2.4电源电路 VCC送进来的直流电经过三端稳压器稳压后,使输入电压稳定在+5V 2.2.5继电器电路 当P1.0送高电平的时候,三极管导通,磁体磁化将开关吸过来,开关闭合 当P1.0送低电平的时候,三极管截止,磁体磁性消失,开关断开 2.2.6数码管显示电路 四个数码管分别显示数字钟的小时十位、个位,分钟的十位、个位 2.3 系统硬件总电路 第三章 系统软件设计 3.1 系统软件流程图 主程序流程图 首先对数码管清零,然后启动定时器T0计时,采用12M晶体,计时50ms;启动定时器T1动态扫描看是否有按键按下。进入循环,刷新缓冲区,调用LED显示,按键处理。 子程序流程图 刷新缓冲区子程序 LED显示子程序 不同的状态对应不同的亮灯情况 按键处理子程序 状态1调小时,状态2调分钟;键值为2对应+,键值为3对应-,键值为1,状态切换 中断子程序流程图 定时器1 定时器0 定时器T0用于计时。每隔50ms溢出。进入中断后,count用于计数,当count=10时,为半秒,使LED1状态取反,即LED1半秒闪烁。当到达一秒时,秒加1,count清零;到达60秒时,分加1,秒清零;到达60分时,时加1,分清零;到达24时,时清零。 此时分、时的变化送至数码管显示,即数字钟。 3.2 系统程序设计 3.2.1 系统主程序 void main(void) { P1=0x00; EA=1; TMOD |=0x01;//定时器0计时50ms in 12M crystal TH0=0x3C; //初值15536 TL0=0xB0; ET0=1; //开启T0定时中断 TR0=1; //启动T0 TMOD |=0x10; //定时器1用于动态扫描 TH1=0xFa; //初值64240 TL1=0xF0; ET1=1; //开启T1定时中断 TR1=1; //启动T1 while(1) { RefreshTab(); LED_Display(); CMP(); if(!Line1||!Line2){Delay(200);Key_Process();} //消抖 } } 3.2.2 定时中断子程序 /******************************************************************/ /* 定时器0中断用于计时 */ /******************************************************************/ void Timer0(void) interrupt 1 {TH0=0x3C; //重新赋值50ms溢出 TL0=0xB0; count++; //if(count==10) // LED1=~LED1; if (count==20) { count=0; second++; //秒加1 if(second==60) { second=0; minute++; //分加1 if(minute==60) { minute=0; hour++; //时加1 if(hour==24)

文档评论(0)

蓝色天空 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档