C语言源程序LCD
C语言源程序
//******** 小波电子工作室 All rights reserved******//******** 个人主页:/niejinbo **
//******** 文 件 名: lcd_0712.c **************//******** 功能概要: LCD液晶显示字符 ***********//******** MCU: STC89C52 晶振:11.0592Mhz ***********//******** 设 计 者: 聂金波 ************//******** 完成日期: 2008-07-12 ************//******** 当前版本: 0712_1 ************//******** 改进说明: 暂无 ************
//**********头文件区************#include#include#include#include
//*********宏定义方便使用*******#define uchar unsigned char#define uint unsigned int
//*********定义变量区***********sbit dula=P2^6; //数码管段选sbit wela=P2^7; //数码管位选sbit lcden=P3^4; //LCD使能信号sbit lcdrs=P3^5; //LCD数据/命令选择信号uchar code tab_nie[]="Nie Jinbo";uchar code tab_index[]="";
//*********函数声明区***********void lcd_dis(); //lcd显示函数void lcd_init(); //LCD初始化函数void write_com(uchar); //写命令函数void write_data(uchar); //写数据函数void delay(uint); //延时函数
//*********主函数开始***********
void main(){lcd_dis();while(1); }
//*********lcd显示函数开始******void lcd_dis(){uchar n; lcd_init();write_com(1);write_com(0x80+4); //设置光标位置for(n=0;n<9;n++){write_data(tab_nie[n]);delay(2);}write_com(0x80+0x40); // 设置光标位置for(n=0;n<15;n++){write_data(tab_index[n]);delay(2);}}
//*********LCD初始化函数开始****void lcd_init(){dula=0;wela=0; // 关闭数码管显示lcden=0;write_com(0x38); //设置显示模式:16X2,5X7,8位数据接口write_com(0x0f); //开显示,显示光标,光标闪烁write_com(0x06); //读写一个字符后,地址指针及光标加一,且光标加一整屏显示不移动write_com(0x80); //设置光标指针}
//*********写命令函数开始*******void write_com(uchar com){lcdrs=0; //低电平写命令P0=com; //写入命令delay(3); //延时约3mslcden=1; //LCD使能端置高电平delay(5); //延时约5mslcden=0; //LCD使能端拉低电平}
//*********写数据函数开始*******void write_data(uchar dat){lcdrs=1; //低电平写数据P0=dat; //写入命令delay(3); //延时约3mslcden=1; //LCD使能端置高电平delay(5); //延时约5mslcden=0; //LCD使能端拉低电平}
//*********延时函数开始*********void delay(uint k){uint i,j;for(i=k;i>0;i--)for(j=110;j>0;j--);}
实验原理
51单片机的一个I/O口控制speaker发声,演奏老鼠爱大米。
主要器件以及电路图
单片机——AT89C51,蜂鸣器——speaker。
C语言程序源码
C语言的程序代码