西北工业大学C程序大赛获奖程序。 主要是一个C程序编写的DOS下的小游戏,程序虽小,架构俱全,注释完善,是学习C语言的非常好的实例。
上传时间: 2016-05-06
上传用户:heart520beat
/*--------- 8051内核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序状态字寄存器 sbit CY = PSW^7; //进位标志位 sbit AC = PSW^6; //辅助进位标志位 sbit F0 = PSW^5; //用户标志位0 sbit RS1 = PSW^4; //工作寄存器组选择控制位 sbit RS0 = PSW^3; //工作寄存器组选择控制位 sbit OV = PSW^2; //溢出标志位 sbit F1 = PSW^1; //用户标志位1 sbit P = PSW^0; //奇偶标志位 sfr SP = 0x81; //堆栈指针寄存器 sfr DPL = 0x82; //数据指针0低字节 sfr DPH = 0x83; //数据指针0高字节 /*------------ 系统管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //电源控制寄存器 sfr AUXR = 0x8E; //辅助寄存器 sfr AUXR1 = 0xA2; //辅助寄存器1 sfr WAKE_CLKO = 0x8F; //时钟输出和唤醒控制寄存器 sfr CLK_DIV = 0x97; //时钟分频控制寄存器 sfr BUS_SPEED = 0xA1; //总线速度控制寄存器 /*----------- 中断控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中断允许寄存器 sbit EA = IE^7; //总中断允许位 sbit ELVD = IE^6; //低电压检测中断控制位 8051
上传时间: 2013-10-30
上传用户:yxgi5
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
上传时间: 2015-01-08
上传用户:lifangyuan12
自己写的木马绑定机,实现了基本的原理,有些细节上的东西处理得不是很好。还有,我认为必需写个文件存储a和b程序的字节数。不晓得高手门是不是这样做的?请多多指教。
标签: 木马
上传时间: 2013-12-10
上传用户:xiaoyunyun
一个用Java实现的俄罗斯方块applet游戏,程序界面与以前的有些不同。
上传时间: 2014-12-06
上传用户:luke5347
这是用JAVA编写的简单的坦克大战小游戏,程序不大,只有150K。
上传时间: 2015-05-15
上传用户:stewart·
一个好玩的游戏,程序使用VC++开发程序涉及Direct
标签:
上传时间: 2015-09-18
上传用户:熊少锋
一个使用JAVA编写的五子棋游戏,程序比较简单,适合初学者
上传时间: 2014-01-05
上传用户:mikesering
模拟Monty Hall 猜谜游戏,该游戏来源于电视节目“Let’s Make a Deal”, 游戏规则如下:游戏中设有三扇门,其中一扇门后是一辆汽车,另外两扇门后各有一头山羊。游戏参与者首先选择其中一扇门,然后,节目主持人将另外两扇门中藏有山羊的那扇打开(由于有两头山羊,不管游戏参与者如何选择,节目主持人总是可以打开一扇藏有山羊的门),并给游戏参与者一次改选的机会,这样,游戏参与者实际上有三种不同的选择方式: 维持原先的选择不变。 随机决定是维持原先的选择还是选择另一扇门(例如抛硬币作决定)。 直接选择另一扇门。 模拟程序运行时,提示用户输入其所作的决定以及用户希望玩多少次游戏。程序使用随机数产生器来决定汽车在哪扇门后面以及用户最开始选择的是哪扇门。若用户采用上述的第二种选择方式,程序随机选择是维持原决定还是换一扇门。
上传时间: 2014-03-04
上传用户:TF2015