欢迎来金海湾博客
Joy055

https://blog.jinbay.com/Joy055/  复制链接收藏

Joy055个人头像
Joy055
博客日历
«February 2025»
1
2345678
9101112131415
16171819202122
232425262728
博客自定义分类
5/20/2009 9:33:00 AM [语言学习] 分享

分享

中断是单片机中很重要的一部分,很多外部响应都要通过中断来告知CPU,从而做出相应的处理。






 
编程实验:六位数码管从0~F循环显示,当P3.2口有低电平时,执行中断程序使P1.0口发光二极管亮。中断程序执行完后继续执行主程序,六位数码管从0~F循环。</STRONG>
程序:
#include              //定义头文件
#define uint unsigned int     
#define uchar unsigned char    //宏定义变量类型
void delay (uint);             //子程序声明
sbit dula=P2^6;
sbit wela=P2^7;                              //定义位选 段选
sbit d1=P1^0;                  //定义d1=P1.0口
uchar num;                                   //定义num为uchar类型
uchar code table[]={           //定义数组 0~16
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,};
 
void main()                    //主函数开始
{    
      
       EA=1;                                    //开总中断
       EX0=1;                                  //开外部中断0
       IT0=1;                     //中断为边沿触发方式
       wela=1;                                  //位选开
       P0=0xc0;                               //让6位数码管全亮
       wela=0;                    //位选关
              while(1)
                     {
                     for(num=0;num                             {
                            d1=1;
                            dula=1;
                            P0=table[num];  //num从0开始数码管累加显示
                            dula=0;
                            delay(1000);    //延时
                            }
                     }    
}
void delay(uint z)              //延时子程序
{
       uint x,y;
       for(x=z;x>0;x--)
              for(y=110;y>0;y--);      
}
void exter() interrupt 0       //中断函数 exter为函数名可以自己起
{                                                      //interrupt 0代表中断类型为外部中断0
       d1=0;                          //中断子程序 让P1.0亮
delay(2000);                    
}
PROTEUS仿真结果
 
 
下面来看定时器中断







 
编程实验1:让6位数码管按照定时器中断设定的时间从0~F循环变化</STRONG>
程序:
#include//定义头文件
#define uint unsigned int//宏定义       
#define uchar unsigned char 
sbit dula=P2^6;//定义段选
sbit wela=P2^7;//定义位选
uchar num,tt;//num,tt为uchar型变量
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,};//数组
 
void main()
{    
       num=0;
       tt=0;
       TMOD=0x01; //规定定时器T0的工作方式
       TH0=(65536-50000)/256;
       TL0=(65535-50000)%256;//给定时器装入初值
    EA=1;//总中断允许开  
       ET0=1; //T0中断允许开
       TR0=1;//定时器T0开始工作
      
       wela=1;  //位选开
    P0=0xc0;//给P0口送11000000
       wela=0; //位选锁存
       dula=1; //段选开
       P0=0x3f;//给P0口送0
       dula=0;//段选锁存
 
       while(1)
       {
              if(tt==20)                 //tt从0开始累加,加10次后tt回零
                     {   tt=0;
                            num++;             //num从零开始累加,变到16回零
                            if(num==16)
                              num=0;
                            dula=1;
                            P0=table[num];     //每次循环显示table数组中的值
                            dula=0;
                    
                     }
      }
 
 
 
}
 
void exter0() interrupt 1    
{
       TH0=(65536-50000)/256;       //计数器初值设定为500MS,20个500毫秒为2秒
       TL0=(65535-50000)%256;       //每500毫秒触发一次中断,20次后num+1
       tt++;                                          //中断子程序运行tt次
}
 
PROTEUS仿真结果:

 
编程实验2 :用延时程序让发光二极管间隔1秒流水灯变化,用定时器中断让数码管间隔2秒从0~F静态显示变化。</STRONG>
程序:
#include
#include
#define uint unsigned int
#define uchar unsigned char
uchar temp,aa,num;
sbit dula=P2^6;
sbit wela=P2^7;
void delay(uint z);
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
};
 
 
void main()
{
       num=0;
       aa=0;
       TMOD=0x01;
       TH0=(65536-50000)/256;
       TL0=(65536-50000)%256;
    EA=1;
       ET0=1;
       TR0=1;
 
       temp=0xfe;
       P1=temp;
       dula=1;
       P0=table[0];
       dula=0;
       wela=1;
       P0=0xc0;
       wela=0;
 
       while(1)
       {
              delay(1000);
              temp=_crol_(temp,1);
              P1=temp;
       }
}
void delay (uint z)
{
       uint x,y;
       for(x=z;x>0;x--)
              for(y=130;y>0;y--);
}
void time0() interrupt 1
{
       TH0=(65536-50000)/256;
       TL0=(65536-50000)%256;
       aa++;
              if(aa==40)
              {
                     aa=0;
                     num++;
                     if(num==16)
                            num=0;
                            dula=1;
                            P0=table[num];
                            dula=0;
 
              }
}
 
我这个人比较懒,这篇日志中大量引用了郭天翔视频教程中的图片,图片版权归郭天翔所有。
第二个实验我录了一段实验视频,可是传到优酷后该视频违反相关规定被屏蔽了。可能教程类的视频管理比较严吧。如果有人想看请留邮箱地址。
 阅读全文>>

评论

分享 分享

对话:

我要刊登广告
我要刊登广告
5/20/2009 12:18:00 PM [新闻时事] 分享

分享

以虚假的方式陈述真实的爱憎</STRONG> 来源:南方周末  2009-05-14 15:30:30  作者:曾颖   【南周快评】     近日网民争相转发一个消息,称举报临沂“八星级办公大楼”的张某已被当地警察抓获并遭连夜突审,晚些时候死亡。临沂方面对此已有回应和澄清,确认举报的大楼照片属于市政府大楼,但对大楼造价、是否抓人等矢口否认。
    从最初看到这篇帖子起,我就觉得它不是一篇“新闻”,因其行文风格显得过于激动,用力过猛;许多细节,在未有更多权威信息佐证之前,很难让人信服。
    但所有不靠谱的信息,所指向的却是一个实实在在的东西——临沂市政府办公大楼。惟有市政府办公大楼的描述是准确的:“大楼占地面积103000平方米”;“拥有电梯18部,会议室48个”。
    至此,我们似乎已感觉出了发帖者的真实动机——他要让公众关注的,其实并非那个被指莫须有的“命案”,而是要让公众关注那幢办公大楼。只是,他使用的是杂文而非新闻的笔法。
    其实,这种用耸人听闻的方式吆喝,以吸引人们的眼球,然后让大家关注自己所要说的事情的技法,在网络上并不鲜见。此前的“湖南老汉彭北京决斗法官 ”、“河南灵宝老农的抗旱

阅读(77)评论(0)

5/20/2009 8:31:00 AM [美食-旅游] 分享

分享

菜系及功效:</STRONG>川菜
麻婆豆腐的制作材料: 主料:</STRONG>豆腐10两(约400克),牛肉末,青蒜苗段各适量。豆豉,豆瓣,辣椒粉,花椒粉,盐,酱油各适量。
麻婆豆腐的特色: 麻婆豆腐是中国豆腐菜肴中最富地方风味特色菜之一,已成为风靡世界的川菜名肴。此菜有一百多年的历史,是成都"陈麻婆豆腐店"传世佳肴。凡到四川的游客莫不以一尝为快事。  
    麻婆豆腐,是清同治初年成都市北郊万福桥一家小饭店店主陈森富(一说名陈富春)之妻刘氏所创制。刘氏面部有麻点,人称陈麻婆。她创制的烧豆腐,则被称为"陈麻婆豆腐",其饮食小店后来也以"陈麻婆豆腐店"为名。1909年出版的《成都通览》已将此店及"陈麻婆之豆腐",列入与包席馆正兴园、钟汤圆等店齐名的22家"成都之著名食品店"。《成都竹枝词》、《芙蓉话旧录》等书对陈麻婆创制麻婆豆腐的历史均有记述。麻婆豆腐由于名声卓著,已流传全国,乃至日本、新加坡等国家。
    此菜的特色是以"烧"法烹之,在雪白细嫩的豆腐上、点缀着棕红色的牛肉末和油绿的青蒜苗,外围一圈透亮的红油,如玉镶琥珀,具有麻、辣、烫、嫩、酥、香、鲜的独特风味。
教您麻婆豆腐怎么做,如何做麻婆豆腐才好吃 用嫩豆腐、牛肉末烧制而成。成菜色泽红亮,豆腐嫩白,具有"麻、辣、鲜、烫、嫩、捆(指形整)、酥(指牛肉末)的特色。选石膏豆腐切四方丁放碗中,用开水泡去涩味。烧热炒锅下菜油,烧至六成热,将剁细的牛肉末炒散,至色呈黄,加盐、豆豉、辣椒粉、郫县豆瓣再炒,加鲜肉汤,下豆腐,用中火烧至豆腐入味。再下青蒜苗节、酱油,略烧片刻即勾芡收汁,视汁浓亮油时盛碗内,撒花椒末即成。

阅读(120)评论(0)

© 2025 Jinbay.com All rights reserved. 版权所有金海湾。 未经许可,不得转载。