LCD显示秒表89C51程序.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
代码部分: #include #include //包含_nop_ 空函数指令的头文件 #define uchar unsigned char #define uint unsigned int #define out P0 sbit RS P2^0; //位变量 sbit RW P2^1; //位变量 sbit E P2^2; //位变量 void lcd_initial void ; // LCD初始化函数 void check_busy void ; //检查忙标志函数 void write_command uchar com ; //写命令函数 void write_data uchar dat ; //写数据函数 void string uchar ad ,uchar *s ; void str uchar h,uchar g ; //LCD一个位置固定显示字符函数 void lcd_test void ; void delay uint ; uchar tab[] 0,1,2,3,4,5,6,7,8,9 ; void main void //主程序 uchar t1,t2,t3,t4,t5,t6; lcd_initial ; //调用对LCD初始化函数 string 0x87,: ; string 0x84,: ; string 0x89,0 ; string 0x88,0 ; string 0x86,0 ; string 0x85,0 ; string 0x83,0 ; string 0x82,0 ; t2 0;t3 1;t4 1;t5 1;t6 1; while 1 string 0x89,tab[t1] ; t2++; str 0x88,tab[t2] ; //秒的十位进1 if t2 0x6 t2 0x0; //秒的十位满5进分的个位 str 0x88,tab[t2] ; str 0x86,tab[t3] ; t3 t3+1; if t3 0x9 //分的个位满9进分的十位 t3 0; str 0x86,tab[t3] ; str 0x85,tab[t4] ; t4++; if t4 0x5 t4 0; str 0x84,tab[t4] ; //分的十位满5进时的个位 str 0x83,tab[t5] ; t5 t5+1; if t5 0x5 t5 0; //时的个位满9进时的十位 str 0x83,tab[t5] ; str 0x82,tab[t6] ; t6 t6+1; if t6 0x2 //时的十位满2清零 t6 0; str 0x82,tab[t6] ; void delay uint j //1ms延时子程序 uchar i 250; for ;j 0;j-- while --i ; i 249; while --i ; i 250; void check_busy void //检查忙标志函数 uchar dt; do dt 0xff; E 0; RS 0; RW 1; E 1; dt out; while dt0x80 ; E 0; void write_command uchar com //写命令函数 check_busy ; E 0; RS 0; RW 0; out com; E 1; _nop_ ; E 0; delay 1 ; void write_data uchar dat //写数据函数 check_busy ; E 0; RS 1; RW 0; out dat; E 1; _nop_ ; E 0; delay 1 ; void LCD_initial void //液晶显示器初始化函数 write_command 0x38 ;//写入命令0x38:8位两行显示,5×7点阵字符 write_command 0x0C ;//写入命令0x0C:开整体显示,光标关,无黑块 write_command 0x03 ;//写入命令0x06:光标右移 write_command 0x01 ; //写入命令0x01:清屏 delay 1 ; void string uchar ad,uchar *s //输出显示字符串的函数 while *s 0 write_command ad ; write_data *s++ ; //输出字符串,且指针增1 delay 1000 ; void str uchar h,uchar g //输出单个字符串函数 write_command h ; write_data g ; delay 10 ;

文档评论(0)

ddf55855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档