2022年测试程序[归 .pdf

上传人:Q****o 文档编号:26160074 上传时间:2022-07-16 格式:PDF 页数:6 大小:54.28KB
返回 下载 相关 举报
2022年测试程序[归 .pdf_第1页
第1页 / 共6页
2022年测试程序[归 .pdf_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《2022年测试程序[归 .pdf》由会员分享,可在线阅读,更多相关《2022年测试程序[归 .pdf(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、/用于 MCS51 的 C 语言例子程序#include STC12C5A16AD.H /* 函数定义* void long_delay(void); / 长延时void short_delay(void); / 短延时void tempchange(); void delay10ms(unsigned char); / 延时 1MS void write7279(unsigned char, unsigned char);/ 写入到 HD7279 unsigned char read7279(unsigned char);/从 HD7279 读出void send_byte(unsigned

2、 char); / 发送一个字节unsigned char receive_byte(void); / 接收一个字节/* 变量及 I/O 口定义* unsigned char digit5; unsigned char key_number, j, k; unsigned int tmr; unsigned long wait_cnter; sbit cs=P17; / cs at P1.7 sbit clk=P15; / clk连接于P1.5 sbit dat=P16; / dat 连接于P1.6 sbit key=P32; / key 连接于P3.2 /* HD7279A指令* #defi

3、ne CMD_RESET 0 xa4/ 复位指令#define CMD_TEST 0 xbf /测试指令#define DECODE0 0 x80/ 下载数据且按方式0 译码;#define DECODE1 0 xc8/ 下载数据且按方式1 译码;#define CMD_READ 0 x15/读键盘指令#define UNDECODE 0 x90 /下载数据但不译码#define RTL_CYCLE 0 xa3/ 循环左移指令#define RTR_CYCLE 0 xa2/ 循环右移指令#define RTL_UNCYL 0 xa1/左移指令#define RTR_UNCYL 0 xa0/ 右

4、移指令#define ACTCTL 0 x98 /消影控制 0 为消影#define SEGON 0 xe0 /段点亮指令#define SEGOFF 0 xc0/ 段关闭指令#define BLINKCTL 0 x88/闪烁控制0 为闪/*主程序 * main() /P1=0 xdb; CLK_DIV=0 x03; IE=0X81; TCON=0X01; while (1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - fo

5、r (tmr=0;tmr0 x2000;tmr+);/上电延时send_byte(CMD_RESET); / 复位 HD7279A cs=1; /* /测试指令演示/* send_byte(CMD_TEST); / 测试指令cs=1; for (j=0;j3;j+) / 延时约 3 秒 delay10ms(30); send_byte(CMD_RESET); / 清除显示cs=1; /* /闪烁指令及键盘接口测试,将用户按键的键码显示出来/如果 10 秒内无按键,或按S0 键即进入下一步演示/* wait_cnter=0; key_number=0 xff; write7279(BLINKCT

6、L,0 xfc); /第 1、2 两位设为闪烁显示write7279(UNDECODE+1,0 x88);/在第 2 位显示下划线_ write7279(UNDECODE,0X88); /在第 1 位显示下划线_ write7279(UNDECODE+2,0X01); /在第 1 位显示下划线 _ write7279(UNDECODE+3,0X02); /在第 1 位显示下划线 _ write7279(UNDECODE+4,0X03); /在第 1 位显示下划线 _ do if (!key) / 如果有键按下 key_number=read7279(CMD_READ);/读出键码write72

7、79(DECODE1+1,key_number/16);/在第 2 位显示键码高8 位write7279(DECODE1,key_number&0 x0f);/在第 1 位显示键码低8 位while (!key); / 等待按键放开wait_cnter=0; wait_cnter+; while (key_number!=0 & wait_cnter0 x1500); /如果按键为0 和超时则进入下一步演示write7279(BLINKCTL,0 xff); /清除闪烁设置/* /快速计数演示/* 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -

8、 - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - for (j=0;j5;j+) / 计数初值为00000 digitj=0; write7279(DECODE0+j,digitj); delay10ms(100); while (digit29) digit0=0; digit1+; if (digit19) digit1=0; digit2+; if (digit29) digit2=0; digit3+; if (digit39) digit3=0; digit4+; if (digit49) digit4=0; wr

9、ite7279(DECODE0,digit0); if (digit0=0) write7279(DECODE0+1,digit1); if (digit1=0) write7279(DECODE0+2,digit2); if (digit2=0) write7279(DECODE0+3,digit3); if (digit3=0) write7279(DECODE0+4,digit4); delay10ms(1); delay10ms(150); send_byte(CMD_RESET); / 清除显示cs=1; /* /下载数据但不译码指令测试名师资料总结 - - -精品资料欢迎下载 -

10、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - /* write7279(UNDECODE+7,0 x49); /在第 8 位按不译码方式显示一字符三 delay10ms(80); /* /循环左 /右移测试/三 字向右运动3 次,再向左运动3 次/* for (j=0;j23;j+) send_byte(RTR_CYCLE); / 循环右移 23 次cs=1; delay10ms(12); for (j=0;j23;j+) send_byte(RTL_CYCLE); /

11、循环左移 23 次cs=1; delay10ms(12); /* /译码方式 0 及左移指令测试/* for (j=0;j16;j+) send_byte(RTL_UNCYL); /不循环左移指令cs=1; write7279(DECODE0,j); /译码方式 0 指令,显示在第1 位delay10ms(50); delay10ms(150); send_byte(CMD_RESET);/ 发送复位指令 ,清除显示cs=1; /* /译码方式 1 及右移指令测试/* for (j=0;j16;j+) send_byte(RTR_UNCYL); / 不循环左移指令cs=1; write7279

12、(DECODE1+7,j);/译码方式0 指令,显示在第8 位delay10ms(50); delay10ms(150); /* /消隐指令测试/* unsigned char read7279(unsigned char command)/ 读 7279 send_byte(command); short_delay(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - return(receive_byte(); cs=1;

13、 void write7279(unsigned char cmd, unsigned char dta)/ 写 7279 send_byte (cmd); short_delay(); send_byte (dta); cs=1; void send_byte( unsigned char out_byte)/ 发送一个命令字 unsigned char i; clk=0; cs=0; long_delay(); for (i=0;i8;i+) clk=0; if (out_byte&0 x80)dat=1; else dat=0; clk=1; short_delay(); out_byt

14、e=1; dat=0; unsigned char receive_byte(void) / 接收一个命令字 unsigned char i, in_byte; cs=0; long_delay(); clk=0; dat=1; /设 I/0 为输入状态short_delay(); for (i=0;i8;i+) in_byte0;b-) for(a=2;a0;a-); void short_delay(void) / 短延时 30us unsigned char a,b; for(b=3;b0;b-) for(a=28;a0;a-); / * n*10ms * void delay10ms(

15、unsigned char time) unsigned char i; unsigned int j; for(i=0;itime;i+) for(j=0;j0 x390;j+); / if(!key) / key_int(); void sec()interrupt 0 key_number=read7279(CMD_READ);/ 读出键码write7279(DECODE1+1,key_number/16);/在第 2 位显示键码高8 位write7279(DECODE1,key_number&0 x0f);/在第 1 位显示键码低8 位while (!key); / 等待按键放开 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com