1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉
標題:
記錄一個數字直流電壓表的作業
[打印本頁]
作者:
Eibles
時間:
2018-6-21 14:39
標題:
記錄一個數字直流電壓表的作業
本帖最后由 Eibles 于 2018-6-21 14:41 編輯
#include<reg51.h>
#define uchar unsigned char //定義數據類型
#define uint unsigned int //定義數據類型
sbit P2_4=P2^4;
sbit ST=P2^5;
sbit EOC=P2^6;
sbit OE=P2^7;
sbit p2_0=P2^0;
sbit p2_1=P2^1;
sbit p2_2=P2^2;
sbit p2_3=P2^3;
uchar code led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //建立0-9字模
void delay0(void)
{
uchar i,j;
for(i=0;i<10;i++)
for(j=0;j<100;j++);
}
timer0()interrupt 1
{
P2_4=!P2_4; //改變電平狀態
}
void main(void)
{
uchar k;
uint l;
TMOD=0x02; //定時器T0方式2
TH0=(256-100)%256; //0.1ms定時,裝載初始值
TL0=(256-100)%256;
IE=0x82;
EA= 1; //開啟全局中斷
ET0= 1;
TR0=1; //啟動定時器0
P2=0x4f; //初始化 P2口
while(1)
{
ST=0; //發出啟動脈沖信號
delay0();
ST=1;
delay0();
ST=0;
while(EOC==1); //查詢結束狀態
delay0();
OE=1; //OE置1信號
k=P1; //將A/D結果賦值給k
l=5000*((float)k/255); //計算電壓值
p2_3=0; //打開p2_3口
P0=led_mod[l%10]; //求個位
delay0();
p2_3=1; //關閉p2_3口
p2_2=0; //打開p2_2口
P0=led_mod[l/10%10]; //求十位
delay0();
p2_2=1; //關閉p2_2口
p2_1=0; //打開p2_1口
P0=led_mod[l/100%10]; //求百位
delay0();
p2_1=1; //關閉p2_1口
p2_0=0; //打開p2_0口
P0=led_mod[l/1000]; //求千位
delay0();
p2_0=1; //關閉p2_0口
}
}
復制代碼
2018621-143850.jpg
(553.09 KB, 下載次數: 32)
下載附件
2018-6-21 14:39 上傳
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1