#include
#define uchar unsigned char
#define uint unsigned int
#define PORT P3
#define dula_h P2|=0x40
#define dula_l P2&=0xbf
#define wela_h P2|=0x80
#define wela_l P2&=0x7f
sbit cs=P2^0;
sbit rd=P2^1;
sbit wr=P2^2;
uchar read;
uchar table[]={ //共陽數碼管
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
void delayms(uint x)
{
uint y,z;
for(y=x;y>0;y--)
for(z=110;z>0;z--);
}
void show()
{
dula_l;
wela_l;
PORT=0x80;
wela_h;
wela_l;
PORT=table[read%10];
dula_h;
dula_l;
delayms(1);
PORT=0x40;
wela_h;
wela_l;
PORT=table[read%100/10];
dula_h;
dula_l;
delayms(1);
PORT=0x20;
wela_h;
wela_l;
PORT=table[read/100];
dula_h;
dula_l;
delayms(1);
PORT=0x10;
wela_h;
wela_l;
PORT=table[0];
dula_h;
dula_l;
delayms(1);
PORT=0x08;
wela_h;
wela_l;
PORT=table[0];
dula_h;
dula_l;
delayms(1);
PORT=0x04;
wela_h;
wela_l;
PORT=table[0];
dula_h;
dula_l;
delayms(1);
PORT=0x02;
wela_h;
wela_l;
PORT=table[0];
dula_h;
dula_l;
delayms(1);
PORT=0x01;
wela_h;
wela_l;
PORT=table[0];
dula_h;
dula_l;
delayms(1);
}
void main()
{
while(1)
{
cs=1;//A/D轉換時序
wr=1;
cs=0;
wr=0;
wr=1;
cs=1;
delayms(1);
cs=1;//轉換結果輸出時序
rd=1;
cs=0;
rd=0;
read=P0;
delayms(1);
rd=1;
cs=1;
show();//數碼管顯示函數
delayms(10);
}
}
上一篇:51單片機(AT89C52)D/A轉換
下一篇:51單片機(AT89C52)DS1302時鐘芯片程序
推薦閱讀
史海拾趣
設計資源 培訓 開發板 精華推薦
- 半導體品牌知名度問卷調查
- 上演你的“ADI實驗室電路”DIY!
- 下載有禮|是德科技電子書 《通過了解測試精度的基礎知識, 提高良率并降低風險》,不做“差不多先生”
- 下載《Altera SoC深度體驗》,打分評論贏好禮
- 【已結束】 Qorvo、村田、NI直播【UWB最新技術、方案、市場、應用解析】(13:30開始入場)
- TI 最新CapTIvate™ 觸控微控制器技術直播開始報名嘍!報名參與有禮呦!
- 老T叔的藏書閣——一位老工程師多年的資料積累
- 有獎直播【Keysight World Tech Day 2023分論壇——汽車自動駕駛與新能源】
- #最能打國產芯#能打入汽車電子這片地的國產芯,有多少啦?
- 新年新挑戰:ST藍牙開發板免費申請評測+挑戰賽(littleshrimp帶隊)