单片机亮灯.doc_第1页
单片机亮灯.doc_第2页
单片机亮灯.doc_第3页
单片机亮灯.doc_第4页
单片机亮灯.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

。单片机课程设计 题目设晶振为12MHZ,使用定时/计数器作为延时控制时,要求三灯P0.0,P0.1,P0.2按2s交替闪烁。一 系统设计分析最小的单片机系统+灯1(P0.0)+灯2(P0.1)+灯3(P0.2),三灯之间按2s互相闪烁。根据设计要求分析,系统所需元器件:单片机AT89C51、瓷片电容CAP 30pF、晶振CRYSTAL 12MHZ、电解电容 CAP-ELEC、电阻RES、按钮BUTTON、发光二极管LED-RED、三极管2N2905。三. 系统原理图设计 系统原理图设计如图1-1所示。 图1-1四. 程序流程图设计 系统程序流程图如图1-2所示。 开始定时/计数器初始值设置 重新计算循环次数是否循环20次(延迟2s)启动定时/计数器是否延迟50ms启动定时/计数器 N 启动定时/计数器重新赋值 Y N YP0.0,P0.1,P0.2依次清零,同时其他两个P口置1 图1-2五. C语言程序设计#includereg51.h#define uint unsigned int#define uchar unsigned charsbit P0_0=P00;sbit P0_1=P01;sbit P0_2=P02;uint t=0;uint i=0;void time0_server_(void)interrupt 1 TH0=0x4C; TL0=0x00; t+; void Init_t0(void) TMOD=0x01; TH0=0x3C; TL0=0x00; EA=1; ET0=1; TR0=1; void main(void) Init_t0(); while(1) if(t=40) t=0; i=+i; switch(i) case 1: P0_0=0; P0_1=1; P0_2=1; break; case 2: P0_0=1; P0_1=0; P0_2=1; break;case 3: P0_0=1; P0_1=1; P0_2=0; i=0; break; 六. 在keil中调试与仿真 创建”定时/计数器的应用(一)”项目,选择单片机型号AT89C51,输入汇编程序,保存为” 定时/计数器的应用(一).ASM”或者” 定时/计数器的应用(一).C”.将源程序添加到项目中.编译源程序创建了” 定时/计数器的应用(一).HEX”.七. 在proteus中仿真 如图1-3所示 八 感想和收获 开始对C语言不太了解,因为要编程就自己重温了C语言知识,在keil软件编译时也找出自己程序中的很多问题并一步步改进。最终达到自己目的。我觉得不能把问题想的理所当然,知识用到实践上才能正确掌握。而且看似很小的问题解决起来涉及很多意想不到的细节,这个题目让我更加注意细节,更加注重实践。提高了自己的动手能力和思考能力。 建议老师给我们更多实践机会。THA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论