222222.png (1.01 MB, 下載次數: 62)
下載附件
2019-10-23 21:35 上傳
極速截圖201910232132.png (120.63 KB, 下載次數: 53)
下載附件
2019-10-23 21:35 上傳
單片機源程序如下:
- #include "stm32f10x.h"
- #include "delay.h"
- #include "led.h"
- #include "usart1.h"
- #include "lcd.h"
- #include "adc.h"
- #include "string.h"
- #include "stdio.h"
- u16 DeviceCode;//LCD_ID型號參數變量
- unsigned int i=0,n=320,Vmun=0,ADV[310];
- char c[5],cc[];
- // ADC1轉換的電壓值通過MDA方式傳到SRAM
- extern __IO uint16_t ADC_ConvertedValue; //動變量
- // 局部變量,用于保存轉換計算后的電壓值
- float ADC_ConvertedValueLocal; //隨著動變量而動
- static u16 voltage_x1=9,voltage_y1=120,voltage_x2=9,voltage_y2=142;
- u16 time=0;
- int flag=0;
- int allnum=0,move_x=10,move_y=120,clr_flag=0,nn=0;
-
- int ad[300],vtime=1500;
- void init_panel(void);//初始化界面
- void refresh_screen();//刷新屏幕
- int main(void)
- {
- ADC1_Init();//ADC初始化
-
- USART1_Config(9600); //串口初始化
- delay_init(72); //系統滴答定時器初始化最大定時1864ms
-
- lcd_init(); //LCD初始化
-
- DeviceCode=LCD_RD_DATA(R0);//LCD的R0寄存器保存著LCD_ID型號數值
-
- printf(" LCD_ID:%x\r\n",DeviceCode); //向串口打印LCD_ID型號
-
- //提取出千位,百位,十位,各位
- c[0]=DeviceCode/4096;c[1]=DeviceCode/256%16;c[2]=DeviceCode/16%16;c[3]=DeviceCode%16;
- c[0]+=0x30; c[1]+=0x30; c[2]+=0x30; c[3]+=0x30;//16進制轉成字符型
- init_panel();//初始化界面
-
- delay_ms(50);
- while (1)
- {
- for(allnum=0;allnum<303;allnum++)
- {
-
- /*** 清除原來的電壓點痕跡 ****/
- if(clr_flag==1)
- {
- LCD_DrawPoint_3(allnum + move_x ,move_y-ad[allnum],Def_BACK_COLOR);
- if((allnum<=300)&&(ad[allnum+1]>ad[allnum]))
- {
- for(nn=ad[allnum+1]-ad[allnum];nn>0;nn--)
- {
- LCD_DrawPoint_3(allnum+1+ move_x ,move_y-(ad[allnum+1]-nn),Def_BACK_COLOR); //delay_ms(1);
- }
- }
- if((allnum<=300)&&(ad[allnum+1]<ad[allnum]))
- {
- for(nn=ad[allnum]-ad[allnum+1];nn>0;nn--)
- {
- LCD_DrawPoint_3(allnum +1+ move_x ,move_y-(ad[allnum+1]+nn),Def_BACK_COLOR); //delay_ms(1);
- }
- }
- }
-
- /*** 取電壓AD值 ****/
- ad[allnum]=ADC_ConvertedValue/90;
- /*** 畫電壓點 ****/
- LCD_DrawPoint_3(allnum + move_x ,move_y-ad[allnum] ,YELLOW);
- if((allnum>=1)&&(ad[allnum]>ad[allnum-1]))
- {
- for(nn=ad[allnum]-ad[allnum-1];nn>0;nn--)
- {
- LCD_DrawPoint_3(allnum + move_x ,move_y-(ad[allnum]-nn),YELLOW);
- }
- }
- if((allnum>=1)&&(ad[allnum]<ad[allnum-1]))
- {
- for(nn=ad[allnum-1]-ad[allnum];nn>0;nn--)
- {
- LCD_DrawPoint_3(allnum + move_x ,move_y-(ad[allnum]+nn),YELLOW);
- }
- }
- if(allnum==300){clr_flag=1;}
- }
- /*** 刷新屏幕 ****/
- refresh_screen();
-
- }
- }
- void init_panel(void)//初始化界面
- {
- int linenum=0;
-
- LCD_Clear(DARKBLUE);//清屏談藍色,示波器常見背景色
- LCD_Fill(8,18,320-8,240-22,Def_BACK_COLOR);//中間一大塊黑色背景
-
- /* 上行顯示的東東 */
- LCD_ShowString(4,1,"RIGOL",16,Def_POINT_COLOR,DARKBLUE);//左上角顯示普源品牌示波器logo
- LCD_ShowString(52,1," AUTO ",16,GREEN,BLACK);
- LCD_ShowString(120,1,"~~~~~~~~~~",16,LGRAYBLUE,BLACK);
- LCD_ShowString(226,1," $ V ",16,YELLOW,BLACK);
- LCD_ShowString(246,1,"1",16,BLACK,YELLOW);
- LCD_ShowString(254,1," 2.00",16,YELLOW,BLACK);
- /************************ 中間顯示的東東****************************************/
- /* 橫條*/
- for(linenum=5;linenum<300;linenum+=8)
- {LCD_DrawPoint_3(10+linenum,20,GRAY);}
-
- for(linenum=5;linenum<300;linenum+=8)
- {LCD_DrawPoint_3(10+linenum,70,GRAY);}
- for(linenum=5;linenum<300;linenum+=8) //中間橫條
- {LCD_DrawPoint_3(10+linenum,120,GRAY);}
- for(linenum=5;linenum<300;linenum+=8)
- {LCD_DrawPoint_3(10+linenum,170,GRAY);}
-
- for(linenum=5;linenum<300;linenum+=8)
- {LCD_DrawPoint_3(10+linenum,218,GRAY);}
-
-
- /*豎條 */
- for(linenum=5;linenum<200;linenum+=8)
- {LCD_DrawPoint_3(10,16+linenum,GRAY);}
-
- for(linenum=5;linenum<200;linenum+=8)
- {LCD_DrawPoint_3(60,16+linenum,GRAY);}
- for(linenum=5;linenum<200;linenum+=8)
- {LCD_DrawPoint_3(110,16+linenum,GRAY);}
- for(linenum=5;linenum<200;linenum+=8)
- {LCD_DrawPoint_3(160,16+linenum,GRAY);}
- for(linenum=5;linenum<200;linenum+=8)
- {LCD_DrawPoint_3(210,16+linenum,GRAY);}
- for(linenum=5;linenum<200;linenum+=8)
- {LCD_DrawPoint_3(260,16+linenum,GRAY);}
-
- for(linenum=5;linenum<200;linenum+=8)
- {LCD_DrawPoint_3(310,16+linenum,GRAY);}
-
- LCD_ShowString(157,20,"T",12,BLACK,BROWN);
- LCD_ShowString(216,20,"t",16,BLACK,BROWN);
- LCD_ShowString(224,20," <5HZ ",16,WHITE,DARKBLUE);
- /************************ 中間顯示的東東****************************************/
-
-
-
-
- /* 下行顯示的東東 */
- LCD_ShowString(4,240-18," CH1- ",16,BLACK,YELLOW);
- LCD_ShowString(52,240-18," 1.00V ",16,YELLOW,BLACK);//1.00V 這個值要傳數據,所以要用指針傳參數進去才行
- LCD_ShowString(144,240-18," Time ",16,WHITE,BLACK);
- LCD_ShowString(184,240-18," 500.0",16,WHITE,BLACK);
- LCD_ShowString(232,240-18,"us ",16,WHITE,BLACK);
- LCD_ShowString(254,240-18,"T",16,BLACK,BROWN);
- LCD_ShowString(262,240-18,"->",16,BROWN,BLACK);
- LCD_ShowString(276,240-18,"0.00",16,BROWN,BLACK);
- LCD_ShowString(308,240-18,"s",16,BROWN,BLACK);
- }
- void refresh_screen()//刷新屏幕
- {
- int linenum=0;
-
-
- // LCD_Fill(8,18,320-8,240-22,Def_BACK_COLOR);//中間一大塊黑色背景
-
- /************************ 中間顯示的東東****************************************/
-
- /* 橫條*/
- for(linenum=5;linenum<300;linenum+=8)
- {LCD_DrawPoint_3(10+linenum,20,GRAY);}
-
- for(linenum=5;linenum<300;linenum+=8)
- {LCD_DrawPoint_3(10+linenum,70,GRAY);}
- for(linenum=5;linenum<300;linenum+=8)
- {LCD_DrawPoint_3(10+linenum,120,GRAY);}
- for(linenum=5;linenum<300;linenum+=8)
- {LCD_DrawPoint_3(10+linenum,170,GRAY);}
-
- for(linenum=5;linenum<300;linenum+=8)
- {LCD_DrawPoint_3(10+linenum,218,GRAY);}
-
-
- /*豎條 */
- for(linenum=5;linenum<200;linenum+=8)
- {LCD_DrawPoint_3(10,16+linenum,GRAY);}
-
- for(linenum=5;linenum<200;linenum+=8)
- {LCD_DrawPoint_3(60,16+linenum,GRAY);}
- for(linenum=5;linenum<200;linenum+=8)
- {LCD_DrawPoint_3(110,16+linenum,GRAY);}
- for(linenum=5;linenum<200;linenum+=8)
- {LCD_DrawPoint_3(160,16+linenum,GRAY);}
- for(linenum=5;linenum<200;linenum+=8)
- {LCD_DrawPoint_3(210,16+linenum,GRAY);}
- for(linenum=5;linenum<200;linenum+=8)
- {LCD_DrawPoint_3(260,16+linenum,GRAY);}
-
- for(linenum=5;linenum<200;linenum+=8)
- {LCD_DrawPoint_3(310,16+linenum,GRAY);}
-
- LCD_ShowString(157,20,"T",12,BLACK,BROWN);
- LCD_ShowString(216,20,"t",16,BLACK,BROWN);
- LCD_ShowString(224,20," <5HZ ",16,WHITE,DARKBLUE);
- /************************ 中間顯示的東東****************************************/
- }
復制代碼
所有資料51hei提供下載:
L001基于F1標準庫3.5版本核心源代碼.zip
(20.83 KB, 下載次數: 95)
2019-10-23 21:33 上傳
點擊文件名下載附件
示波器 下載積分: 黑幣 -5
L001型示波器使用說明.doc
(6.76 MB, 下載次數: 62)
2019-10-23 21:34 上傳
點擊文件名下載附件
說明 下載積分: 黑幣 -5
L001原理圖.pdf
(1.04 MB, 下載次數: 79)
2019-10-23 21:34 上傳
點擊文件名下載附件
原理圖 下載積分: 黑幣 -5
|