這個程序在執行的時候總是顯示的是亂碼,請各位高手們幫忙看下程序有什么問題,要怎么修改?感激不盡~~
#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); } }
|