这个程序在执行的时候总是显示的是乱码,请各位高手们帮忙看下程序有什么问题,要怎么修改?感激不尽~~
#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);
}
}
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |