#include <REGX51.H> #include <INTRINS.H> sbit K1=P3^2; sbit K2=P3^3; void delayms (unsigned int i) { unsigned char k; while (i--) for(k=0;k<120;k++); } void time50s(unsigned char b) { unsigned char s; for(s=0;s<b;s++) { TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; while(!TF0); TF0=0; } } void main() { TMOD=0x01; EX0=1; IT0=1; PX1=1; EX1=1; IT1=0; EA=1; while(1) { P2=0x00; time50s(10) ; P2=0xff; time50s(10); } } void int_0() interrupt 0 { unsigned char code led[]={0xff,0x87,0xf3,0xf3,0xc7,0x9f,0x9f,0x83, 0xe7,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xe7, 0xff,0x87,0xf3,0xf3,0xc7,0x9f,0x9f,0x83, 0xff,0xe7,0xc7,0xe7,0xe7,0xe7,0xe7,0xe7, 0xe7,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xe7, 0xff,0x87,0xf3,0xf3,0xc7,0x9f,0x9f,0x83, 0xff,0x87,0xf3,0xf3,0xc7,0xf3,0xf3,0x87, 0xe7,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xe7, 0xe7,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xe7, 0xff,0x87,0xf3,0xf3,0xc7,0xf3,0xf3,0x87, 0xe7,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xe7, 0xff,0xe7,0xc7,0xe7,0xe7,0xe7,0xe7,0xe7, 0xff,0x81,0xdb,0x00,0xdb,0xdb,0xbb,0xfb, 0xff,0x99,0x66,0x7e,0xbd,0xdb,0xe7,0xff}; unsigned char w,B; unsigned int i,j,k,m; delayms(10); B=P0; while(1) { P2=0x00; for(k=0;k<112;k++) { for(m=0;m<15;m++) { w=0x01; j=k; for (i=0;i<8;i++) { P1=w; P0=led[j]; delayms(1); w<<=1; P0=0xff; j++; if(j>111)j=j-112; } } } } P0=B; } void int_1() interrupt 2 { unsigned char i,j; j=P0; while(1) { P2=0x00; delayms(500); P2=0xff; delayms(500); } while(!K2); P0=j; } 我想实现系统上电,LED指示灯闪烁; 3、按下按键,点阵屏依次移动显示12位学号、“开”、爱心图形,LED指示灯常亮; 4、再次按下按键,点阵屏立即停止显示,LED指示灯闪烁。请帮我检查一下代码
时间: 2023-09-16 21:10:07 浏览: 123
51单片机源码程序-将P1口状态送入P0、P2、P3.zip
以下是对你提供的代码的一些建议和修改:
1. 代码中缺少头文件的注释说明,建议加入注释,方便代码的阅读和理解。
2. 在 `void main()` 函数中,对于按键的中断处理,建议加入 debounce 处理,以避免按键抖动导致的误触发。
3. 在 `void int_0() interrupt 0` 函数中,建议加入对于按键状态的判断,以避免按键按下后无法退出中断处理。
4. 在 `void int_0() interrupt 0` 函数中,建议加入对于 LED 指示灯状态的控制,以实现 LED 在不同状态下的闪烁或常亮。
5. 在 `void int_1() interrupt 2` 函数中,建议加入对于按键状态的判断,以避免按键按下后无法退出中断处理。
6. 在 `void int_1() interrupt 2` 函数中,建议加入对于 LED 指示灯状态的控制,以实现 LED 在不同状态下的闪烁或常亮。
7. 在点阵屏的显示部分,建议加入对于显示内容和显示时间的控制,以实现更加灵活的显示效果。
8. 在 `void main()` 函数中,建议加入对于点阵屏停止显示的处理,以便在第二次按下按键后立即停止显示。
9. 最后,建议在程序中加入注释说明和代码规范化,以方便代码的维护和管理。
总体来说,你提供的代码需要进行一些修改和完善,才能实现你所需的功能。
阅读全文