2022年单片机应用:只数码管同时显示多个不同字符[借 .pdf
《2022年单片机应用:只数码管同时显示多个不同字符[借 .pdf》由会员分享,可在线阅读,更多相关《2022年单片机应用:只数码管同时显示多个不同字符[借 .pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、51 单片机应用: 8 只数码管同时显示多个不同字符设计要求单片机控制8 只数码管,同时显示8 个字符。例如,从左至右显示“12345678” ,接着显示“23456781” ,在接着显示“34567812” ,,“81234567” , “12345678” ,分析及方案设计:本题可以采用扩展I/O 口或直接用单片机自身的I/O 口的方法实现。 为节省硬件设施并使电路连线尽量简单,采用直接使用单片机自身I/O 口的方式, 8 个数码管同时显示数字则需采用动态显示方法,初步设定以P0口给出数码管显示字段,P1口选中某一时刻动态点亮的数码管。软件设计可以有以下几种方案:a)将全部显示状态列出,放
2、在主程序中不断循环b)将显示状态放入8 个数组中,每个状态循环一次后主程序重新开始循环c)只设置两个数组,其中一个取值不变,为正序的从1 到 8 的共阳极数码管段码,另一个数组中的数值不断被修改,即每次显示状态改变的时候都相应改变一次,如从12345678 的段码改为23456781 的段码。从上述方案可以看出,若设置太多的数组或列出所有显示状态,程序虽然清晰易懂但占用程序存储空间明显较大,且用delay()函数延时的话会不断占用CPU ;用两个数组和两个定时器虽然算法略复杂,但程序可以达到最简化。详细的方案说明:1)采用数码管动态显示方法。2)8 个数码管由P3控制位选,即决定某一时刻哪一个
3、数码管亮,由P0 发出的总线控制显示的段码。3)定时器 T0 和 T1 同时工作, 定时时间均为0.5 毫秒, 采用方式 1 定时, 每次溢出后由软件重装初值。4)设置中间变量temp,用于不断左移并给P3 赋值;数组 display为 code 即取之不变的数组,数组show 中的取值变化。5)每次 T0 计数溢出时, temp 左移一次,相应的P3左移一次,数码管由第i 个点亮变为第 i+1 个点亮, 与此同时赋给P0口的值由showi变为 showi+1,达到动态显示的效果。6)定时器 T1 也是每 0.5 毫秒计数溢出一次,但只有到1 秒时才执行定时器1 中断中修改数组 show 取值
4、的程序, 用变量 t 记录 T1 溢出的次数, 达到 200 次时数组show 中的内容开始进行修改并且t 清零。假设 showp0 到 show7 中的取值分别为共阳极数码管显示 1、2、 3、4、5、6、7、8 的段码,修改后分别变为显示2、3、 4、5、6、7、8、1的段码,这样显示状态自然发生了改变。7)修改 show 中的取值为本程序中细节最多的部分,设置无符号长整型变量n (无符号长整型变量的取值为0 到 4294967295,按 1 秒增加 1 的速度计算,在实验范围内不会溢名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
5、- - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 出)为显示状态总共改变的次数,易知show0 的值为 displayp,p 为 n 除以 8 的余数,从此处开始循环给show 重新赋值。硬件电路设计:程序:#include #include int i,t,m,a; unsigned long n; unsigned char code display=0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80; unsigned char show=0 xf9,0 xa4,0 xb0,0 x99
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年单片机应用:只数码管同时显示多个不同字符借 2022 单片机 应用 数码管 同时 显示 不同 字符
限制150内