这个程序在执行的时候总是显示的是乱码,请各位高手们帮忙看下程序有什么问题,要怎么修改?感激不尽~~
#include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit DAT164=P0^6; //p0.6连接移位寄存器74HC164的串行数据输入端 sbit CLK164=P0^7; //p0.7连接移位寄存器74HC164的串行时钟输入端 sbit onebit=P0^0; // 一个数码管 uchar code table[]= //共阳极七段码表0~F { 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e }; void delay_10us(uchar n) //10us级延时 { do { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } while(--n); } void delay_ms(uint n) //毫秒级延时 { do delay_10us(131); while(--n); } void send164(uchar ch) //向数码管送1位显示数据 { uchar j; for(j=0;j<8;j++) { DAT164=ch&0x01; //输出ch中的8位 CLK164=0; CLK164=1; ch>>=1; //ch右移1位 } } void main() { uint i; while(1) { onebit=0; send164(table); i++; if(i>15)i=0; delay_ms(1000); } }
|