資源簡介
基于stm32的數字示波器c程序絕對完整版:可實現如下功能:
1、lcd12864實時顯示波形
2、儀器具有內觸發功能,通過外部中斷實現
3、五個按鍵可選五個檔位:10HZ~100KHZ
4、具有存儲調出功能,并可用串口傳回PC機
5、被測信號基本無失真
句句本人心血,與大家分享

代碼片段和文件信息
#include?“stm32f10x_lib.h“
#include?“12864.h“
#include?“delay.h“
//#include?“front.h“
u8?addr_tab[]={
0x800x810x820x830x840x850x860x87//第一行漢字位置
0x900x910x920x930x940x950x960x97//第二行漢字位置
0x880x890x8a0x8b0x8c0x8d0x8e0x8f//第三行漢字位置
0x980x990x9a0x9b0x9c0x9d0x9e0x9f//第四行漢字位置
};
?u8?a;
void?GPIO_12864_Init(void)?//12864管腳接口初始化
{
RCC->APB2ENR|=1<<3;//開啟B時鐘
RCC->APB2ENR|=1<<6;//開啟E時鐘
GPIOB->CRL&=0XFFFFF000;
GPIOB->CRL|=0X00000333;
GPIOB->ODR|=7<0;//上拉輸出
GPIOE->CRH&=0X00000000;
GPIOE->CRH|=0X33333333;
GPIOE->ODR|=0XFF00;//上拉輸出
}
void?GPIO_12864_Read(void)//設置為輸入
{
RCC->APB2ENR|=1<<6;//開啟E時鐘
GPIOE->CRH&=0X00000000;
GPIOE->CRH|=0X88888888;
GPIOE->ODR|=0XFF00;//上拉輸出
}
void?GPIO_12864_Write(void)//設置輸出
{
RCC->APB2ENR|=1<<6;//開啟E時鐘
GPIOE->CRH&=0X00000000;
GPIOE->CRH|=0X33333333;
GPIOE->ODR|=0XFF00;//上拉輸出
}
void?Check_12864_Busy(void)//讀忙碌狀態
{
u8?flag=0;
GPIO_12864_Read();
RS=0;
RW=1;
while(flag==0)
{
delay_us(5);
CE=1;
delay_us(5);
if(DATAIN_12864&0X80)flag=0;
else?flag=1;
delay_us(5);
CE=0;
delay_us(5);
}
GPIO_12864_Write();
}
void?Write_12864_Data(u8?data)//寫數據
{
Check_12864_Busy();
RS=1;
RW=0;
delay_us(5);
CE=1;
DATAOUT_12864(data);
delay_us(5);
CE=0;
}
u8?Read_12864_Data(void)//讀數據
{
u8?data;
Check_12864_Busy();
GPIO_12864_Read();
RS=1;
RW=1;
CE=1;
delay_us(10);
data=DATAIN_12864;
CE=0;
GPIO_12864_Write();
return(data);
}
void?Write_12864_Com(u8?commod)//寫指令
{
Check_12864_Busy();
RS=0;
RW=0;
delay_us(5);
CE=1;
DATAOUT_12864(commod);
delay_us(5);
CE=0;
}
void?LCD_12864_Init(void)?//液晶初始化
{?
Write_12864_Com(basic_commod);//30H--基本指令操作?
// delay_ms(1);?
Write_12864_Com(cursor_off);//0x06開顯示,關光標,不閃爍。?擴展
// delay_ms(1);?
Write_12864_Com(clear);//清除顯示0x01?
// delay_ms(20);?
Write_12864_Com(0x06);//指定在資料寫入或讀取時,光標的移動方向,DDRAM的地址計數器(AC)加1。?
}?
void?Write_12864_String(u8?*str)//寫入字符串或者漢字
{
u8?*p;
p=str;
while(*p!=0)
{
Write_12864_Data(*p);
p=++str;
// delay_ms(10);
}
}
/*****指定位置顯示漢字*****/
void?hanzi_Disp(u8?xu8?yu8?*s)
{?
Write_12864_Com(addr_tab[8*x+y]);??//寫地址
while(*s>0)
???{?
Write_12864_Data(*s);????//寫數據
s++;?????
???}
}
/*****指定位置顯示數字,最大為65536*****/
void?num_Disp(u8?xu8?yu16?number)
{
u16?i=10000;
Write_12864_Com(addr_tab[8*x+y]);??//寫地址
while(number/i==0)
{
i/=10;
}
if(i!=1)
{
while(number/i!=0)
{
Write_12864_Data(number/i+0x30);
number-=(number/i)*i;
i/=10;
if(i==1)break;
}
}
Write_12864_Data(number%10+0x30);
}
/*畫圖方式為從左到右掃描,從上到下,每寫一個字節后行地址加一,每寫玩16個字節,即128個點(如果半屏顯示8個字節,64個點)列地址加一*/
//點陣取點方式為從左到右,從上到下,高位在前,低為在后
void?PHO_DISP(const?unsigned?char?*s)?
{?
u8?COUNT3=0X02COUNT1COUNT2LCD_X=0X80LCD_Y;
?
for?(;COUNT3!=0;COUNT3--)?
{?
LCD_Y=0X80;?//上半屏
COUNT2=0X20;//32?
for(;COUNT2!=0;COUNT2--)?
{?
COUNT1=0X10;/
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-07-21?11:02??復件?12864_2\
?????目錄???????????0??2013-07-21?11:02??復件?12864_2\HARDWAER\
?????目錄???????????0??2013-07-21?11:02??復件?12864_2\HARDWAER\12864\
?????文件????????9578??2013-07-15?15:02??復件?12864_2\HARDWAER\12864\12864.c
?????文件????????1136??2013-07-21?08:47??復件?12864_2\HARDWAER\12864\12864.h
?????文件????????5335??2013-07-20?21:21??復件?12864_2\HARDWAER\12864\cunchu.h
?????文件????????5342??2013-07-13?21:28??復件?12864_2\HARDWAER\12864\dingzhi.h
?????文件????????5436??2011-05-21?14:26??復件?12864_2\HARDWAER\12864\front.h
?????文件????????5339??2013-07-13?21:21??復件?12864_2\HARDWAER\12864\huashi.h
?????目錄???????????0??2013-07-21?11:02??復件?12864_2\HARDWAER\ADC\
?????文件????????1874??2013-07-21?10:31??復件?12864_2\HARDWAER\ADC\adc.c
?????文件?????????693??2013-07-15?20:24??復件?12864_2\HARDWAER\ADC\adc.h
?????目錄???????????0??2013-07-21?11:02??復件?12864_2\HARDWAER\EXTI\
?????文件????????1993??2013-07-20?21:57??復件?12864_2\HARDWAER\EXTI\exti.c
?????文件?????????178??2013-07-11?21:49??復件?12864_2\HARDWAER\EXTI\exti.h
?????目錄???????????0??2013-07-21?11:02??復件?12864_2\HARDWAER\KEY\
?????文件?????????756??2013-07-20?21:50??復件?12864_2\HARDWAER\KEY\key.c
?????文件?????????300??2013-07-20?21:57??復件?12864_2\HARDWAER\KEY\key.h
?????目錄???????????0??2013-07-21?11:02??復件?12864_2\HARDWAER\LED\
?????文件?????????276??2013-07-20?09:30??復件?12864_2\HARDWAER\LED\LED.c
?????文件?????????152??2013-07-20?09:37??復件?12864_2\HARDWAER\LED\LED.h
?????目錄???????????0??2013-07-21?11:02??復件?12864_2\HARDWAER\PWM\
?????文件?????????489??2011-05-20?21:06??復件?12864_2\HARDWAER\PWM\PWM.c
?????文件?????????125??2011-01-28?17:52??復件?12864_2\HARDWAER\PWM\PWM.h
?????目錄???????????0??2013-07-21?11:02??復件?12864_2\HARDWAER\TIME3\
?????文件?????????406??2011-01-28?16:14??復件?12864_2\HARDWAER\TIME3\TIME3.c
?????文件??????????79??2011-01-28?15:34??復件?12864_2\HARDWAER\TIME3\TIME3.h
?????目錄???????????0??2013-07-21?11:02??復件?12864_2\HARDWAER\TIMER\
?????文件????????1318??2013-07-20?16:05??復件?12864_2\HARDWAER\TIMER\timer.c
?????文件?????????599??2012-07-23?19:09??復件?12864_2\HARDWAER\TIMER\timer.h
?????目錄???????????0??2013-07-21?11:02??復件?12864_2\SYSTEM\
............此處省略68個文件信息
- 上一篇:97網課考試軟件.zip
- 下一篇:( generator.rar )
評論
共有 條評論