当前位置:首页 > 基于单片机的低频信号发生器 - 图文
XXXXX学院电子信息工程单片机课程设计报告
第5章 系统程序设计
5.1 系统程序设计流程图
开始 系统初始化 按键是否按下 计算相关参数 定时中断 送显示端口 查询选择波形 LCD显示 波形输出
图5-1系统程序设计流程图
5.2 程序流程图对应程序代码
#include
#define uchar unsigned char #define uint unsigned int
#define L_W_D XBYTE[0X9fff] #define L_W_C XBYTE[0X1fff] #define L_R_C XBYTE[0X5fff]
sbit enlcd=P2^5; sbit en11=P3^7;
-17- XXXXX学院电子信息工程单片机课程设计报告
sbit en=P3^6;
sbit dacs=P2^4; sbit Xfer=P2^3;
sbit key1=P1^7; sbit key5=P3^5;
char word[]={
'S','i','g','n','a','l',' ','P','r','o','u','c','e','r' };
char word1[]={
'M','a','d','e',' ','b','y',' ','Y','a','n','g','L', 'e','L','e','0','9','1','0','3','1','2','4' };
char boxing[]={
'S','i','n','u','s','o','i','d','a','l',' ','w','a','v','e', 't','r','i','a','n','g','u','l','a','r',' ','w','a','v','e' };
void wait();
/***********************1602写命令程序******************************************************/
void send_command(uint command) {
wait();
L_W_C=command; }
/***************************1602**********************************************/
void delay() {
uint i,j;
for(i=0;i<50;i++) for(j=0;j<50;j++) ; }
/**************************读忙程序**************************************************/
void wait() {
uchar x; do
{x=L_R_C;} while(x&0x80); delay();
-18- XXXXX学院电子信息工程单片机课程设计报告
}
/*************************1602写数*****************************************************/
void send_data(uint sdata) {
wait();
L_W_D=sdata; }
void display_word(char add,int dat) {
send_command(0x80+add); send_data(dat); }
void clear()
{ send_command(0x01);}
void init() {
send_command(0x38); send_command(0x0c); send_command(0x06); en11=1;
clear(); }
void startlcd() {
en=1; dacs=1; enlcd=0; }
void startda() {
en=0; dacs=0; enlcd=1; Xfer=0; }
void delay1(int ds) {
-19- 据程序
XXXXX学院电子信息工程单片机课程设计报告
int a,b;
for(a=0;a main() { unsigned char pd=1,pd2=1,i,bx=1,bb=0; double aa=0; init(); startlcd(); while(pd) { for(i=0;i<14;i++) { display_word (i+1,word[i]); } delay1(700); clear(); for(i=0;i<16;i++) { display_word (i,word1[i]); } for(i=0;i<8;i++) { display_word (i+0x44,word1[i+16]); } delay1(700);clear(); key1=key5=1; if(key1==0) { pd=0; while(!key1); } } startlcd(); for(i=0;i<15;i++) { display_word (i,boxing[i]); } for(i=0;i<15;i++) { display_word (i+0x40,boxing[i+15]); } -20-
共分享92篇相关文档