8088单板机时序测试(C语言版)
1.硬件2.测试程序#define ADR_273 0x0200 #define ADR_244 0x0400 #define LED_PORT 0x800 #define CS_IC4 0x400 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 end_flag[5]{0x55,0x55,0x55,0x55,0x55}; void delay(void) // 延时函数使用原有的双重循环延时方式 { int i; for(i0; i5000; i); for(i0; i5000; i); } void main(void) /* 闪烁灯程序8位LED时亮时灭 采用共阳LED输出0点亮输出1熄灭 */ { int i; unsigned char led_pattern; // 初始值1111 1110 (最低位D00点亮第1个LED) led_pattern 0x00; while (1) { // 输出当前模式到LED端口 outp(LED_PORT, led_pattern); // 延时控制流水速度 delay(); led_pattern ~led_pattern; outp(LED_PORT, led_pattern); delay(); for(i0;i64;i) { outp(CS_IC4, i); } } // 退出时关闭所有LED输出全1 // outp(LED_PORT, 0xFF); }3.测试结果