一 硬件2.测试程序#define ADR_273 0x0200 #define ADR_244 0x0400 #define LED_PORT 0x800 #define DY1_PORT 0x504 #define DY2_PORT 0x506 #define ADR_245 0x500 void outp(unsigned int addr, char data) // 输出一字节到I/O端口 { __asm { mov dx, addr mov al, data out dx, al } } char inp(unsigned int addr) // 从I/O端口输入一字节 { char result; __asm { mov dx, addr in al, dx mov result, al } return result; } char segTable[10] {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; char end_flag[5]{0x55,0x55,0x55,0x55,0x55}; // 段码顺序dp g f e d c b a (dp为小数点) // 共阳极编码表 (0点亮1熄灭) unsigned char cnt_run0x00; void disp() { static int i0; //for(i0;i5000;i); // for(i0;i5000;i); outp(DY1_PORT, segTable[i]); outp(DY2_PORT, segTable[i]); if(i9) { i0; } } void main(void) /*检测按键状态并由LED发光二极管显示, 若按键闭合对应LED发光二极管点亮 若按键断开对应LED发光二极管灭.*/ { int i0; unsigned char button_state0x00; while (1) { //char button_state; int i; cnt_run; if(cnt_run99) { cnt_run0; } button_stateinp(ADR_245)0x0f; if(button_state!0x0f) { cnt_run0; } //int i0; for(i0;i5000;i); for(i0;i5000;i); outp(LED_PORT, 0x00); //outp(DY1_PORT, segTable[5]); //outp(DY2_PORT,segTable[6]); for(i0;i5000;i); for(i0;i5000;i); outp(LED_PORT, button_state); //disp(); outp(DY1_PORT, segTable[cnt_run/10%10]); outp(DY2_PORT, segTable[cnt_run%10]); } }3.测试
8088单板机IO扩展实验(一)
发布时间:2026/5/20 21:03:23
一 硬件2.测试程序#define ADR_273 0x0200 #define ADR_244 0x0400 #define LED_PORT 0x800 #define DY1_PORT 0x504 #define DY2_PORT 0x506 #define ADR_245 0x500 void outp(unsigned int addr, char data) // 输出一字节到I/O端口 { __asm { mov dx, addr mov al, data out dx, al } } char inp(unsigned int addr) // 从I/O端口输入一字节 { char result; __asm { mov dx, addr in al, dx mov result, al } return result; } char segTable[10] {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; char end_flag[5]{0x55,0x55,0x55,0x55,0x55}; // 段码顺序dp g f e d c b a (dp为小数点) // 共阳极编码表 (0点亮1熄灭) unsigned char cnt_run0x00; void disp() { static int i0; //for(i0;i5000;i); // for(i0;i5000;i); outp(DY1_PORT, segTable[i]); outp(DY2_PORT, segTable[i]); if(i9) { i0; } } void main(void) /*检测按键状态并由LED发光二极管显示, 若按键闭合对应LED发光二极管点亮 若按键断开对应LED发光二极管灭.*/ { int i0; unsigned char button_state0x00; while (1) { //char button_state; int i; cnt_run; if(cnt_run99) { cnt_run0; } button_stateinp(ADR_245)0x0f; if(button_state!0x0f) { cnt_run0; } //int i0; for(i0;i5000;i); for(i0;i5000;i); outp(LED_PORT, 0x00); //outp(DY1_PORT, segTable[5]); //outp(DY2_PORT,segTable[6]); for(i0;i5000;i); for(i0;i5000;i); outp(LED_PORT, button_state); //disp(); outp(DY1_PORT, segTable[cnt_run/10%10]); outp(DY2_PORT, segTable[cnt_run%10]); } }3.测试