适合新手训练使用
主程序为两个发光二极管从两端向中间流水点亮, 利用单片机和数码管设计一个显示系统: 按键K1按下时,数码管进行加1递增显示;按键K2按下时,数码管进行减一递减显示;其中K1为低优先级,K2为高优先级。
单片机源程序如下:
- #include<reg51.h>
- #define uint unsigned int
- #define uchar unsigned char
- void delay(uint x);
- sbit K1=P3^2;
- sbit K2=P3^3;
- uchar m,n;
- uchar code liushui[]={0x00,0x81,0xc3,0xe7,0xff};
- uchar code text[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- uchar code table[]={0x6f,0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06,0x3f};
- void main()
- {
- uchar i;
- IE=0x85;
- IP=0x02;
- IT0=1;
- IT1=1;
- while(1)
- {
- for(i=0;i<5;i++)
- {
- P1=liushui[i];
- delay(400);
- }
- }
- }
- void delay(uint z)
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void cexter0() interrupt 0
- {
- for(m=8;m>0;m--)
- {
- P2=text[m];
- delay(400);
- }
- }
- void cexter1() interrupt 2
- {
- for(n=0;n>8;n++)
- {
- P2=table[n];
- delay(400);
- }
- }
复制代码
全部资料51hei下载地址:
单片机外部中断系统.rar
(519 Bytes, 下载次数: 27)
|