



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、AVR学习笔记十、基于数码管显示的流转灯 -基于LT_Mini_M1610.1 用数码管显示流转灯10.1.1、实例功能在大街上我们经常会看到各种各样的广告灯,这些广告灯常常会不停的变换显示效果,以达到吸引大众眼球的目的,现在,我们利用学习板上的数码管来简单实现一下广告灯的显示效果。本实例分为三个功能模块,分别描述如下: 单片机系统:利用ATmega16单片机与4位7段共阴极数码管构成流转灯控制电路。 外围电路:数码管与单片机的连接电路。 软件程序:编写软件,用数码管达到流转灯的效果。通过本实例的学习,掌握以下内容: 掌握数码管显示的基本原理和程序设计方法。10.1.2、器件和原理 关于数码管
2、的显示原理我们在前面的实例中已经做过介绍,在这里就不再多做说明。10.1.3、电路和连接 本实例的电路原理图和4位数码管显示实例里面的电路图完全一致,在此也不做重复介绍。10.1.4、程序设计 1、程序功能程序的功能是使用单片机的控制数码管显示不同的内容,程序比较简单,直接看程序就能明白原理了。2函数说明本程序多个功能函数,分别是: 数码管显示相关函数:void Port_Init(void); /数码管端口初始化void liuzhuan1(void); /流转效果1void liuzhuan2(void); /流转效果2void liuzhuan3(void); /流转效果3 延时相关函数
3、:void Delayus(unsigned int lus); /us延时函数void Delayms(unsigned int lms); /ms延时函数由于WINAVR自带函数库中的延时函数使用起来很不方便,并且晶振频率不同,延时时间也有区别,所以本实例中自己写了两个延时函数。 3、使用WINAVR开发环境,使用的是外部12M的晶振,所以需要将makefile文件中的时钟频率修改为12M。另外在程序烧录到单片机的时候,熔丝位也要选择为外部12M晶振(注意是晶振,不是外部振荡器,一定不要选择错了,否则会导致单片机不能再烧写程序)。4、程序代码#include <avr/io.h>
4、; /io端口寄存器配置文件,必须包含#include <util/delay.h>/变量声明unsigned char Disp_Buff6 = 0x02,0x80,0x20,0x04,0x01,0x08; /函数声明void Delayus(unsigned int lus); /us延时函数void Delayms(unsigned int lms); /ms延时函数void Port_Init(void); /数码管端口初始化void liuzhuan1(void); /流转效果1void liuzhuan2(void); /流转效果2void liuzhuan3(void
5、); /流转效果3int main(void) /GCC中main文件必须为返回整形值的函数,没有参数Port_Init(); /端口初始化while(1)liuzhuan1(); /显示效果1,逐段显示字符“0”liuzhuan2(); /显示效果2,让字符“0”流动起来liuzhuan3();/显示效果3,让字符“0”亮灭变化 /端口初始化void Port_Init(void)PORTB &= (1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB3) | (1 << PB5) |
6、 (1 << PB7); /设置包含字符“0”的各个段口为输出低电平,不亮DDRB |= (1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB3) | (1 << PB5) | (1 << PB7); /设置包含字符“0”的各个段口为输出PORTC &= (1 << PC6) | (1 << PC7); /数码管C0、C1位选通端口设置为低,不导通DDRC |= (1 << PC6) | (1 << PC7); /
7、数码管C0、C1位选通端口设置PORTD &= (1 << PD4) | (1 << PD5); /数码管C2、C3位选通端口设置为低,不导通DDRD |= (1 << PD4) | (1 << PD5); /数码管C2、C3位选通端口设置/流转效果1,void liuzhuan1(void)unsigned char i;PORTC |= (1 << PC6) | (1 << PC7); /数码管C0、C1位选通端口设置为高;导通PORTD |= (1 << PD4) | (1 << PD
8、5); /数码管C0、C1位选通端口设置为高,导通PORTB = 0x00; /段端口输出低,不亮for(i = 0;i < 6;i+)PORTB |= Disp_Buffi; /逐段点亮字符“0”的各个段Delayms(300); /延时,达到逐段显示效果,时间可调/流转效果2void liuzhuan2(void) unsigned char i,j;for(i = 0;i <50;i+) /让字符“0”流动50次for(j = 0;j < 6;j+) /让字符“0”逐段点亮PORTB = Disp_Buffj; /每次点亮一段Delayms(15); /延时,达到流动效
9、果,时间可调整,以达到最佳效果/流转效果3 void liuzhuan3(void) unsigned char i;for(i = 0;i < 5;i+)PORTB |= (1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB3) | (1 << PB5) | (1 << PB7); /点亮字符“0”的所有段Delayms(300); /延时PORTB &= (1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB3) | (1 << PB5) | (1 << PB7); /熄灭字符“0”的所有段Delayms(300); /us级别的延时函数void Delayus(unsigned int lus)while(lus-)_delay_loop_2(3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 真实有效在职人员信息证明(5篇)
- 2025年其他未列明建筑服务项目建议书
- 全方位工作经历及职位证明(7篇)
- 2025年年健康服务项目建议书
- 员工离职后重新就业证明书(6篇)
- 农村绿地生态环境保护整治协议书
- 合作养殖农户协议书
- 2025年无机电子材料合作协议书
- 医院装饰装修合同
- 市场推广及销售代理合作协议具体内容
- 园艺植物种质资源图文
- 中央新疆税收政策解读
- “校园之星”评选实施方案
- 部编版二年级下册语文园地八(完美版)教学设计1
- 《安全生产法培训课件》(2021版)
- 库车中原石油化工有限公司11万吨年凝析油分离及轻烃芳构化项目环境影响评价报告书
- 石膏板吊顶施工方案
- WORD VBA编程 从零开始学VBA
- 机动车检测站可行性研究报告-建设机动车检测站可行性报告
- 高二英语外研版选择性必修三U4 AI:a real threat教学课件(精编)
- stype kit操作手册第一步调整水平平衡仪
评论
0/150
提交评论