程序设计复习要点.docx
- 文档编号:24525382
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:14
- 大小:346.61KB
程序设计复习要点.docx
《程序设计复习要点.docx》由会员分享,可在线阅读,更多相关《程序设计复习要点.docx(14页珍藏版)》请在冰豆网上搜索。
程序设计复习要点
程序设计复习要点
5、MEGA16单片机的USART模块中一帧数据中空闲位和起始位是什么状态?
画图说明
校验位,可以为奇校验或偶校验
起始位,总是为低电平
数据位(0~8)
停止位,总是为高电平
1.通讯线上没有数据传输(RxD或TxD),线路空闲时必须为高电平
四、按图编程
1、想使用单片机的PA口接8位发光二极管,PB1\PB2接两个按键,PB7接一只继电器,请这几这样的一个电路原理图(10分)
2、由图所示,编程实现U2、U1单片机的双机通信功能。
(15分)
要求:
单片机使用内部晶振1兆赫兹,波特率4800时URBB=12,8位数据、无奇偶校验、1位停止位,异步通信,按下各自的按键时使另一块单片机上的LED闪烁4次。
四、按图编程
1、根据图1所示2位共阳数码管,试用动态显示编程实现显示12数字(10分)
#include"iom16v.h"
#defineledseg1_onPORTA|=(1< #defineledseg1_offPORTA&=~(1< #defineledseg2_onPORTA|=(1< #defineledseg2_offPORTA&=~(1< //***GONGYANGXING** //constunsignedcharNum_Dis_TDB[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; voidDelay_1_ms(void) { unsignedcharcnt_i,cnt_j; for(cnt_i=0;cnt_i<40;cnt_i++) { for(cnt_j=0;cnt_j<33;cnt_j++) { } } } voidDelay_n_ms(unsignedintn_ms) { unsignedintcnt_i; for(cnt_i=0;cnt_i { Delay_1_ms(); } } voidmain(void) { unsignedchardis_temp,i; DDRA=0xFF; PORTA=0xFF; DDRB=0xFF; PORTB=0xFF; DDRD=0x00; PORTD=0xff; while (1) { PORTB=0xF9; ledseg1_on; Delay_n_ms(20); ledseg1_off; PORTB=0xA4; ledseg2_on; Delay_n_ms(20); ledseg2_off; } } 2、由图2所示,编程实现U2单片机的按键动作控制U1单片机的LED亮灭。 (15分) 要求: 单片机使用内部晶振1兆赫兹,波特率4800时URBB=12,8位数据、无奇偶校验、1位停止位,异步通信,发送采用查询方式、接收采用中断方式。 1、根据图1所示用外部中断0外接一个按键,在中断服务程序中使LED闪烁3次 时间间隔1秒(10分) #include"iom16v.h" #include"macros.h" #defineled_onPORTC|=(1< #defineled_offPORTC&=~(1< voidDelay_1_ms(void) { unsignedcharcnt_i,cnt_j; for(cnt_i=0;cnt_i<40;cnt_i++) { for(cnt_j=0;cnt_j<33;cnt_j++) { } } } voidDelay_n_ms(unsignedintn_ms) { unsignedintcnt_i; for(cnt_i=0;cnt_i { Delay_1_ms(); } } #pragmainterrupt_handlerINT0_isr: 2 voidINT0_isr(void) { unsignedchari; for(i=0;i<3;i++) { led_on; Delay_n_ms(50); led_off; Delay_n_ms(50); } } voidmain(void) { CLI();//全局中断标志禁止 DDRD=0x00; PORTD=0xFF; DDRC=0xFF; MCUCR=(1< GICR=(1< 使能外部中断请求0,I←0,0x40;/ SEI();//全局中断标志使能,I←1 while (1) { //等待中断信号 } } 2、由图2所示,编程实现A/D模块的读数据及初始化子程序。 (15分) 要求: 10位数据转换结果,只完成AD部分的初始化及数据读取的子程序。 (1)ADC初始化子程序 voidATmega16_ADC_Init(void) { ADCSRA=0x00;//关闭ADC ADMUX=0x40;//选择参考电压为AVCC、数据右对齐、通道0 ACSR=0x80;//关闭模拟比较器的电源 ADCSRA=0x87;//使能ADC、单次转换、ADC转换中断禁止、128分频 } (2)ADC转换读数据子程序 unsignedintATmega16_ADC_Convert()//void {unsignedintadc_value; ATmega16_AD_Start;//启动AD转换 while(! (ADCSR&(1< adc_value=(unsignedint)ADCL;//读取低8位 adc_value|=((unsignedint)(ADCH&0x03))<<8;//读取高2位 NOP(); returnadc_value; } 1、根据图1所示,完整编程序让LED亮一秒,灭一秒,循环不止(8分) 假设晶振为4Mhz。 程序如下: #include"iom16v.h" #defineled_onPORTA|=(1< #defineled_offPORTA&=~(1< voidDelay_1_ms(void) { unsignedcharcnt_i,cnt_j; for(cnt_i=0;cnt_i<40;cnt_i++) { for(cnt_j=0;cnt_j<33;cnt_j++) { } } } voidDelay_n_ms(unsignedintn_ms) { unsignedintcnt_i; for(cnt_i=0;cnt_i { Delay_1_ms(); } } voidmain(void) { DDRA=0xFF; PORTA=0xFF; while (1) { led_on; Delay_n_ms(1000); led_off; Delay_n_ms(1000); } } 2、由图2所示,完成编写按键扫描程序,可以直接使用第1题中延时子程序名称,按键值任意。 (8分) #include"iom16v.h" #defineled_onPORTC|=(1< #defineled_offPORTC&=~(1< voidDelay_1_ms(void) { } voidDelay_n_ms(unsignedintn_ms) { } unsignedcharGet_Key_Val() { unsignedcharkey_val=0; if(PINA! =0XFF)// { key_val=PINA; switch(key_val)// { case0xdf: key_val=1;break; default: break; } } returnkey_val;// } voidmain(void) { unsignedcharcnt_i; DDRA=0x00; PORTA=0xFF; //DDRC=0xFF; //PORTC=0xFF; while (1) { while(Get_Key_Val()==0);// if(Get_Key_Val()==1) { led_on; Delay_n_ms(10); led_off; Delay_n_ms(10); } } } 3、由图3所示,编写单片机AD转换模块的,初始化及获取转换值的两个子程序,要求数据右对齐,其他按图设置。 (10分) (1)ADC多工选择寄存器-ADMUX Bit7: 6-REFS1: 0: 参考电压选择Bit5-ADLAR: ADC转换结果左对齐 Bits4: 0-MUX4: 0: 模拟通道与增益选择位 (2)ADC控制和状态寄存器A-ADCSRA Bit7-ADEN: ADC使能Bit6-ADSC: ADC开始转换Bit5-ADATE: ADC自动触发使能Bit4-ADIF: ADC中断标志Bit3-ADIE: ADC中断使能Bits2: 0-ADPS2: 0: ADC预分频器选择位 (1)ADC初始化 voidATmega16_ADC_Init(void) { ADCSRA=0x00;//关闭ADC ADMUX=0x43;//选择参考电压为AVCC、数据右对齐、通道3 ACSR=0x80;//关闭模拟比较器的电源 ADCSRA=0x87;//使能ADC、单次转换、ADC转换中断禁止、128分频 } (2)ADC转换子程序 unsignedintATmega16_ADC_Convert()//void { unsignedintadc_value; ATmega16_AD_Start;//启动AD转换 while(! (ADCSR&(1< adc_value=(unsignedint)ADCL;//读取低8位 adc_value|=((unsignedint)(ADCH&0x03))<<8;//读取高2位 NOP(); returnadc_value; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 复习 要点