ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:46.50KB ,
资源ID:12300005      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-12300005.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51单片机_数码管控制.doc)为本站会员(ysd1539)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

51单片机_数码管控制.doc

1、51 系列单片机_数码管控制源文件此程序使用 单片机 89SC52/ 1、 此程序实现数码管的静态显示,在数码管的最低位循环显示 09 这 10 个数#includeunsigned char code BitSet8 = 0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f; /用于设置(低电平位选)数码管的位选信号,从低到高对应 8 个数码管unsigned char code NumberCode16 = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c,

2、0x39, 0x5e, 0x79, 0x71,; /用于设置(共阴极)数码管的段选信号,从 0f 共 16 个数值void delay_ms(unsigned int n) /软件延时函数,延时 n 毫秒unsigned int i, j;for(i=n;i0;i-)for(j=110;j0;j-);void main()int num, i;while(1)num = 3;while(num0)/此循环用于实现 09 这 10 个数码在数码管的最低位循环显示P2 = BitSet7; /选中数码管的最低位,用于显示for(i=0; i0)/此循环用于实现 0f 这 16 个数码在数码管的所有

3、位循环显示P2 = 0; /同时选中数码管的所有位,用于显示for(i=0; iunsigned char code BitSet28 = 0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe; /用于设置(低电平位选)数码管的位选信号,从低到高对应 8 个数码管unsigned char code NumberCode16 = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71,; /用于设置(共阴极)数码管的段选信

4、号,从 0f 共 16 个数值void delay_ms(unsigned int n) /软件延时函数,延时 n 毫秒unsigned int i, j;for(i=n;i0;i-)for(j=110;j0;j-);void main()int i;while(1)for(i=0; ivoid delay_ms(unsigned int n) /软件延时函数,延时 n 毫秒unsigned int i, j;for(i=n;i0;i-)for(j=110;j0;j-);void display(int num,int rep) /控制数码管按位输出显示数值 num,显示时间为 2*rep 毫

5、秒 char BitSet8 = 0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe; /用于设置(低电平位选)数码管的位选信号,从低到高对应 8 个数码管char NumberCode16 = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71,; /用于设置(共阴极)数码管的段选信号,从 0f 共 16 个数值int n, r = rep, i;while(r- 0)n = num;i = 0;while(n=0

6、)P0 = 0xff; /关闭数码管当前位的显示,共阳极关闭显示段选信号P2 = BitSeti; /选中数码管对应的位P0 = NumberCoden%10; /向数码管的对应位中送入该位数值对应的段选信号delay_ms(2); /每一位延时显示 2msP2 = 0xff; /关闭所有位选i+; /位标记n=n/10; /取数值 n 的商if(n=0) break; /当取得的商为 0 时退出 while 循环void LeftDisplay(int num,int rep) /控制数码管按位输出显示数值 num,并且靠左显示,显示时间为 2*rep 毫秒char BitSet8 = 0x

7、7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe; /用于设置(低电平位选)数码管的位选信号,从低到高对应 8 个数码管char NumberCode16 = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71,; /用于设置(共阴极)数码管的段选信号,从 0f 共 16 个数值int n = num, r = rep, i, j = 0;/计算数值 n 的位数if(n=0)j=1;elsewhile(n0)n=n/1

8、0; /取数值 n 的商j+;while(r- 0)n = num;i = 0;while(n=0)P0 = 0xff; /关闭数码管当前位的显示,共阳极关闭显示段选信号P2 = BitSeti+8-j; /选中数码管对应的位P0 = NumberCoden%10; /向数码管的对应位中送入该位数值对应的段选信号delay_ms(2); /每一位延时显示 2msP2 = 0xff; /关闭所有位选i+; /位标记n=n/10; /取数值 n 的商if(n=0) break; /当取得的商为 0 时退出 while 循环/*void LeftDisplay(int num) /用数码管按位输出显

9、示数值 num,并且靠左显示int n = num, i = 0, j = 0;/计算数值 n 的位数if(n=0)j=1;elsewhile(n0)n=n/10; /取数值 n 的商j+;n = num; /得到数值 n 的位数后,恢复其值进行后续操作if(n=0) /当要输出 0 时P0 = 0xff; /关闭数码管当前位的显示,共阳极关闭显示段选信号P2 = BitSet27; /选中数码管最高位P0 = NumberCode0; /向数码管的最低位送入 0 对应的段选信号delay_ms(5); /延时 2msP2 = 0xff; /关闭所有位选elsewhile(n0)P0 = 0x

10、ff; /关闭数码管当前位的显示,共阳极关闭显示段选信号P2 = BitSet2i+8-j; /选中数码管对应的位P0 = NumberCoden%10; /向数码管的对应位中送入该位数值对应的段选信号delay_ms(5); /延时 2msP2 = 0xff; /关闭所有位选i+; /位标记n=n/10; /取数值 n 的商*/void main()int num=0;while(1)if(num12) display(num, 400); /用数码管输出显示 num 0.8 秒else LeftDisplay(num, 400); /用数码管靠左输出显示 num0.8 秒num+;if(num=101) num=0;

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报