实验六教学板自检程序设计

上传人:泽*** 文档编号:75640455 上传时间:2022-04-16 格式:DOC 页数:8 大小:158.50KB
返回 下载 相关 举报
实验六教学板自检程序设计_第1页
第1页 / 共8页
实验六教学板自检程序设计_第2页
第2页 / 共8页
实验六教学板自检程序设计_第3页
第3页 / 共8页
点击查看更多>>
资源描述
华南师范大学实验报告学生姓名:学号:专业:电子信息科学与技术(非师范)年级、班级:07 电子非师4 班课程名称:单片机实验实验时间:2010、3、29实验项目: 教学板自检类型:验证实验指导老师:实验评分:一、实验目的1通过实验掌握EEPROM 使用2. 掌握串行 A/D 的应用3. 掌握单片机串行通信收发接口的使用4学习系统应用程序的设计和调试方法。二、实验设备PC机一台、 实验教学板一块。三、实验内容及原理程序运行前先将TXD 、 RDX 短接。程序完成以下功能:1自检程序先将所有的数码管点亮,显示09,每秒变换一次。2. 编写走马灯程序,使 LED 逐位显示一次3.自检程序将 EEPROM 所有单元置 0,并读出检查是否为 0,再置 EEPROM 所有单元为 FFH,并读出检查是否为全 1。若不成功则显示器显示“ Er r 1” 。4.启动串行口进行自发自收, 检查发、收的数据是否相同。 不成功则显示 “ Err 2” 。5. 启动 A/D ,并在数码管上显示 A/D 转换值。6. 等待按键,按任一键则蜂鸣器发声 0.5 秒一次。四、程序清单ORG 0000HAJMP MAINORG 000BHAJMP TIME0CLOCK BIT P1.2DOUT BIT P1.3;TLC549CP ;TLC549CP时钟输出CS BIT P1.4;TLC549CP片选MAIN:START:LOOP:JIXU:MOV P2,#00HMOV DPTR,#TAB1MOV A,#00HMOVC A,A+DPTRCJNE A,#0BH,JIXUJMP START1MOV P0,AMOV P2,#0FHLCALL DELAY200MSLCALL DELAY200MSLCALL DELAY200MSLCALL DELAY200MSLCALL DELAY200MSINC DPTRJMP LOOP;取段码;非结束码,转去送段码;是结束码,转去测试发光二极管;开 4 个数码管;延时 1s;数据指针 +1,指向下一个显示码START1:MOVP2,#00010000B;从左到右;USER0MOV A,#11111111BCLR CMOV R0,#8;左移次数=8LOOP2: RLC AMOV P0,A;送显示LCALL DELAY200MSDJNZ R0,LOOP2;左移8 次未够,返回,继续MOV A,#11111111B;从右到左CLR CMOV R0,#8;右移位数=8LOOP1: RRC AMOV P0,A;送显示LCALL DELAY200MSDJNZ R0,LOOP1;右移8 次未够,返回,继续MOV A,#00HMOV P0,ALCALL DELAY200MSMOV A,#0FFHMOV P0,A;闪烁两次LCALL DELAY200MSMOV A,#00HMOV P0,ALCALL DELAY200MSMOV A,#0FFHMOV P0,ALCALL DELAY200MSSTART2:MOV P2,#00H;串口自发自收MOV TMOD,#20H;设置计时器 T1 工作方式 2MOV TL1,#0E6H;计数器 T1 计数初值MOV TH1,#0E6HSETB TR1; 启动定时器MOV SCON,#50H;设置串行端口方式 1,允许接收MOV PCON,#80H;SMOD=1 ,波特率加倍MOV 30H,#10101010B ; 置需要发送的数据MOV A,30HFASONG: MOV SBUF,AJNB TI,$;等待发送完呼叫信号CLR TIJIESHOU:JNB RI,$MOV A,SBUFJBC RI,ZANCUN;等待接收完回答信号SJMP JIESHOUZANCUN: MOV 40H,AMOV A,30H示 ERR2CJNE A,40H,ERR2;接收的数据与发送数据比较,不等,跳去显SJMP START5ERR2:MOV P2,#00H;USE R2,R5,R6,MOV R6,#00HMOV R2,#4;4 位显示MOV R5,#01HMOV DPTR,#TAB3HAHA:MOV A,#00HMOVC A,A+DPTRCJNE A,#0CH,SONGJMP ERR2SONG:MOV P0,A;送段码MOV A,R5MOV P2,A;送位码DJNZ R6,$;1ms 延时DJNZ R6,$RL AMOV R4,AINC DPTRJMPHAHA;让下一位亮START5: CLR P1.4;片选信号 CS 为低电平MOV 50H,#0; 存转换结果单元清 0CLR P1.2;置 clock 为低电平MOV R1,#8;8 位数据AD_HIG:LCALL DELAYMOV C,P1.3;读 D7,D6,D5.D0MOV A,50HRLC AMOV 50H,A;转换值暂存 50HSETB P1.2;置 clock 为高电平LCALL DELAYCLR P1.2DJNZ R1,AD_HIG;8 位未移完,返回,继续SETB P1.4;设置 CS 为高电平,结束 A/D 转换DISP:SETB RS1;显示转换值MOV R7,#5DISP1:MOV P2,#00HMOV A,50HMOV B,#51DIV ABMOV 56H,A;个位MOV 60H,BMOV A,60HMOV B,#10DIV ABMOV 57H,A;0.1 位MOV 61H,BMOV A,61HMOV B,#10DIV ABMOV 58H,A;0.01 位MOV 59H,B;0.001 位MOV R0,#56HMOV A,R0MOV DPTR,#TAB2;查表,取段码MOVC A,A+DPTRMOV P0,AMOV P2,#00000001BLCALL DELAY2MSMOV R0,#57HMOV A,R0MOV DPTR,#TAB1MOVC A,A+DPTRMOV P0,AMOV P2,#00000010BLCALL DELAY2MSMOV R0,#58HMOV A,R0MOV DPTR,#TAB1MOVC A,A+DPTRMOV P0,AMOV P2,#00000100BLCALL DELAY2MSMOV R0,#59HMOV A,R0MOV DPTR,#TAB1MOVC A,A+DPTRMOV P0,AMOV P2,#00001000BLCALL DELAY2MSDJNZ R7,DISP1CLR RS1AJMP START4DELAY2MS:SETB RS1MOV R3,#2DD1:MOV R4,#5DD2:MOV R5,#100;2MS延时DJNZ R5,$DJNZ R4,DD2DJNZ R3,DD1CLR RS1RETDELAY: MOV R6,#10HDJNZ R6,$RETSTART4:MOV R7,#10;0.5s需要中断次数;USE R7,R3,R4MOV P2,#00H;-键盘查询程序 -KEY:ACALL KS;调按键查询子程序判断是否有键按下JNZ K1;有键按下转移AJMP KEY;继续查询按键;-键盘扫描程序 -K1:ACALL KS; 再次判断是否有键按下JNZ K2;有键按下,转移AJMP KEY;无键按下,误读,继续查询按键K2:MOV R3,#11101111B ;首列扫描字送 R3,P3.4=0MOV R4,#0;首列号送 R4K3:MOV P3,R3;列扫描字送 P3MOV A,P3;读取行扫描字JB ACC.3,L1;第一行无按键按下,转查第二行MOV A,#1;第一行有键按下,行首键号送AAJMP LK;转求键值L1:JB ACC.2,NEXT;第二行无键按下,转查下一列MOV A,#5;第二行有键按下,行首键号送AAJMP LK;转求键值LK:ADD A,R4;计算键值ACALL PR;转到键盘处理程序NEXT:INC R4;修改列号MOV A,R3JNB ACC.7,KEY;四列扫描完,返回按键查询状态RL A;为扫描完,改为下一列扫描字MOV R3,A;列扫描字暂存 R3AJMP K3;转列扫描程序;-键盘处理程序 -PR:CJNE A,#1,PR2;不是 KE1 键,转 KE2 键AJMP KE;转 KE1 键处理程序PR2:CJNE A,#2,PR3;不是 KE2 键,转 KE3 键AJMP KEPR3:CJNE A,#3,PR4;不是 KE3 键,转 KE4 键AJMP KEPR4:CJNE A,#4,PR5;不是 KE4 键,转 KE5 键AJMP KEPR5:CJNE A,#5,PR6;不是 KE5 键,转 KE6 键AJMP KEPR6:CJNE A,#6,PR7;不是 KE6 键,转 KE7 键PR7:PR8:PR9:AJMP KE CJNE A,#7,PR8 AJMP KE CJNE A,#8,PR9 AJMP KE AJMP KEY;不是 KE7 键,转 KE8 键;不是 KE8 键,返回按键查询; 返回按键查询状态KE:MOV TH0,#3CHMOV TL0,#0B0HSETB TR0MOV IE,#82H;按键处理程序KE1:ACALL JNZ KE1KS;等键释放;未释放 ,等待CLR TR0;关定时器1CLR P2.5LJMP KEY;返回按键查询状态;- 按键查询子程序 -KS:MOV P3,#00001111B ;全扫描字送 P3 口MOV A,P3;读入 P3 口状态CPL A;变正逻辑,高电平表示有键按下ANL A,#00001100B;只保留 P3.2 和 P3.3RET;返回, A 不等于 0 表示有键按下TIME0:CLR EAPUSH ACCPUSH PSWSETB EAMOV TH0,#3CHMOV TL0,#0B0HDJNZ R7,RENMMOV R7,#10CPL P2.5RENM:CLR EAPOP PSWPOP ACCSETB EARETI;USE R7DELAY200MS:SETB RS0MOV R3,#20D1:MOV R4,#20D2:MOV R5,#248DJNZ R5,$DJNZ R4,D2DJNZ R3,D1CLR RS0RETTAB1: DB 0C0H,0F9H,0A4H,0B0H,99H,92HDB 82H,0F8H,80H,90H,7FHDB 0BHTAB2: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H;含小数点TAB3: DB 86H,0AFH,0AFH,0A4HDB 0CHEND上善若水于华师大
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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