久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2044|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

這個(gè)示波器程序的ad標(biāo)度變換是啥

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
這是程序
#include <STC12c5a.H>
#include<intrins.h>
#include<math.h>
sbit RS=P0^7;
sbit RW=P0^6;
sbit E=P0^5;
sbit jiakey=P3^0;
sbit jiankey=P3^1;
#define  LcdData P2
unsigned char dati=0;
unsigned char dat[100];
unsigned char over=0;
unsigned int temp=0;
unsigned char mode=0;
unsigned int delnop=0;
//////////////////////////////////////
unsigned char Lcd_CheckBusy(void)
{
    unsigned char Busy;
         LcdData=0xff;
    RS=0;
    RW=1;
    E=1;
    _nop_();
    Busy=LcdData&0x80;
    E=0;
    return Busy;
}


void Lcd_WriteData(unsigned char Data)
{  
        while(Lcd_CheckBusy());
        RS=1;
        RW=0;
        E=0;
        _nop_();  
        _nop_();
        LcdData=Data;
        E=1;
        _nop_();
        _nop_();
        E=0;
}
/***********************************
′óLCDÖD¶á3öêy¾Y
************************************/
unsigned char Lcd_ReadData(void)
{
        unsigned char Temp;
        while(Lcd_CheckBusy());
         LcdData=0xff;
         RS=1;
        RW=1;
        E=1;
        _nop_();
           Temp=LcdData;
           E=0;
           return Temp;
}


void Lcd_WriteCmd(unsigned char CmdCode)
{  
        while(Lcd_CheckBusy());
           RS=0;
           RW=0;
           E=0;
           _nop_();  
        _nop_();
           LcdData=CmdCode;
           _nop_();
        _nop_();
           E=1;
           _nop_();  
        _nop_();
           E=0;
}


code unsigned int LcdMaskTab[]={0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080,0x0100,0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000};


void Lcd_PutPixel(unsigned char x,unsigned char y,unsigned char Color)
{
        unsigned char z,w;
        unsigned int Temp;
        if(x>=128||y>=64)
                return;
        Color=Color%2;
        w=15-x%16;
        x=x/16;

        if(y<32)
                z=0x80;
        else     
                z=0x88;

        y=y%32;
        //EA=0;
        Lcd_WriteCmd(0x36);
        Lcd_WriteCmd(y+0x80);   
        Lcd_WriteCmd(x+z);  
        Temp=Lcd_ReadData();
        Temp=(unsigned int)Lcd_ReadData()<<8;
        Temp|=(unsigned int)Lcd_ReadData();
        //EA=1;
        if(Color==1)
                Temp|=LcdMaskTab[w];
        else         //èç1ûD′èëÑÕé«Îa0
                Temp&=~LcdMaskTab[w];
        //EA=0;
        Lcd_WriteCmd(y+0x80);   
        Lcd_WriteCmd(x+z);   
   Lcd_WriteData(Temp>>8);
   Lcd_WriteData(Temp&0x00ff);
        Lcd_WriteCmd(0x30);
        //EA=1;
}


void Lcd_Clear(unsigned char Mode)
{
        unsigned char x,y,ii;
        unsigned char Temp;
        if(Mode%2==0)
                Temp=0x00;
        else
                Temp=0xff;
        Lcd_WriteCmd(0x36);
        for(ii=0;ii<9;ii+=8)   
                for(y=0;y<0x20;y++)     
                        for(x=0;x<8;x++)
                        {         
                                //EA=0;
                                Lcd_WriteCmd(y+0x80);   
                                Lcd_WriteCmd(x+0x80+ii);   
                                Lcd_WriteData(Temp);
                                Lcd_WriteData(Temp);
                                //EA=1;
                        }
        Lcd_WriteCmd(0x30);
}
/****************************************
LCD3õê¼»ˉ
*****************************************/
void Lcd_Reset()
{  
        Lcd_WriteCmd(0x30);   
        Lcd_WriteCmd(0x0c);   
        Lcd_WriteCmd(0x01);  
        Lcd_WriteCmd(0x06);   
}
//////////////////////////////////////
void InitADC()
{
P1ASF=0X80;
ADC_RES=0;
ADC_CONTR=0xef;
EADC=1;
}
void adc_isr() interrupt 5 using 1
{
ADC_CONTR=0xef;
if(over==0)
{
        temp=delnop;
        while(temp)
        {
        temp--;
        }
        dat[dati]=ADC_RES;
        dati++;
        if(dati>100)
        {
        dati=0;
        over=1;
        }
}
}
//////////////////////////////////////
void disp_0(unsigned char x,unsigned char y)
{
Lcd_PutPixel(x+1,y+1,1);
Lcd_PutPixel(x+1,y+2,1);
Lcd_PutPixel(x+1,y+3,1);
Lcd_PutPixel(x+2,y+0,1);
Lcd_PutPixel(x+2,y+4,1);
Lcd_PutPixel(x+3,y+1,1);
Lcd_PutPixel(x+3,y+2,1);
Lcd_PutPixel(x+3,y+3,1);
}
void disp_1(unsigned char x,unsigned char y)
{
Lcd_PutPixel(x+1,y+1,1);
Lcd_PutPixel(x+1,y+4,1);
Lcd_PutPixel(x+2,y+0,1);
Lcd_PutPixel(x+2,y+1,1);
Lcd_PutPixel(x+2,y+2,1);
Lcd_PutPixel(x+2,y+3,1);
Lcd_PutPixel(x+2,y+4,1);
Lcd_PutPixel(x+3,y+4,1);
}
void disp_2(unsigned char x,unsigned char y)
{
Lcd_PutPixel(x+1,y+0,1);
Lcd_PutPixel(x+1,y+2,1);
Lcd_PutPixel(x+1,y+3,1);
Lcd_PutPixel(x+1,y+4,1);
Lcd_PutPixel(x+2,y+0,1);
Lcd_PutPixel(x+2,y+2,1);
Lcd_PutPixel(x+2,y+4,1);
Lcd_PutPixel(x+3,y+0,1);
Lcd_PutPixel(x+3,y+1,1);
Lcd_PutPixel(x+3,y+2,1);
Lcd_PutPixel(x+3,y+4,1);
}
void disp_3(unsigned char x,unsigned char y)
{
Lcd_PutPixel(x+1,y+0,1);
Lcd_PutPixel(x+1,y+2,1);
Lcd_PutPixel(x+1,y+4,1);
Lcd_PutPixel(x+2,y+0,1);
Lcd_PutPixel(x+2,y+2,1);
Lcd_PutPixel(x+2,y+4,1);
Lcd_PutPixel(x+3,y+0,1);
Lcd_PutPixel(x+3,y+1,1);
Lcd_PutPixel(x+3,y+2,1);
Lcd_PutPixel(x+3,y+3,1);
Lcd_PutPixel(x+3,y+4,1);
}
void disp_4(unsigned char x,unsigned char y)
{
Lcd_PutPixel(x+1,y+0,1);
Lcd_PutPixel(x+1,y+1,1);
Lcd_PutPixel(x+1,y+2,1);
Lcd_PutPixel(x+2,y+2,1);
Lcd_PutPixel(x+3,y+0,1);
Lcd_PutPixel(x+3,y+1,1);
Lcd_PutPixel(x+3,y+2,1);
Lcd_PutPixel(x+3,y+3,1);
Lcd_PutPixel(x+3,y+4,1);
}
void disp_5(unsigned char x,unsigned char y)
{
Lcd_PutPixel(x+1,y+0,1);
Lcd_PutPixel(x+1,y+1,1);
Lcd_PutPixel(x+1,y+2,1);
Lcd_PutPixel(x+1,y+4,1);
Lcd_PutPixel(x+2,y+0,1);
Lcd_PutPixel(x+2,y+2,1);
Lcd_PutPixel(x+2,y+4,1);
Lcd_PutPixel(x+3,y+0,1);
Lcd_PutPixel(x+3,y+2,1);
Lcd_PutPixel(x+3,y+3,1);
Lcd_PutPixel(x+3,y+4,1);
}
void disp_p(unsigned char x,unsigned char y)
{
Lcd_PutPixel(x+0,y+0,1);
Lcd_PutPixel(x+1,y+0,1);
Lcd_PutPixel(x+1,y+1,1);
Lcd_PutPixel(x+2,y+0,1);
Lcd_PutPixel(x+2,y+1,1);
Lcd_PutPixel(x+2,y+2,1);
Lcd_PutPixel(x+3,y+0,1);
Lcd_PutPixel(x+3,y+1,1);
Lcd_PutPixel(x+4,y+0,1);
}
void disp_k(unsigned char x,unsigned char y)
{
Lcd_PutPixel(x+0,y+0,1);
Lcd_PutPixel(x+0,y+1,1);
Lcd_PutPixel(x+0,y+2,1);
Lcd_PutPixel(x+0,y+3,1);
Lcd_PutPixel(x+0,y+4,1);
Lcd_PutPixel(x+1,y+2,1);
Lcd_PutPixel(x+2,y+1,1);
Lcd_PutPixel(x+2,y+3,1);
Lcd_PutPixel(x+3,y+0,1);
Lcd_PutPixel(x+3,y+4,1);
}
void disp_hz(unsigned char x,unsigned char y)
{
Lcd_PutPixel(x+0,y+0,1);
Lcd_PutPixel(x+0,y+1,1);
Lcd_PutPixel(x+0,y+2,1);
Lcd_PutPixel(x+0,y+3,1);
Lcd_PutPixel(x+0,y+4,1);
Lcd_PutPixel(x+1,y+2,1);
Lcd_PutPixel(x+2,y+0,1);
Lcd_PutPixel(x+2,y+1,1);
Lcd_PutPixel(x+2,y+2,1);
Lcd_PutPixel(x+2,y+3,1);
Lcd_PutPixel(x+2,y+4,1);
Lcd_PutPixel(x+4,y+1,1);
Lcd_PutPixel(x+4,y+3,1);
Lcd_PutPixel(x+4,y+4,1);
Lcd_PutPixel(x+5,y+1,1);
Lcd_PutPixel(x+5,y+2,1);
Lcd_PutPixel(x+5,y+4,1);
}

void clr(unsigned char starx,unsigned char stary,unsigned char endx,unsigned char endy)
{
char x=0;
char y=0;
for(x=starx;x<endx;x++)
{
        for(y=stary;y<endy;y++)
        {
                Lcd_PutPixel(x,y,0);
        }
}
}
void disp_bj(void)
{
unsigned char x=0;
unsigned char y=0;
for(x=13;x<114;x++)
{
Lcd_PutPixel(x,52,1);
}
for(y=0;y<52;y++)
{
Lcd_PutPixel(13,y,1);
}
for(y=0;y<52;y++)
{
Lcd_PutPixel(114,y,1);
}
Lcd_PutPixel(13,51,0);
Lcd_PutPixel(13,41,0);
Lcd_PutPixel(13,31,0);
Lcd_PutPixel(13,21,0);
Lcd_PutPixel(13,11,0);
Lcd_PutPixel(13,1,0);
Lcd_PutPixel(114,51,0);
Lcd_PutPixel(114,41,0);
Lcd_PutPixel(114,31,0);
Lcd_PutPixel(114,21,0);
Lcd_PutPixel(114,11,0);
Lcd_PutPixel(114,1,0);

disp_0(5,50);
disp_1(5,40);
disp_2(5,30);
disp_3(5,20);
disp_4(5,10);
disp_5(5,0);
disp_0(117,50);
disp_1(117,40);
disp_2(117,30);
disp_3(117,20);
disp_4(117,10);
disp_5(117,0);

disp_2(13,58);
disp_hz(18,58);
disp_2(38,58);
disp_0(43,58);
disp_hz(48,58);
disp_2(63,58);
disp_0(68,58);
disp_0(73,58);
disp_hz(78,58);
disp_2(88,58);
disp_k(93,58);
disp_hz(98,58);

}
void line(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1)
{
int i,dx,dy,e,x,y;
Lcd_PutPixel(x0,y0,1);
Lcd_PutPixel(x1,y1,1);
dx=x1-x0;
dy=y1-y0;
x=x0;
y=y0;
if(dx>0&&dy>0)
{
if(dx>dy)
{
e=-dx;
for(i=0;i<dx;i++)
        {
        Lcd_PutPixel(x,y,1);
        x++;
        e=e+2*dy;
        if(e>=0)
                {
                y++;
                e=e-2*dx;
                }
        }
}
else
{
e=-dy;
x=x0;
y=y0;
for(i=0;i<dy;i++)
        {
        Lcd_PutPixel(x,y,1);
        y++;
        e=e+2*dx;
        if(e>=0)
                {
                x++;
                e=e-2*dy;
                }
        }
}
}
if(dx<0&&dy<0)
{
dx=x0-x1;
dy=y0-y1;
if(dx>dy)
{
e=-dx;
for(i=0;i<dx;i++)
        {
        Lcd_PutPixel(x,y,1);
        x--;
        e=e+2*dy;
        if(e>=0)
                {
                y--;
                e=e-2*dx;
                }
        }
}
else
{
e=-dy;
for(i=0;i<dy;i++)
        {
        Lcd_PutPixel(x,y,1);
        y--;
        e=e+2*dx;
        if(e>=0)
                {
                x--;
                e=e-2*dy;
                }
        }
}
}
if(dx>0&&dy<0)
{
dy=y0-y1;
if(dx>dy)
{
e=-dx;
for(i=0;i<dx;i++)
        {
        Lcd_PutPixel(x,y,1);
        x++;
        e=e+2*dy;
        if(e>=0)
                {
                y--;
                e=e-2*dx;
                }
        }
}
else
{
e=-dy;
for(i=0;i<dy;i++)
        {
        Lcd_PutPixel(x,y,1);
        y--;
        e=e+2*dx;
        if(e>=0)
                {
                x++;
                e=e-2*dy;
                }
        }
}
}
if(dx<0&&dy>0)
{
dx=x0-x1;
if(dx>dy)
{
e=-dx;
for(i=0;i<dx;i++)
        {
        Lcd_PutPixel(x,y,1);
        x--;
        e=e+2*dy;
        if(e>=0)
                {
                y++;
                e=e-2*dx;
                }
        }
}
else
{
e=-dy;
for(i=0;i<dy;i++)
        {
        Lcd_PutPixel(x,y,1);
        y++;
        e=e+2*dx;
        if(e>=0)
                {
                x--;
                e=e-2*dy;
                }
        }
}
}
if(dx!=0&&dy==0)
{
if(dx>0)
{
for(i=0;i<dx;i++)
        {
        Lcd_PutPixel(x,y,1);
        x++;
        }
}
else
{
dx=x0-x1;
for(i=0;i<dx;i++)
        {
        Lcd_PutPixel(x,y,1);
        x--;
        }
}
}
if(dx==0&&dy!=0)
{
if(dy>0)
{
for(i=0;i<dy;i++)
        {
        Lcd_PutPixel(x,y,1);
        y++;
        }
}
else
{
dy=y0-y1;
for(i=0;i<dy;i++)
        {
        Lcd_PutPixel(x,y,1);
        y--;
        }
}
}
}
void disp_ware()
{
unsigned char x=0;
unsigned char y=0;
                clr(14,0,15,52);
                for(x=1;x<100;x++)
                {
                        clr(x+14,0,x+15,52);
                        line(x+13,51-(dat[x-1]/5),x+14,51-(dat[x]/5));
                }
}
//////////////////////////////////////
main()
{
Lcd_Reset();
Lcd_Clear(0);
InitADC();
disp_bj();
EA=1;
while(1)
{
if(over)
        {
                disp_ware();
                if(jiakey==0)
                {
                if(mode<3)
                        {
                        mode++;
                        }
                }
                if(jiankey==0)
                {
                if(mode>0)
                        {
                        mode--;
                        }
                }
        switch(mode)
        {
        case 0:
                delnop=1;
                disp_p(91,54);
                clr(66,54,71,57);
                clr(41,54,46,57);
                clr(16,54,21,57);
        break;
        case 1:
                delnop=40;
                disp_p(66,54);
                clr(91,54,96,57);
                clr(41,54,46,57);
                clr(16,54,21,57);
        break;
        case 2:
                delnop=440;
                disp_p(41,54);
                clr(91,54,96,57);
                clr(66,54,71,57);
                clr(16,54,21,57);
        break;
        case 3:
                delnop=4440;
                disp_p(16,54);
                clr(91,54,96,57);
                clr(41,54,46,57);
                clr(66,54,71,57);
        break;
        default:
        break;
        }
        over=0;
        }
}
}

QQ圖片20190601092049.png (11.61 KB, 下載次數(shù): 34)

這個(gè)是示波器原理圖

這個(gè)是示波器原理圖
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: av午夜电影 | 麻豆av免费观看 | 伊人色综合久久天天五月婷 | 亚洲最大成人综合 | 久久国产欧美日韩精品 | 国产一区免费 | 一区二区视频在线 | 国产精品视频区 | 亚洲视频精品 | 亚洲第一在线 | 欧美成人精品激情在线观看 | 国产欧美一区二区三区日本久久久 | 欧美一二三区 | 日本a在线| 视频一区二区在线观看 | 日韩一级免费电影 | 伊人色综合久久久天天蜜桃 | 中文字幕在线不卡播放 | 99精品热视频 | 亚洲人在线观看视频 | 欧美激情欧美激情在线五月 | 国产精品美女www | 黄色a级一级片 | 中文二区 | 国产91丝袜在线播放 | 午夜成人免费视频 | 日韩欧美三级在线 | 亚洲精品一区二区三区在线 | 亚洲成人精品一区 | 久久在看 | 国产一区二区三区在线 | 日日夜夜天天 | 97人人草 | 免费黄色片视频 | 91精品国产乱码久久久久久久久 | 久久综合色综合 | 婷婷久久久久 | 国产高清一区二区三区 | 日韩成人一区二区 | 麻豆亚洲 | 久久在线 |