您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页单灯单片机

单灯单片机

来源:尚车旅游网


一、 设计任务与要求

1、 设计任务

利用AT89C51、发光二级管、晶振、驱动电路,并结合C语言编程实现各种跑马灯动态显示效果设计。 2、 设计要求

本设计要求AT89C51的P1口输出,分别实现单灯左移、单灯右移、单灯逐个点亮接着逐个熄灭以及两边向中间逐个点亮,接着中间向两边逐个熄灭。 3、 设计目的

通过本次课程设计掌握单片机系统设计思路和基本步骤,并熟练用protues绘制硬件电路图。

二、 硬件设计

1、 硬件分析

AT89C51简介:AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。其引脚图如下:

P1口简介:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 2、 元器件清单

名称 AT89C51 晶振 电阻 数目 1片 1个 8个 名称 发光二极管 电容 导线 数量 8个 2个 若干 三、硬件电路图:

四、 软件设计

此次设计软件部分不是很复杂,就用顺序结构的程序就可以实现所有功能,程序流程图如下:

程序初始化 全熄灭 左移 延时1S 右移 延时1S 两边向中间点亮 延时1S 中间向两边点亮 结束

五、 调试与联调

打开keil uVision3,新建工程,再新建一个项目为text2.c,并把事先编写好的程序输入进去,接下来编译连接程序,选择project/Rebuild all target file,如果没有错误,则编译成功,开发环境下会显示编译连接成功的信息,如下图:

编译成功后,选择Debug/start/stop debug session选项,即进入调试环境,装载代码成功之后,开发环境output window(左下角)显示如下图所示的装载成功的信息:

按F7生成HEX文件,之后进入proteus的ISIS,打开画好的原理图文件,鼠标左键单击Debug,选中“use romote debugger monitor”,便可实现u Vision3和proteus VSM的联调。联调结构如下:

六、 总结与心得

本次的课程设计使我把所学的知识和实践结合起来,是对平时学习成果的检验,使我对所学的单片机知识有了系统全面的理解和认识,锻炼了我查资料和设计开发的初步能力,为以后的学习和工作奠定了基础。

参考文献

[1]张齐,朱宁西.单片机系统设计与开发[M].机械工业出版社,2008.8 [2]李文方.单片机原理与应用[M]哈尔滨工业大学出版社,2010

附录:

#include \"reg51.h\" #include \"intrins.h\"

/*高电平有效,延时时间大概1s */ /*电路:单片机最小系统+三极管驱动 */

#define uchar unsigned char #define uint unsigned int sbit Led=P1; void delay(void); void main(void) {

unsigned char tmp,k,i,j; P1=0x00;//全熄灭 while(1) {

for(i=0;i<8;i++)//左移 {

tmp=0x01; tmp=(tmp<for(i=0;i<8;i++)//右移 {

tmp=0x80; tmp=tmp>>i; P1=tmp; delay(); } P1=0x00; delay();

for(i=0;i<4;i++)//两边向中间点亮 { j=0x01; k=0x80;

tmp=(j<>i); P1=tmp; delay();

} P1=0x00; delay();

for(i=0;i<4;i++)//中间向两边点亮 { j=0x08; k=0x09;

tmp=(j>>i)|(k<void delay(void) //误差 0us {

unsigned char a,b,c; for(c=167;c>0;c--) for(b=171;b>0;b--) for(a=16;a>0;a--);

_nop_; //if Keil,require use intrins.h }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务