下载此文档

小学心理健康讲座稿八篇.doc


文档分类:医学/心理学 | 页数:约20页 举报非法文档有奖
1/20
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/20 下载此文档
文档列表 文档介绍
51单片机用C语言实现交通灯(红绿灯)源程序
2009-10-29 23:00
交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改。
源程序如下:
/*
1、程序目的:使用定时器学****倒计时红绿灯原理主要程序和倒计时一样
2、硬件要求:数码管、晶振12M
*/
#include <>
bit red,green,yellow,turnred;          //定义红、黄、绿及转红标志
code unsigned char tab[]=
    {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
    //共阴数码管 0-9
unsigned char Dis_Shiwei;//定义十位
unsigned char Dis_Gewei; //定义个位
void delay(unsigned t)          //用于动态扫描数码管的延时程序
{
while(--cnt);
}
main()
{TMOD |=0x01;//定时器设置 10ms in 12M crystal定时器0,工作方式1,16位定时器
TH0=0xd8;            //65535-10000=55535=D8F0(十六进制)
TL0=0xf0;
IE= 0x82; //中断控制,EA=1开总中断,ET0=1:定时器0中断允许
TR0=1;    //开定时器0中断
P1=0xfc;//红灯亮,根据红黄绿接灯的顺序。
red =1;
while(1)
{
P0=Dis_Shiwei;//显示十位,这里实现用8位数码管,即左1位
P2=0;
delay(300);//短暂延时
P0=Dis_Gewei; //显示个位,左数,2位
P2=1;
delay(300);
}}
/********************************/
/*      定时中断                */
/********************************/
void tim(void) interrupt 1 using 1
{
static unsigned char second=60,count; //初值60
TH0=0xd8;//重新赋值,10毫秒定时
TL0=0xf0;
count++;
if (count==100)
    {
    count=0;
    second--;//秒减1
if(second==0)
    { //这里添加定时到0的代码,可以是灯电路,继电器吸合等,或者执行一个程序
       if(red)   //红灭,先转黄
      {
    red=0;yellow=1;
          second=4;
    P1=0xF3;//黄灯亮4秒,黄灯为过渡灯,再根据情况转绿或转红
   }
    else if(yellow && !turnred)
      {
    yellow=0;green=1;
          second=25;
    P1=0xCF;//绿灯亮25秒,
   }
    else if(green)
      {
   yellow=1;green=0;
         second=4;
   P1=0xF3;//黄灯亮4秒
   turnred=1;
   }
       else if(yellow && turnred)   //绿灯灭,转黄灯,后红灯,turnred=1时
      {
      red=1;yellow=0;
   P1=0xFC;//红灯亮60秒
         second=60;
   turnred=0;   //接下来是转黄,绿。
   }}
Dis_Shiwei=tab[second/10];//十位显示值处理
    Dis_Gewei=tab[second%10]; //个位显示处理
开始
延时3s
程序流程图:
输出red(纵) yellow(横)
清屏
延时30s
输出red(纵) green(横)

清屏
延时3s
输出yellow(纵) red(横)
清屏
延时30s
True=1

输出green(纵) red(横)
清屏
Y
结束
N

算法描述:
1、定义green函数(清屏显示(纵==green 横==red延时30s)
定义red函数(清屏显示(横==

小学心理健康讲座稿八篇 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数20
  • 收藏数0 收藏
  • 顶次数0
  • 上传人1557281760
  • 文件大小4.34 MB
  • 时间2018-06-15