c語言電壓表,電壓ce

本文目錄一覽:

純新手,設計電壓表彙編語言轉換成c語言如何寫,已附上彙編語言,在線等

#includereg51.h

typedef unsigned char u8;

typedef unsigned int u16;

typedef unsigned long u32;

sbit CLOCK = P2^4;

sbit ST = P2^5;

sbit EOC = P2^6;

sbit OE = P2^7;

sbit W2 = P2^1;

sbit W1 = P2^2;

sbit W0 = P2^3;

u8 Led2,Led1,Led0;//顯示變數

void Delay(void);//延時

void Disp(void);

u8 code Seg7[] = {

0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f};

void Delay(void)

{

u8 i,j;

for(i = 10;i != 0;i –)

for(j = 250;j != 0;j –)

;

}

void Disp(void)

{

P0 = Seg7[Led0];

W0 = 0;

Delay();

W0 = 1;

P0 = Seg7[Led1];

W1 = 0;

Delay();

W1 = 1;

P0 = Seg7[Led2];

W2 = 0;

Delay();

W2 = 1;

}

void T0_ISR(void)interrupt 1

{

CLOCK = !CLOCK;

}

void main(void)

{

u8 i;

Led0 = 0;

Led1 = 0;

Led2 = 0;

P2 = 0xff;

TMOD = 0x02;

TH0 = 245;

TL0 = 245;

IE = 0x82;

TR0 = 1;

while(1)

{

ST = 0;

ST = 1;

ST = 0;

while(!EOC)

;

OE = 1;

i = P1;

OE = 0;

Led2 = i / 51;

Led1 = i / 51 / 5;

Led0 = i / 51 % 5;

Disp();

}

}

用C語言做數字電壓表,不知道哪裡出錯了,求解

P2=0x80; P1=table[qian]0x7F; //顯示小數點 delay(50); P2=0x04; P1=table[bai]; delay(50); P2=0x02; P1=table[shi]; delay(50); P2=0x01; P1=table[ge];}

你這幾個打串拉 改一下

單片機C語言,關於數字電壓表的初值設計問題

4000是人為設置的,寫程序的人考慮的,你問問就可以了,我覺得你設10000也沒有什麼大礙。

單片機12M晶體,12T模式下計時器加1的時間為1us,所以4000 * 1us 就是4ms,是先有想得到的定時周期,才有的計數器初值的,不要搞混。

基於ADC0832做的電壓表模擬求C語言代碼

uchar ADC0832_Read(uchar ch)

{

/*讀取ADC的 CH 通道電壓值,ADC作為2路單獨電壓輸入*/

uchar i;

uchar ADC_buff=0;

uchar temp=0;

EA = 0;

ADC0832_CS = 1;

ADC0832_DIO = 1; /*啟動位*/

ADC0832_CLK = 0;

ADC0832_CS = 0;

nop();

ADC0832_CLK = 1;

nop();

ADC0832_CLK = 0;

ADC0832_DIO = 1; /*送 SGL/DIF 位 */

nop();

ADC0832_CLK = 1;

nop();

ADC0832_CLK = 0;

if(ch==0) ADC0832_DIO = 0; /*送轉換通道值*/

else ADC0832_DIO = 1;

ADC0832_CLK = 1;

nop();

ADC0832_CLK = 0;

nop();

ADC0832_DIO = 1; /*釋放DIO埠,轉由ADC控制*/

nop();

ADC0832_CLK = 1;

nop();

for(i=0;i8;i ){ /*準備讀取8位數據*/

nop();

ADC0832_CLK = 0;

nop();

nop();

ADC_buff=ADC_buff1;

if(ADC0832_DIO==1) ADC_buff=ADC_buff 1; /*讀取數據*/

ADC0832_CLK = 1;

}

for(i=0;i8;i ){

temp = temp1;

if(ADC0832_DIO==1) temp = temp | 0x80; /*讀取校驗數據*/

ADC0832_CLK = 1;

nop();

ADC0832_CLK = 0;

nop();

}

ADC0832_CS = 1;

ADC0832_CLK = 1;

//if(temp == ADC_buff) ADC_flag = 1;

//else ADC_flag = 0;

EA = 1;

return ADC_buff; /*返迴轉換值*/

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/256292.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:40
下一篇 2024-12-15 12:40

相關推薦

發表回復

登錄後才能評論