51MCU-13-七段数码管静态显示设计.docVIP

  • 2
  • 0
  • 约1.48千字
  • 约 3页
  • 2017-06-08 发布于重庆
  • 举报
51MCU-13-七段数码管静态显示设计

教学对象 08机电1、2班 课时 2课时 课题 7段数码管静态显示设计 教学目标 了解7段LED数码管的结构及其工作原理 掌握单片机对数码管的静态显示控制方式 学习采用延时程序对变量进行计数 教学重点 单片机对数码管的静态显示控制方式 教学难点 采用延时程序对变量进行计数 教具 教学方法 教学环境 教学进程 备注 一、提出任务 一位计数器是单片机控制数码管计数显示的最简单的例子,本任务采用AT89S51单片机控制数码管静态显示的方式,实现从0—9的加1计数显示。 用AT89S51的P2口做输出口,接一位LED数码管,编写程序,使数码管显示从0—9的加1计数,时间间隔为0.5S 。即每显示一个数字后,保持0.5S ,再显示下一个,显示到数字“9”之后再从“0”开始循环。 二、分析任务 1、硬件电路设计 (1)、电路组成 控制器采用AT89S51单片机,P2口接1个一位共阳极数码管,其中P2.0—P2.6分别连接数码管的a—f引脚。数码管的阳极通过1个电阻接到电源上。 (2)电路分析 要使LED数码管依次显示数字,则P2口对应输出7段数码观数字显示对应的编码即可。由于流过LED的电流通常较小,在回路中接入合适的限流电阻。一般情况下,根据驱动LED的电流、电压计算,在这里取限流电阻为150Ω 。 2、软件设计思路 程序开始时,给数组元素的变量赋初始值0,并将数组中第1个元素送P2口,延时0.5S 后,将变量i加1,并判断是否已读到第10个元素,如果已经读取完,则对变量i重新赋值0,如果没有,则继续读取数组中的第i个元素送到P2口,依次循环。 三、仿真电路 四、源程序 #include //51单片机各种存储器的定义文件 unsigned char display_code[10] 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90 ; //在[]括号内打入数组的下标,可以读出对应位的内容 void delay05s void //延时程序,函数名要跟后面调用此函数的名字一样 unsigned char i,j,k; //为延时程序定义3个局部变量, for i 5;i 0;i-- //整个i循环大约用时0.5秒 //修改i的初始值,可以决定延时时间的长短, for j 200;j 0;j-- //整个j循环大约用时0.1s。 for k 250;k 0;k-- //整个k循环大约用时500us ; //此行程序,大约用时2us void main void //主函数,程序从这里开始运行 unsigned char i; //定义1个无符号的字符型局部变量 while 1 //小括号内的值为1,是非零内容,所以判断结果一直为“真”, //所以此循环没有终止的条件,为死循环 for i 0;i 10;i++ //for循环,i的变化范围为0--9,一共10个变化。 P3 display_code[i]; //变量i的值,决定输出到P2口上的内容 delay05s ; //这里是调用前面已经写好的延时程序 //定义1个数组,用于存放七段数码管显示的内容。 变量类型为“无符号字符型”,最大值是255 比如i 3,延时时间为0.3秒;i 8,延时时间为0.8秒 教学总结、 作业、预习 课后思考题: 08机电1班上课日期: 08机电2班上课日期: 教学反思

文档评论(0)

1亿VIP精品文档

相关文档