![]() |
發布時間: 2020-6-8 10:34
正文摘要:按一個按鍵,發送模擬量到pc機 仿真,我做了好久也沒做出來,程序有問題 求幫助 /* 名稱:單片機與PC通信 說明:單片機可接收PC發送的數字字符, 按下單片機的K1鍵后, ... |
#include<reg51.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit ST=P2^0; sbit OE=P2^2; sbit ALE=P2^3; sbit EOC=P2^1; sbit CLK=P2^4; long int datas,bai,she,ge; uchar duan; uchar code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar code num_dot[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed}; uchar code wei[]={0x0d,0x0b,0x07}; void delay(uint z) { uchar i; while(z--) for(i=0;i<120;i++); } void display() { uchar i=0; bai=(datas*500/255)/100; she=(datas*500/255)/10 % 10; ge=(datas*500/255) % 10; for(i=0;i<3;i++) { P3=wei[i]; if(i==0){duan=num_dot[bai];} else if(i==1){duan=num[she];} else if(i==2){duan=num[ge];} P0=duan; delay(2); } } void main() { TMOD=0x02; TH0=0x216; TL0=0x216; EA=1; ET0=1; TR0=1; while(1) { ST=OE=0; ALE=1; ST=1; ALE=0; ST=0; while(!EOC); OE=1; datas=P1; display(); } } void inter_1() interrupt 1 { CLK=~CLK; } |