本文目錄一覽:
- 1、純新手,設計電壓表彙編語言轉換成c語言如何寫,已附上彙編語言,在線等
- 2、用C語言做數字電壓表,不知道哪裡出錯了,求解
- 3、單片機C語言,關於數字電壓表的初值設計問題
- 4、基於ADC0832做的電壓表仿真求C語言代碼
純新手,設計電壓表彙編語言轉換成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-hant/n/256292.html