下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、uchar data cnt8; uchar data pre_cnt8;sbit drv=P3A4;bit set_flag;bit out_flag;bit keydown_flag;*可预置的 8 位计数器程序的主要部分分析#include <A T89X51.H>/器件配置文件#define uchar unsigned char/变量类型的宏定义#define uint unsigned intuchar code SEG710=0x03,0x9f,0x25,0x0d,0x99, /09 的数码管段码0x49,0x41,0x1f,0x01,0x09;在data区定义8位长
2、度的数组,用来存放计数值/在 data 区定义 8 位长度的数组,用来存放预置值 /定义输出驱动端/定义工作标志/定义输出标志/键按下标志void scan_key(void) uchar i,m=0x01; P3_6=0;P3_7=1;for(i=0;i<8;i+)/扫描 S1S8 键子程序开始/定义两个字符型局部变量,并赋值0x01 给 m/禁止发送给显示器,消隐有效/循环 8 次SBUF=255-m;while(!TI);TI=0;/依次发送数据使 IC2 的输出从右至左的列线为 0if(!P3_5)pre_cnti+;/若检测到 P3.5 为 0,说明某列线送出0 时与连接/该列
3、线的按键被按下,数组中对应的存放单元加1m<<=1;/m 的取值使从右向左的下一条列线为0/扫描 S1S8 键子程序结束*/for(i=0;i<8;i+)if(pre_cnti>9)pre_cnti=0;/循环 8 次/对数组中的 8 个单元进行调整,其范围为 09void dis_cnter(void)/显示计数器值子程序开始uchar i;/定义字符型局部变量 iP3_7=1;P3_6=1;/消隐有效,允许显示for(i=0;i<8;i+)/循环 8 次SBUF=SEG7cnti;while(!TI);TI=0;/根据 8 个单元的计数值查表发送显示P3_7=
4、0;/关闭消隐,正常显示/显示计数器值子程序结束*void cnter(void)/计数转换子程序开始uchar i;/定义字符型局部变量ifor(i=0;i<7;i+)/循环 8 次if(cnti>9)cnti=0;cnti+1+;/若计数器某位值大于 9,则该位回 0,/ 而高位被进位加 1/if(cnt7>9)for(i=0;i<8;i+)cnti=0;/ 若计数器最高位值大于 9,则计数器全清 0 / 计数转换子程序结束/*/void pt_cnt(void)/输出控制子程序开始 if(cnt0=pre_cnt0)&&(cnt1=pre_cnt1
5、)&& (cnt2=pre_cnt2)&&(cnt3=pre_cnt3)&& (cnt4=pre_cnt4)&&(cnt5=pre_cnt5)&& (cnt6=pre_cnt6)&&(cnt7=pre_cnt7)/ 若计数值等于预置值out_flag=1;/输出标志置 1else out_flag=0;/否则输出标志置0/=if(out_flag)drv=0;若输出标志为1,输出端(P3.4)置0,驱动光耦U2else drv=1;/否则输出端(P3.4)置 1/输出控制子程序结束*void mai
6、n(void)IE=0x84;IT1=1; while(1) P3_6=0;P3_7=1;/主程序开始/开放 CPU 中断,开放外中断 1 的中断/置外中断 1 为边沿触发/无限循环/禁止发送给显示器,消隐有效SBUF=0x00;while(!TI);TI=0;/向 IC2 发送 0x00,使 IC2 输出为全 0if(P3&0x24)!=0x24)keydown_flag=1; / 检测 P3.2、P3.5 是否为高电平。/若不为高电平,说明有键按下,键被按下标志置 1else keydown_flag=0;/否则,键被按下标志置0/SBUF=0xfe;while(!TI);TI=0; / 向 IC2 发送 0xfe if(!P3_2)set_flag=!set_flag; 若 P3.2 为 0,说明 S9 键按下,标志 set_flag 取反 /=if(!set_flag)cnter();dis_cnter();pt_cnt();delay(100);/若标志 set_flag 为 0,调用计数、显示计数、输出控制的子程序else scan_key();dis_pre_cnter();delay(10);否则标志 set_flag 为 1,调用扫描 S1S8 键、显示预置值的子程序/= if(keydown_flag)delay(300);/因有键按下,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代账公司物品采购制度
- 采购店面管理制度
- 名词解释统一采购制度
- 标准件采购管理制度
- 企业物资采购内控制度
- 书馆馆藏文献采购制度
- 采购部财务报销制度
- 药品设备采购制度
- 企业采购与付款管理制度
- 敬老院采购制度
- 三级 模块二 项目六 功能促进 任务三 指导或协助老年人使用安全防护性辅助器具
- 2026年安徽工贸职业技术学院单招职业技能测试题库附答案详解ab卷
- 2026贵州省气象部门第二批公开招聘应届毕业生22人考试参考题库及答案解析
- 2026年咸宁职业技术学院单招职业倾向性测试题库及答案详解(网校专用)
- 浙江省名校协作体2024-2025学年高三下学期联考英语试题+答案
- 1999年制干部履历表8k
- 中国普通食物营养成分表一览
- 潜水医学PPT完整全套教学课件
- 水稻病虫害综合防治课件
- 咨询项目突发事件应急预案
- 食品生产通用卫生规范宣贯培训课件
评论
0/150
提交评论