1、湖南理工学院信息与通信工程学院电子信息教研室制作所有 习题均采用外部中断 0下降沿进入外部中断 0处理按键;采用定时器定时,全部功能在中断中完成。晶振频率为 12MHz。第 4、 6章习题讲解湖南理工学院信息与通信工程学院电子信息教研室制作所有 习题均采用外部中断 0下降沿进入外部中断 0处理按键;采用定时器定时, 全部功能在中断中完成 。分析:1、按键引起外部中断 0中断,在外部中断 0程序中: 判断按哪个键; 显示按键值; 根据按键设置参数。2、计数器溢出,进入计数器中断程序,进行相应处理。第 4、 6章习题讲解湖南理工学院信息与通信工程学院电子信息教研室制作第 4、 6章习题讲解1、 没
2、有按键时彩灯不亮,按上面的键 8个 LED全亮 0.1S全灭 0.1S闪烁,并且数码管显示 “1”;按下面的键全亮 0.5S全灭 0.5S闪烁,并且数码管显示 “2”。要求:采用 T0方式 1定时 。分析1、主程序中,定时器设置:模式、方式设置,初值设置 T0定时 50ms,但不启动 T0;中断设置:允许外部中断 0中断,允许 T0中断;全灭。2、外部中断 0程序中: 判断按哪个键; 显示按键值; 根据按键设置闪烁时间。以 T0定时 50ms,设置 1个次数参数 time,若按 上面的键 ,time=2; 若按下 面的键 , time=10。3、计数器中断程序,每中断 1次, i+,当 i=t
3、ime, a=a; P0=a。第 1题湖南理工学院信息与通信工程学院电子信息教研室制作第 4、 6章习题讲解#include#define uchar unsigned chardata uchar a,b,i,time;uchar code table10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 ; void main( ) TMOD=0x01; / 设置定时器 T0为方式 1定时TH0=(65536-50000)/256; / 给 T0装入初值TL0=(65536-50000)%256; / 给 T0装入初值ET0=1; / 允许
4、 T0中断EX0=1; /允许外部 0中断IT0=1; /外部 0下降沿中断EA=1; /CPU开中断a=0xff;P0=a;while(1); 第 1题湖南理工学院信息与通信工程学院电子信息教研室制作第 4、 6章习题讲解外部中断 0程序中: 判断按哪个键; 显示按键值; 根据按键设置闪烁时间。以 T0定时 50ms,设置 1个次数参数 time,若按 上面的键 ,time=2; 若按下 面的键 , time=10。void int0_isr(void) interrupt 0 / 外中断 0的中断服务函数 b=P1; /读键值b=b;P2=tableb; /显示键值TR0=1; /启动 T
5、0if(b=1) time=2; /设置参数else time=10; 第 1题湖南理工学院信息与通信工程学院电子信息教研室制作第 4、 6章习题讲解计数器中断程序,每中断 1次, i+,当 i=time, a=a; P0=a。void T0_int(void) interrupt 1 /T0中断函数 TH0=(65536-50000)/256; /重置初值TL0=(65536-50000)%256;i+;if(i=time) /是否达到 time次?i=0;a=a;P0=a; 第 1题湖南理工学院信息与通信工程学院电子信息教研室制作第 4、 6章习题讲解2、 没有 按键时彩灯不亮,按上面的键
6、 D1D3D5D7D1 流动点亮,并且数码管显示 “1”;按下面的键 D7D5D3D1D7 流动点亮,并且数码管显示 “2”。要求:采用 T0方式 1定时,点亮时间 0.2S。 。分析1、主程序中,定时器设置:模式、方式设置,初值设置 T0定时 50ms,但不启动 T0;中断设置:允许外部中断 0中断,允许 T0中断;全灭。2、外部中断 0程序中: 判断按哪个键; 显示按键值 b; 根据按键设置参数 a。若按 上面的键 , a=1; 若按下 面的键 , a=128。3、计数器中断程序, 若 b=1,左移;若 b=2,右移。第 2题湖南理工学院信息与通信工程学院电子信息教研室制作第 4、 6章习
7、题讲解#include#define uchar unsigned chardata uchar a,b;uchar code table10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 ; void main( ) TMOD=0x01; / 设置定时器 T0为方式 1定时TH0=(65536-50000)/256; / 给 T0装入初值TL0=(65536-50000)%256; / 给 T0装入初值ET0=1; / 允许 T0中断EX0=1; /允许外部 0中断IT0=1; /外部 0下降沿中断EA=1; /CPU开中断a=0xff;
8、P0=a;while(1); 第 2题湖南理工学院信息与通信工程学院电子信息教研室制作第 4、 6章习题讲解外部中断 0程序中: 判断按哪个键; 显示按键值 b; 根据按键设置参数 a。若按 上面的键 , a=1; 若按下 面的键 , a=128。 void int0_isr(void) interrupt 0 / 外中断 0的中断服务函数 b=P1; /读键值b=b;P2=tableb; /显示键值TR0=1; /启动 T0if(b=1) a=1; /设置参数else a=128; 第 2题湖南理工学院信息与通信工程学院电子信息教研室制作第 4、 6章习题讲解计数器中断程序,每中断 1次, i+,当 i=4进行处理: 若 b=1,左移;若 b=2,右移。void T0_int(void) interrupt 1 /T0中断函数 TH0=(65536-50000)/256; /重置初值TL0=(65536-50000)%256;P0=a; /先输出if(b=1) a=a2; /右移if(a=0)a=128; 第 2题