单片机12-1数码管滚动显示和字符显示(任务8).doc_第1页
单片机12-1数码管滚动显示和字符显示(任务8).doc_第2页
单片机12-1数码管滚动显示和字符显示(任务8).doc_第3页
单片机12-1数码管滚动显示和字符显示(任务8).doc_第4页
单片机12-1数码管滚动显示和字符显示(任务8).doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

福建交通职业技术学院(教案)首页班级:09嵌入式1班 日期:2011年5月12日 编号:12-1教 学 目 的 与 要 求任务8:数码管滚动显示和字符显示1、学会数码管滚动显示的编程方法。 2、掌握数码管字符显示的编程方法。 (时间安排:2课时; 任课教师:朱其祥)本 课 重 点 与 难 点重点、难点:7段数码管滚动显示驱动方式。课 堂 进 程次序内 容1一、实训环境和器材2二、8段数码管滚动显示3三、8段数码管字符显示456789 福建交通职业技术学院教案纸 第 页课程: 单片机技术及应用 1011 学年 第_2_学期 第 11 周 5 月 12 日教 学 内 容 备 注实训环境和器材1、单片机实训操作台1张;2、单片机实验板1套(含下载器);3、计算机1台;4、电源、通讯电缆、下载线等配件。5、软件环境:Proteus Professional 7.1仿真软件、Keil 7.50A编程软件一、8段数码管滚动显示说明:数码管上同时显示0-7,并且向左移动。主程序完成对数码管的动态扫描任务,定时器则完成显示内容的变化。注意,P0 = table(i + LED_temp) % 8;在定时器里中断中,让 LED_temp 这个变量每 0.2 秒改变一次。比如 LED_temp 只为 5(假设 i 和 j 这时为 0):P0 值为 5,P2 值为 0,也就是在数码 管最左端显示的值为 5;当 j+,i+后,P0 值为 6,P2 值为 1,最就是在左二的 数码管显示为 6,依次类推。我们这里用了“%8”,这个是对 8 取余,也就是 table 中的数最大为 7。即:i和j的变化,决定要点亮哪一位,LED_temp的变化,决定某一位要显示的内容。最终实现0-7左移。原理图同上。软件程序:#include#define uchar unsigned char#define uint unsigned intuchar code table10 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code LED_W8 = 0,1,2,3,4,5,6,7;uchar Time_temp = 0, LED_temp = 0;/* 名称 : Delay_1ms()* 功能 : 延时子程序,延时时间为 1ms * x* 输入 : x (延时一毫秒的个数)* 输出 : 无*/void Delay(uint i)uchar x,j;for(j=0;ji;j+)for(x=0;x=148;x+);/* 名称 : Time0_Init()* 功能 : 定时器的初始化,11.0592MZ晶振,50ms* 输入 : 无* 输出 : 无*/void Time0_Init()TMOD = 0x01;IE = 0x82;TH0 = 0x4c;TL0 = 0x00;TR0 = 1;/* 名称 : Time0_Int()* 功能 : 定时器中断,中断中实现 Count 加一* 输入 : 无* 输出 : 无*/void Time0_Int() interrupt 1TH0 = 0x4c;TL0 = 0x00;Time_temp+;if(Time_temp = 4) /定时器溢出时间50毫秒,隔0.2秒,数码管的数据改变一次LED_temp+;Time_temp = 0; /* 名称 : Main()* 功能 : 数码管的显示* 输入 : 无* 输出 : 无*/void Main(void)uchar i = 0,j = 0;Time0_Init();while(1)P0 = table(i + LED_temp) % 8; /数码管段值P2 = LED_Wj; /点亮某一位数码管Delay(2);j+;i+;if(j = 8) /每个数码管都点亮了一次。j = 0;i = 0;作业:试编写以下程序。在原来软件基础上修改,向右移动,且间隔时间为1秒。二、8段数码管字符显示(显示PASS, HELL0)#include#define uchar unsigned char#define uint unsigned intuchar code table8 = 0x00,0x00,0x00,0x00,0x73,0x77,0x6d,0x6d; /显示PASS编码/uchar code table8 = 0x00,0x00,0x00,0x76,0x79,0x38,0x38,0x3f; /显示HELL0编码uchar code LED_W8 = 0,1,2,3,4,5,6,7;/* 名称 : Delay_1ms()* 功能 : 延时子程序,延时时间为 1ms * x* 输入 : x (延时一毫秒的个数)* 输出 : 无*/void Delay(uint i)uchar x,j;for(j=0;ji;j+)for(x=0;x=148;x+);/* 名称 : Main()* 功能 : 数码管的显示* 输入 : 无* 输出 : 无*/void Main(void)uchar i = 0,j = 0;while(1)P0 =

温馨提示

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

评论

0/150

提交评论